Decide which traces to keep after you have seen the whole request, not before.

Today we are shipping tail-based sampling for traces. It changes the sampling decision from a guess at the start of a request to an informed choice once the request is complete.

Why we built it

Customers kept telling us the same thing: they were paying to store millions of boring traces and still missing the slow one that mattered. Head sampling forces that trade-off because it decides blind. Tail sampling removes it.

What it does

  • Buffers spans by trace id until the request finishes.
  • Keeps every errored and every unusually slow trace, in full.
  • Retains a thin, uniform baseline of healthy traces for context.

How to turn it on

helix trace policy set \
  --keep-errors \
  --keep-slow p99 \
  --baseline 0.01

What to expect

Most teams see trace storage fall by an order of magnitude while their ability to debug incidents goes up, because the traces they kept are the ones worth keeping. Availability begins today on all plans.