InFlux DB schema (E Release)
This page documents the inFlux DB schema used in the E Release for the KPM (and other) information collected from E2 Simulator.
Version | Author | Comments | Date |
|---|---|---|---|
0.1 | @Agustin Pozuelo | Initial DRAFT, calling for comment! | Sep 24, 2021 |
DRAFT / Proposal
This schema is open for discussion and contribution from the O-RAN community
Summary / Goals
The goal is to have a generic schema definition for xApps to access timeseries data obtained via E2SM/KPM and possibly the other E2SM protocols.
References
E2SM-KPM specs
TS 28.552 "5G performance measurements"
InfluxDB glossary - https://docs.influxdata.com/influxdb/v1.8/concepts/glossary
Viavi RIC Test User Manual
Glossary
SDL: Shared Data Layer, a term referring to the services and schemas used to share data among xApps
Essential InfluxDB terms:
Database: the highest level unit of storage
Measurement: a table inside a database
Data point: a row inside a Measurement table.
Field: a sort of column of a Measurement table, with name and type of data.
Note that not all fields need to be present in all data points
Tag: a metadata field that is indexed so queries on them are performant
Guidelines
For items not explicitly defined in O-RAN specs, look for relevant 3GPP specs.
Field and tag names should be brief because the may pose a direct impact on InfluxDB performance at high loads.
For proprietary/enrichment data fields, use a brief vendor prefix e.g. "Viavi."
Proposed Schema for E2SM/KPM data
Database name: “E2SM-KPM”
For the labelling of fields we will be using names from E2SM/KPM v2.0 (MeasurementLabel) and TS 28.552 "5G performance measurements" as much as possible.
Following the general ideas in from TS 28.552, using short labels, organized in hierarchical form <topic>[.<subtopic>].<name>
KPM Measurement tables:
"CellReports" table containing the following fields:
Timestamp
PLMN (tag)
KPMNodeID (tag) - The KPM Node identification in string form to accomodate the many binary variants (maybe an hex dump?)
S-NSSAI (tag?) - useful to identify slices?
NRCellIdentity (tag?)
Any of the fields defined for cell reports in TS 28.552, for example the following are provided by RIC Test scenario generator:DRB.UEThpDl - Average DL throughput in Kb/s
RRU.PrbUsedDl / RRU.PrbAvailDl
RRU.PrbUsedUl / RRU.PrbAvailUl
QosFlow.PdcpPduVolumeUl - UL PDCP PDU Data Volume (amount of kilobytes in the reporting period)
QosFlow.PdcpPduVolumeDl - DL PDCP PDU Data Volume (amending inconsistency in the case of the final "L" in TS 28.552)
And proprietary extensions:Viavi.Geo.x - Non standard / Viavi proprietary extension / External enrichment
Viavi.Geo.y
Viavi.Geo.z
"UeReports" measurement table containing the following fields:
Timestamp
UE.Id - String representation to accomodate the many forms.
Note: A "UE id resolution" xApp may be needed to match the same UE on different measurements and possibly producing unique ids for this fieldSlice.Id
DRB.UEThpDl - TS 28.552 Average DL UE throughput
RRU.PrbUsedDl - TS 28.552 DL PRB used for data traffic
Viavi.Geo.x”, .y, .z... Viavi proprietary extensions
RF.serving.Id - May be just the PCI or resolved into NRCellIdentity
RF.serving.RSRP (Loosely based on LTE specs)
RF.serving.RSRQ
RF.serving.RSSINR
RF.nb1.CellId - 1st neighbour id
RF.nb1.RSRP, etc. 1st neighbour signal levels
RF.nb2.CellId - 2nd neighbour id
RF.nb2.RSRP, etc. 2nd neighbour signal levels
"cellMeasReport" cell load measurement table has the following fields:
Timestamp
DLOccupyPRBNum – 3GPP supported
CellDLMACRate – proprietary
ULSINR – proprietary
MCS – proprietary
PDCPOccupBuffer – proprietary
PDCPUnusedBuffer – proprietary
DLPacketDiscardNum – proprietary
DLPacketSDUNum – 3GPP supported
DLPacketLossNum – 3GPP supported
DLMACRate – proprietary