采样

采样是限制系统生成的跟踪数量的过程。Ruby SDK提供了几种头采样器

默认行为

默认情况下,所有跨度(spans)都会被采样,因此,100%的跟踪会被采样。如果您不需要管理数据量,请不要设置采样器。

具体来说,默认采样器是由ParentBasedALWAYS_ON的组合构成,它确保跟踪中的根跨度总是被采样,并且所有子跨度遵循其父跨度的采样标志来进行采样决策。这保证了默认情况下跟踪中的所有跨度都会被采样。

TraceIdRatioBased 采样器

最常用的头采样器是TraceIdRatioBased采样器。它以确定性的方式采样你传入的一部分跟踪。

环境变量

您可以使用环境变量配置TraceIdRatioBased采样器:

export OTEL_TRACES_SAMPLER="traceidratio"
export OTEL_TRACES_SAMPLER_ARG="0.1"

这会告诉SDK仅对10%的跟踪进行采样。

代码配置

虽然可以在代码中配置TraceIdRatioBased采样器,但不建议这样做。这样做需要您手动设置一个具有所有正确配置选项的跟踪器提供程序,与使用OpenTelemetry::SDK.configure相比,这很难做到正确配置。

最后修改 December 10, 2023: translate (a4350d6e)