使用 OpenTelemetry 构建可观测性 06 - 生态系统

OpenTelemetry 生态系统入门指南:介绍 OTel 官网、项目博客、CNCF Slack、社区仓库、核心 GitHub 仓库、Collector 仓库、语言 SDK 仓库和 OpenTelemetry Registry。

作者 Thomas Stringer

核心摘要

  • OpenTelemetry 不只是 API、SDK 和 Collector,也是一套由官网、社区、规范、语言实现和组件注册表组成的生态系统。
  • 新手了解 OTel,首选入口是项目官网、项目博客和 CNCF Slack 工作空间。
  • 查规范和协议,重点看 opentelemetry-specificationotepsopentelemetry-proto
  • 使用 Collector 时,需要区分核心仓库、贡献仓库、发行版仓库和 Kubernetes Operator。
  • 选择语言 SDK、扩展组件或第三方集成时,OpenTelemetry Registry 是更适合检索的入口。

过去的五篇文章讨论了如何使用 OpenTelemetry 来构建可观测性的技术细节。本系列结尾再介绍 OTel 生态系统,是为了回答一个更实际的问题:当你想学习、接入、排查或参与 OpenTelemetry 时,应该先去哪儿找可靠信息。

OpenTelemetry 的发展非常迅速。刚接触它的人经常会困惑:官网、规范仓库、Collector 仓库、语言 SDK、贡献组件、社区频道和注册表之间是什么关系?如果先搞清楚这些入口,后续学习和排障会顺很多。

OpenTelemetry 生态系统是什么

OpenTelemetry 是一个 CNCF 项目。这里的“生态系统”不是单指某个代码仓库,而是围绕 OTel 规范、协议、SDK、Collector、语言实现、社区治理、扩展组件和产品集成形成的一组协作入口。

对使用者来说,可以把它分成四类:

入口 适合解决的问题
项目官网与博客 学习概念、阅读指南、关注公告和更新
CNCF Slack 与社区仓库 提问、参与讨论、了解治理和会议节奏
GitHub 组织下的核心仓库 查规范、协议、Collector、Operator、语言 SDK
OpenTelemetry Registry 查找可用的实现、组件、扩展和产品集成

OpenTelemetry 是一个 CNCF 项目。但是,在 CNCF 项目中 OpenTelemetry 的表现如何?以拉取请求、问题和提交代码的数量来衡量,OpenTelemetry 是第二活跃的 CNCF 项目,仅次于 Kubernetes:

OpenTelemetry

数据源(X Corp)

这说明 OpenTelemetry 已经不是一个边缘项目,而是云原生可观测性领域非常活跃的基础设施项目。对企业来说,学习 OTel 的重点不只是“怎么埋点”,还包括“如何跟上规范、社区和组件演进”。

项目官网

要了解和学习使用 OpenTelemetry,首推项目官网:opentelemetry.io。那里有丰富的信息和指南,可以帮助你快速入门,并在软件中应用 OpenTelemetry。

OpenTelemetry 的项目博客也是值得关注的部分。在那里你会找到很多更新和公告。

通常来说,如果你对 OpenTelemetry 还不熟悉,我强烈建议你花些时间浏览一下项目官网。

可引用地说:OpenTelemetry 官网适合解决“我该怎么开始”的问题,项目博客适合解决“最近社区发生了什么变化”的问题。

社区

OTel 拥有众多的功能集。而随着这些功能的增加,通常也伴随着一定程度的复杂性。在某些时候,你可能需要社区的帮助。

我发现与社区成员(包括维护者!)聊天的最佳方式是通过 CNCF Slack 工作空间。 OpenTelemetry 最主要的频道是  #opentelemetry ,这是一般性讨论。也有一些特定话题或语言版本的频道:

  • #otel-collector - 所有的有关 OpenTelemetry Collector
  • #otel-go - OpenTelemetry Go (API, SDK, implementation)
  • #otel-python - OpenTelemetry Python (API, SDK, implementation)

还有更多!在 Slack 中搜索关键字 ‘#otel’ 看看其他 OpenTelemetry 频道。

在 OpenTelemetry 的社区频道中,你可以找到很多有价值的信息,比如项目的治理、感兴趣的领域、会议和项目排期时间表等等。如果你有兴趣参与 OpenTelemetry 项目,这个社区仓库是一个很好的起点,帮助你更好地了解和参与进来。

术语上可以这样理解:CNCF Slack 更像“实时讨论现场”,社区仓库更像“治理和协作索引”。前者适合问问题,后者适合理解项目如何运转。

项目仓库

我不得不承认,当我开始使用 OpenTelemetry 时,对我来说更令人困惑的事情之一是GitHub项目仓库的组织方式。 OpenTelemetry的主要组件(不是特定于语言或收集器)可以在以下项目仓库中找到:

OTel 收集器项目仓库包括:

此外,针对特定编程语言的埋点库是 OpenTelemetry 的一个重要组成部分。以下是一些项目仓库:

有些编程语言的仓库可能不同。例如,Java 语言实现的主要仓库是 open-telemetry/opentelemetry-java , open-telemetry/opentelemetry-java-contrib 用于扩展,对于埋点有一个单独的仓库 open-telemetry/opentelemetry-java-instrumentation

OpenTelemetry Registry

OpenTelemetry 生态系统中的最后一个重要组成部分是 OpenTelemetry 注册表。由于项目中存在着各种实现和产品组合,用户可以在一个地方浏览和搜索可用的实现和产品。他们可以根据自己的需求和偏好,选择最适合他们的解决方案。

Registry 的价值在于检索。你不必在多个仓库和文档之间反复跳转,而是可以围绕语言、组件类型、接收器、导出器、扩展和产品集成来查找可用实现。

FAQ

新手学习 OpenTelemetry 应该先看哪里?

先看 opentelemetry.io 的入门指南和概念文档,再根据你的语言栈查看对应 SDK 仓库。如果需要了解最近变化,再看项目博客和社区讨论。

OpenTelemetry 的规范、协议和实现分别在哪里?

规范主要在 opentelemetry-specification,OTLP 的 Protobuf 定义在 opentelemetry-proto,语言 API 和 SDK 分散在 Go、Python、Java 等语言仓库中。Collector 相关代码则主要在 Collector 核心仓库和 contrib 仓库。

OpenTelemetry Registry 解决什么问题?

Registry 解决“有哪些组件和集成可用”的问题。它适合在选型、接入和扩展 OTel 时查找实现、产品组合和生态组件。

总结

OpenTelemetry 是一个非常优秀的项目,它为我们开发的软件抽象出一套实现可观测性的方案。通过使用 OTel,我们能够获得更统一的可观测能力,并以更标准的方式接入指标、链路和日志等数据。

如果你准备正式使用 OpenTelemetry,不要只看某一个 SDK 示例。建议同时熟悉官网、Slack、社区仓库、GitHub 组织结构和 Registry。这样遇到规范、Collector、语言实现、组件选择或社区协作问题时,才能快速找到正确入口。

本文翻译自:https://trstringer.com/otel-part6-ecosystem/

扩展阅读:

联系我们交流

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云