采样
减少生成的遥测数据量
采样是一种通过限制系统生成的跟踪数据量的过程。JavaScript SDK提供了几种头采样器。
默认行为
默认情况下,所有跨度都会被采样,因此会对100%的跟踪进行采样。如果您不需要管理数据量,请不要设置采样器。
TraceIdRatioBasedSampler
在进行采样时,最常用的头采样器是TraceIdRatioBasedSampler。它以您传递的参数对跟踪进行确定性采样。
环境变量
您可以使用环境变量配置TraceIdRatioBasedSampler:
export OTEL_TRACES_SAMPLER="traceidratio"
export OTEL_TRACES_SAMPLER_ARG="0.1"
这将告诉SDK仅对10%的跟踪进行采样。
Node.js
您还可以在代码中配置TraceIdRatioBasedSampler。以下是Node.js的示例:
import { TraceIdRatioBasedSampler } from '@opentelemetry/sdk-trace-node';
const samplePercentage = 0.1;
const sdk = new NodeSDK({
// 其他SDK配置参数在此处添加
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
const { TraceIdRatioBasedSampler } = require('@opentelemetry/sdk-trace-node');
const samplePercentage = 0.1;
const sdk = new NodeSDK({
// 其他SDK配置参数在此处添加
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
浏览器
您还可以在代码中配置TraceIdRatioBasedSampler。以下是浏览器应用程序的示例:
import {
WebTracerProvider,
TraceIdRatioBasedSampler,
} from '@opentelemetry/sdk-trace-web';
const samplePercentage = 0.1;
const provider = new WebTracerProvider({
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
const {
WebTracerProvider,
TraceIdRatioBasedSampler,
} = require('@opentelemetry/sdk-trace-web');
const samplePercentage = 0.1;
const provider = new WebTracerProvider({
sampler: new TraceIdRatioBasedSampler(samplePercentage),
});
最后修改 December 10, 2023: translate (a4350d6e)