Head vs tail sampling is the trade-off between cheap-but-blind and smart-but-heavy trace retention.
Sampling decides which traces to keep so you do not store all of them. Head sampling decides at the start of a trace (cheap, random, but may drop rare errors); tail sampling decides after the trace completes (can keep slow or errored traces, but must buffer them).
With head sampling the keep-or-drop decision is made when the trace begins, before you know how it turns out, usually as a random percentage. It is cheap and simple and needs no buffering, but because it is blind to the outcome, it will sometimes drop exactly the slow or failed traces you most wanted.
Tail sampling waits until the trace is complete, then decides based on what happened, keep it if it was slow, errored, or otherwise interesting. This keeps the valuable traces at a fraction of the volume, but it requires buffering complete traces in the Collector and more resources to do so. Many teams combine a low head-sampling rate with tail sampling for errors and latency.
TelemetryOps supports sampling strategies that keep the traces that matter, so Sentinel AI investigates on the interesting traces rather than a blind random sample.
Neither universally: head sampling is cheaper but blind to outcomes; tail sampling keeps interesting traces but needs buffering. Many teams combine them.
Usually in the OpenTelemetry Collector, which buffers complete traces and applies policies to keep errored or slow ones.
Ops Singularity turns open telemetry into autonomous, governed resolution. See it on your own stack.