Skip to content
About
Main content

What observability forbids

What can never be observed?

A closing request from Omar

Omar asks Nadia for one page: "What can we never do, what do we do instead, and what does each choice cost? I need to justify the budget." This article is that page.

What the layer forbids

  1. You cannot observe absence without a prior expectation. Every missing-data detector is a scheduled comparison against a declaration that can itself go stale.
  2. You cannot reconstruct causality from independent observations. It must be propagated in-band, and one gap severs it.
  3. You cannot recompose percentiles. Any architecture that pre-aggregates them has destroyed the number.
  4. You cannot carry unbounded cardinality in an aggregate signal without paying the full product.
  5. You cannot detect faster than the emission interval plus the collection delay. This sets a floor on that is independent of how good your detectors are. (If metrics are scraped every 60 s and take 30 s to arrive, you cannot know in less than ~90 s.)
  6. You cannot make a shared-fate observer reliable.
  7. You cannot have full fidelity and negligible overhead. Full fidelity is a second copy of the workload.

The escapes, and what each costs

Forbidden thingEscapePrice
Full-fidelity emission (head/), aggregation, downsampling tiersRare events disappear; tail sampling needs buffering and cross-collector coordination
Unbounded in metricsMove identity to logs/traces; as the join keyHigher per-event cost; only sampled identity survives
Recomposing Emit bucketed , merge bucketsResolution fixed at write; unanswerable questions later
Causality without propagationTrace context in-bandEvery hop must be instrumented; coverage is all-or-nothing
Observing absenceCanaries, heartbeats, Contamination downstream; coverage limited to the 's path
Detection speed vs. false alarmsMulti-window burn-rate alertingExplicit, quantified budget consumed before firing
Alert volume vs. fixed attentionSymptom-based alerting, dependency grouping, ownership routingDepends on and ownership metadata being correct
Irreversible data deploysWAP, blue-green, shadow diff2× storage or 2× compute; diffs must handle non-determinism
Shared-fate observerExternalize the alerting path onlyTwo systems, two operational burdens, split context during incidents
Attribution on shared resourcesTag-and-join, or isolation per tenant (attribution)The allocation rule is a choice that creates incentives; isolation gives up pooling efficiency

Two laws argued only here

Law B. . Three separable terms with very different marginal costs. Detection is usually the cheapest to shrink and the most neglected. Decision time is what attack. Repair time is what blue-green and rollback attack. Optimizing repair while detection takes six hours is spending in the wrong term.

Law C. Every measurement that becomes a target stops measuring. This is and the first truly organizational law here. Uptime targets produce redefinitions of "down". Alert-count targets produce suppression rather than fixes. produces cost pushed onto unattributed shared infrastructure. produce jobs that publish empty on time. The mechanism is always the same: the metric is a proxy, and optimizing a proxy is cheaper than optimizing the real thing.

Law B is the one to carry forward hardest. It is the only frame that lets you argue about observability spending quantitatively: it asks what a measurement is actually worth.