8c3ce4708f8bcd512a668bb16ada61b05fa7ecf4
[osm/vim-emu.git] / utils / ci / test_sdk_monitor.sh
1 #!/bin/bash
2 set -e
3 set -x
4
5 # test if a vnf can be deployed and monitored
6
7 #start test emulator topology
8 #python src/emuvim/examples/monitoring_demo_topology.py &
9
10 # start a vnf
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)'
12
13 sleep 1
14
15 # monitor a metric
16 son-emu-cli monitor setup_metric -vnf vnf1:output --metric tx_packets
17
18 # allow some time to gather metrics
19 sleep 20
20
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])')
23
24 sleep 1
25
26 # test if prometheus query worked
27 echo $tx_rate
28
29 regex='\[[0-9.]*, .*\]'
30
31 if [[ $tx_rate =~ $regex ]] ; then
32 echo " tx_rate monitor test OK"
33 else
34 echo "tx_rate monitor test not OK"
35 exit 1
36 fi
37
38
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]))')
41
42 sleep 1
43
44
45 # test if prometheus query worked
46 echo $cpu_load
47
48 regex='\[[0-9.]*, .*\]'
49
50 if [[ $cpu_load =~ $regex ]] ; then
51 echo " cpu monitor test OK"
52 else
53 echo "cpu monitor test not OK"
54 exit 1
55 fi
56
57 exit 0
58
59