The Question You Didn't Instrument
The frustrating truth about debugging a live system is that you can only ask it questions you prepared for. When something goes wrong, you go to the dashboards and the logs and the traces, and what you find is bounded entirely by what someone chose to record before the incident started. If the number you need was never emitted, it doesn’t exist, and no amount of urgency conjures it into being. You can add the instrumentation now, but it only starts answering from now — the window you actually care about, the one where the problem was happening, is gone. Production doesn’t remember what you didn’t ask it to.
This is what makes observability different from the testing that comes before it. A test failure hands you a reproducible case you can poke at until it confesses. A production anomaly hands you whatever telemetry happened to be running, and then it’s over. The skill isn’t reacting fast once the alert fires — it’s having anticipated, weeks earlier and with no specific incident in mind, that this particular dimension would one day matter. The most valuable line of instrumentation in any system is the one nobody needed the day it was written and everybody needed the day it wasn’t.
The hard part is that you’re guessing about the future. You can’t instrument everything — cardinality explodes, cost grows, and a dashboard with a thousand panels is as useless as one with none. So there’s real judgment in deciding which questions are worth paying to be able to answer. A decent heuristic is to instrument the boundaries and the assumptions: the points where your system hands off to another, the places where you believe something is true and would be badly surprised to be wrong. Those are where incidents concentrate, and they’re where a single well-chosen metric pays for a hundred you never looked at.
There’s a particular failure mode worth naming, which is confusing the absence of a signal with the absence of a problem. A flat graph can mean everything is fine, or it can mean the thing that should be emitting stopped emitting and you’re staring at a line that hasn’t updated in an hour. Silence is ambiguous in a way that a real value never is. The systems that hurt you most are the ones failing in a dimension you have no visibility into at all — where the dashboards stay green not because things are healthy but because nothing green or red was ever wired up to watch them.
So the discipline is to treat instrumentation as something you invest in before you can justify it, which is uncomfortable, because it means spending effort on questions no one is asking yet. The payoff is asymmetric and lumpy: most of it is wasted, and then one night the single metric you added on a hunch six months ago is the reason an incident is twenty minutes instead of six hours. You can’t predict which one it’ll be. The best you can do is keep asking, whenever you build something, “if this goes wrong at 3 AM, what will I wish I could see?” — and then wire that up while it’s still cheap and calm.