An easy-to-host PDS on the ATProtocol, iPhone and MacOS. Maintain control of your keys and data, always.
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(relay): OpenTelemetry baseline — tracing exporter + Axum instrumentation (MM-137) #17

Summary#

  • Adds a [telemetry] config section (opt-in, off by default) with OTLP gRPC export via opentelemetry-otlp + tonic
  • New crates/relay/src/telemetry.rs: layered subscriber — fmt layer always present, OTel layer added when telemetry.enabled = true; OtelGuard flushes buffered spans on graceful shutdown via Drop
  • OtelMakeSpan in app.rs replaces the default TraceLayer::make_span_with; extracts W3C traceparent/tracestate headers via TraceContextPropagator so upstream proxy traces are joined
  • #[tracing::instrument] on open_pool and run_migrations with db.system = "sqlite" span attribute
  • Env overrides: EZPDS_TELEMETRY_ENABLED, EZPDS_OTLP_ENDPOINT, OTEL_SERVICE_NAME
  • 7 new config tests; 72 tests pass; clippy clean

Test plan#

  • cargo test --workspace passes
  • cargo clippy --workspace -- -D warnings clean
  • Default config (telemetry.enabled = false) — stdout only, no OTLP connection
  • With telemetry.enabled = true + docker run -d --name jaeger -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one:latest — traces appear in Jaeger at http://localhost:16686
  • Send request with traceparent header — Jaeger shows it as child of upstream trace
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:web:malpercio.dev/sh.tangled.repo.pull/3mgsideydxz22
Diff #0

No differences found between the selected revisions.

History

1 round 0 comments
sign up or login to add to the discussion
malpercio.dev submitted #0
patch application failed: error: No valid patches in input (allow with "--allow-empty")
expand 0 comments