Skip to main content

OpenTelemetry 环境变量规范

通用 SDK 配置

名称描述默认值备注
OTEL_SDK_DISABLED禁用所有信号的 SDKfalse如果为 "true",将使用无操作 SDK 实现来处理所有遥测信号。任何其他值或变量的缺失将没有效果,SDK 将保持启用状态。此设置对通过 OTEL_PROPAGATORS 变量配置的传播器没有影响。
OTEL_RESOURCE_ATTRIBUTES用作资源属性的键值对
OTEL_SERVICE_NAME设置 service.name 资源属性的值如果在 OTEL_RESOURCE_ATTRIBUTES 中也提供了 service.name,则 OTEL_SERVICE_NAME 优先。
OTEL_LOG_LEVELSDK 内部日志记录器 使用的日志级别"info"
OTEL_PROPAGATORS以逗号分隔的列表形式使用的传播器"tracecontext,baggage"值必须去重,以便只注册一次 Propagator
OTEL_TRACES_SAMPLER用于跟踪的采样器"parentbased_always_on"参见 采样
OTEL_TRACES_SAMPLER_ARG用作采样器参数的值只有在设置了 OTEL_TRACES_SAMPLER 时,才会使用指定的值。每种采样器类型定义其自己的预期输入(如果有)。无效或无法识别的输入必须被记录,并且必须被忽略,即实现必须表现得好像 OTEL_TRACES_SAMPLER_ARG 未设置。

OTEL_PROPAGATORS 的已知值为:

  • "tracecontext": W3C Trace Context
  • "baggage": W3C Baggage
  • "b3": B3 Single
  • "b3multi": B3 Multi
  • "none": 没有自动配置的传播器。

OTEL_TRACES_SAMPLER 的已知值为:

  • "always_on": AlwaysOnSampler
  • "always_off": AlwaysOffSampler
  • "traceidratio": TraceIdRatioBased
  • "parentbased_always_on": ParentBased(root=AlwaysOnSampler)
  • "parentbased_always_off": ParentBased(root=AlwaysOffSampler)
  • "parentbased_traceidratio": ParentBased(root=TraceIdRatioBased)
  • "parentbased_jaeger_remote": ParentBased(root=JaegerRemoteSampler)

根据 OTEL_TRACES_SAMPLER 的值,OTEL_TRACES_SAMPLER_ARG 可以设置如下:

  • 对于 traceidratioparentbased_traceidratio 采样器:采样概率,范围为 [0..1] 的数字,例如 "0.25"。如果未设置,默认值为 1.0。

批量 Span 处理器

名称描述默认值备注
OTEL_BSP_SCHEDULE_DELAY两次连续导出之间的延迟间隔(以毫秒为单位)5000
OTEL_BSP_EXPORT_TIMEOUT导出数据的最大允许时间(以毫秒为单位)30000
OTEL_BSP_MAX_QUEUE_SIZE最大队列大小2048有效值为正数。
OTEL_BSP_MAX_EXPORT_BATCH_SIZE最大批量大小512必须小于或等于 OTEL_BSP_MAX_QUEUE_SIZE。有效值为正数。

批量 LogRecord 处理器

名称描述默认值备注
OTEL_BLRP_SCHEDULE_DELAY两次连续导出之间的延迟间隔(以毫秒为单位)1000
OTEL_BLRP_EXPORT_TIMEOUT导出数据的最大允许时间(以毫秒为单位)30000
OTEL_BLRP_MAX_QUEUE_SIZE最大队列大小2048有效值为正数。
OTEL_BLRP_MAX_EXPORT_BATCH_SIZE最大批量大小512必须小于或等于 OTEL_BLRP_MAX_QUEUE_SIZE。有效值为正数。

属性限制

实现应仅为 SDK 实现截断机制的属性类型提供环境变量。

名称描述默认值备注
OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT最大允许属性值大小无限制有效值为非负数。
OTEL_ATTRIBUTE_COUNT_LIMIT最大允许属性数量128有效值为非负数。

导出器

导出器选择

我们定义了用于为每个信号设置一个或多个导出器的环境变量。

名称描述默认值
OTEL_TRACES_EXPORTER要使用的跟踪导出器"otlp"
OTEL_METRICS_EXPORTER要使用的指标导出器"otlp"
OTEL_LOGS_EXPORTER要使用的日志导出器"otlp"

实现可以接受逗号分隔的列表以启用设置多个导出器。

OTEL_TRACES_EXPORTER 的已知值为:

  • "otlp": OTLP
  • "console": 标准输出
  • "logging": 标准输出。这是一个为向后兼容而保留的弃用值。新实现不应支持。
  • "none": 没有自动配置的跟踪导出器。

OTEL_METRICS_EXPORTER 的已知值为:

  • "otlp": OTLP
  • "prometheus": Prometheus
  • "console": 标准输出
  • "logging": 标准输出
  • "none": 没有自动配置的指标导出器。

OTEL_LOGS_EXPORTER 的已知值为:

  • "otlp": OTLP
  • "console": 标准输出
  • "logging": 标准输出
  • "none": 没有自动配置的日志导出器。

指标 SDK 配置

Exemplar 示例

名称描述默认值
OTEL_METRICS_EXEMPLAR_FILTER哪些测量可以成为示例的过滤器。"trace_based"

OTEL_METRICS_EXEMPLAR_FILTER 的已知值为:

  • "always_on": 始终开启
  • "always_off": 始终关闭
  • "trace_based": 基于跟踪

定期导出 MetricReader

特定于使用 定期导出 MetricReader 的推送指标导出器(OTLP、stdout、内存中)的环境变量。

名称描述默认值
OTEL_METRIC_EXPORT_INTERVAL两次导出尝试开始之间的时间间隔(以毫秒为单位)。60000
OTEL_METRIC_EXPORT_TIMEOUT导出数据的最大允许时间(以毫秒为单位)。30000

声明式配置

涉及声明式配置的环境变量。

名称描述默认值备注
OTEL_EXPERIMENTAL_CONFIG_FILE用于配置 SDK 的配置文件路径。如果设置,则此文件中的配置优先于所有其他 SDK 配置环境变量。见下文

当设置了 OTEL_EXPERIMENTAL_CONFIG_FILE 时,除配置文件中引用的用于 环境变量替换 的环境变量外,所有其他环境变量必须被忽略。忽略环境变量是必要的,因为在所有情况下没有直观的方法将平面环境变量方案与结构化文件配置方案合并。需要合并多个配置源的用户被鼓励在调用 Create 之前自定义 Parse 返回的配置模型。例如,用户可以在多个文件上调用 Parse 并定义合并生成的配置模型的逻辑,或在配置模型之上覆盖环境变量的值。实现可以提供一种机制来自定义从 OTEL_EXPERIMENTAL_CONFIG_FILE 解析的配置模型。

语言特定环境变量

为了确保项目之间的一致命名,本规范建议语言特定的环境变量使用以下约定:

OTEL_{LANGUAGE}_{FEATURE}