菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow otelcolbreadcrumb arrow otelcol.processor.probabilistic_sampler
开源

otelcol.processor.probabilistic_sampler

otelcol.processor.probabilistic_sampler 接受来自其他 otelcol 组件的日志和追踪数据,并根据配置选项应用概率采样。

概率采样器处理器支持跨度和日志记录的多种采样模式。
采样是基于每个请求执行的,无状态地考虑单个项目。对于整个追踪采样,请参阅 otelcol.processor.tail_sampling

对于追踪跨度,此采样器支持基于配置的采样百分比应用于 TraceID 的概率采样。此外,采样器识别 sampling.priority 注释,该注释可以强制采样器应用 0% 或 100% 采样。

对于日志记录,可以将此采样器配置为使用嵌入的 TraceID 并遵循与应用于跨度相同的逻辑。
当未定义 TraceID 时,可以将采样器配置为对选定的日志记录属性应用哈希。
此采样器还支持采样优先级。

注意

otelcol.processor.probabilistic_sampler 是对上游 OpenTelemetry Collector Contrib probabilistic_sampler 处理器的封装。如有必要,错误报告或功能请求将被重定向到上游存储库。

您可以通过为多个 otelcol.processor.probabilistic_sampler 组件提供不同的标签来指定它们。

用法

alloy
otelcol.processor.probabilistic_sampler "LABEL" {
  output {
    logs    = [...]
    traces  = [...]
  }
}

参数

otelcol.processor.probabilistic_sampler 支持以下参数

名称类型描述默认值必需
modestring采样模式。"proportional"
hash_seeduint32用于计算哈希算法的整数。0
sampling_percentagefloat32采样的追踪或日志的百分比。0
sampling_precisionint用于编码采样阈值的十六进制数字位数。4
fail_closedbool是否拒绝具有采样相关错误的项。true
attribute_sourcestring定义在 from_attribute 中查找属性的位置。"traceID"
from_attributestring用于采样的日志记录属性的名称。""
sampling_prioritystring用于设置与 sampling_percentage 设置不同的采样优先级的日志记录属性的名称。""

您可以将 mode 设置为 "proportional""equalizing""hash_seed"。默认值为 "proportional",除非配置了 hash_seed 或将 attribute_source 设置为 record。有关模式的更多信息,请参阅上游 Collector 的 模式选择文档 部分。

hash_seed 确定用于计算哈希算法的整数。此参数可用于追踪和日志。当用于日志时,它计算日志记录的哈希值。为了使哈希正常工作,给定层(例如,在同一负载均衡器后面)的所有收集器都必须具有相同的 hash_seed。也可以在不同的收集器层利用不同的 hash_seed 以支持其他采样要求。

sampling_percentage 确定采样追踪或日志的百分比。如果将此参数设置为大于或等于 100 的值,则将采样所有追踪或日志。

attribute_source(仅限日志)确定在 from_attribute 中查找属性的位置。允许的值为 traceIDrecord

from_attribute(仅限日志)确定用于采样目的的日志记录属性的名称,例如唯一的日志记录 ID。仅当缺少追踪 ID 或将 attribute_source 设置为 record 时,才使用该属性的值。

sampling_priority(仅限日志)确定用于设置与 sampling_percentage 设置不同的采样优先级的日志记录属性的名称。0 表示从不采样日志记录,大于或等于 100 表示始终采样日志记录。

probabilistic_sampler 支持两种类型的追踪采样

  1. sampling.priority 语义约定,由 OpenTracing 定义。
  2. Trace ID 哈希。

sampling.priority 语义约定优先于 Trace ID 哈希。Trace ID 哈希根据 Trace ID 确定的哈希值进行采样。

probabilistic_sampler 支持根据日志的 Trace ID 或特定的日志记录属性对日志进行采样。

sampling_precision 必须是介于 1 和 14(含)之间的值。

otelcol.processor.probabilistic_sampler 的定义中支持以下块

层级结构描述必需
debug_metricsdebug_metrics配置此组件生成的用于监控其状态的指标。

debug_metrics 块

debug_metrics 块配置此组件生成的用于监控其状态的指标。

支持以下参数

名称类型描述默认值必需
disable_high_cardinality_metricsboolean是否禁用某些高基数指标。true
levelstring控制包装的收集器发出的指标的详细程度。"detailed"

disable_high_cardinality_metrics 是 Grafana Alloy 中 OpenTelemetry Collector 中 telemetry.disableHighCardinalityMetrics 功能门的等效项。它删除可能导致高基数指标的属性。例如,删除了有关 HTTP 和 gRPC 连接的指标中包含 IP 地址和端口号的属性。

注意

如果配置了 disable_high_cardinality_metrics,则它仅适用于 otelcol.exporter.*otelcol.receiver.* 组件。

level 是 Alloy 中 OpenTelemetry Collector 中 telemetry.metrics.level 功能门的等效项。可能的值为 "none""basic""normal""detailed"

导出的字段

导出以下字段,并且可以被其他组件引用

名称类型描述
inputotelcol.Consumer其他组件可用于向其发送遥测数据的值。

input 接受 otelcol.Consumer OTLP 格式的数据,用于以下类型的任何遥测信号

  • logs
  • traces

组件运行状况

仅当 otelcol.processor.probabilistic_sampler 配置无效时,才报告为不健康。

调试信息

otelcol.processor.probabilistic_sampler 不公开任何组件特定的调试信息。

示例

基本用法

alloy
otelcol.processor.probabilistic_sampler "default" {
  hash_seed           = 123
  sampling_percentage = 15.3

  output {
    logs = [otelcol.exporter.otlp.default.input]
  }
}

采样 15% 的日志

alloy
otelcol.processor.probabilistic_sampler "default" {
  sampling_percentage = 15

  output {
    logs = [otelcol.exporter.otlp.default.input]
  }
}

根据 “logID” 属性采样日志

alloy
otelcol.processor.probabilistic_sampler "default" {
  sampling_percentage = 15
  attribute_source    = "record"
  from_attribute      = "logID"

  output {
    logs = [otelcol.exporter.otlp.default.input]
  }
}

根据 “priority” 属性采样日志

alloy
otelcol.processor.probabilistic_sampler "default" {
  sampling_percentage = 15
  sampling_priority   = "priority"

  output {
    logs = [otelcol.exporter.otlp.default.input]
  }
}

兼容组件

otelcol.processor.probabilistic_sampler 可以接受来自以下组件的参数

otelcol.processor.probabilistic_sampler 具有可以被以下组件使用的导出

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。