Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
otelcol.processor.probabilistic_sampler
otelcol.processor.probabilistic_sampler
accepts logs and traces data from other otelcol components and applies probabilistic sampling based on configuration options.
Note
otelcol.processor.probabilistic_sampler
is a wrapper over the upstream OpenTelemetry Collector Contribprobabilistic_sampler
processor. If necessary, bug reports or feature requests will be redirected to the upstream repository.
You can specify multiple otelcol.processor.probabilistic_sampler
components by giving them different labels.
Usage
otelcol.processor.probabilistic_sampler "LABEL" {
output {
logs = [...]
traces = [...]
}
}
Arguments
otelcol.processor.probabilistic_sampler
supports the following arguments:
Name | Type | Description | Default | Required |
---|---|---|---|---|
hash_seed | uint32 | An integer used to compute the hash algorithm. | 0 | no |
sampling_percentage | float32 | Percentage of traces or logs sampled. | 0 | no |
fail_closed | bool | Whether to reject items with sampling-related errors. | true | no |
attribute_source | string | Defines where to look for the attribute in from_attribute . | "traceID" | no |
from_attribute | string | The name of a log record attribute used for sampling purposes. | "" | no |
sampling_priority | string | The name of a log record attribute used to set a different sampling priority from the sampling_percentage setting. | "" | no |
hash_seed
determines an integer to compute the hash algorithm. This argument could be used for both traces and logs.
When used for logs, it computes the hash of a log record.
For hashing to work, all collectors for a given tier, for example, behind the same load balancer, must have the same hash_seed
.
It is also possible to leverage a different hash_seed
at different collector tiers to support additional sampling requirements.
sampling_percentage
determines the percentage at which traces or logs are sampled. All traces or logs are sampled if you set this argument to a value greater than or equal to 100.
attribute_source
(logs only) determines where to look for the attribute in from_attribute
. The allowed values are traceID
or record
.
from_attribute
(logs only) determines the name of a log record attribute used for sampling purposes, such as a unique log record ID. The value of the attribute is only used if the trace ID is absent or if attribute_source
is set to record
.
sampling_priority
(logs only) determines the name of a log record attribute used to set a different sampling priority from the sampling_percentage
setting. 0 means to never sample the log record, and greater than or equal to 100 means to always sample the log record.
The probabilistic_sampler
supports two types of sampling for traces:
sampling.priority
semantic convention as defined by OpenTracing.- Trace ID hashing.
The sampling.priority
semantic convention takes priority over trace ID hashing.
Trace ID hashing samples based on hash values determined by trace IDs.
The probabilistic_sampler
supports sampling logs according to their trace ID, or by a specific log record attribute.
Blocks
The following blocks are supported inside the definition of
otelcol.processor.probabilistic_sampler
:
Hierarchy | Block | Description | Required |
---|---|---|---|
debug_metrics | debug_metrics | Configures the metrics that this component generates to monitor its state. | no |
debug_metrics block
The debug_metrics
block configures the metrics that this component generates to monitor its state.
The following arguments are supported:
Name | Type | Description | Default | Required |
---|---|---|---|---|
disable_high_cardinality_metrics | boolean | Whether to disable certain high cardinality metrics. | true | no |
level | string | Controls the level of detail for metrics emitted by the wrapped collector. | "detailed" | no |
disable_high_cardinality_metrics
is the Grafana Alloy equivalent to the telemetry.disableHighCardinalityMetrics
feature gate in the OpenTelemetry Collector.
It removes attributes that could cause high cardinality metrics.
For example, attributes with IP addresses and port numbers in metrics about HTTP and gRPC connections are removed.
Note
If configured,disable_high_cardinality_metrics
only applies tootelcol.exporter.*
andotelcol.receiver.*
components.
level
is the Alloy equivalent to the telemetry.metrics.level
feature gate in the OpenTelemetry Collector.
Possible values are "none"
, "basic"
, "normal"
and "detailed"
.
Exported fields
The following fields are exported and can be referenced by other components:
Name | Type | Description |
---|---|---|
input | otelcol.Consumer | A value that other components can use to send telemetry data to. |
input
accepts otelcol.Consumer
OTLP-formatted data for any telemetry signal of these types:
- logs
- traces
Component health
otelcol.processor.probabilistic_sampler
is only reported as unhealthy if given an invalid
configuration.
Debug information
otelcol.processor.probabilistic_sampler
does not expose any component-specific debug
information.
Examples
Basic usage
otelcol.processor.probabilistic_sampler "default" {
hash_seed = 123
sampling_percentage = 15.3
output {
logs = [otelcol.exporter.otlp.default.input]
}
}
Sample 15% of the logs
otelcol.processor.probabilistic_sampler "default" {
sampling_percentage = 15
output {
logs = [otelcol.exporter.otlp.default.input]
}
}
Sample logs according to their “logID” attribute
otelcol.processor.probabilistic_sampler "default" {
sampling_percentage = 15
attribute_source = "record"
from_attribute = "logID"
output {
logs = [otelcol.exporter.otlp.default.input]
}
}
Sample logs according to a “priority” attribute
otelcol.processor.probabilistic_sampler "default" {
sampling_percentage = 15
sampling_priority = "priority"
output {
logs = [otelcol.exporter.otlp.default.input]
}
}
Compatible components
otelcol.processor.probabilistic_sampler
can accept arguments from the following components:
- Components that export OpenTelemetry
otelcol.Consumer
otelcol.processor.probabilistic_sampler
has exports that can be consumed by the following components:
- Components that consume OpenTelemetry
otelcol.Consumer
Note
Connecting some components may not be sensible or components may require further configuration to make the connection work correctly. Refer to the linked documentation for more details.