Jaeger 与 Elastic APM - 主要区别、功能和替代方案
Jaeger 是用于微服务架构的开源端到端分布式跟踪工具。另一方面,Elastic APM 是建立在 ELK Stack(Elasticsearch、Logstash、Kibana、Beats)之上的应用程序性能监控系统。在本文中,让我们探讨它们的主要功能、差异和替代方案。
应用程序性能监控是检查应用程序运行状况的过程。 APM 工具使您能够积极主动地满足客户的需求。一个好的 APM 工具有很多组件,例如指标监控、分布式跟踪、日志管理、警报系统等。
Jaeger 和 Elastic APM 都是应用程序性能监控领域的流行工具。但两者都有不同的范围和用例。
积家的主要特点
Jaeger 最初由 Uber 的团队构建,然后开源。它用于微服务的端到端分布式跟踪。 Jaeger 的一些主要功能包括:
- 分布式上下文传播
分布式系统的挑战之一是拥有跨进程边界和服务传递上下文的标准格式。 Jaeger 提供支持多种语言代码检测的客户端库,以跨服务传播上下文
- 分布式事务监控
Jaeger 带有一个用 Javascript 编写的 Web UI。仪表板可用于查看跨服务的跟踪和跨度。
- 根本原因分析
使用跟踪,您可以深入了解导致特定用户请求延迟的服务。
- 服务器依赖分析
使用 Jaeger 的 Web UI,您可以看到请求如何流经不同的服务以及不同的服务器在处理用户请求时如何交互。
- 性能/延迟优化
一旦您确定了哪个服务或查询造成了延迟,您就可以使用这些信息来优化它。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--PBiBbLYG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:/signoz.io/img /blog/2021/08/jaeger_ui-min.png)
Jaeger UI 显示服务和相应的跟踪
Elastic APM 的主要特性
Elastic APM 由四个组件组成:APM 代理、APM 服务器、Elasticsearch 和 Kibana。你们中的一些人可能熟悉由 Elasticsearch、Logstash 和 Kibana 组成的流行 ELK 堆栈。 ELK 堆栈用于收集和分析日志。 Elastic APM是Elastic在应用性能监控领域的一次尝试。
elastic APM的四大组件具有以下特点:
-
Elasticsearch - 用于数据存储和索引
-
Kibana - 用于分析和可视化数据
-
APM 代理 - 收集要发送到 APM 服务器的数据
-
APM 服务器 - 从 APM 代理接收数据并处理它以存储在 Elasticsearch 中
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--E1BDTY-r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:/signoz. io/img/blog/2021/09/elastic_apm_architecture.png)
弹性 APM 架构
Elastic APM 的一些关键特性包括:
- 根本原因调查
Elastic APM 提供了一个仪表板,用于显示服务的事务和依赖关系,可用于识别问题。
- 服务地图
使用服务地图,您可以看到您的服务是如何相互连接的。它提供了一种方便的方式来查看哪些服务需要优化。
- 分布式跟踪
分布式跟踪概述了用户请求如何跨服务执行。
- 使用机器学习进行异常检测
Elastic APM 提供机器学习功能,以发现表明您的应用程序性能出现异常行为的异常情况。
- 警报功能
Elastic APM 提供了通过 Slack、PagerDuty 等流行渠道设置基于阈值的警报的功能。
- 多语言支持
Elastic APM 支持 Java、Go、Node.js、Python、PHP、Ruby、.NET 和 Javascript。
比较 Jaeger 和 Elastic APM
从上面的描述中,您可能对 Jaeger 和 Elastic APM 之间的区别有了一个很好的了解。两者的主要区别在于 Jaeger 专门用于分布式跟踪,而 Elastic APM 是一个成熟的应用程序性能监控工具。
总结 Jaeger 和 Elastic APM 之间的主要区别:
-
Jaeger 是用于微服务的开源分布式跟踪工具。 Elastic APM 是一种 APM 工具,可提供指标和日志监控以及分布式跟踪。
-
Jaeger 的仪器库基于 OpenTracing API,这是一种用于提供供应商中立仪器库的开源标准。多个 APM 供应商支持基于 OpenTracing 的遥测数据。如果您决定使用 Elastic APM,则您的遥测数据只能由 Elastic APM 使用。
在分布式跟踪方面,Jaeger 是一个很好的工具。但是,只有跟踪不足以让您的工程团队能够解决生产中的问题。这就是 Jaeger 受到限制的原因。另一方面,使用 Elastic APM,您的数据存在被锁定的风险。
遥测数据的收集和管理对于建立强大的监控和可观察性框架至关重要。如果您想拥有一个可扩展的分布式系统,那么拥有用于收集和管理遥测数据的标准格式就变得至关重要。
OpenTelemetry等开源标准旨在标准化遥测数据的管理。作为 CNCF 旗下的项目,它得到了广泛的社区支持,也得到了微软和谷歌等主要云供应商的支持。
那么,有没有一种工具可以为您提供广泛的 APM 功能以及开源标准带来的自由度?
这就是SigNoz出现的地方。
替代 Elastic APM 和 Jaeger - SigNoz
SigNoz 是一个全栈开源应用程序性能监控和可观察性工具,可以用来代替 Elastic APM 和 Jaeger。它在单个仪表板下提供高级分布式跟踪功能以及指标。
SigNoz 旨在原生支持 OpenTelemetry。OpenTelemetry正在成为生成和管理遥测数据(日志、指标和跟踪)的世界标准。它还在存储方面为用户提供了灵活性。在安装 SigNoz 时,您可以选择 ClickHouse 或 Kafka + Druid 作为后端存储。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--6BdjoEB__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:/ signoz.io/img/blog/2021/09/SigNoz_architecture_clickhouse.png)
SigNoz 的架构,ClickHouse 作为存储后端,OpenTelemetry 用于代码检测
SigNoz 带有开箱即用的可视化功能,例如 RED 指标。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--OKFqZ_PP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// signoz.io/img/blog/common/signoz_charts_application_metrics.png)
SigNoz UI 显示应用程序概览指标,如 RPS、50th/90th/99th Percentile 延迟和错误率
您还可以使用火焰图来可视化跟踪数据的跨度。所有这些都来自 SigNoz 的开箱即用。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--FOoIlefK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880 /https://signoz.io/img/blog/common/signoz_flamegraphs.png)
显示每个跨度的确切持续时间的火焰图 - 分布式跟踪的概念
SigNoz 可以帮助您跟踪的一些事情:
-
应用程序概览指标,例如 RPS、50th/90th/99th Percentile 延迟和错误率
-
应用程序中最慢的端点
-
查看确切的请求跟踪以找出下游服务中的问题、缓慢的数据库查询、调用第三方服务(如支付网关等)
-
按服务名称、操作、延迟、错误、标签/注释过滤跟踪。
-
对跟踪数据运行聚合
-
指标和跟踪的统一 UI
你可以在这里查看 SigNoz 的 GitHub 存储库👇

更多推荐

所有评论(0)