配置
OpenTelemetry SDK 组件具有高度的可配置性。本规范概述了 OpenTelemetry 组件的配置机制。它不试图规定可配置内容的细节。
配置接口
程序化
SDK 必须为所有配置提供程序化接口。此接口应使用 SDK 本身的语言编写。所有其他配置机制都应构建在此接口之上。
此程序化接口的一个示例是接受 SDK 构建器类上的一个定义明确的结构体。由此,可以构建一个接受文件(YAML、JSON、TOML 等)的 CLI,然后将其转换为该定义明确的结构体,以便程序化接口使用(参见 声明式配置)。
环境变量
环境变量配置定义了一组与语言无关的环境变量,用于常见的配置目标。
请参阅 OpenTelemetry 环境变量规范。
声明式配置
声明式配置提供了一种配置 OpenTelemetry 的机制,它比基于 环境变量 的方案更具表达力和功能更全面,并且不像 程序化配置 那样依赖于语言。值得注意的是,声明式配置定义了工具,允许用户根据标准化配置数据模型的基于文件的表示来加载 OpenTelemetry 组件。
声明式配置包含以下主要组件:
- 数据模型 定义了数据结构,允许用户指定 OpenTelemetry SDK 组件和插桩的预期配置。数据模型包含基于文件的表示。
- 插桩配置 API 允许插桩库在初始化期间通过读取相关的配置选项来获取配置。
- 配置 SDK 定义了围绕文件配置的 SDK 功能,包括内存配置模型、支持在配置文件中引用自定义扩展插件接口以及解析配置文件和解释数据模型的各种操作。
其他机制
应提供与 SDK 语言风格/格式/语言相符的其他配置机制。SDK 可以包含任意数量的适当配置机制。