Prometheus metrics
This page lists every series on /metrics, from internal/metrics. The endpoint is mounted on the ops listener when features.enable_metrics is on (the default) and serves the server’s own registry, not the Prometheus global one. No label carries a peer ID.
Requests
Section titled “Requests”Recorded for every request on the seven protocol pipelines.
| Name | Type | Labels | Meaning |
|---|---|---|---|
ricochet_requests_total |
counter | protocol, operation, outcome |
Protocol requests by outcome |
ricochet_request_duration_seconds |
histogram | protocol, operation, outcome |
Request latency; buckets 0.001, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10 s |
| Label | Values |
|---|---|
protocol |
msa, msa_batch, maa, mma, sda, sfa, sca |
operation |
submit (MSA), batch_submit (MSA batch), the operation name for the others (such as retrieve, createMailbox, PUT, APPEND, QUERY), or unrouted when the request named no known operation |
outcome |
ok, client_error (4xx in the response), server_error (5xx in the response), rate_limited (a per-peer rate limit refused it), overloaded (admission control shed it, or the server is draining), error (decode failure, unroutable operation, panic) |
The operations per protocol are on Protocol IDs.
Admission control
Section titled “Admission control”| Name | Type | Labels | Meaning |
|---|---|---|---|
ricochet_requests_in_flight |
gauge | none | Requests holding an admission slot |
ricochet_admission_max_in_flight |
gauge | none | Server-wide concurrent request bound |
ricochet_admission_admitted_total |
counter | none | Requests admitted since start |
ricochet_admission_shed_total |
counter | none | Requests shed because the server was at capacity |
ricochet_admission_waited_total |
counter | none | Requests that waited for a slot |
ricochet_admission_tracked_peers |
gauge | none | Peers holding or awaiting a slot |
Database pool
Section titled “Database pool”Registered when the storage backend is PostgreSQL.
| Name | Type | Labels | Meaning |
|---|---|---|---|
ricochet_db_pool_conns_total |
gauge | none | Connections in the pool, idle and in use |
ricochet_db_pool_conns_idle |
gauge | none | Idle connections |
ricochet_db_pool_conns_acquired |
gauge | none | Connections checked out |
ricochet_db_pool_conns_max |
gauge | none | Configured pool size |
ricochet_db_pool_empty_acquire_total |
counter | none | Acquires that found no free connection and waited |
ricochet_db_pool_canceled_acquire_total |
counter | none | Acquires abandoned before a connection became free |
ricochet_db_pool_acquire_seconds_total |
counter | none | Cumulative time spent waiting to acquire a connection |
Frame buffer pool
Section titled “Frame buffer pool”| Name | Type | Labels | Meaning |
|---|---|---|---|
ricochet_buffer_pool_hits_total |
counter | none | Frame buffers served from the pool |
ricochet_buffer_pool_misses_total |
counter | none | Frame buffers that had to be allocated |
Storage capacity
Section titled “Storage capacity”Taken from the capacity sample, which runs at startup and every intervals.cleanup_min. These series are absent until the first sample completes.
| Name | Type | Labels | Meaning |
|---|---|---|---|
ricochet_mailboxes |
gauge | none | Mailboxes across all owners |
ricochet_messages_stored |
gauge | none | Messages stored |
ricochet_message_bytes |
gauge | none | Summed message payload length |
ricochet_database_bytes |
gauge | none | Database size on disk, including indexes and unreclaimed space |
ricochet_storage_max_bytes |
gauge | none | Configured storage budget (storage.max_storage_gb) |
ricochet_mailboxes_near_capacity |
gauge | none | Mailboxes at or above storage.near_capacity_ratio of their cap |
ricochet_mailbox_depth |
gauge | bucket |
Mailboxes by message count; bucket is 0, 1-9, 10-99, 100-999, 1000-9999 or 10000+ |
ricochet_stats_age_seconds |
gauge | none | Age of the sample these figures came from |
Go runtime and process
Section titled “Go runtime and process”The registry includes the standard collectors from prometheus/client_golang: the Go collector (go_* series) and the process collector (process_* series).