在不断发展的软件开发世界中,可观察性使软件工程师能够实时洞察复杂的系统。OpenTelemetry 和 Prometheus 是著名的云原生计算基金会 (CNCF) 毕业项目,但用于监控和调试应用程序的可观察性工具不同。
本文探讨了 OpenTelemetry 和 Prometheus 的特性、优点、缺点和主要区别。软件开发人员必须了解独特的可交付成果和用例,才能决定哪种框架最适合他们的需求。
什么是开放遥测 (OTel)?
OpenTelemetry 是一个开源可观测性框架,用于从软件应用程序中检测、收集和导出遥测数据。它是规范、SDK 和库的集合,可帮助收集、转换、处理和导出遥测数据。这些遥测数据提供了有关应用程序性能和运行状况的见解。OTel 提供与供应商无关的模型,该模型提供各种编程语言和框架的库,以及在不更改遥测处理器的情况下将遥测数据导出到不同供应商后端的可能性。Otel 可与 Jaeger、Grafana、Prometheus、DataDog、NewRelic、Last9 和众多供应商一起使用,使其与供应商无关。
OpenCensus 是一个开源项目,提供可观测性数据收集的库和工具,与 OpenTracing(跨不同语言和系统的分布式跟踪标准)合并到 OpenTelemetry 中。这个统一项目旨在标准化可观测性仪器和数据收集。OpenTelemetry 越来越受欢迎,它代表了可观测性的未来,得到了众多组织和供应商的认可。
OTel 是如何构建的?
OpenTelemetry 使用模块化和可扩展的架构构建在标准化工具之上。以下是 OTel 架构的一些组件。
API
OpenTelemetry 为 Java、JavaScript、Python 和 Go 等流行编程语言提供特定于语言的 API。这些 API 定义了开发人员用于检测其应用程序并生成遥测数据的方法和接口。
SDK
软件开发套件 (SDK) 是基于 OpenTelemetry API 构建的实现库。它们自动捕获由仪表化应用程序生成的遥测数据并实施 OTel API。OpenTelemetry Collector接收处理、过滤和导出各种格式的遥测数据。
库
OTel 提供与供应商无关的检测应用程序模型,该模型提供了可检测流行框架和库的库。这简化了向基于各种编程语言和框架(例如 Spring 和 Express.js)构建的应用程序添加遥测的过程。
OTel 如何运作?
OTel 使您能够使用 OpenTelemetry API 和 SDK 添加应用程序检测。这会自动将系统组件定向到您寻求收集、分析和导出的特定日志、跟踪或遥测数据。借助 OTel API,可以将跟踪、日志和指标添加到您的代码中,以简化数据处理和导出。遥测数据处理涉及过滤数据中的错误。完成此操作后,数据就可以导出到预先指定的后端。</