AETHER-1027 Remove deleted edge from Prometheus metrics
Change-Id: Ia870e9c9835b1bbb7d23839134173fff360811c4
diff --git a/edge-monitoring/Makefile b/edge-monitoring/Makefile
index 0fc83de..f199fa4 100644
--- a/edge-monitoring/Makefile
+++ b/edge-monitoring/Makefile
@@ -57,8 +57,8 @@
docker-push:
docker push ${ADAPTER_IMAGENAME}
-venv: ${VENVDIR}
- virtualenv --python=python3.7 ${VENVDIR};\
+${VENVDIR}:
+ virtualenv --python=python3 ${VENVDIR};\
source ./${VENVDIR}/bin/activate ; set -u ;\
pip install -r requirements.txt
diff --git a/edge-monitoring/VERSION b/edge-monitoring/VERSION
index 267577d..2b7c5ae 100644
--- a/edge-monitoring/VERSION
+++ b/edge-monitoring/VERSION
@@ -1 +1 @@
-0.4.1
+0.4.2
diff --git a/edge-monitoring/edge_monitoring_server.py b/edge-monitoring/edge_monitoring_server.py
index 05cd859..aa9de66 100755
--- a/edge-monitoring/edge_monitoring_server.py
+++ b/edge-monitoring/edge_monitoring_server.py
@@ -117,6 +117,18 @@
edge['status']['control_plane'] = "no result"
edge['status']['user_plane'] = "no result"
+def remove_edge_from_metrics(name):
+ try:
+ cp_status.remove(name)
+ up_status.remove(name)
+ last_update.remove(name)
+ except:
+ pass
+
+ try:
+ maint_window.remove(name)
+ except:
+ pass
@app.route('/edges/metrics', methods=['GET'])
def get_prometheus_metrics():
@@ -197,6 +209,7 @@
for i in range(len(edges)):
if edges[i]['name'] == name:
del edges[i]
+ remove_edge_from_metrics(name)
result = True
break
if not result:
diff --git a/edge-monitoring/test_edge_monitoring_server.py b/edge-monitoring/test_edge_monitoring_server.py
index 5e4748f..423c310 100755
--- a/edge-monitoring/test_edge_monitoring_server.py
+++ b/edge-monitoring/test_edge_monitoring_server.py
@@ -131,10 +131,21 @@
data = json.loads(response.get_data(as_text=True))
self.assertEqual(len(data['edges']), 2)
+ response = self.app.get('/edges/metrics')
+ data = response.get_data(as_text=True)
+ self.assertTrue('aetheredge_status_control_plane{name="ace-menlo-pixel"} 2.0' in data)
+ self.assertTrue('aetheredge_status_user_plane{name="ace-menlo-pixel"} 2.0' in data)
+ self.assertTrue('aetheredge_last_update{name="ace-menlo-pixel"}' in data)
+
response = self.app.delete('/edges/ace-menlo-pixel')
data = json.loads(response.get_data(as_text=True))
self.assertEqual(data['result'], True)
- response = self.app.get('/edges', json=test_edge)
+
+ response = self.app.get('/edges/metrics')
+ data = response.get_data(as_text=True)
+ self.assertFalse('aetheredge_status_control_plane{name="ace-menlo-pixel"} 2.0' in data)
+ self.assertFalse('aetheredge_status_user_plane{name="ace-menlo-pixel"} 2.0' in data)
+ self.assertFalse('aetheredge_last_update{name="ace-menlo-pixel"}' in data)
response = self.app.get('/edges')
data = json.loads(response.get_data(as_text=True))