def profile(self, mgmt_ip, rate, input_ip, vnf_uuid):

        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # ssh.connect(mgmt_ip, username='******', password='******')
        ssh.connect(mgmt_ip, username='******', password='******')
        #ssh.connect(mgmt_ip)

        iperf_cmd = 'iperf -c {0} -u -l18 -b{1}M -t1000 &'.format(input_ip, rate)
        if rate > 0:
            stdin, stdout, stderr = ssh.exec_command(iperf_cmd)

        start_time = time.time()
        query_cpu = '(sum(rate(container_cpu_usage_seconds_total{{id="/docker/{0}"}}[{1}s])))'.format(vnf_uuid, 1)
        while (time.time() - start_time) < 10:
            data = prometheus.query_Prometheus(query_cpu)
            # logging.info('rate: {1} data:{0}'.format(data, rate))
            gevent.sleep(0)
            time.sleep(1)

        query_cpu2 = '(sum(rate(container_cpu_usage_seconds_total{{id="/docker/{0}"}}[{1}s])))'.format(vnf_uuid, 8)
        cpu_load = float(prometheus.query_Prometheus(query_cpu2)[1])
        output = 'rate: {1}Mbps; cpu_load: {0}%'.format(round(cpu_load * 100, 2), rate)
        output_line = output
        logging.info(output_line)

        stop_iperf = 'pkill -9 iperf'
        stdin, stdout, stderr = ssh.exec_command(stop_iperf)

        return output_line
Пример #2
0
    def profile(self, mgmt_ip, rate, input_ip, vnf_uuid):

        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        # ssh.connect(mgmt_ip, username='******', password='******')
        ssh.connect(mgmt_ip, username='******', password='******')
        #ssh.connect(mgmt_ip)

        iperf_cmd = 'iperf -c {0} -u -l18 -b{1}M -t1000 &'.format(
            input_ip, rate)
        if rate > 0:
            stdin, stdout, stderr = ssh.exec_command(iperf_cmd)

        start_time = time.time()
        query_cpu = '(sum(rate(container_cpu_usage_seconds_total{{id="/docker/{0}"}}[{1}s])))'.format(
            vnf_uuid, 1)
        while (time.time() - start_time) < 10:
            data = prometheus.query_Prometheus(query_cpu)
            # logging.info('rate: {1} data:{0}'.format(data, rate))
            gevent.sleep(0)
            time.sleep(1)

        query_cpu2 = '(sum(rate(container_cpu_usage_seconds_total{{id="/docker/{0}"}}[{1}s])))'.format(
            vnf_uuid, 8)
        cpu_load = float(prometheus.query_Prometheus(query_cpu2)[1])
        output = 'rate: {1}Mbps; cpu_load: {0}%'.format(
            round(cpu_load * 100, 2), rate)
        output_line = output
        logging.info(output_line)

        stop_iperf = 'pkill -9 iperf'
        stdin, stdout, stderr = ssh.exec_command(stop_iperf)

        return output_line
def prometheus_query_emu(args):
    vnf_name = _parse_vnf_name(args.get("vnf_name"))
    vnf_interface = _parse_vnf_interface(args.get("vnf_name"))
    dc_label = args.get("datacenter")
    query = args.get("query")
    vnf_status = COMPUTE_API.compute_status(dc_label, vnf_name)
    uuid = vnf_status['id']
    query = query.replace('<uuid>', uuid)

    r = prometheus.query_Prometheus(query)
    pp.pprint(r)
Пример #4
0
def prometheus_query_emu(args):
    vnf_name = _parse_vnf_name(args.get("vnf_name"))
    vnf_interface = _parse_vnf_interface(args.get("vnf_name"))
    dc_label = args.get("datacenter")
    query = args.get("query")
    vnf_status = COMPUTE_API.compute_status(dc_label, vnf_name)
    uuid = vnf_status['id']
    query = query.replace('<uuid>', uuid)

    r = prometheus.query_Prometheus(query)
    pp.pprint(r)
Пример #5
0
    def query(self, vnf_name, query, datacenter=None, **kwargs):
        vnf_name2 = parse_vnf_name(vnf_name)
        vnf_interface = parse_vnf_interface(vnf_name)

        if datacenter is None:
            datacenter = self._find_dc(vnf_name2)
        dc_label = datacenter
        query = query
        vnf_status = get("{0}/restapi/compute/{1}/{2}".format(self.url, dc_label, vnf_name2)).json()
        uuid = vnf_status["id"]
        query = query.replace("<uuid>", uuid)

        r = query_Prometheus(query)
        return r