Observability¶
Ella Core supports three observability pillars: Metrics, Logs, and Profiles.
Metrics¶
Ella SMSC exposes Prometheus metrics at GET /api/v1/metrics.
| Metric | Type | Description |
|---|---|---|
ellasmsc_build_info |
Gauge | Always 1. The version and revision of the running build are in its labels. |
ellasmsc_messages_received_total |
Counter | Short messages received, one per part, by origin (mobile, api, smpp) and result (accepted, rejected, error). One per submit_sm for smpp. |
ellasmsc_messages_completed_total |
Counter | Short messages and status reports that reached a final status, by type (message, status_report) and status (delivered, failed, expired, and replaced for a message). |
ellasmsc_messages_purged_total |
Counter | Short messages deleted once their retention passed, with their status reports and delivery attempts. |
ellasmsc_messages_pending |
Gauge | Short messages and status reports waiting for delivery, by type and state: due, to be delivered now or being delivered; waiting, for a retry or for the phone to be reachable. |
ellasmsc_message_delivery_duration_seconds |
Histogram | Time from submission to delivery of the short messages delivered, the time the phone was unreachable included. |
ellasmsc_hss_peers |
Gauge | Open peers that serve S6c in the operator's realm: HSSs, or agents in front of them. At 0, messages to phones wait. |
ellasmsc_peer_requests_total |
Counter | Requests to the HSS and to the MMEs, SMSFs and IP-SM-GWs, by interface (s6c, sgd) and result (success, failure, absent_user, error, timeout). |
ellasmsc_peer_request_duration_seconds |
Histogram | Duration of requests to the HSS and to the MMEs, SMSFs and IP-SM-GWs, by interface. |
ellasmsc_smpp_sessions |
Gauge | Bound SMPP sessions, by bind type (transmitter, receiver, transceiver). |
ellasmsc_smpp_binds_total |
Counter | SMPP bind attempts, by result (accepted, rejected). |
ellasmsc_smpp_notifications_pending |
Gauge | Delivery receipts and SIM answers not yet sent to an ESME and not expired, by type (receipt, sim_answer). A rise means no receiver of the ESME is bound, or it does not acknowledge them. |
ellasmsc_smpp_notifications_sent_total |
Counter | Delivery receipts and SIM answers that reached a final outcome, by type and result (acknowledged, rejected, expired, no_user_data). |
ellasmsc_smpp_submit_duration_seconds |
Histogram | Time from a submit_sm read to its submit_sm_resp written. |
ellasmsc_database_query_duration_seconds |
Histogram | Duration of database calls, the wait for the connection included. |
ellasmsc_database_query_errors_total |
Counter | Failed database calls. |
ellasmsc_database_storage_bytes |
Gauge | Size of the database on disk, by file: main, wal. |
go_* |
Gauge, Counter, Summary | Go runtime: goroutines, heap, garbage-collection pauses. |
process_* |
Gauge, Counter | Process: memory, CPU, open file descriptors, start time. |
Profiles¶
Ella SMSC exposes the net/http/pprof API at /api/v1/pprof/.
Logs¶
Ella SMSC writes its logs to standard output, one JSON object per line, at the level of logging.level in the configuration file.
| Field | Description |
|---|---|
ts |
Time of the event. |
level |
debug, info, warn or error. |
msg |
What happened. |
Other fields depend on the event.
Audit events¶
Audit events are logs at level info with msg set to audit event.
| Field | Description |
|---|---|
action |
What was done, below. |
actor |
Email of the user who did it. Empty when unknown. |
ip |
Address the request came from. |
details |
What was done, in words. |