OpenTelemetry已经正式进入Beta版了!

作者:Morgan McLean

由维护者、社区贡献者和OpenTelemetry治理委员会的成员共同编写。

OpenTelemetry刚刚开始了它的第一波测试版,先是 Collector,Java自动检测代理,然后是Erlang、Go、Java、JavaScript和Python SDK,最后是.NET SDK。这意味着你可以开始将OpenTelemetry集成到你的应用程序和客户端库中,以捕获应用程序级别的指标和分布式跟踪。

如果你还不熟悉OpenTelemetry,该项目提供了一组特定于语言的API、SDK、代理和其他组件,你可以使用它们从应用程序中收集分布式跟踪、指标和相关元数据。除了核心功能之外,OpenTelemetry的大部分实用工具都来自于对HTTP和RPC库、存储客户端等的集成,允许开发人员几乎不费任何力气就能从他们的应用程序中捕获关键的可观察性数据。捕获这些信号后,每个OpenTelemetry组件都可以将它们导出到你选择的后端,包括Prometheus、Jaeger、Zipkin、Azure Monitor、Dynatrace、Google Cloud Monitoring + Trace、Honeycomb、Lightstep、New Relic和Splunk。

OpenCensus和OpenTracing在2019年合并形成了OpenTelemetry项目和社区。

第一个测试版包括:

  • 用于Erlang、Go、Java、JavaScript和Python的API和SDK,包括你需要定义和创建分布式跟踪和指标、管理抽样和上下文传播等的接口和实现。.NET API + SDK很快就会发布。
  • 针对至少一个流行HTTP框架、gRPC、和至少一个流行存储客户端的特定于语言的API集成,可以用一行代码启用,并将自动捕获相关跟踪和指标,并处理上下文传播。
  • 特定于语言的导出器,允许SDK将捕获的跟踪和指标发送到任何支持的后端。
  • OpenTelemetry Collector,它可以接收来自OpenTelemetry SDK和其他来源的数据,然后将该遥测导出到任何支持的后端。
  • Java的自动检测,它从47个Java库和框架捕获遥测数据,而不需要对应用程序进行任何修改。
  • 每个组件的文档,包括入门指南。

随着这些和后续的OpenTelemetry组件进入beta测试(需求和发布计划),我们宣布它们已经准备好开始集成。这意味着服务开发人员可以开始在他们的应用程序中包含OpenTelemetry,而存储、RPC等客户端的维护者应该开始测试OpenTelemetry API,以便为他们的用户提供更好的可观察性。然而,这也有一些警告:

  • 每个OpenTelemetry组件可能会在未来几周内进行几次beta测试–这是第一个测试版。
  • 虽然能工作,但beta组件还没有经过彻底的测试或基准测试,它们不适合生产工作负载。
  • 虽然我们的目标是避免对beta和GA候选版本之间的OpenTelemetry API进行任何重大更改,但我们不能保证在此期间不会有任何更改。
  • 第一个测试版仍然缺少一些功能,将在后续版本中添加;这在每个组件的GitHub存储库中都有记录。

在接下来的几周里,你可以期待从第一波OpenTelemetry组件和其他组件中获得更多的beta版本。特别是,我们期望.NET的API + SDK和Java自动检测代理将很快准备好。最终,组件将达到一个成熟和测试的级别,我们将有信心将它们命名为发布候选(release candidate,RC),在此之后,我们将不会对该组件的API进行任何破坏性的更改。

这个测试版里程碑对于OpenTelemetry社区来说是一个巨大的成就,每一个贡献者都应该为OpenTelemetry现在可以工作并准备集成而感到自豪。这是一个很好的机会:对于客户端库的维护者来说,可以开始与OpenTelemetry API集成;对于最终用户来说,可以开始将其集成到他们的服务中;对于有兴趣加入我们快速发展的社区的人来说,可以通过加入我们的邮件列表、Gitter聊天、以及每月的社区会议!