2026-04-18

Trace budgets that keep cost under control

Sampling, cardinality discipline, and choosing the few signals that actually matter.

Observability cost usually explodes because teams collect everything “just in case”. That creates a paradox: you pay more, but incidents get slower because nobody trusts the signal quality. The fix is to decide which journeys you will protect with SLOs and focus traces and logs there.

We treat sampling and cardinality as product decisions: define which dimensions are allowed, and enforce budgets in code and pipelines. If you allow unlimited tenant IDs, request IDs, or free-form labels, your bill will be “unbounded by design”. Make the safe path the default path.

The result is simpler dashboards, faster incident triage, and a bill that doesn’t grow faster than your traffic. It also makes onboarding easier: new engineers learn a small set of trusted signals instead of inheriting a thousand charts nobody owns.

Start with budgets per signal type: traces for critical paths, logs for exceptions, metrics for health. If you can’t name the decision a signal supports, treat it as optional. A good heuristic is “would I look at this at 3am?”—if not, it probably doesn’t need premium retention.

Guardrails matter more than tools: cap high-cardinality dimensions, standardize service names, and enforce sampling at the edge so teams can’t accidentally flood the pipeline. Add code-level helpers so instrumentation is consistent, and document a small taxonomy (what to tag, what not to tag).

Over time, you’ll notice that fewer, higher-quality signals beat a wall of graphs — especially under pressure. When signals are curated and budgeted, you can safely increase fidelity where it matters most, instead of being forced to reduce everything across the board.