Merge "Updated installation and components"
[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 ********************
43 Input PM Measurement
44 ********************
45
46 The PM measurement information received from the Kafka topic is produced by the pm-producer.
47 Here follows an example of the expected input object:
48
49 .. code-block:: javascript
50
51    {
52       "event":{
53          "commonEventHeader":{
54             "domain":"perf3gpp",
55             "eventId":"9efa1210-f285-455f-9c6a-3a659b1f1882",
56             "eventName":"perf3gpp_gnb-Ericsson_pmMeasResult",
57             "sourceName":"O-DU-1122",
58             "reportingEntityName":"",
59             "startEpochMicrosec":951912000000,
60             "lastEpochMicrosec":951912900000,
61             "timeZoneOffset":"+00:00"
62          },
63          "perf3gppFields":{
64             "perf3gppFieldsVersion":"1.0",
65             "measDataCollection":{
66                "granularityPeriod":900,
67                "measuredEntityUserName":"RNC Telecomville",
68                "measuredEntityDn":"SubNetwork=CountryNN,MeContext=MEC-Gbg-1,ManagedElement=RNC-Gbg-1",
69                "measuredEntitySoftwareVersion":"",
70                "measInfoList":[
71                   {
72                      "measInfoId":{
73                         "sMeasInfoId":"PM=1,PmGroup=NRCellDU_GNBDU"
74                      },
75                      "measTypes":{
76                         "sMeasTypesList":[
77                            "succImmediateAssignProcs"
78                         ]
79                      },
80                      "measValuesList":[
81                         {
82                            "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-997",
83                            "suspectFlag":"false",
84                            "measResults":[
85                               {
86                                  "p":1,
87                                  "sValue":"1113"
88                               }
89                            ]
90                         },
91                         {
92                            "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-998",
93                            "suspectFlag":"false",
94                            "measResults":[
95                               {
96                                  "p":1,
97                                  "sValue":"234"
98                               }
99                            ]
100                         },
101                         {
102                            "measObjInstId":"RncFunction=RF-1,UtranCell=Gbg-999",
103                            "suspectFlag":"true",
104                            "measResults":[
105                               {
106                                  "p":1,
107                                  "sValue":"789"
108                               }
109                            ]
110                         }
111                      ]
112                   }
113                ]
114             }
115          }
116       }
117    }
118
119
120 *************
121 Configuration
122 *************
123
124
125
126 ==========================================
127 Setting up the PM measurement subscription
128 ==========================================
129
130 The influx logger will create its data subscription automatically. This is done by reading a configuration file that
131 defines the data to log and which Kafka topic to use (1). The contents of this file is used to create
132 the information job for subscribing of PM measurement (2). ICS will make sure that all PM Measurement producers
133 are ordered to start producing data (3).
134
135 .. image:: ./Subscription.png
136    :width: 1000pt
137
138 An example jobDefinition.json file: ":download:`link <../config/jobDefinition.json>`"
139
140 ================
141 application.yaml
142 ================
143
144 The component is configured via its application.yaml
145
146 An example application.yaml configuration file: ":download:`link <../config/application.yaml>`"
147
148
149
150