Blog
OpenTelemetry Does Not Replace a Developer Error Inbox
Traces show a request you received. They do not show the CLI that exited on a laptop before a session existed, or what the developer was trying to do. Keep both, and do not pretend one is the other.
2026-08-06 · 7 min read · AethelLayer
A span needs a request
OpenTelemetry is how you see latency, status, and dependencies for calls that reached a process you instrumented. A developer who failed npm install, or whose CLI exited before login, produced no span.
That gap is the silent part of an SDK evaluation. The dashboard of traces stays healthy because the people who failed never became traffic.
Traces do not carry intent
A 401 span does not say whether they were on staging, following the sample, or holding a token from the wrong workspace. One sentence at the terminal does.
Put the stable error code on the span and on the probe so a reviewer can jump from one to the other. Do not put the sentence into a trace attribute that gets sampled away.
Sampling drops the rare failure
Head-based sampling keeps the happy path. The one evaluator who hit a rare TLS error is the one you needed. Error probes should be separate from the trace sample rate.
Do not attach request bodies to either pipe. The code, the route template, and the redacted stack are enough.
Use each tool for its question
Use traces to see why a route is slow. Use the developer inbox to see why someone never came back. A status page answers neither question on its own.
AethelLayer is the second system: it keeps the stack from the CLI or SDK, asks what they were trying to do, and drafts a GitHub issue a human still sends.
Keep reading
Capture the failure before they leave
Capture the failure before they leave. Book early access or talk to sales, then install @aethellayer/sdk when you are onboarded.