采样

减少生成的遥测数据量

采样是一种通过限制系统生成的跟踪数据量的过程。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)