Merge remote-tracking branch 'upstream/master'
authorpeusterm <manuel.peuster@uni-paderborn.de>
Fri, 19 Aug 2016 13:08:23 +0000 (15:08 +0200)
committerpeusterm <manuel.peuster@uni-paderborn.de>
Fri, 19 Aug 2016 13:08:23 +0000 (15:08 +0200)
Vagrantfile
src/emuvim/api/sonata/dummygatekeeper.py
src/emuvim/dcemulator/monitoring.py

index 395757e..8d9b971 100644 (file)
@@ -60,7 +60,7 @@ Vagrant.configure(2) do |config|
   # accessing "localhost:8080" will access port 80 on the guest machine.
   config.vm.network "forwarded_port", guest: 5000, host: 5000 # dummy gatekeeper
   config.vm.network "forwarded_port", guest: 5001, host: 5001 # REST API
-  config.vm.network "forwarded_port", guest: 8080, host: 8080 # cAdvisor
+  config.vm.network "forwarded_port", guest: 8081, host: 8081 # cAdvisor
   config.vm.network "forwarded_port", guest: 9091, host: 9091 # push gateway
 
   # Create a private network, which allows host-only access to the machine
index 939070c..2aa712e 100755 (executable)
@@ -157,7 +157,7 @@ class Service(object):
                 vnfi = self._start_vnfd(vnfd)
             self.instances[instance_uuid]["vnf_instances"].append(vnfi)
 
-        # 3. Configure the chaining of the network functions (currently only E-Line links supported)
+        # 3. Configure the chaining of the network functions (currently only E-Line and E-LAN links supported)
         vnf_id2vnf_name = defaultdict(lambda: "NotExistingNode",
                                 reduce(lambda x, y: dict(x, **y),
                                        map(lambda d: {d["vnf_id"]: d["vnf_name"]},
index ba04771..875913f 100755 (executable)
@@ -44,23 +44,16 @@ logging.basicConfig(level=logging.INFO)
 class to read openflow stats from the Ryu controller of the DCNetwork\r
 """\r
 \r
+PUSHGATEWAY_PORT = 9091\r
+# we cannot use port 8080 because ryu-ofrest api  is already using that one\r
+CADVISOR_PORT = 8081\r
+\r
 class DCNetworkMonitor():\r
     def __init__(self, net):\r
         self.net = net\r
 \r
-        # TODO: these global variables should be part of a config file?\r
-        '''\r
-        # prometheus is started outside of son-emu\r
-        prometheus_ip = '127.0.0.1'\r
-        prometheus_port = '9090'\r
-        self.prometheus_REST_api = 'http://{0}:{1}'.format(prometheus_ip, prometheus_port)\r
-        '''\r
-        # helper variables to calculate the metrics\r
-        # pushgateway is started outside of son-emu and son-emu is started with net=host\r
-        # so localhost:9091 works\r
-        self.pushgateway = 'localhost:9091'\r
-        # when sdk is started with docker-compose, we could use\r
-        # self.pushgateway = 'pushgateway:9091'\r
+        # pushgateway address\r
+        self.pushgateway = 'localhost:{0}'.format(PUSHGATEWAY_PORT)\r
 \r
         # supported Prometheus metrics\r
         self.registry = CollectorRegistry()\r
@@ -103,7 +96,9 @@ class DCNetworkMonitor():
         self.monitor_flow_thread.start()\r
 \r
         # helper tools\r
-        # cAdvisor, Prometheus pushgateway and DB are started as external container, outside of son-emu\r
+        # cAdvisor, Prometheus pushgateway are started as external container, to gather monitoring metric in son-emu\r
+        self.pushgateway_process = self.start_PushGateway()\r
+        self.cadvisor_process = self.start_cAdvisor()\r
 \r
 \r
     # first set some parameters, before measurement can start\r
@@ -487,7 +482,7 @@ class DCNetworkMonitor():
         logging.info('Start Prometheus container {0}'.format(cmd))\r
         return Popen(cmd)\r
 \r
-    def start_PushGateway(self, port=9091):\r
+    def start_PushGateway(self, port=PUSHGATEWAY_PORT):\r
         cmd = ["docker",\r
                "run",\r
                "-d",\r
@@ -499,7 +494,7 @@ class DCNetworkMonitor():
         logging.info('Start Prometheus Push Gateway container {0}'.format(cmd))\r
         return Popen(cmd)\r
 \r
-    def start_cadvisor(self, port=8090):\r
+    def start_cAdvisor(self, port=CADVISOR_PORT):\r
         cmd = ["docker",\r
                "run",\r
                "--rm",\r
@@ -527,7 +522,7 @@ class DCNetworkMonitor():
             self.prometheus_process.terminate()\r
             self.prometheus_process.kill()\r
             self._stop_container('prometheus')\r
-\r
+        '''\r
         if self.pushgateway_process is not None:\r
             logging.info('stopping pushgateway container')\r
             self.pushgateway_process.terminate()\r
@@ -539,7 +534,6 @@ class DCNetworkMonitor():
             self.cadvisor_process.terminate()\r
             self.cadvisor_process.kill()\r
             self._stop_container('cadvisor')\r
-        '''\r
 \r
     def switch_tx_rx(self,metric=''):\r
         # when monitoring vnfs, the tx of the datacenter switch is actually the rx of the vnf\r