5 # test if a vnf can be deployed and monitored
7 #start test emulator topology
8 #python src/emuvim/examples/monitoring_demo_topology.py &
11 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)'
16 son-emu-cli monitor setup_metric
-vnf vnf1
:output
--metric tx_packets
18 # allow some time to gather metrics
21 # check if metric is monitored as expected (exported by son-emu, has vnf name as metric id)
22 tx_rate
=$
(son-emu-cli monitor-zapi prometheus
-d datacenter1
-vnf vnf1
-q 'rate(sonemu_tx_count_packets{vnf_name="vnf1"}[10s])')
26 # test if prometheus query worked
29 regex
='\[[0-9.]*, .*\]'
31 if [[ $tx_rate =~
$regex ]] ; then
32 echo " tx_rate monitor test OK"
34 echo "tx_rate monitor test not OK"
39 # check if cpu load can be monitored (exported by cAdvisor, needs uuid)
40 cpu_load
=$
(son-emu-cli monitor-zapi prometheus
-d datacenter1
-vnf vnf1
-q 'sum(rate(container_cpu_usage_seconds_total{id="/docker/<uuid>"}[10s]))')
45 # test if prometheus query worked
48 regex
='\[[0-9.]*, .*\]'
50 if [[ $cpu_load =~
$regex ]] ; then
51 echo " cpu monitor test OK"
53 echo "cpu monitor test not OK"