Monitor UE usage with Event Hubs
Azure Private 5G Core can be configured to integrate with Event Hubs, allowing you to monitor UE usage. Event Hubs is a modern big data streaming platform and event ingestion service that can seamlessly integrate with AP5GC. The service can process millions of events per second with low latency. The data sent to an Event Hubs instance can be transformed and stored by using any real-time analytics providers or batching or storage adapters.
You can monitor UE usage based on the monitoring data generated by Azure Event Hubs, and analyze or alert on this data with Azure Monitor.
Prerequisites
- You must have an Event Hubs instance with a shared access policy. The shared access policy must have send and receive access configured.
- You must have a user assigned managed identity that has the Contributor or Owner role for the Event Hubs instance and is assigned to the Packet Core Control Plane for the site.
Tip
A default shared access policy will be created automatically if the Packet Core Control Plane is configured with the required managed identity.
Configure UE usage monitoring
UE usage monitoring can be enabled during site creation or at a later stage by modifying the packet core configuration.
Once Event Hubs is receiving data from your AP5GC deployment, you can write an application using SDKs such as .NET to consume event data and produce metrics.
Important
If you create the managed identity after enabling UE usage monitoring, you will need to refresh the packet core configuration by making a dummy configuration change. This could be a change that will have no impact on your deployment and can be left in place, or a change that you immediately revert. See Modify a packet core instance. If you do not refresh the packet core configuration, packet capture will fail.
Reported UE usage data
When configured, AP5GC will send data usage reports per QoS flow level for all PDU sessions. The following data is reported:
Data name | Data Type | Description |
---|---|---|
Subscriber Identifier (SUPI/IMSI) | String | The identifier associated with the UE. |
IMEI | String | The International Mobile Equipment Identity associated with the UE. |
Serving PLMN ID | String | The ID of the serving public land mobile network associated with the UE. |
Event Timestamp | Datetime | Timestamp of the UE event. |
Total data Volume (Bytes) | Integer | Total data volume transmitted. Measured in bytes. |
Uplink data volume | Integer | Uplink data volume transmitted. Measured in bytes. |
Downlink data volume | Integer | Downlink data volume transmitted. Measured in bytes. |
APN/DNN | String | The data point or data network name. |
Timestamp First usage | Datetime | Time stamp for the first IP packet to be transmitted and mapped to the current UE data usage event. |
Timestamp Last usage | Datetime | Time stamp for the last IP packet to be transmitted and mapped to the current UE data usage event. |
Duration | Integer | Duration in seconds in which this event data is collected. |
RAN Identifier | String | The radio access network identifier associated with the UE. |
RAT Type | Integer | The radio access technology type. |
QCI/5QI | Integer | The quality of service identifier. See 5G quality of service (QoS) and QoS flows for more information. |
PDU Session ID | String | The identifier for the protocol data unit for the UE event. |
IP Address | String | The UE's IP address. |
Packet Core Control Plane ARM ID | String | The identifier of the packet core control plane ARM associated with the UE. |
Packet Core Data Plane ARM ID | String | The identifier of the packet core data plane ARM associated with the UE. |
ARP | Object | The Allocation and Retention Policy, including the: priority level, preemption capability and preemption vulnerability. See 5G quality of service (QoS) and QoS flows for more information. |
- ArpPriorityLevel | Int (1-15) | See ARP above. |
- Preemption Capability | String | See ARP above. |
- Preemption Vulnerability | String | See ARP above. |
Azure Stream Analytics
Azure Stream Analytics allows you to process and analyze streaming data from Event Hubs. See Process data from your Event Hubs using Azure Stream Analytics for more information.
UE usage schema
The following schema is used by Event Hubs to validate the UE usage messages.
{
"type": "record",
"name": "UeUsageReport",
"namespace": "Microsoft.Azure.Pmn.EventHubAgent.Models",
"doc": "Schema for the UE usage report data. The events will be serialized using this schema.",
"fields": [{
"name": "apnDnn",
"type": ["null", "string"],
"default": null
}, {
"name": "arp",
"type": ["null", {
"type": "record",
"name": "Arp",
"fields": [{
"name": "preemptCap",
"type": ["null", "string"],
"default": null
}, {
"name": "preemptVuln",
"type": ["null", "string"],
"default": null
}, {
"name": "priorityLevel",
"type": ["null", "int"],
"default": null
}]
}],
"default": null
}, {
"name": "downlinkDataVolumeBytes",
"type": ["null", "long"],
"default": null
}, {
"name": "durationSeconds",
"type": ["null", "int"],
"default": null
}, {
"name": "eventTimestamp",
"type": ["null", "string"],
"default": null
}, {
"name": "imei",
"type": ["null", "string"],
"default": null
}, {
"name": "imsi",
"type": ["null", "string"],
"default": null
}, {
"name": "ipAddress",
"type": ["null", "string"],
"default": null
}, {
"name": "pcControlPlaneId",
"type": ["null", "string"],
"default": null
}, {
"name": "pcDataPlaneId",
"type": ["null", "string"],
"default": null
}, {
"name": "pduSessionId",
"type": ["null", "string"],
"default": null
}, {
"name": "qci5QI",
"type": ["null", "int"],
"default": null
}, {
"name": "ranIdentifier",
"type": ["null", "string"],
"default": null
}, {
"name": "ratType",
"type": ["null", "string"],
"default": null
}, {
"name": "servingPlmnId",
"type": ["null", "string"],
"default": null
}, {
"name": "timestampFirstUsage",
"type": ["null", "string"],
"default": null
}, {
"name": "timestampLastUsage",
"type": ["null", "string"],
"default": null
}, {
"name": "totalDataVolumeBytes",
"type": ["null", "long"],
"default": null
}, {
"name": "uplinkDataVolumeBytes",
"type": ["null", "long"],
"default": null
}]
}