1. Introduction¶
The Accelleran RIC is equipped with the KPM/PM Time-Series Database. We use the InfluxDB v2.
This KPM/PM Time-Series Database contains a historical view on the different KPMs/PMs that are produced by the Accelleran dRAX RAN components. It can be used for RAN KPM/PM Monitoring purposes, by x/rApps to get a better insight of the network, or by external entities for integration purposes.
The KPMs/PMs are structured in Measurements, each one containing multiple Fields and Tags. Fields store actual metric values while Tags contain metadata that can be used for filtering and grouping.
The Measurements in the KPM/PM Time-Series Database try to follow as closely as possible the 3GPP TS 28.552: 5G performance measurements document .
1.1 Sections overview¶
The following sections describe the measurements that are stored in the KPM/PM Time-Series (InfluxDB) Database per Influx Bucket. Each Bucket contains one or more Measurements. Each Measurement is then described in a Table, detailing the Fields, Tags and their respective Data Types. Knowing the InfluxDB Type is useful when it comes to querying and filtering from the InfluxDB.
1.2 Accessing the RIC Times-Series Database¶
1.2.1 Using dRAX Grafana¶
The Accelleran RIC is also equipped with a Grafana. By default, the KPM/PM Time-Series Database is integrated into this Grafana. Therefore, you can use Grafana to explore the KPM/PM Time-Series Database, or create your own graphs and dashboard with data from the KPM/PM Time-Series Database.
The dRAX Grafana can be accessed on the following port on the dRAX Host Machine:
dRAX Grafana exposed port
30300
1.2.2 Using Accelleran x/rApps¶
To access the Accelleran dRAX RIC KPM/PM Time-Series Database, you first need to get a Access Token. Please contact Accelleran to receive one.
You can now install a Python InfluxDB v2 client, and use it to query the RIC KPM/PM Time-Series (InfluxDB) Database. You will need the following details:
- INFLUXDB_URL = "http://drax-influxdb2:80" # Replace with InfluxDB2 URL
- INFLUXDB_TOKEN = "your-token-here" # Replace with your authentication token
- ORG = "accelleran"
The Influx Bucket and Measurement you can explore in this documentation.
1.2.3 From external entities¶
The RIC KPM/PM Time-Series (InfluxDB) Database is exposed on the following port on the dRAX Host Machine:
dRAX Grafana exposed port
31200
We will give an example in Python, but the principle is the same in any other language.
First, you will need to install the InfluxDB client Python library:
pip3 install influxdb-client
Next, we give an example Python script that can be used to query the RIC KPM/PM Time-Series Database:
Example
from influxdb_client import InfluxDBClient
# InfluxDB connection details
INFLUXDB_URL = "http://drax-influxdb2:80" # Replace with InfluxDB2 URL
INFLUXDB_TOKEN = "your-token-here" # Replace with your authentication token
ORG = "accelleran"
BUCKET = "rrc_connection_metrics" # Example bucket name
MEASUREMENT = "RRCConnEstabAtt" # Example measurement name
# Initialize InfluxDB client
client = InfluxDBClient(url=INFLUXDB_URL, token=INFLUXDB_TOKEN, org=ORG)
# Create a query with dynamic measurement and bucket
query = f"""
from(bucket: "{BUCKET}")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "{MEASUREMENT}")
"""
# Execute the query
query_api = client.query_api()
tables = query_api.query(query)
# Process and print results
for table in tables:
for record in table.records:
print(f"Time: {record.get_time()}, Field: {record.get_field()}, Value: {record.get_value()}")
# Close client
client.close()