Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import logging, sys
from common.proto.kpi_sample_types_pb2 import KpiSampleType
from common.proto.monitoring_pb2 import Kpi, KpiDescriptor
from common.tools.timestamp.Converters import timestamp_datetime_to_float
from forecaster.tests.Tools import read_csv
from monitoring.client.MonitoringClient import MonitoringClient
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
logging.getLogger('monitoring.client.MonitoringClient').setLevel(logging.INFO)
CSV_DATA_FILE = 'src/forecaster/tests/data/dataset.csv'
def main() -> int:
monitoring_client = MonitoringClient()
link_uuid_to_kpi_kpi_uuid = dict()
df = read_csv(CSV_DATA_FILE)
for row in df.itertuples(index=False):
link_uuid = row.link_id
timestamp = timestamp_datetime_to_float(row.timestamp)
used_capacity_gbps = row.used_capacity_gbps
if link_uuid in link_uuid_to_kpi_kpi_uuid:
kpi_uuid = link_uuid_to_kpi_kpi_uuid[link_uuid]
else:
kpi_descriptor = KpiDescriptor()
kpi_descriptor.kpi_description = 'Used Capacity in Link: {:s}'.format(link_uuid)
kpi_descriptor.kpi_sample_type = KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS
kpi_descriptor.link_id.link_uuid.uuid = link_uuid # pylint: disable=no-member
kpi_id = monitoring_client.SetKpi(kpi_descriptor)
kpi_uuid = kpi_id.kpi_id.uuid
link_uuid_to_kpi_kpi_uuid[link_uuid] = kpi_uuid
kpi = Kpi()
kpi.kpi_id.kpi_id.uuid = kpi_uuid # pylint: disable=no-member
kpi.timestamp.timestamp = timestamp # pylint: disable=no-member
kpi.kpi_value.floatVal = used_capacity_gbps # pylint: disable=no-member
monitoring_client.IncludeKpi(kpi)
return 0
if __name__ == '__main__':
sys.exit(main())