[AETHER-1869]: Add Ping to Iperf Server to Edge Monitoring Agent (client+server)
Change-Id: Id8eac4cf410e4e3496da84871ba55e1e935cda86
diff --git a/edge-monitoring-server/edge_monitoring_server.py b/edge-monitoring-server/edge_monitoring_server.py
index 6addd31..a467fee 100755
--- a/edge-monitoring-server/edge_monitoring_server.py
+++ b/edge-monitoring-server/edge_monitoring_server.py
@@ -70,6 +70,16 @@
"stddev": {"type": "number"}
},
"required": ["min", "avg", "max", "stddev"]
+ },
+ "iperf_server": {
+ "type": "object",
+ "properties": {
+ "min": {"type": "number"},
+ "avg": {"type": "number"},
+ "max": {"type": "number"},
+ "stddev": {"type": "number"}
+ },
+ "required": ["min", "avg", "max", "stddev"]
}
}
},
@@ -114,6 +124,12 @@
'avg': 0.0,
'max': 0.0,
'stddev': 0.0
+ },
+ 'iperf_server': {
+ 'min': 0.0,
+ 'avg': 0.0,
+ 'max': 0.0,
+ 'stddev': 0.0
}
},
'iperf': {
@@ -154,11 +170,17 @@
ping_test_ok = prom.Gauge("aetheredge_ping_test_ok", "Last ping test passed", ["name"])
e2e_tests_down = prom.Gauge("aetheredge_e2e_tests_down", "E2E tests not reporting", ["name"])
-# Speedtest ping metrics
-ping_dns_min = prom.Gauge("aetheredge_ping_dns_test_min","Last ping test minimum value",["name"])
-ping_dns_avg = prom.Gauge("aetheredge_ping_dns_test_avg","Last ping test average",["name"])
-ping_dns_max = prom.Gauge("aetheredge_ping_dns_test_max","Last ping test maximum value",["name"])
-ping_dns_stddev = prom.Gauge("aetheredge_ping_dns_test_stddev","Last ping test standard deviation",["name"])
+# Speedtest dns ping metrics
+ping_dns_min = prom.Gauge("aetheredge_ping_dns_test_min","Last ping test to dns minimum value",["name"])
+ping_dns_avg = prom.Gauge("aetheredge_ping_dns_test_avg","Last ping test to dns average",["name"])
+ping_dns_max = prom.Gauge("aetheredge_ping_dns_test_max","Last ping test to dns maximum value",["name"])
+ping_dns_stddev = prom.Gauge("aetheredge_ping_dns_test_stddev","Last ping test to dns standard deviation",["name"])
+
+# Speedtest iperf server ping metrics
+ping_iperf_server_min = prom.Gauge("aetheredge_ping_iperf_server_test_min","Last ping test to iperf_server minimum value",["name"])
+ping_iperf_server_avg = prom.Gauge("aetheredge_ping_iperf_server_test_avg","Last ping test to iperf_server average",["name"])
+ping_iperf_server_max = prom.Gauge("aetheredge_ping_iperf_server_test_max","Last ping test to iperf_server maximum value",["name"])
+ping_iperf_server_stddev = prom.Gauge("aetheredge_ping_iperf_server_test_stddev","Last ping test to iperf_server standard deviation",["name"])
# Speedtest iperf metrics
iperf_cluster_downlink = prom.Gauge("aetheredge_iperf_cluster_downlink_test","Last iperf test downlink result",["name"])
@@ -231,6 +253,10 @@
'avg': 0.0,
'max': 0.0,
'stddev': 0.0}
+ edge['speedtest']['ping']['iperf_server'] = {'min': 0.0,
+ 'avg': 0.0,
+ 'max': 0.0,
+ 'stddev': 0.0}
edge['speedtest']['iperf'] = {'cluster': {
'downlink': 0.0,
'uplink': 0.0
@@ -259,6 +285,14 @@
pass
try:
+ ping_iperf_server_min.remove(name)
+ ping_iperf_server_avg.remove(name)
+ ping_iperf_server_max.remove(name)
+ ping_iperf_server_stddev.remove(name)
+ except:
+ pass
+
+ try:
iperf_cluster_downlink.remove(name)
iperf_cluster_uplink.remove(name)
except:
@@ -286,21 +320,24 @@
connect_status = edge['status']['control_plane']
ping_status = edge['status']['user_plane']
- speedtest_ping_results_exist = True
+ # Add ping dns latency results if available
if edge['speedtest']['ping']['dns']['avg']:
- ping_dns_min_result = edge['speedtest']['ping']['dns']['min']
- ping_dns_avg_result = edge['speedtest']['ping']['dns']['avg']
- ping_dns_max_result = edge['speedtest']['ping']['dns']['max']
- ping_dns_stddev_result = edge['speedtest']['ping']['dns']['stddev']
- else:
- speedtest_ping_results_exist = False
+ ping_dns_min.labels(edge['name']).set(edge['speedtest']['ping']['dns']['min'])
+ ping_dns_avg.labels(edge['name']).set(edge['speedtest']['ping']['dns']['avg'])
+ ping_dns_max.labels(edge['name']).set(edge['speedtest']['ping']['dns']['max'])
+ ping_dns_stddev.labels(edge['name']).set(edge['speedtest']['ping']['dns']['stddev'])
- speedtest_iperf_results_exist = True
+ # Add ping iperf_server latency results if available
+ if edge['speedtest']['ping']['iperf_server']['avg']:
+ ping_iperf_server_min.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['min'])
+ ping_iperf_server_avg.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['avg'])
+ ping_iperf_server_max.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['max'])
+ ping_iperf_server_stddev.labels(edge['name']).set(edge['speedtest']['ping']['iperf_server']['stddev'])
+
+ # Add iperf bandwidth results if available
if edge['speedtest']['iperf']['cluster']['downlink']:
- iperf_cluster_downlink_result = edge['speedtest']['iperf']['cluster']['downlink']
- iperf_cluster_uplink_result = edge['speedtest']['iperf']['cluster']['uplink']
- else:
- speedtest_iperf_results_exist = False
+ iperf_cluster_downlink.labels(edge['name']).set(edge['speedtest']['iperf']['cluster']['downlink'])
+ iperf_cluster_uplink.labels(edge['name']).set(edge['speedtest']['iperf']['cluster']['uplink'])
cp_status.labels(edge['name']).set(status_codes[connect_status])
up_status.labels(edge['name']).set(status_codes[ping_status])
@@ -324,16 +361,6 @@
if connect_status == "connected" and ping_status == "connected":
e2e_tests_ok.labels(edge['name']).set(1)
- if speedtest_ping_results_exist:
- ping_dns_min.labels(edge['name']).set(ping_dns_min_result)
- ping_dns_avg.labels(edge['name']).set(ping_dns_avg_result)
- ping_dns_max.labels(edge['name']).set(ping_dns_max_result)
- ping_dns_stddev.labels(edge['name']).set(ping_dns_stddev_result)
-
- if speedtest_iperf_results_exist:
- iperf_cluster_downlink.labels(edge['name']).set(iperf_cluster_downlink_result)
- iperf_cluster_uplink.labels(edge['name']).set(iperf_cluster_uplink_result)
-
if 'signal_quality' in edge.keys():
signal_quality_rsrq.labels(edge['name']).set(edge['signal_quality']['rsrq'])
signal_quality_rsrp.labels(edge['name']).set(edge['signal_quality']['rsrp'])
@@ -344,6 +371,10 @@
res.append(prom.generate_latest(ping_dns_avg))
res.append(prom.generate_latest(ping_dns_max))
res.append(prom.generate_latest(ping_dns_stddev))
+ res.append(prom.generate_latest(ping_iperf_server_min))
+ res.append(prom.generate_latest(ping_iperf_server_avg))
+ res.append(prom.generate_latest(ping_iperf_server_max))
+ res.append(prom.generate_latest(ping_iperf_server_stddev))
res.append(prom.generate_latest(iperf_cluster_downlink))
res.append(prom.generate_latest(iperf_cluster_uplink))
res.append(prom.generate_latest(last_update))
@@ -400,6 +431,12 @@
'avg': 0.0,
'max': 0.0,
'stddev': 0.0
+ },
+ 'iperf_server': {
+ 'min': 0.0,
+ 'avg': 0.0,
+ 'max': 0.0,
+ 'stddev': 0.0
}
},
'iperf': {