泽注:这是一个系列,共分成6部分,这是第6部分。翻译自:https://trstringer.com/otel-part6-ecosystem/
之前的五篇博客涵盖了如何使用OpenTelemetry观测你的应用程序的技术细节。我认为用OTel生态系统的一些信息来结束这个博文系列会产生很大的价值。OpenTelemetry社区发生了很多事情,那些刚接触它的人可能会有点不知所措,或者对在哪里找到某些东西感到困惑。
如前所述,OpenTelemetry是一个CNCF项目。但是,它的表现如何呢?以PR、Issue和提交数来衡量,OpenTelemetry是CNCF项目中第二活跃的,仅次于Kubernetes:
image.pngImage and data source (twitter)
这是一个非常激动人心的时刻,可以深入OpenTelemetry的世界。希望现在已经很明显了,但我相信OpenTelemetry会继续保持,并将在云原生生态系统中发挥重要作用。
项目网站
OpenTelemetry的起来是它的项目网站: opentelemetry.io。在这里,你可以找到大量的信息和好的生态系统的索引。在这里,你还可以找到非常棒的入门教程,从中熟悉OTel并在你的软件中实现它。
OpenTelemetry网站的一个值得关注的部分是项目博客。在这里你会发现大量的更新和公告。
一般来说,如果你是OpenTelemetry的新手,我强烈建议你花一些时间在项目网站上学习。
社区
如果说这个系列博文强调了一件事,那就是OTel有一个庞大的功能集。而这些功能往往伴随着一定程度的复杂性。在某些时候,你可能需要社区的帮助。我发现与社区成员(包括维护者!)聊天的最好方式是通过CNCF Slack工作区。OpenTelemetry有几个频道,你可能感兴趣。主要的一个是#opentelemetry
,这是一般的讨论。不过你也有可能想参与更多具体的对话。这里有一些其他的OTel频道:
-
#otel-collector
:关于OpenTelemetry Collector的一切; -
#otel-go
- OpenTelemetry Go (API, SDK, 实现) -
#otel-python
- OpenTelemetry Python (API, SDK, 实现)
还有一些,在 Slack 中搜索“#otel”以查看其他 OpenTelemetry 频道。
这可能是下一节的一部分,但在这里值得一提。 社区的Git仓库 有很多重要信息,例如:治理、感兴趣的领域、会议和日历等等。如果您正在考虑加入 OTel,这是一个很好的起点。
代码仓库列表
我必须承认,当我开始使用 OpenTelemetry 时,我最困惑的事情之一是 GitHub仓库 的组织方式。
OpenTelemetry的主要组件(不是语言或者特定的collector)可以在这些仓库中找到:
- open-telemetry/opentelemetry-specification - The OTel spec (procotol, metrics, traces, logs, baggage, and many other specifications for root OTel), schema, and semantic conventions
- open-telemetry/oteps - Enhancement proposals for the project
- open-telemetry/opentelemetry-proto - Protobuf definitions for OTLP
OTel Collector 仓库:
- open-telemetry/opentelemetry-collector - Core collector code, 包括 ocb 工具
- open-telemetry/opentelemetry-collector-contrib - Contrib receivers, extensions, processors, and exporters for the collector
- open-telemetry/opentelemetry-collector-releases - Releases for core and contrib distros are not in the above two repos, but they are here including the manifests and Dockerfiles for the release distros
- open-telemetry/opentelemetry-operator - Kubernetes operator to handle the collector, including collector sidecar injection for observed application pods
OTel的一个重要部分是特定语言的探测实现。这里有一个案例,解释了它们在项目中是如何组织的:
- open-telemetry/opentelemetry-go - Go API and SDK
- open-telemetry/opentelemetry-go-contrib - Extensions for OTel Go, including instrumentation and propagators
- open-telemetry/opentelemetry-python - Python API and SDK
- open-telemetry/opentelemetry-python-contrib - Extensions for OTel Python
这是语言实现的一般模式,但它们可以有所不同。例如,Java有open-telemetry/opentelemetry-java
,但也有open-telemetry/opentelemetry-java-contrib
用于扩展,但有open-telemetry/opentelemetry-java-instrumentation
用于自动探测实现的单独 repo。
注册表
我认为应该注意的生态系统的最后一部分是OpenTelemetry Registry。由于该项目有大量的实现和产品,这是一个搜索任何你想要实现需求的好地方。
总结
OpenTelemetry是一个伟大的项目,它提供了一种在我们开发的软件中实现高水平的可观测性的方法。通过OTel,我们能够有最大限度的洞察力,并回答线上问题,而不需要做任何代码修改。我强烈建议你深入OpenTelemetry的奇妙世界!一旦你这样做了,你就永远不会想离开它了。
网友评论