OpenTelemetry 和 OpenTracing 是用于检测应用程序代码以生成遥测数据的开源项目。虽然 OpenTelemetry 可以帮助您生成日志、指标和跟踪,但 OpenTracing 专注于为分布式应用程序生成跟踪。

如果您正在考虑在 OpenTelemetry 和 OpenTracing 之间进行选择,请选择 OpenTelemetry。 OpenTracing 现在已弃用,建议 OpenTracing 的用户迁移到 OpenTelemetry。

在我们看到 OpenTelemetry 和 OpenTracing 之间的区别之前,让我们简要概述一下每种技术是什么。

什么是 OpenTelemetry?

OpenTelemetry是云原生计算基金会(CNCF)下的一个开源项目,旨在标准化遥测数据的生成和收集。遥测数据包括日志、指标和跟踪。

它是在 OpenTracing 和 OpenCensus 合并后形成的,这两个项目的目标相似但方法不同。

OpenTelemetry 是 API、SDK 和客户端库的集合,用于从应用程序代码生成遥测数据。您使用 OpenTelemetry 收集的数据与供应商无关,可以以多种格式导出。

使用 OpenTelemetry 的最大优势是您可以自由选择自己喜欢的后端。您不会被供应商所束缚,工程团队可以使用单一技术来生成遥测数据。

选择哪种后端分析工具?

您可以尝试SigNoz,这是一个在 OpenTelemetry 上原生构建的全栈开源 APM。

要将 OpenTelemetry 与您的应用程序代码集成,您可以使用所需编程语言的 OpenTelemetry 客户端库。 OpenTelemetry 还提供了一个称为 OTel(OpenTelemetry) 收集器的收集器,可用于处理和导出多种格式的遥测数据。

[opentelemetry 如何适合应用程序](https://res.cloudinary.com/practicaldev/image/fetch/s--uk_E3De3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:/signoz .io/img/blog/2022/04/opentelemetry_architecture_new.webp)

OpenTelemetry 的架构。您可以将 OTel 库与您的应用程序代码集成

什么是 OpenTracing?

OpenTracing是一个开源项目,旨在为分布式跟踪提供供应商中立的 API 和工具。在分布式云原生应用程序中,工程团队很难看到请求是如何跨服务执行的。这就是分布式跟踪出现的地方。

但是大型组织采用分布式跟踪的问题是大量开源框架和库缺乏可重用的工具。

OpenTracing API 旨在通过开发通用检测 API 来解决这个问题。

OpenTelemetry 与 OpenTracing

OpenTelemetry 是在 OpenTracing 和 OpenCensus 合并后形成的,目前正在积极开发,作为 CNCF 下的应用仪器的单一标准。 OpenTelemetry 结合了 OpenTracing 和 OpenCensus 的功能并对其进行了扩展。

虽然 OpenTelemetry 可以成为各种遥测数据(例如日志、指标和跟踪)的单一来源,但 OpenTracing 只专注于分布式跟踪。对于使用 OpenTracing API 的用户,他们可以迁移到 OpenTelemetry。 OpenTelemetry 向后兼容 OpenTracing。

常见问题

OpenTelemetry 是否与 OpenTracing 兼容?

OpenTelemetry 使用软件桥向后兼容 OpenTracing。例如,OpenTracing 网桥将采用任何 OpenTelemetry 跟踪器并将其转换为 OpenTracing 跟踪器。

Jaeger 是否使用 OpenTelemetry?

目前,Jaeger OpenTelemetry 库是实验性的。Jaeger 官方网站提到 Jaeger OpenTelemetry 二进制文件几乎**向后兼容当前的 Jaeger 二进制文件。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐