Skip to main content
Version: Next 🚧

Events Presenter Telemetry

This document describes the OpenTelemetry metrics and assets for Events Presenter.

For general setup instructions, see the OpenTelemetry Configuration guide.

Telemetry Assets​

Metrics Reference​

Naming note​

In Prometheus, metric names are normalized with underscores (e.g., events_presenter_startup_success), and counters typically include the _total suffix.

Metrics Table​

MetricTypeUnitDescriptionPromQL example
events_presenter.startup.successCountercountService startup completed successfully.sum(increase(events_presenter_startup_success_total[1h]))
events_presenter.startup.failureCountercountService startup failed.sum(increase(events_presenter_startup_failure_total[1h]))
events_presenter.db.connect.duration_secondsHistogramsecondsTime spent waiting for PostgreSQL readiness.histogram_quantile(0.95, sum by (le) (rate(events_presenter_db_connect_duration_seconds_bucket[5m])))
events_presenter.http.events.requestsCounterrequestsNumber of /events requests. Labels: method, status_code.sum by (method) (rate(events_presenter_http_events_requests_total[5m]))
events_presenter.http.events.duration_secondsHistogramseconds/events request latency. Labels: method, status_code.histogram_quantile(0.95, sum by (le, method) (rate(events_presenter_http_events_duration_seconds_bucket[5m])))
events_presenter.http.events.resources_returnedCounterresourcesNumber of resources returned by /events. Label: method.sum(rate(events_presenter_http_events_resources_returned_total[5m]))
events_presenter.http.events.errorsCountererrorsErrors in /events flow. Labels: method, stage, status_code.sum by (stage) (rate(events_presenter_http_events_errors_total[5m]))
events_presenter.listener.notifications.receivedCounternotificationsPostgreSQL notifications received from LISTEN/NOTIFY.sum(rate(events_presenter_listener_notifications_received_total[5m]))
events_presenter.listener.jobs.enqueuedCounterjobsJobs enqueued after notifications.sum(rate(events_presenter_listener_jobs_enqueued_total[5m]))
events_presenter.listener.load_latest.duration_secondsHistogramsecondsDuration of latest-events DB fetch after notification.histogram_quantile(0.95, sum by (le) (rate(events_presenter_listener_load_latest_duration_seconds_bucket[5m])))
events_presenter.listener.load_latest.failureCounterfailuresFailures in latest-events DB fetch path.sum(increase(events_presenter_listener_load_latest_failure_total[1h]))
events_presenter.listener.connect.failureCounterfailuresFailures while connecting/reconnecting listener to PostgreSQL.sum(increase(events_presenter_listener_connect_failure_total[1h]))
events_presenter.listener.disconnectsCounterdisconnectsListener disconnect events.sum(increase(events_presenter_listener_disconnects_total[1h]))
events_presenter.sse.clients.connectedCounterclientsTotal SSE client subscriptions opened.sum(increase(events_presenter_sse_clients_connected_total[1h]))
events_presenter.sse.clients.disconnectedCounterclientsTotal SSE client subscriptions closed.sum(increase(events_presenter_sse_clients_disconnected_total[1h]))
events_presenter.sse.clients.activeGaugeclientsCurrent number of active SSE subscribers.max(events_presenter_sse_clients_active)
events_presenter.sse.events.broadcastCountereventsEvents delivered to SSE client channels.sum(rate(events_presenter_sse_events_broadcast_total[5m]))
events_presenter.sse.events.droppedCountereventsEvents dropped due to slow SSE clients.sum(rate(events_presenter_sse_events_dropped_total[5m]))