规范状态概要

OpenTelemetry是基于信号来开发的。跟踪(tracing)、度量(metrics)、行李(baggage)和日志(logging)是信号的示例。信号是建立在上下文传播(context propagation)之上的,上下文传播是一种在分布式系统中相关数据的共享机制。

每个信号由四个核心组件组成:

信号还有贡献组件(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)