Skip to main content

Description

Performs sampling of traces per a given rate using the Trace ID as the unique identifier. If a trace is rate selected, all spans of the trace are output.
This is an experimental feature that is still in development. For access to this feature, reach out to your Customer Support Manager or support@mezmo.com.

Use

Two well-known optimization techniques for traces are Deterministic Sampling (Head sampling) and more advanced Tail-based sampling. While head-based sampling will treat all traces equally and sample randomly, Tail-based sampling enables you to sample at different rates for traces you consider to have different levels of importance, based on attributes that traces contain, for example prioritizing traces with errors, latency, or traces that exceed certain performance thresholds. This is implemented in this Processor through conditional statements to define the trace.
This Processor supports sampling of OTel traces only.

Configuration

By default, the Trace ID and Parent Span ID fields point to .record.traceId and .record.parentSpanId. These paths match the structure produced by the combined OpenTelemetry Source, which nests traceId and parentSpanId under a .record property, so the Processor works with that Source without extra setup. If your traces store these values elsewhere, set each field to the path where the value lives.

Examples

Examples of OTEL traces that can be sampled using the Processor.

The head of a trace indicated by a null parent_id field