分布式追踪
借助分布式追踪,您可以跨应用程序跟踪事务追踪。它允许您跟踪应用程序之间的监视器调用,并识别问题的根源。
追踪
追踪是事务的执行流程,包括方法调用、数据库查询和异常。当事务超过某个阈值时,它将被捕获为追踪记录。
分布式追踪
现代应用程序已从单体架构演变为微服务或分布式系统。在此类环境中分析问题,需要关联跨系统多个服务的数据,这就迫切需要一种更成熟的追踪机制来诊断和排查问题。分布式追踪通过能够跨应用程序或服务边界追踪 Web 事务的完整路径,满足了这一需求。
启用分布式追踪的前提条件
确保您已在所有需要监控的应用程序中安装 APM Insight 代理。
请确保代理已更新至以下版本或更高版本:
- Java 代理版本 4.5.1
- .NET 代理版本 4.5.2
- Node.js 代理版本 1.7
- PHP 代理版本 3.2
- Python 代理版本 1.2.1
分布式追踪仅可查看同一账户下的应用程序。如果您的应用程序分布在多个账户中,则无法获得跨所有账户的所有追踪的统一视图。
分布式追踪在 Site24x7 中的工作原理
1. 当一个应用程序或服务向另一个应用程序或服务发出 API 请求时,Site24x7 APM Insight 会添加一个包含跟踪服务请求所需元数据的 HTTP 标头。
2. 如果对应的其他服务也启用了 Site24x7 APM Insight,它将处理该 HTTP 标头,并通过响应标头将跟踪信息返回给调用方。
3. 如果该服务又调用了另一个服务,标头传播将继续进行,从而追踪原始应用程序或服务在分布式系统中经过的所有路径。
- 仅当请求在任何服务中超过指定阈值级别时,才会捕获追踪记录。
- 如果您的应用程序使用了任何代理服务,请确保将对应的键 X-Site24x7-Id 和 X-Site24x7-DT-Data 添加到请求和响应标头中,以便代理跟踪该事务。
视频
以下是关于分布式追踪工作原理的快速入门视频。
查看数据
要查看分布式追踪,请按照以下步骤操作:
- 登录您的 Site24x7 账户 > APM > APM Insight。
- 点击相应的应用程序,导航至 Traces 标签页。
- 点击 Distributed 标签页,即可查看流向其他应用程序的追踪列表及对应事务。

- 点击某条追踪可查看其完整视图。

指标与解读
分布式追踪标签页提供多种指标,帮助您分析追踪结果。

- httpURL.do 是来自应用程序 Zylker 的父事务。
- EmpSite_EmpApp 和 NodeApp 是父事务为完成其请求而进行调用的另外两个应用程序。
- dynamodb/createtable、oracle/viewdetails 和 customer/add 是父事务 httpURL.do 所调用的对应事务。
顶部栏显示详细指标,如所有事务的总响应时间(本例中为 8,883ms)、其中一个事务贡献的部分响应时间(3,623ms)、内存使用量等。点击应用程序名称右侧的展开树视图,可以查看耗费大量时间完成此请求的方法调用和代码块。

在正常情况下,这些事务追踪是在没有上下文的情况下单独查看的。借助分布式追踪,您可以精确了解某个特定应用程序的事务所请求的方法调用,以及它们如何超过阈值级别,从而简化调试过程。
