Load and Capacity Reporting with Prometheus

In this architecture shown in Figure 1, the Prometheus Node Exporter process is deployed within the Kubernetes cluster as a DaemonSet, ensuring one pod runs on each Kubernetes node. The Node Exporter reports system metrics such as load and CPU usage to Prometheus.

Figure 1. NRF Client Load Monitoring With Prometheus
NRF Client Load Monitoring With Prometheus

SBA Gateway can be configured to periodically query the Prometheus REST API, using PromQL to generate a percentage load across all nodes in the cluster. Do the following to report load information from Prometheus:

  1. Configure the SBA Gateway to poll Prometheus and store the result in a variable.
  2. Configure the SBA NRF Client to use the variable when reporting load information in the registration and heartbeat messages.

There are many different ways to calculate the load of the network function, and the standards do not define how to calculate a load. The example shows load as the average CPU usage across all nodes in the Kubernetes cluster. More complex queries can be designed which consider other metrics, such as bandwidth, or to limit the query to containers that are involved in the processing of specific 5GC messages. The mechanism used is also generic and it can be applied to any REST API.