1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. Copyright (C) 2023 Nordix
13 The task of the Influx Logger is to receive PM Measurement reports from a Kafka topic and to
14 store the measurements in an Influx time series database.
17 .. image:: ./Architecture.png
20 This product is a part of :doc:`NONRTRIC <nonrtric:index>`.
26 The PM Measurements are stored in the influx database. Each measured resource is mapped to a measurement in Influx.
27 The name of the measurement is the Full Distinguished Name of the resource.
28 Each measurement type (counter) is mapped to a field. The name of the field is the same as the name of the measurement type.
30 In addition there is field which stores the GranularityPeriod in seconds of each report.
31 The GP is for how long time the counters have been aggregated.
33 The time is the end time of the report. The start time is then the logged time minus the granularity period.
35 Here follows an example of one Influx table which contains aggregated values for a measured resource.
37 .. image:: ./Schema.png
41 ******************************************
42 Setting up the PM measurement subscription
43 ******************************************
45 The influx logger will create its data subscription automatically. This is done by reading a file that
46 defines the data to log and which Kafka topic to use (1). The contents of this file is used to create
47 the information job for subscribing of PM measurement (2). ICS will make sure that all PM Measurement producers
48 are ordered to start producing data (3).
50 .. image:: ./Subscription.png
53 An example jobDefinition.json file: ":download:`link <../config/jobDefinition.json>`"
59 The PM measurement information received from the Kafka topic is produced by the pm-producer.
60 Here follows an example of the expected input object:
62 .. code-block:: javascript
68 "eventId":"9efa1210-f285-455f-9c6a-3a659b1f1882",
69 "eventName":"perf3gpp_gnb-Ericsson_pmMeasResult",
70 "sourceName":"O-DU-1122",
71 "reportingEntityName":"",
72 "startEpochMicrosec":951912000000,
73 "lastEpochMicrosec":951912900000,
74 "timeZoneOffset":"+00:00"
77 "perf3gppFieldsVersion":"1.0",
78 "measDataCollection":{
79 "granularityPeriod":900,
80 "measuredEntityUserName":"RNC Telecomville",
81 "measuredEntityDn":"SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1",
82 "measuredEntitySoftwareVersion":"",
86 "sMeasInfoId":"PM=1,PmGroup=NRCellDU_GNBDU"
90 "succImmediateAssignProcs"
95 "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-997",
96 "suspectFlag":"false",
105 "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-998",
106 "suspectFlag":"false",
115 "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-999",
116 "suspectFlag":"true",
137 The component is configured via its application.yaml
140 An example application.yaml configuration file: ":download:`link <../config/application.yaml>`"