规格状态摘要
OpenTelemetry 是逐个信号(Signal)进行开发的。追踪(Tracing)、指标(Metrics)、Baggage 和日志(Logging)是信号的示例。信号建立在上下文传播(Context Propagation)之上,这是一个用于关联分布式系统中数据的共享机制。
每个信号包含四个 核心组件
- API
- SDK
- OpenTelemetry 协议 (OTLP)
- Collector
信号还包含贡献组件(Contrib Components),这是一个由插件和插装(Instrumentation)组成的生态系统。所有插装都共享相同的语义约定,以确保它们在观察常见操作(例如 HTTP 请求)时产生相同的数据。
要了解更多关于信号和组件的信息,请参阅 OTel 规范的 概述。
组件生命周期
组件遵循一个开发生命周期:草案(Draft)、实验(Experimental)、稳定(Stable)、弃用(Deprecated)、移除(Removed)。
- 草案组件正在设计中,尚未添加到规范中。
- 实验组件已发布,可供 Beta 测试。
- 稳定组件向后兼容,并享有长期支持。
- 弃用组件是稳定的,但最终可能会被移除。
有关生命周期和长期支持的完整定义,请参阅 版本控制与稳定性。
当前状态
以下是当前可用信号的高级状态报告。请注意,尽管 OpenTelemetry 客户端符合共享规范,但它们是独立开发的。
建议查看其 GitHub 仓库 中每个客户端的 README 文件,以了解其当前状态。特定功能的客户端支持情况可在 规范合规性表格 中找到。
请注意,对于以下每个部分,Collector 的状态与 Protocol 的状态相同。
追踪(Tracing)
- 规范
- API: 稳定
- SDK: 稳定
- Protocol: 稳定
- 注意
- 追踪规范现已完全稳定,并享有长期支持。
- 追踪规范仍然是可扩展的,但只能以向后兼容的方式进行。
- 一旦其追踪实现完成,OpenTelemetry 客户端将被版本化为 v1.0。
指标
- 规范
- API: 稳定
- SDK: 混合
- Protocol: 稳定
- 注意
- OpenTelemetry 指标目前处于积极开发阶段。
- 数据模型已稳定,并作为 OTLP 协议的一部分发布。
- Collector 中提供了指标管道的实验性支持。
- Collector 对 Prometheus 的支持正在开发中,与 Prometheus 社区合作。
Baggage
- 规范
- API: 稳定
- SDK: 稳定
- Protocol: N/A
- 注意
- OpenTelemetry Baggage 现已完全稳定。
- Baggage 不是一个可观测性工具,而是一个用于将任意键值对附加到事务的系统,以便下游服务可以访问它们。因此,Baggage 没有 OTLP 或 Collector 组件。
日志记录
- 规范
- Bridge API: 稳定
- SDK: 稳定
- Protocol: 稳定
- 注意
- 日志数据模型已作为 OpenTelemetry 协议的一部分发布。
- 感谢 Stanza 项目对 OpenTelemetry 的捐赠,Collector 已添加对多种数据格式的日志处理。
- OpenTelemetry 日志 Bridge API 允许编写 appender,将日志从现有的日志框架桥接到 OpenTelemetry。Log Bridge API 不供最终用户直接调用。Log appender 正在多种语言中开发。
- OpenTelemetry Log SDK 是 Log Bridge API 的标准实现。应用程序配置 SDK 以指示如何处理和导出日志(例如,使用 OTLP)。
- OpenTelemetry Log Bridge API 包含实验性支持,用于发出符合 事件语义约定 的日志记录。