You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenTelemetry tracing is already configured in the API (ASP.NET Core + EF Core instrumentation, service name Cluckwork.Api) but no exporter is registered, so every span is created and then dropped. Serilog writes console logs, but no per-request line is emitted in production (the Microsoft → Warning level override suppresses hosting logs), and log lines carry no trace identifiers, so logs and traces cannot be joined.
Make the existing telemetry real, end to end:
Export traces via OTLP, with endpoint/headers coming from configuration. Unset endpoint = exporter off; current local-dev behavior preserved.
Emit one structured log line per request (method, path, status code, elapsed ms) via Serilog request logging.
Include TraceId/SpanId in log output so a log line can be joined to its exported trace.
Prefer the framework/library facilities (Serilog request logging, OTel OTLP exporter package) over anything hand-rolled.
Acceptance criteria
With an OTLP endpoint configured, request and EF Core spans arrive at a collector; with it unset, the app boots and runs exactly as today
Every API request produces one structured log line with method, path, status code, and elapsed ms
Health-probe requests (/health/live, /health/ready) don't flood the request log at Information level
Log output includes TraceId/SpanId matching the exported spans
deploy/.env.example documents the new OTLP settings with placeholders only (no real values)
Build clean (warnings are errors); existing test suite green
Activity
feat(api): activate the telemetry pipeline — OTLP export, request log…
feat(web): report ErrorBoundary crashes and correlate requests via tr…
Observability: frontend error reporting — ErrorBoundary → API + trace…
feat(obs): emit compact JSON logs to stdout in Production (#405)