Documentation of RAN PM
[nonrtric/plt/ranpm.git] / influxlogger / docs / overview.rst
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
4
5
6 Influx Logger
7 ~~~~~~~~~~~~~
8
9 ************
10 Introduction
11 ************
12
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.
15
16
17 .. image:: ./Architecture.png
18    :width: 1000pt
19
20 This product is a part of :doc:`NONRTRIC <nonrtric:index>`.
21
22 ***************
23 Database Schema
24 ***************
25
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.
29
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.
32
33 The time is the end time of the report. The start time is then the logged time minus the granularity period.
34
35 Here follows an example of one Influx table which contains aggregated values for a measured resource.
36
37 .. image:: ./Schema.png
38    :width: 1000pt
39
40
41 ******************************************
42 Setting up the PM measurement subscription
43 ******************************************
44
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).
49
50 .. image:: ./Subscription.png
51    :width: 1000pt
52
53 An example jobDefinition.json file: ":download:`link <../config/jobDefinition.json>`"
54
55 ********************
56 Input PM Measurement
57 ********************
58
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:
61
62 .. code-block:: javascript
63
64    {
65       "event":{
66          "commonEventHeader":{
67             "domain":"perf3gpp",
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"
75          },
76          "perf3gppFields":{
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":"",
83                "measInfoList":[
84                   {
85                      "measInfoId":{
86                         "sMeasInfoId":"PM=1,PmGroup=NRCellDU_GNBDU"
87                      },
88                      "measTypes":{
89                         "sMeasTypesList":[
90                            "succImmediateAssignProcs"
91                         ]
92                      },
93                      "measValuesList":[
94                         {
95                            "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-997",
96                            "suspectFlag":"false",
97                            "measResults":[
98                               {
99                                  "p":1,
100                                  "sValue":"1113"
101                               }
102                            ]
103                         },
104                         {
105                            "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-998",
106                            "suspectFlag":"false",
107                            "measResults":[
108                               {
109                                  "p":1,
110                                  "sValue":"234"
111                               }
112                            ]
113                         },
114                         {
115                            "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-999",
116                            "suspectFlag":"true",
117                            "measResults":[
118                               {
119                                  "p":1,
120                                  "sValue":"789"
121                               }
122                            ]
123                         }
124                      ]
125                   }
126                ]
127             }
128          }
129       }
130    }
131
132
133 *************
134 Configuration
135 *************
136
137 The component is configured via its application.yaml
138
139
140 An example application.yaml configuration file: ":download:`link <../config/application.yaml>`"
141
142
143
144