Tail-based sampling defers the decision to keep or discard a trace until the request is complete, allowing sampling to consider the whole trace. section 2.5.3 section 8.3.1
This preserves traces that reveal errors, anomalies, or other valuable downstream behavior that head-based sampling might miss. The trade-off is operational: completion can be difficult to detect when services time out, so agents must retain more state and may consume additional network, storage, and processing resources. section 2.5.3 section 8.3.1
A request with a straggling service
A distributed request passes through several services. Sampling waits for completion so it can retain the trace if a downstream service fails, but must decide how long to wait when another service times out. section 8.3.1
Table 2.3 Overview of the costs of traces (view table figure)
| Lots of commercial offerings and some OSS (e.g., Tempo and Jaeger) |
Use the trace-cost overview to compare sampling overhead with instrumentation, agent, and destination costs. section 2.5.3
