| stevenvanrossem | 2fdfbf4 | 2016-05-13 15:08:47 +0200 | [diff] [blame] | 1 | #!/bin/bash |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 2 | # test if a vnf can be deployed and monitored |
| stevenvanrossem | 2fdfbf4 | 2016-05-13 15:08:47 +0200 | [diff] [blame] | 3 | |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 4 | #start test emulator topology |
| stevenvanrossem | 02aa196 | 2016-05-17 15:45:43 +0200 | [diff] [blame] | 5 | #python src/emuvim/examples/monitoring_demo_topology.py & |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 6 | |
| 7 | # start a vnf |
| stevenvanrossem | 73efd19 | 2016-06-29 01:44:07 +0200 | [diff] [blame] | 8 | 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)' |
| stevenvanrossem | 48db051 | 2016-05-18 15:43:24 +0200 | [diff] [blame] | 9 | |
| 10 | sleep 1 |
| 11 | |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 12 | # monitor a metric |
| 13 | son-emu-cli monitor setup_metric -vnf vnf1:output --metric tx_packets |
| 14 | |
| stevenvanrossem | 73efd19 | 2016-06-29 01:44:07 +0200 | [diff] [blame] | 15 | # allow some time to gather metrics |
| 16 | sleep 20 |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 17 | |
| stevenvanrossem | 000237b | 2016-06-28 13:15:28 +0200 | [diff] [blame] | 18 | # check if metric is monitored as expected (exported by son-emu, has vnf name as metric id) |
| stevenvanrossem | 73efd19 | 2016-06-29 01:44:07 +0200 | [diff] [blame] | 19 | tx_rate=$(son-emu-cli monitor-zapi prometheus -d datacenter1 -vnf vnf1 -q 'rate(sonemu_tx_count_packets{vnf_name="vnf1"}[10s])') |
| stevenvanrossem | 000237b | 2016-06-28 13:15:28 +0200 | [diff] [blame] | 20 | |
| stevenvanrossem | 73efd19 | 2016-06-29 01:44:07 +0200 | [diff] [blame] | 21 | sleep 1 |
| stevenvanrossem | 000237b | 2016-06-28 13:15:28 +0200 | [diff] [blame] | 22 | |
| 23 | # test if prometheus query worked |
| 24 | echo $tx_rate |
| 25 | |
| 26 | regex='\[[0-9.]*, .*\]' |
| 27 | |
| 28 | if [[ $tx_rate =~ $regex ]] ; then |
| 29 | echo " tx_rate monitor test OK" |
| 30 | else |
| 31 | echo "tx_rate monitor test not OK" |
| 32 | exit 1 |
| 33 | fi |
| 34 | |
| 35 | |
| 36 | # check if cpu load can be monitored (exported by cAdvisor, needs uuid) |
| stevenvanrossem | 73efd19 | 2016-06-29 01:44:07 +0200 | [diff] [blame] | 37 | cpu_load=$(son-emu-cli monitor-zapi prometheus -d datacenter1 -vnf vnf1 -q 'sum(rate(container_cpu_usage_seconds_total{id="/docker/<uuid>"}[10s]))') |
| stevenvanrossem | 2fdfbf4 | 2016-05-13 15:08:47 +0200 | [diff] [blame] | 38 | |
| stevenvanrossem | 48db051 | 2016-05-18 15:43:24 +0200 | [diff] [blame] | 39 | sleep 1 |
| 40 | |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 41 | |
| stevenvanrossem | 2fdfbf4 | 2016-05-13 15:08:47 +0200 | [diff] [blame] | 42 | # test if prometheus query worked |
| stevenvanrossem | 75009bd | 2016-05-18 10:59:48 +0200 | [diff] [blame] | 43 | echo $cpu_load |
| stevenvanrossem | 1a6843a | 2016-05-19 12:19:36 +0200 | [diff] [blame] | 44 | |
| 45 | regex='\[[0-9.]*, .*\]' |
| 46 | |
| stevenvanrossem | 2fdfbf4 | 2016-05-13 15:08:47 +0200 | [diff] [blame] | 47 | if [[ $cpu_load =~ $regex ]] ; then |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 48 | echo " cpu monitor test OK" |
| stevenvanrossem | 2fdfbf4 | 2016-05-13 15:08:47 +0200 | [diff] [blame] | 49 | else |
| stevenvanrossem | a01329c | 2016-05-17 10:06:30 +0200 | [diff] [blame] | 50 | echo "cpu monitor test not OK" |
| stevenvanrossem | 2fdfbf4 | 2016-05-13 15:08:47 +0200 | [diff] [blame] | 51 | exit 1 |
| 52 | fi |
| stevenvanrossem | 1a6843a | 2016-05-19 12:19:36 +0200 | [diff] [blame] | 53 | |
| stevenvanrossem | 000237b | 2016-06-28 13:15:28 +0200 | [diff] [blame] | 54 | exit 0 |
| 55 | |
| stevenvanrossem | 1a6843a | 2016-05-19 12:19:36 +0200 | [diff] [blame] | 56 | |