diff options
| -rwxr-xr-x | tools/monit_device/monit_device.py | 17 |
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() |
