Here are the available policy types and their definitions. For more information on each of the policy types, refer to the Components documentation.
Policy type
Definition
always_sample
Samples every trace that it encounters. It’s useful for debugging or when you need to capture all data.
probabilistic
Samples a certain percentage of traces randomly. You can specify the sampling rate.
latency
Samples traces based on their duration. You can set a threshold, and any trace that exceeds that threshold is sampled.
boolean_attribute
Samples based on boolean attributes.
status_code
Samples traces based on their status code (for example, errors, success). This is very useful for capturing traces that contain errors.
string_attribute
Samples traces based on the values of string attributes.
Note
When using regular expressions (regex) in string attributes, you must explicitly enable regex matching in the configuration.
numeric_attribute
Samples traces based on numeric attribute values. You can specify a key, a minimum value, and a maximum value to define the range.
trace_flags
Samples based on a span having the sampling trace flag set.
trace_state
Samples based on the values of the TraceState.
rate_limiting
Samples based on the rate of spans per second.
span_count
Samples based on the number of spans within a trace.
ottl_condition
Samples based on OpenTelemetry Transformation Language (OTTL) conditions. This allows very complex and specific filtering.
and
Allows you to combine multiple policies using a logical “AND” operation.
composite
Allows for a combination of samplers, with ordering, and rate allocation per sampler. This creates very flexible sampling strategies.
drop
Allows for a combination of specific conditions to discard unwanted traces before any other rules are evaluated. When you create a drop policy, make sure you also have an active sampling policy (like always_sample) otherwise all of your traces will be dropped.
Numeric attribute policy
The numeric_attribute policy samples traces based on the value of a numeric span attribute. You define a key and a range using minimum and maximum values. Any trace with a matching attribute value within that range is sampled.
The enabled_regex_matching option is required only when using regex in string_attribute filters. If this field is omitted, regex patterns are not interpreted, and misconfigured expressions can lead to processor errors.
For additional reference, see the Agent tail_sampling string_attribute documentation.