Grafana Cloud

Policy types

Here are the available policy types and their definitions. For more information on each of the policy types, refer to the Components documentation.

Policy typeDefinition
always_sampleSamples every trace that it encounters. It’s useful for debugging or when you need to capture all data.
probabilisticSamples a certain percentage of traces randomly. You can specify the sampling rate.
latencySamples traces based on their duration. You can set a threshold, and any trace that exceeds that threshold is sampled.
boolean_attributeSamples based on boolean attributes.
status_codeSamples traces based on their status code (for example, errors, success). This is very useful for capturing traces that contain errors.
string_attributeSamples 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_attributeSamples traces based on numeric attribute values. You can specify a key, a minimum value, and a maximum value to define the range.
trace_flagsSamples based on a span having the sampling trace flag set.
trace_stateSamples based on the values of the TraceState.
rate_limitingSamples based on the rate of spans per second.
span_countSamples based on the number of spans within a trace.
ottl_conditionSamples based on OpenTelemetry Transformation Language (OTTL) conditions. This allows very complex and specific filtering.
andAllows you to combine multiple policies using a logical “AND” operation.
compositeAllows for a combination of samplers, with ordering, and rate allocation per sampler. This creates very flexible sampling strategies.
dropAllows 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.

FieldTypeDescription
keystringThe span attribute key to evaluate.
min_valuenumberThe minimum value of the range (inclusive).
max_valuenumberThe maximum value of the range (inclusive).

Example

JSON
{
  "key": "http.response.content_length",
  "min_value": 1000000,
  "max_value": 10000000
}

This policy samples traces where the http.response.content_length attribute is between 1 MB and 10 MB.

Regex matching for string attributes

When using regular expressions (regex) in string attributes, you must explicitly enable regex matching in the configuration.

Set enabled_regex_matching to true for the corresponding attribute block.

Without this option, regex patterns are treated as plain text, and invalid regex syntax may cause errors during evaluation.

Example

{
  "key": "foo",
  "values": [
    "normal-value",
    "regex-value.*"
  ],
  "enabled_regex_matching": true
}

Note

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.