Skip to content

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.

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.

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

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
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

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

The registry includes the standard collectors from prometheus/client_golang: the Go collector (go_* series) and the process collector (process_* series).

See Metrics & the ops view.