projects
/
osm
/
vim-emu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'upstream/master'
[osm/vim-emu.git]
/
src
/
emuvim
/
dcemulator
/
monitoring.py
diff --git
a/src/emuvim/dcemulator/monitoring.py
b/src/emuvim/dcemulator/monitoring.py
index
80b139c
..
ba04771
100755
(executable)
--- a/
src/emuvim/dcemulator/monitoring.py
+++ b/
src/emuvim/dcemulator/monitoring.py
@@
-27,6
+27,7
@@
partner consortium (www.sonata-nfv.eu).
"""
\r
\r
import logging
\r
"""
\r
\r
import logging
\r
+import sys
\r
from mininet.node import OVSSwitch
\r
import ast
\r
import time
\r
from mininet.node import OVSSwitch
\r
import ast
\r
import time
\r
@@
-348,6
+349,7
@@
class DCNetworkMonitor():
data = {}
\r
\r
data['cookie'] = flow_dict['cookie']
\r
data = {}
\r
\r
data['cookie'] = flow_dict['cookie']
\r
+ data['cookie_mask'] = flow_dict['cookie']
\r
\r
if 'tx' in flow_dict['metric_key']:
\r
data['match'] = {'in_port':flow_dict['mon_port']}
\r
\r
if 'tx' in flow_dict['metric_key']:
\r
data['match'] = {'in_port':flow_dict['mon_port']}
\r
@@
-357,9
+359,15
@@
class DCNetworkMonitor():
\r
# query Ryu
\r
ret = self.net.ryu_REST('stats/flow', dpid=flow_dict['switch_dpid'], data=data)
\r
\r
# query Ryu
\r
ret = self.net.ryu_REST('stats/flow', dpid=flow_dict['switch_dpid'], data=data)
\r
- flow_stat_dict = ast.literal_eval(ret)
\r
+ if isinstance(ret, dict):
\r
+ flow_stat_dict = ret
\r
+ elif isinstance(ret, basestring):
\r
+ flow_stat_dict = ast.literal_eval(ret.rstrip())
\r
+ else:
\r
+ flow_stat_dict = None
\r
\r
logging.debug('received flow stat:{0} '.format(flow_stat_dict))
\r
\r
logging.debug('received flow stat:{0} '.format(flow_stat_dict))
\r
+
\r
self.set_flow_metric(flow_dict, flow_stat_dict)
\r
\r
self.monitor_flow_lock.release()
\r
self.set_flow_metric(flow_dict, flow_stat_dict)
\r
\r
self.monitor_flow_lock.release()
\r
@@
-446,13
+454,6
@@
class DCNetworkMonitor():
previous_monitor_time = metric_dict['previous_monitor_time']
\r
cookie = metric_dict['cookie']
\r
\r
previous_monitor_time = metric_dict['previous_monitor_time']
\r
cookie = metric_dict['cookie']
\r
\r
- # TODO aggregate all found flow stats
\r
- #flow_stat = flow_stat_dict[str(switch_dpid)][0]
\r
- #if 'bytes' in metric_key:
\r
- # counter = flow_stat['byte_count']
\r
- #elif 'packet' in metric_key:
\r
- # counter = flow_stat['packet_count']
\r
-
\r
counter = 0
\r
for flow_stat in flow_stat_dict[str(switch_dpid)]:
\r
if 'bytes' in metric_key:
\r
counter = 0
\r
for flow_stat in flow_stat_dict[str(switch_dpid)]:
\r
if 'bytes' in metric_key:
\r
@@
-466,7
+467,10
@@
class DCNetworkMonitor():
self.prom_metrics[metric_dict['metric_key']]. \
\r
labels({'vnf_name': vnf_name, 'vnf_interface': vnf_interface, 'flow_id': cookie}). \
\r
set(counter)
\r
self.prom_metrics[metric_dict['metric_key']]. \
\r
labels({'vnf_name': vnf_name, 'vnf_interface': vnf_interface, 'flow_id': cookie}). \
\r
set(counter)
\r
- pushadd_to_gateway(self.pushgateway, job='sonemu-SDNcontroller', registry=self.registry)
\r
+ try:
\r
+ pushadd_to_gateway(self.pushgateway, job='sonemu-SDNcontroller', registry=self.registry)
\r
+ except Exception, e:
\r
+ logging.warning("Pushgateway not reachable: {0} {1}".format(Exception, e))
\r
\r
\r
def start_Prometheus(self, port=9090):
\r
\r
\r
def start_Prometheus(self, port=9090):
\r