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 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)
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