规范状态概要
OpenTelemetry是基于信号来开发的。跟踪(tracing)、度量(metrics)、行李(baggage)和日志(logging)是信号的示例。信号是建立在上下文传播(context propagation)之上的,上下文传播是一种在分布式系统中相关数据的共享机制。
每个信号由四个核心组件组成:
- API
- SDK
- OpenTelemetry协议 (OTLP)
- Collector
信号还有贡献组件(contrib components),这是一个插件和仪表盘的生态系统。所有的仪表盘共享相同的语义约定,以确保在观察常见操作(如HTTP请求)时,它们产生相同的数据。
要了解有关信号和组件的更多信息,请参阅OTel规范的概述。
组件生命周期
组件遵循以下开发生命周期:草案(Draft)、实验性(Experimental)、稳定(Stable)、废弃(Deprecated)、移除(Removed)。
- 草案(Draft) 组件正在设计中,并未添加到规范中。
- 实验性(Experimental) 组件已发布,并可供测试。
- 稳定(Stable) 组件向后兼容,并在长期支持下。
- 废弃(Deprecated) 组件是稳定的,但可能被移除。
有关生命周期和长期支持的完整定义,请参阅版本和稳定性管理。
当前状态
以下是当前可用信号的高级状态报告。请注意,虽然OpenTelemetry客户端符合共享规范,但它们是独立开发的。
建议在每个客户端的GitHub存储库的README中检查当前状态。有关特定功能的客户端支持可以在规范符合性表中找到。
请注意,对于以下每个部分,Collector的状态与Protocol的状态相同。
跟踪(Tracing)
- API: stable, feature-freeze
- SDK: stable
- 协议: stable
- 注:
- 跟踪规范现在完全稳定,并已经有了长期支持。
- 跟踪规范仍然可扩展,但只能以向后兼容的方式进行。
- OpenTelemetry客户端的跟踪实现完成后,会标记为v1.0版本。
度量(Metrics)
- API: stable
- SDK: mixed
- 协议: stable
- 注:
- OpenTelemetry Metrics目前正在积极开发中。
- 数据模型稳定,并作为OTLP协议的一部分发布。
- Collector提供了度量管道的实验性支持。
- Collector正在与Prometheus社区合作开发对Prometheus的支持。
行李(Baggage)
- API: stable, feature-freeze
- SDK: 稳定
- 协议: 不适用
- 注:
- OpenTelemetry Baggage目前完全稳定。
- Baggage不是一个可观测性工具,它是一个用于将任意键和值附加到事务的系统,以便下游服务可以访问它们。因此,Baggage没有OTLP或Collector组件。
日志(Logging)
- Bridge API: stable
- SDK: stable
- Event API: experimental
- 协议: stable
- 注:
- 日志数据模型作为OpenTelemetry协议的一部分发布。
- Collector已经添加了许多数据格式的日志处理功能,感谢将Stanza捐赠给OpenTelemetry项目。
- OpenTelemetry日志桥接API允许编写将现有日志框架的日志框架桥接到OpenTelemetry中的附加器。日志桥接API不适合终端用户直接调用,日志附加器正在许多语言中开发中。
- OpenTelemetry日志SDK是日志桥接API的标准实现。应用程序配置SDK以指示如何处理和导出日志(例如使用OTLP)。
- OpenTelemetry事件API允许发出符合事件语义约定的日志记录。与日志桥接API相反,事件API旨在由终端用户调用。事件API正在积极开发中。
最后修改 December 13, 2023: fix table of content (587d847b)