在分布式系统中使用 ELK 堆栈跟踪调用和使用 Dynatrace 分布式跟踪有什么区别?

问题描述

在我本周的项目中,我收到了一份积压工作,我要求分析如何在我们的微服务中使用分布式跟踪。我们已经有了 ELK 堆栈,我们可以在 Kibana 仪表板中检查日志。我尝试使用关联 ID 过滤调用,这工作正常。但是,我们的应用程序也使用 Dynatrace 进行跟踪。我的问题是,如果我们有 ELK 堆栈来检查日志以查找 PRD 中的问题,那么额外的 Dynatrace 分布式跟踪会做什么?我无法理解的主要区别是什么。请任何人都可以尝试用简单的语言解释吗?我是这个 backlog 的新手,所以有些概念还不合适。

解决方法

分布式跟踪是一种行业方法,允许开发人员 监控他们使用的 API 的性能,而不实际 能够分析后台微服务的代码。

来自文档外:

ELK 分布式跟踪使您能够在整个过程中分析性能 您的微服务架构通过跟踪整个 请求 — 从您的前端服务上的初始 Web 请求开始 在后端服务上进行数据库查询的方式。

有效

通过将自定义 traceparent HTTP 标头注入传出请求。 此标头包含信息,例如 trace-id,用于 识别当前的trace,以及parent-id,用于识别 传入请求的当前跨度的父级或当前 跨出传出请求。

Dynatrace 分布式跟踪几乎一样,加上代码执行分析。用 Dynatrace 的话来说:Purepaths 加上代码级可见性和基于 AI 的应用程序性能监视器。识别微服务如何协同工作的简单方法、完整的服务流程和问题分析。

来自Dynatrace blog的更多解释

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...