Skip to main content

OTEL-064: Both probabilistic_sampler and tail_sampling in same pipeline

Severity: warn (advisory)

Rule Details

probabilistic_sampler is a head sampler (decision based on trace ID at ingestion); tail_sampling is a tail sampler (decision based on the whole trace). Running both means the effective sample rate is the product of the two, and the tail sampler can only see the traces that already survived the head sampler — so latency and error policies miss data. Pick one model for the pipeline and stick with it.

This rule fires when a pipeline contains both a probabilistic_sampler and a tail_sampling processor.

Options

This rule has no options.

Examples

Avoid
service:
pipelines:
traces:
receivers: [otlp]
processors:
- memory_limiter
- probabilistic_sampler
- groupbytrace
- tail_sampling
- batch
exporters: [otlp/backend]
Prefer
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, groupbytrace, tail_sampling, batch]
exporters: [otlp/backend]

When Not To Use It

Two-stage sampling pipelines (rare, advanced) where you have measured the combined rate and accepted the trace blind spot. Disable the rule for that pipeline and document the reasoning.

  • OTEL-043 — batch before tail_sampling/groupbytrace
  • OTEL-063tail_sampling without groupbytrace

Version

Available since augur v0.1.0.

Further Reading

Resources