3.13. Probabilistic Sampling Processor
如果您处理大量遥测数据,并希望通过降低处理的数据量来降低成本,您可以使用 Probabilistic Sampling Processor 作为 Tail Sampling Processor 的替代选择。
重要
Probabilistic Sampling Processor 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
处理器在无状态和每个请求中抽样指定百分比的 trace 范围或日志记录。
处理器将有关已用的有效抽样概率的信息添加到遥测数据中:
-
在 trace span 中,处理器在 W3C Trace Context
tracestate字段中对阈值和可选的随机性信息进行编码。 - 在日志记录中,处理器将阈值和随机信息编码为属性。
以下是用于抽样追踪的 Probabilistic Sampling Processor 的 OpenTelemetryCollector 自定义资源配置示例:
- 1
- 对于追踪管道,随机性的来源是 span 跟踪 ID 的散列值。
- 2
- 必需。接受 32 位浮点百分比值,在其中对 span 进行抽样。
- 3
- 可选。接受抽样逻辑模式支持的字符串值:默认的
hash_seed、proportional,或equalizing。hash_seed模式将 Fowler-Noll-Vo (FNV)哈希功能应用到 trace ID,并将散列值用于抽样百分比值。您还可以使用hash_seed模式,以及 trace ID 以外的遥测单元。proportional模式对总范围数量有严格的、基于概率的比例进行抽样,并基于 OpenTelemetry 和 World Wide Web Consortium 规格。equalizing模式可用于将抽样概率降低到整个管道中的最小值,或者在 Collector 部署中应用统一的抽样可能性,其中 client SDK 具有混合抽样配置。 - 4
- 可选。接受 32 位未签名的整数,该整数用于计算哈希算法。如果没有配置此字段,则默认的 seed 值为
0。如果使用多个 Collector 实例层,您必须将同一层的所有收集器配置为相同的 seed 值。 - 5
- 可选。决定用于编码抽样阈值的十六进制数。接受整数值。支持的值
1-14。如果阈值4包含超过 16 个重要位(使用 56 位proportional模式)时,默认值 4 会导致对阈值进行舍入。如果您选择proportional模式,请为前面的 samplers 应用保留精度的目的使用更大的值。 - 6
- 可选。拒绝 span,带有抽样错误。接受一个布尔值。默认值为
true。
以下是用于抽样日志记录的 Probabilistic Sampling Processor 的 OpenTelemetryCollector 自定义资源配置示例:
- 1
- 必需。接受 32 位浮点百分比值,在其中对 span 进行抽样。
- 2
- 可选。接受抽样逻辑模式支持的字符串值:默认的
hash_seed、equalizing, 或proportional。hash_seed模式将 Fowler-Noll-Vo (FNV)哈希功能应用到 trace ID 或指定的日志记录属性,然后根据抽样百分比值来权衡散列值。您也可以将hash_seed模式与遥测 ID 的其他单元一起使用,例如,使用service.instance.id资源属性从 pod 中收集日志记录。equalizing模式可用于将抽样概率降低到整个管道中的最小值,或者在 Collector 部署中应用统一的抽样可能性,其中 client SDK 具有混合抽样配置。proportional模式对总范围数量有严格的、基于概率的比例进行抽样,并基于 OpenTelemetry 和 World Wide Web Consortium 规格。 - 3
- 可选。接受 32 位未签名的整数,该整数用于计算哈希算法。如果没有配置此字段,则默认的 seed 值为
0。如果使用多个 Collector 实例层,您必须将同一层的所有收集器配置为相同的 seed 值。 - 4
- 可选。决定用于编码抽样阈值的十六进制数。接受整数值。支持的值
1-14。如果阈值4包含超过 16 个重要位(使用 56 位proportional模式)时,默认值 4 会导致对阈值进行舍入。如果您选择proportional模式,请为前面的 samplers 应用保留精度的目的使用更大的值。 - 5
- 可选。定义
from_attribute中查找日志记录属性的位置。日志记录属性用作随机性的来源。接受默认的traceID值或record值。 - 6
- 可选。用于计算抽样哈希的日志记录属性的名称,如唯一的日志记录 ID。接受字符串值。默认值为
""。只有在需要在缺少 trace ID 或 trace ID 抽样被禁用或将attribute_source字段设置为record值时,才需要指定日志记录属性作为随机性时才使用这个选项。 - 7
- 可选。拒绝 span,带有抽样错误。接受一个布尔值。默认值为
true。