【问题标题】:How can we specify the number of traces in opentelemetry我们如何指定opentelemetry中的跟踪数
【发布时间】:2021-03-02 20:32:43
【问题描述】:

我正在使用 opentelemetry 来检测 nest js 应用程序。假设要发出的请求数量很大。那么我们如何指定要收集的痕迹数量。

【问题讨论】:

    标签: typescript nestjs zipkin distributed-tracing open-telemetry


    【解决方案1】:

    采样是一种通过减少收集并发送到后端的跟踪样本数量来控制 OpenTelemetry 引入的噪声和开销的机制。

    为此,您需要TraceIdRatioBasedSampler。当您创建TracerProvider 时,您可以为其指定采样器。可用的采样器列表是:

    • AlwaysOnSampler
    • AlwaysOffSampler
    • TraceIdRatioBasedSampler
    • ParentBasedAlwaysOnSampler
    • ParentBasedAlwatsOffSampler
    • ParentBasedTraceIdRatioBasedSampler

    您可以阅读更多关于他们的信息here。例如,如果您想收集 100 条轨迹中的 1 条,则必须执行以下操作。

    const samplingRate = 1/100;
    const { NodeTracerProvider } = require("@opentelemetry/node");
    const { TraceIdRatioBasedSampler } = require("@opentelemetry/core");
    
    const tracerProvider = new NodeTracerProvider({
      sampler: new TraceIdRatioBasedSampler(samplingRate)
    });
    

    P.S:您还可以通过扩展 Sampler 并实现自己的 shouldSample 来自定义采样行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      • 2021-06-26
      • 2021-06-05
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2019-03-02
      相关资源
      最近更新 更多