OpenTelemetry in Production: When Auto-Instrumentation Stops (MSK, Outbox, Cron)
· 13 min read
We already had distributed logging—enough to grep across services when something broke. What we did not have was a single picture of a request as it crossed HTTP, Kafka, Lambdas, and long-running Node workers on PM2. Tracing was the next pillar; we chose OpenTelemetry so instrumentation stays vendor-neutral while we export spans to Elastic APM today and can change backends later without rewriting apps.
This post follows how we rolled it out: Collector topology, auto-instrumentation on the happy path, then where auto stops and how we fix it (withTraceSpan at entry points, propagation.inject on outbox commit)—not a full CDK or Dockerfile runbook.
