我正在使用 opentelemetry 来检测 nest js 应用程序。假设要发出的请求数量很大。那么我们如何指定要收集的跟踪数量。
问问题
233 次
1 回答
3
采样是一种通过减少收集并发送到后端的跟踪样本数量来控制 OpenTelemetry 引入的噪声和开销的机制。
你需要TraceIdRatioBasedSampler
这个。在创建时,TracerProvider
您可以为其指定采样器。可用的采样器列表是:
AlwaysOnSampler
AlwaysOffSampler
TraceIdRatioBasedSampler
ParentBasedAlwaysOnSampler
ParentBasedAlwatsOffSampler
ParentBasedTraceIdRatioBasedSampler
你可以在这里阅读更多关于它们的信息。例如,如果您想收集 100 条轨迹中的 1 条,则必须执行类似的操作。
const samplingRate = 1/100;
const { NodeTracerProvider } = require("@opentelemetry/node");
const { TraceIdRatioBasedSampler } = require("@opentelemetry/core");
const tracerProvider = new NodeTracerProvider({
sampler: new TraceIdRatioBasedSampler(samplingRate)
});
PS:您还可以通过扩展Sampler
和实现自己的shouldSample
.
于 2020-12-21T07:13:32.833 回答