Skip to content

Observability

Ella Core supports four observability pillars: Metrics, Logs, Traces, and Profiles.

Metrics

Ella Core exposes a set of Prometheus metrics to monitor the health of the system and the performance of the network.

Default Go metrics

These metrics are used to monitor the performance of the Go runtime and garbage collector. These metrics start with the go_ prefix.

Custom metrics

These metrics are used to monitor the health of the system and the performance of the network. These metrics start with the app_ prefix. The following custom metrics are exposed by Ella Core:

  • app_database_storage_bytes: The total storage used by the database in bytes. This is the size of the database file on disk.
  • app_ip_addresses_allocated_total: The total number of IP addresses currently allocated to subscribers.
  • app_ip_addresses_total: The total number of IP addresses available for subscribers.
  • app_pdu_sessions_total: Number of PDU sessions currently in Ella Core.
  • app_uplink_bytes: The total number of bytes transmitted in the uplink direction (N3 -> N6). This value includes the Ethernet header.
  • app_downlink_bytes: The total number of bytes transmitted in the downlink direction (N6 -> N3). This value includes the Ethernet header.
  • app_xdp_action_total: The total number of packets, with labels for the interface (n3, n6), and action taken.

API

Please refer to the metrics API documentation for more information on accessing metrics in Ella Core.

Logs

Ella Core produces two types of logs: system logs and audit logs.

Ella Core does not assist with log rotation; we recommend using a log rotation tool to manage log files.

System Logs

Ella Core logs many events, including errors, warnings, and information messages. The logs help monitor the health of the system and diagnose issues. Users can configure the log level and output (stdout or file) for system logs.

Audit Logs

Ella Core automatically logs all user actions, including login attempts, API calls, and changes to the system configuration. Users can configure the output (stdout or file) for audit logs.

In addition to the output defined via the configuration file, audit Logs are accessible via the API and the Web UI.

Example

In the following example, we see the [email protected] user creating a policy named new-policy with the associated timestamp.

2025-03-01T09:47:59.410-0500    INFO    logger/logger.go:214    audit event     {"component": "Audit", "action": "create_policy", "actor": "[email protected]", "details": "User created policy: new-policy", "ip": "127.0.0.1"}

Configuration

For more information on configuring logging in Ella Core, refer to the Configuration File documentation.

Traces

Ella Core supports tracing using OpenTelemetry. This allows users to collect and export traces from Ella Core to a tracing backend for analysis and visualization.

Traces are collected for the following root components:

API

Each API call made to Ella Core is traced, allowing users to monitor and analyze the performance of API requests. Each trace includes information about the request, such as the endpoint, method, and response time. Spans may also include database operations.

Tracing
Tracing Ella Core's API interfaces.

NGAP

Ella Core's NGAP interface is traced, allowing users to monitor and analyze the performance of NGAP messages. Each trace includes information about the message type, source, destination, and response time. Spans may also include database operations, NAS messages, and internal Network Function calls.

Tracing
Tracing Ella Core's NGAP interfaces.

Configuration

For more information on configuring tracing in Ella Core, refer to the Configuration File documentation.

Profiles

Ella Core exposes the http/pprof API for CPU and memory profiling analysis. This allows users to collect and analyze profiles of Ella Core using visualization tools like pprof or parca.

CPU Profiling
CPU profiling of Ella Core.

API

For more information on accessing the pprof API in Ella Core, refer to the pprof API documentation.