Added dockerized deployment as third official deployment method. Created a new Docker...
[osm/vim-emu.git] / utils / ci / test_sdk_monitor.sh
index 3c88176..8c3ce47 100755 (executable)
@@ -1,21 +1,43 @@
 #!/bin/bash
+set -e
+set -x
+
 # test if a vnf can be deployed and monitored
 
 #start test emulator topology
 #python src/emuvim/examples/monitoring_demo_topology.py &
 
 # start a vnf
-son-emu-cli compute-zapi start -d datacenter1 -n vnf1  --net '(id=input,ip=10.0.10.3/24),(id=output,ip=10.0.10.4/24)'
+son-emu-cli compute start -d datacenter1 -n vnf1  --net '(id=input,ip=10.0.10.3/24),(id=output,ip=10.0.10.4/24)'
 
 sleep 1
 
 # monitor a metric
 son-emu-cli monitor setup_metric -vnf vnf1:output --metric tx_packets
 
-sleep 5
+# allow some time to gather metrics
+sleep 20
+
+# check if metric is monitored as expected (exported by son-emu, has vnf name as metric id)
+tx_rate=$(son-emu-cli monitor-zapi prometheus -d datacenter1 -vnf vnf1 -q 'rate(sonemu_tx_count_packets{vnf_name="vnf1"}[10s])')
+
+sleep 1
+
+# test if prometheus query worked
+echo $tx_rate
+
+regex='\[[0-9.]*, .*\]'
 
-# check if metric is monitored as expected
-cpu_load=$(son-emu-cli monitor prometheus -d datacenter1 -vnf vnf1 -q 'sum(rate(container_cpu_usage_seconds_total{id="/docker/<uuid>"}[10s]))')
+if [[ $tx_rate =~ $regex ]] ; then
+       echo " tx_rate monitor test OK"
+else
+       echo "tx_rate monitor test not OK"
+       exit 1
+fi
+
+
+# check if cpu load can be monitored (exported by cAdvisor, needs uuid)
+cpu_load=$(son-emu-cli monitor-zapi prometheus -d datacenter1 -vnf vnf1 -q 'sum(rate(container_cpu_usage_seconds_total{id="/docker/<uuid>"}[10s]))')
 
 sleep 1
 
@@ -27,10 +49,11 @@ regex='\[[0-9.]*, .*\]'
 
 if [[ $cpu_load =~ $regex ]] ; then
        echo " cpu monitor test OK"
-       exit 0
 else
        echo "cpu monitor test not OK"
        exit 1
 fi
 
+exit 0
+