菜单
开源

tracing 块

tracing 是一个可选的配置块,用于自定义 Alloy 如何生成分布式追踪。tracing 不需要标签,每个配置文件中只能出现一次。

示例

alloy
tracing {
  sampling_fraction = 0.1

  write_to = [otelcol.exporter.otlp.tempo.input]
}

otelcol.exporter.otlp "tempo" {
  // Send traces to a locally running Tempo without TLS enabled.
  client {
    endpoint = sys.env("TEMPO_OTLP_ENDPOINT")

    tls {
      insecure = true
    }
  }
}

参数

支持以下参数

名称类型描述默认值必填
sampling_fraction数字保留的分布式追踪比例。0.1
write_to列表(otelcol.Consumer)来自 otelcol 组件的输入,用于发送分布式追踪。[]

write_to 参数控制将分布式追踪发送到哪些组件进行处理。数组中的元素可以是任何接受分布式追踪的 otelcol 组件,包括处理器和导出器。当 write_to 设置为空数组 [] 时,所有分布式追踪都将被丢弃。

注意

tracing 块被评估之前生成的任何分布式追踪,例如在进程生命周期早期启动时,都将被丢弃。

sampling_fraction 参数控制应将生成的分布式追踪的百分比发送到 write_to 指定的消费者。当设置为 1 或更大时,保留 100% 的分布式追踪。当设置为 0 或更小时,保留 0% 的分布式追踪。

tracing 定义中支持以下块

层级描述必填
samplersampler在基本采样比例之上定义自定义采样。
sampler > jaeger_remotejaeger_remote通过 Jaeger 远程采样器检索采样信息。

> 符号表示更深的嵌套层级。例如,sampler > jaeger_remote 指的是定义在 sampler 块内部的 jaeger_remote 块。

sampler 块

sampler 块包含要使用的自定义采样器的定义。sampler 块不支持任何参数,完全通过内部块进行控制。

sampler 块中定义多个要使用的采样器是无效的。

jaeger_remote 块

jaeger_remote 块配置通过公开 Jaeger 采样策略的远程服务器检索采样信息。

名称类型描述默认值必填
urlstring从中检索采样策略的 URL。"http://127.0.0.1:5778/sampling"
max_operations数字限制可以拥有自定义采样的操作数量。256
refresh_interval持续时间轮询 URL 获取新采样策略的频率。"1m"

远程采样策略从 url 参数指定的 URL 检索,并按计时器轮询更新。轮询频率由 refresh_interval 参数控制。

对远程采样策略服务器的请求是通过对配置的 url 参数发出 HTTP GET 请求来完成的。URL 中始终会添加 service=alloy 查询参数,以便服务器能够响应特定于服务的策略。HTTP 响应体将被读取为 JSON,其模式与 Jaeger strategies.json 文件中指定的模式匹配。

max_operations 限制了可以拥有自定义采样规则的自定义跨度名称的数量。如果远程采样策略超出限制,采样决策将回退到默认采样器。