blob: 8c3ce4708f8bcd512a668bb16ada61b05fa7ecf4 [file] [log] [blame]
stevenvanrossem2fdfbf42016-05-13 15:08:47 +02001#!/bin/bash
stevenvanrossem89706802016-07-19 02:54:45 +02002set -e
3set -x
4
stevenvanrossema01329c2016-05-17 10:06:30 +02005# test if a vnf can be deployed and monitored
stevenvanrossem2fdfbf42016-05-13 15:08:47 +02006
stevenvanrossema01329c2016-05-17 10:06:30 +02007#start test emulator topology
stevenvanrossem02aa1962016-05-17 15:45:43 +02008#python src/emuvim/examples/monitoring_demo_topology.py &
stevenvanrossema01329c2016-05-17 10:06:30 +02009
10# start a vnf
stevenvanrossem73efd192016-06-29 01:44:07 +020011son-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)'
stevenvanrossem48db0512016-05-18 15:43:24 +020012
13sleep 1
14
stevenvanrossema01329c2016-05-17 10:06:30 +020015# monitor a metric
16son-emu-cli monitor setup_metric -vnf vnf1:output --metric tx_packets
17
stevenvanrossem73efd192016-06-29 01:44:07 +020018# allow some time to gather metrics
19sleep 20
stevenvanrossema01329c2016-05-17 10:06:30 +020020
stevenvanrossem000237b2016-06-28 13:15:28 +020021# check if metric is monitored as expected (exported by son-emu, has vnf name as metric id)
stevenvanrossem73efd192016-06-29 01:44:07 +020022tx_rate=$(son-emu-cli monitor-zapi prometheus -d datacenter1 -vnf vnf1 -q 'rate(sonemu_tx_count_packets{vnf_name="vnf1"}[10s])')
stevenvanrossem000237b2016-06-28 13:15:28 +020023
stevenvanrossem73efd192016-06-29 01:44:07 +020024sleep 1
stevenvanrossem000237b2016-06-28 13:15:28 +020025
26# test if prometheus query worked
27echo $tx_rate
28
29regex='\[[0-9.]*, .*\]'
30
31if [[ $tx_rate =~ $regex ]] ; then
32 echo " tx_rate monitor test OK"
33else
34 echo "tx_rate monitor test not OK"
35 exit 1
36fi
37
38
39# check if cpu load can be monitored (exported by cAdvisor, needs uuid)
stevenvanrossem73efd192016-06-29 01:44:07 +020040cpu_load=$(son-emu-cli monitor-zapi prometheus -d datacenter1 -vnf vnf1 -q 'sum(rate(container_cpu_usage_seconds_total{id="/docker/<uuid>"}[10s]))')
stevenvanrossem2fdfbf42016-05-13 15:08:47 +020041
stevenvanrossem48db0512016-05-18 15:43:24 +020042sleep 1
43
stevenvanrossema01329c2016-05-17 10:06:30 +020044
stevenvanrossem2fdfbf42016-05-13 15:08:47 +020045# test if prometheus query worked
stevenvanrossem75009bd2016-05-18 10:59:48 +020046echo $cpu_load
stevenvanrossem1a6843a2016-05-19 12:19:36 +020047
48regex='\[[0-9.]*, .*\]'
49
stevenvanrossem2fdfbf42016-05-13 15:08:47 +020050if [[ $cpu_load =~ $regex ]] ; then
stevenvanrossema01329c2016-05-17 10:06:30 +020051 echo " cpu monitor test OK"
stevenvanrossem2fdfbf42016-05-13 15:08:47 +020052else
stevenvanrossema01329c2016-05-17 10:06:30 +020053 echo "cpu monitor test not OK"
stevenvanrossem2fdfbf42016-05-13 15:08:47 +020054 exit 1
55fi
stevenvanrossem1a6843a2016-05-19 12:19:36 +020056
stevenvanrossem000237b2016-06-28 13:15:28 +020057exit 0
58
stevenvanrossem1a6843a2016-05-19 12:19:36 +020059