#!/bin/bash
+set -e
+set -x
+
# test if a vnf can be deployed and monitored
#start test emulator topology
# 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
-cpu_load=$(son-emu-cli monitor prometheus -d datacenter1 -vnf vnf1 -q 'sum(rate(container_cpu_usage_seconds_total{id="/docker/<uuid>"}[10s]))')
+# 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
-# stop the monitor
-son-emu-cli monitor stop_metric -vnf vnf1:output --metric tx_packets
+# test if prometheus query worked
+echo $tx_rate
+
+regex='\[[0-9.]*, .*\]'
+
+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
-#stop the vnf
-son-emu-cli compute stop -d datacenter1 -n vnf1
# test if prometheus query worked
echo $cpu_load
if [[ $cpu_load =~ $regex ]] ; then
echo " cpu monitor test OK"
- exit 0
else
echo "cpu monitor test not OK"
exit 1
fi
+exit 0
+