Relay

Observability

Prometheus metrics and OpenTelemetry tracing.

The observability package provides Prometheus metrics and OpenTelemetry tracing for monitoring Relay in production.

Prometheus metrics

import "github.com/xraph/relay/observability"

metrics := observability.NewMetrics(prometheus.DefaultRegisterer)

Available metrics

MetricTypeDescription
relay_events_sent_totalCounterTotal events submitted
relay_deliveries_totalCounterVecDelivery attempts by status (delivered, failed, retried)
relay_delivery_latency_secondsHistogramHTTP request latency per delivery
relay_dlq_sizeGaugeCurrent DLQ entries
relay_pending_deliveriesGaugeCurrent pending deliveries

Recording deliveries

metrics.RecordDelivery("delivered", 0.245)
metrics.RecordDelivery("failed", 1.023)

OpenTelemetry tracing

import "github.com/xraph/relay/observability"

tracer := observability.NewTracer()

ctx, span := tracer.StartDeliverySpan(ctx, deliveryID, eventID, endpointID)
defer tracer.EndDeliverySpan(span, statusCode, latencyMs, errMsg)

Each delivery span includes attributes:

  • relay.delivery_id
  • relay.event_id
  • relay.endpoint_id
  • http.status_code
  • relay.latency_ms
  • relay.error (if present)

On this page