Loading src/tests/p4/probe/monitoring.ipynb +31 −16 Original line number Diff line number Diff line %% Cell type:markdown id: tags: # Checking the monitoring component %% Cell type:code id: tags: ``` python import time import datetime import uuid import random from dotenv import load_dotenv from IPython.display import clear_output, display, HTML from common.tools.timestamp.Converters import timestamp_utcnow_to_float, timestamp_float_to_string from common.tools.grpc.Tools import grpc_message_to_json_string from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.proto.monitoring_pb2 import KpiDescriptor, KpiId, KpiQuery from common.proto.monitoring_pb2 import KpiDescriptor, KpiId, KpiQuery, Kpi from monitoring.client.MonitoringClient import MonitoringClient ``` %% Cell type:code id: tags: ``` python load_dotenv() monitoring_client = MonitoringClient() uuid.uuid4().hex ``` %% Cell type:code id: tags: ``` python kpi_description: KpiDescriptor = KpiDescriptor() kpi_description.kpi_description = "Security status of service {}".format(uuid.uuid4().hex) kpi_description.service_id.service_uuid.uuid = "608df176-90b8-5950-b50d-1810c6eaaa5d" kpi_description.kpi_sample_type = KpiSampleType.KPISAMPLETYPE_UNKNOWN new_kpi = monitoring_client.SetKpi(kpi_description) print("Created KPI {}: ".format(grpc_message_to_json_string(new_kpi))) ``` %% Cell type:code id: tags: ``` python kpi_id = input("What is the KPI ID?") query = KpiQuery() query.kpi_ids.append(KpiId(**{"kpi_id": {"uuid": kpi_id}})) query.last_n_samples = 10 while True: kpi = Kpi() kpi.kpi_id.kpi_id.uuid = new_kpi.kpi_id.uuid kpi.timestamp.timestamp = timestamp_utcnow_to_float() kpi.kpi_value.int32Val = random.randint(10, 4000) # monitoring_client.IncludeKpi(kpi) response = monitoring_client.QueryKpiData(query) # print(response) table = f"""<table> <thead> <tr><th colspan=3>{datetime.datetime.now()}</th></tr> <tr><th>KPI ID</th><th>Timestamp</th><th>Value</th></tr> <thead> <tbody>""" for kpi in response.raw_kpi_lists: cur_kpi_id = kpi.kpi_id.kpi_id.uuid for raw_kpi in reversed(kpi.raw_kpis): for i, raw_kpi in enumerate(kpi.raw_kpis): # print(cur_kpi_id, raw_kpi.timestamp.timestamp, raw_kpi.kpi_value) table += "<tr><td>{}</td><td>{}</td><td>{}</td></tr>".format( cur_kpi_id, raw_kpi.timestamp.timestamp, raw_kpi.kpi_value table += "<tr><td>{} - {}</td><td>{}</td><td>{}</td></tr>".format( i, cur_kpi_id, timestamp_float_to_string(raw_kpi.timestamp.timestamp), raw_kpi.kpi_value ) table += "</tbody></table>" display(HTML(table)) time.sleep(5) clear_output(wait=True) ``` %% Output --------------------------------------------------------------------------- KeyboardInterrupt Traceback (most recent call last) Cell In [22], line 28 26 table += "</tbody></table>" 27 display(HTML(table)) ---> 28 time.sleep(5) 29 clear_output(wait=True) KeyboardInterrupt: Loading
src/tests/p4/probe/monitoring.ipynb +31 −16 Original line number Diff line number Diff line %% Cell type:markdown id: tags: # Checking the monitoring component %% Cell type:code id: tags: ``` python import time import datetime import uuid import random from dotenv import load_dotenv from IPython.display import clear_output, display, HTML from common.tools.timestamp.Converters import timestamp_utcnow_to_float, timestamp_float_to_string from common.tools.grpc.Tools import grpc_message_to_json_string from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.proto.monitoring_pb2 import KpiDescriptor, KpiId, KpiQuery from common.proto.monitoring_pb2 import KpiDescriptor, KpiId, KpiQuery, Kpi from monitoring.client.MonitoringClient import MonitoringClient ``` %% Cell type:code id: tags: ``` python load_dotenv() monitoring_client = MonitoringClient() uuid.uuid4().hex ``` %% Cell type:code id: tags: ``` python kpi_description: KpiDescriptor = KpiDescriptor() kpi_description.kpi_description = "Security status of service {}".format(uuid.uuid4().hex) kpi_description.service_id.service_uuid.uuid = "608df176-90b8-5950-b50d-1810c6eaaa5d" kpi_description.kpi_sample_type = KpiSampleType.KPISAMPLETYPE_UNKNOWN new_kpi = monitoring_client.SetKpi(kpi_description) print("Created KPI {}: ".format(grpc_message_to_json_string(new_kpi))) ``` %% Cell type:code id: tags: ``` python kpi_id = input("What is the KPI ID?") query = KpiQuery() query.kpi_ids.append(KpiId(**{"kpi_id": {"uuid": kpi_id}})) query.last_n_samples = 10 while True: kpi = Kpi() kpi.kpi_id.kpi_id.uuid = new_kpi.kpi_id.uuid kpi.timestamp.timestamp = timestamp_utcnow_to_float() kpi.kpi_value.int32Val = random.randint(10, 4000) # monitoring_client.IncludeKpi(kpi) response = monitoring_client.QueryKpiData(query) # print(response) table = f"""<table> <thead> <tr><th colspan=3>{datetime.datetime.now()}</th></tr> <tr><th>KPI ID</th><th>Timestamp</th><th>Value</th></tr> <thead> <tbody>""" for kpi in response.raw_kpi_lists: cur_kpi_id = kpi.kpi_id.kpi_id.uuid for raw_kpi in reversed(kpi.raw_kpis): for i, raw_kpi in enumerate(kpi.raw_kpis): # print(cur_kpi_id, raw_kpi.timestamp.timestamp, raw_kpi.kpi_value) table += "<tr><td>{}</td><td>{}</td><td>{}</td></tr>".format( cur_kpi_id, raw_kpi.timestamp.timestamp, raw_kpi.kpi_value table += "<tr><td>{} - {}</td><td>{}</td><td>{}</td></tr>".format( i, cur_kpi_id, timestamp_float_to_string(raw_kpi.timestamp.timestamp), raw_kpi.kpi_value ) table += "</tbody></table>" display(HTML(table)) time.sleep(5) clear_output(wait=True) ``` %% Output --------------------------------------------------------------------------- KeyboardInterrupt Traceback (most recent call last) Cell In [22], line 28 26 table += "</tbody></table>" 27 display(HTML(table)) ---> 28 time.sleep(5) 29 clear_output(wait=True) KeyboardInterrupt: