分布式跟踪

使用分布式跟踪,您可以跟踪从一个应用程序到另一个应用程序的事务跟踪。这使您能够监控应用程序之间的调用并缩小问题范围。 

内容:

1.什么是追踪?

跟踪是事务的执行流程,包括其方法调用、数据库查询和异常。当事务超过指定的阈值时,它会被捕获为跟踪。 

2.什么是分布式追踪?

现代应用程序已经从它们的单一祖先演变为微服务或分布式系统。分析此类环境中的问题涉及关联来自跨系统的多个服务的数据,从而不可避免地需要更复杂的跟踪机制来诊断和解决问题。分布式跟踪通过能够跨应用程序或服务边界跟踪 Web 事务的整个路径来满足这一需求。

3.启用分布式跟踪的先决条件

确保您已在所有需要监控的应用程序中安装 APM Insight 代理。 

确保您的代理已更新到以下版本: 

  • Java 代理版本 4.5.1 
  • .NET 代理版本 4.5.2
  • Node.js 代理版本 1.7

注意:分布式跟踪只能在同一帐户下的应用程序中查看。如果您的应用程序分布在不同的帐户中,则您无法获得所有帐户中所有跟踪的统一视图。 

4.分布式跟踪的工作原理

1. 当一个应用程序或服务向另一个应用程序或服务发出 API 请求时,Site24x7 APM Insight 会添加一个 HTTP 标头,其中包含跟踪服务请求所需的元数据。 

2. 如果在其他对应的服务中启用了Site24x7 APM Insight,它将处理HTTP头,并通过响应头将跟踪信息返回给它的调用者。 

3. 如果另一个服务又调用另一个服务,则头部传播继续,从而跟踪原始应用程序或服务在分布式系统中采用的所有路径。 

注意:仅当请求超过任何服务中定义的阈值级别时,才会捕获跟踪。 

注意:如果您的应用程序使用任何代理服务,请确保将相应的键 X-Site24x7-Id 和 X-Site24x7-DT-Data 添加到请求和响应标头中,以便代理跟踪事务。 

5.查看数据

  1. 要查看分布式跟踪,请执行以下步骤: 
  2. 登录到您的 Site24x7 帐户 -> APM Insight -> 您的应用程序。
  3. 单击相应的应用程序以查看其跟踪。
  4. 单击跟踪后,您可以看到标题,分布式跟踪。 
  5. 这列出了对其他应用程序的调用和相应的事务。

6.指标和推论

在分布式跟踪选项卡上,提供了各种指标来帮助您分析跟踪结果。

  • httpURL.do 是来自应用程序 Zylker 的父事务。
  • EmpSite_EmpApp 和 NodeApp 是另外两个应用程序,其中父事务已进行调用以完成其请求。
  • dynamodb/createtable、oracle/viewdetails 和 customer/add 是父事务 httpURL.do 调用的对应事务。

顶部栏显示详细的指标,例如事务占用的总响应时间(在本例中为 8,883 毫秒)、其中一个事务贡献的部分响应时间(3,623 毫秒)、内存使用情况等。通过单击应用程序名称右侧的展开树视图,您可以查看花费大量时间来完成此请求的方法调用和代码块。 

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