summaryrefslogtreecommitdiff
path: root/tools/monit_device
diff options
context:
space:
mode:
authorLu Qiuwen <[email protected]>2024-11-20 11:43:31 +0800
committerLu Qiuwen <[email protected]>2024-11-20 11:43:31 +0800
commit1448b586805e200ae38bb2e769b3d10fcc427fcd (patch)
treeca93ac5449656ef482439e1bf4b2f4b810d23cc8 /tools/monit_device
parent1dc87d94c5c7c7f5b2da94b66b3b12a03f6c5ae9 (diff)
Allow monitor the bfd session status from prometheus.v4.7.10-20241121rel-4.7dev-4.7
Diffstat (limited to 'tools/monit_device')
-rwxr-xr-xtools/monit_device/monit_device.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/monit_device/monit_device.py b/tools/monit_device/monit_device.py
index dc943f2..5db4b48 100755
--- a/tools/monit_device/monit_device.py
+++ b/tools/monit_device/monit_device.py
@@ -72,6 +72,21 @@ def locate_vector_by_symbol(vector, symbol):
def list_all_phydev(json_fp):
return [s['symbol'] for s in json_fp['device']]
+def dump_bfd_sessions_prometheus_output(json_fp):
+ resp = ''
+ try:
+ bfd_session_keys = [k for k in json_fp['bfd'].keys() if k.startswith('bfd-session-')]
+ for bfd_session_key in bfd_session_keys:
+ bfd_session_obj = json_fp['bfd'][bfd_session_key]
+ session_id = bfd_session_obj['bfd_session_id']
+ remote_device_ip = bfd_session_obj['device_ip']
+ remote_device_status = 1 if bfd_session_obj['device_status'] == 'Up' else 0
+
+ resp += 'bfd_session_status{session_id="%s", remote_device_ip="%s"} %d\n' % (session_id, remote_device_ip, remote_device_status)
+ except KeyError:
+ resp = ''
+ return resp
+
def dump_pkt_latency_prometheus_output(json_fp):
resp = ''
@@ -255,6 +270,8 @@ class PrometheusClient(BaseHTTPRequestHandler):
resp += dump_prometheus_output(self.json_fp, devsym)
resp += dump_pkt_latency_prometheus_output(self.json_fp)
+ resp += dump_bfd_sessions_prometheus_output(self.json_fp)
+
self.send_response(200)
self.send_header('Content-type', 'text/plain; version=0.0.4')
self.end_headers()