OpenTelemetry 指标发布候选版本
博客文章在发布后不会更新。这篇文章已经发布一年多了,其内容可能已过时,部分链接可能无效。在依赖任何信息之前,请务必核实。
OpenTelemetry 的指标功能现已作为发布候选版本推出,首先支持 Java、.NET 和 Python!这意味着规格、API、SDK 和其他编写、捕获、处理指标的组件现在拥有完整的 OpenTelemetry 指标功能,并已准备好使用。这些发布候选版本将在未来几周内升级为通用可用版本。
1.0 指标发布包含以下内容
- OpenTelemetry 语言特定 API 中包含的指标功能,这些 API 提供语言特定的接口,可以创建和操作指标,并将元数据和属性与每个指标关联。这些对于以下用户很有用:
- 分发给最终用户的共享库的开发者,以便这些最终用户可以使用 OpenTelemetry 原生捕获它们的指标。例如,gRPC 使用这些 API 来为给定服务的每个 RPC 方法生成延迟、吞吐量和错误率指标。
- 创建和维护 Web 服务或客户端应用程序的开发者,以便他们可以生成自定义指标或与现有指标进行交互。例如,一家电子商务公司可以使用该 API 来跟踪一段时间内的购买次数。
- OpenTelemetry Java、.NET、Python 和 JS(下周推出)SDK 中包含的指标功能,这些 SDK 捕获 API 中的指标并执行一定量的处理。其他语言的指标支持仍在开发中。这些对于以下用户很有用:
- 由其他组织使用的应用程序(如数据库、消息队列等)的开发者,这些应用程序将通过 OTLP(或 Prometheus)暴露指标,以便其最终用户能够监控这些应用程序的性能。这些应用程序可以是开源或闭源的。
- 技术组织内应用程序的开发者,他们希望捕获其应用程序中由 OpenTelemetry API 生成的指标,无论是他们自己的开发者生成的,还是来自其应用程序依赖的共享库生成的。这些指标可以通过 OTLP 导出,也可以通过任何其他 OpenTelemetry 导出器导出。
- Collector 对指标的支持包括 Collector 从各种数据源(如主机指标或预打包应用程序)捕获指标的能力。Collector 还提供了使用多种数据协议(如本地 OpenTelemetry 协议 (OTLP) 和 OpenMetrics 兼容协议(如 Prometheus))接收指标的能力。还支持配置驱动的指标处理以及本地 OTLP、Prometheus 和自定义导出器,将可观测性指标发送到您选择的云端和本地监控系统。此功能集对于以下用户很有用:
- 任何想要从其主机(Linux VM、Windows、VM、Kubernetes 等)或预打包应用程序(数据库、消息队列等)捕获指标的用户。
- 任何想要从现有来源(如 OTLP(来自 OpenTelemetry SDK、预打包应用程序等)、Prometheus 或其他来源)捕获指标的用户。
- 任何想要处理/修改从这些来源捕获的指标和指标元数据的用户。
- 任何想要将指标从一种格式转换为另一种格式的用户。例如,Collector 可以从 OTLP 和 Prometheus 源的混合中捕获指标,然后使用 OTLP(遵循标准的 OpenTelemetry 语义约定)、Prometheus 或任何其他导出器将所有这些发送到单个目的地。
- 完全的 OpenTelemetry 协议 (OTLP) 支持,用于在系统之间高效地序列化和传输指标。
- 规格的指标部分,它定义了不同类型的指标、它们的形状、如何处理它们以及语义约定。这主要供 OpenTelemetry 贡献者使用,同时也为编写指标或元数据的 OpenTelemetry 用户提供指导。
所有这些功能都添加到 OpenTelemetry 现有的跟踪支持中,并且这两种信号类型共享相同的元数据和语义约定。截至此公告发布时,以下语言已发布了指标发布候选版本:
- Java
- .NET
- Python
JS 的 RC 版本计划在下周发布,更多语言将在未来几个月内发布指标发布候选版本。每个发布版本将在收到用户反馈后升级为通用可用版本。
入门
如果您已经混合使用了 OpenTelemetry API、SDK、语言代理和 Collector,那么您可以通过更新 OpenTelemetry 工件到其最新版本来访问发布候选的指标功能。我们目前正在为每个工件的指标功能更新 官方 OpenTelemetry 文档。示例和补充文档也正在添加到每个工件对应的 GitHub 存储库中。
OpenTelemetry 的下一步
分布式跟踪和指标是 OpenTelemetry 在 2019 年 KubeCon EU 上宣布时的核心承诺的两个组成部分。随着指标的通用可用,我们已经实现了最初设定的目标,这意味着我们可以将重点转移到进一步加强每个组件的健壮性和易用性,OpenTelemetry 可以捕获遥测数据的来源数量(无论是通过 OpenTelemetry API、OTLP 还是其他方式),以及新的功能和信号类型。
日志是近期最受关注的发布,我们正全力以赴地推进这项工作。预计在今年会听到更多关于我们日志进展的消息(日志已经拥有稳定的数据模型和 OTLP 支持),任何对此感兴趣的人都可以加入每周的日志 SIG 会议。除了日志之外,主要的重大项目还包括正式化和实施客户端仪器化以及对 eBPF 的研究。随着指标的完成,我们可能会将注意力转向更多信号类型。