声明式配置

声明式配置使用 YAML 文件而不是环境变量。

这种方法在以下情况下很有用

  • 您需要设置许多配置选项。
  • 您想使用环境变量不可用的配置选项。

支持的语言

以下 OpenTelemetry SDK 支持声明式配置

有关详细信息,请参阅 合规性矩阵

入门

  1. 将以下配置文件保存为 otel-config.yaml
  2. 设置环境变量 OTEL_EXPERIMENTAL_CONFIG_FILE=/path/to/otel-config.yaml

推荐的配置文件

file_format: '1.0-rc.1'

resource:
  attributes_list: ${OTEL_RESOURCE_ATTRIBUTES}
  detection/development:
    detectors:
      - service: # will add "service.instance.id" and "service.name" from OTEL_SERVICE_NAME

propagator:
  composite:
    - tracecontext:
    - baggage:

tracer_provider:
  processors:
    - batch:
        exporter:
          otlp_http:
            endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-https://:4318}/v1/traces

meter_provider:
  readers:
    - periodic:
        exporter:
          otlp_http:
            endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-https://:4318}/v1/metrics

logger_provider:
  processors:
    - batch:
        exporter:
          otlp_http:
            endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-https://:4318}/v1/logs

环境变量

  • 声明式配置支持读取环境变量的语法。
  • 除非您在配置文件中显式添加,否则所有环境变量都将被忽略

例如,如果您设置了

OTEL_RESOURCE_ATTRIBUTES=service.version=1.1,deployment.environment.name=staging

以下配置将创建一个资源,其中 service.version=1.1deployment.environment.name=staging

resource:
  attributes_list: ${OTEL_RESOURCE_ATTRIBUTES}

迁移配置

如果您的现有配置依赖于环境变量,您可以将 迁移配置 作为起点,迁移到声明式配置。

可用配置选项

完整的配置选项列表可在 kitchen sink 示例 中找到。

每个信号的终结点

如果您为 traces、metrics 和 logs 设置了不同的终结点,在使用 otlp_http 时使用以下配置

OTLP HTTP Exporter终结点值
追踪${OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:-https://:4318/v1/traces}
指标${OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:-https://:4318/v1/metrics}
日志${OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:-https://:4318/v1/logs}

gRPC Exporter

除了 otlp_http,您还可以使用 otlp_grpc 通过 gRPC 进行导出

otlp_grpc:
  endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-https://:4317}

资源属性

设置资源属性的推荐方法是通过环境变量,因为这与设置环境变量的工具(如 OpenTelemetry Operator for Kubernetes)配合良好。

但是,您也可以直接在配置文件中设置资源属性

resource:
  attributes:
    - name: service.name
      value: shopping_cart
    - name: deployment.environment.name
      value: staging

最后修改时间:2025 年 11 月 17 日: Declarative config fixes (#8390) (88022ab4)