class DCNetworkMonitor():\r
def __init__(self, net):\r
self.net = net\r
- # link to Ryu REST_API\r
- ryu_ip = '0.0.0.0'\r
- ryu_port = '8080'\r
- self.ryu_REST_api = 'http://{0}:{1}'.format(ryu_ip, ryu_port)\r
+\r
prometheus_ip = '0.0.0.0'\r
prometheus_port = '9090'\r
self.prometheus_REST_api = 'http://{0}:{1}'.format(prometheus_ip, prometheus_port)\r
\r
\r
# query Ryu\r
- ret = self.REST_cmd('stats/flow', flow_dict['switch_dpid'], data=data)\r
+ ret = self.net.ryu_REST('stats/flow', dpid=flow_dict['switch_dpid'], data=data)\r
flow_stat_dict = ast.literal_eval(ret)\r
\r
logging.info('received flow stat:{0} '.format(flow_stat_dict))\r
for dpid in dpid_set:\r
\r
# query Ryu\r
- ret = self.REST_cmd('stats/port', dpid)\r
+ ret = self.net.ryu_REST('stats/port', dpid=dpid)\r
port_stat_dict = ast.literal_eval(ret)\r
\r
metric_list = [metric_dict for metric_dict in self.network_metrics\r
#logging.exception('metric {0} not found on {1}:{2}'.format(metric_key, vnf_name, vnf_interface))\r
#return 'metric {0} not found on {1}:{2}'.format(metric_key, vnf_name, vnf_interface)\r
\r
- def REST_cmd(self, prefix, dpid, data=None):\r
- url = self.ryu_REST_api + '/' + str(prefix) + '/' + str(dpid)\r
- if data:\r
- logging.info('POST: {0}'.format(str(data)))\r
- req = urllib2.Request(url, str(data))\r
- else:\r
- req = urllib2.Request(url)\r
-\r
- ret = urllib2.urlopen(req).read()\r
- return ret\r
-\r
def query_Prometheus(self, query):\r
'''\r
escaped_chars='{}[]'\r