采样

采样是一种限制系统生成的跨度数量的过程。您应该根据具体需求选择适合的采样器,在跟踪开始时做出决策,并允许采样决策传播到其他服务。

可以通过以下方法将采样器设置在跟踪提供程序上,使用WithSampler选项:

provider := trace.NewTracerProvider(
    trace.WithSampler(trace.AlwaysSample()),
)

AlwaysSampleNeverSample是具有自解释性的值。AlwaysSample表示每个跨度都会被采样,而NeverSample表示没有跨度会被采样。在刚开始或开发环境中,使用AlwaysSample

其他采样器包括:

  • TraceIDRatioBased,它根据给定的分数采样一部分跨度。如果设置为0.5,则将采样一半的跨度。
  • ParentBased是一个采样器装饰器,根据跨度的父级行为不同。如果跨度没有父级,则使用装饰的采样器基于跨度的父级做出采样决策。默认情况下,ParentBased对已采样的父级跨度进行采样,并且不对未采样的父级跨度进行采样。

默认情况下,跟踪提供程序使用具有AlwaysSample采样器的ParentBased采样器。

在生产环境中,考虑使用具有TraceIDRatioBased采样器的ParentBased采样器。

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