开发者社区 问答 正文

如何调用链详情?


通过调用链详情,可以在选定的区域内,基于 TranceId 查询某个调用链的详细信息。
调用链详情展示的是整个调用过程中,发生远程调用的方法的链路,并不包含本地方法调用。
调用链详情是为了定位在分布式链路调用过程中的每个环节的耗时和异常,本地方法并不是调用链的核心内容,本地方法的耗时及异常建议通过业务log的方式进行。例如:本地逻辑 methodA() 调用 localMethodB() 和 localMethodC() 在调用链详情中不会显示。所以有时看到父节点的耗时总是大于所有子节点耗时总和。
调用链详情可以在调用链详情页面( EDAS 控制台 左侧导航栏中选择 [backcolor=transparent]数据化运营 > [backcolor=transparent]调用链详情)中搜索,不过更典型的应用场景是基于调用链查询结果中的慢业务或出错业务进行查看。所以,下面以调用链查询为入口且以一个具体示例进行说明。


  1. 在调用链查询结果页面中直接找到耗时最长的HSF方法或DB请求或其他远程调用。

    时间分为3段:

    • 客户端发出请求 0ms,此过程经历序列化,网络传输,反序列化,如果此段时间很长,需要考虑是否触发客户端 gc,序列化对象很大耗时较长,网络传输压力较大,反序列化对象很大导致耗时较长,服务器端 gc 导致耗时较长。

    • 服务端处理请求 10077ms,此过程是纯粹的服务器端处理请求的时间,不包含其他时间。

    • 客户端收到响应 3002ms,因为设置了3s超时,超时后服务器端直接返回超时,但是服务器端还是在继续处理。如果这个耗时较长,跟客户端发出请求类似排查。

展开
收起
猫饭先生 2017-10-26 10:35:23 1908 分享 版权
阿里云 AI 助理回答

在分布式系统中,通过调用链详情(Trace Details)来深入分析特定调用链路的性能与异常至关重要。以下是如何利用阿里云ARMS(应用实时监控服务)进行调用链查询与分析的详细步骤,以及如何理解调用链数据中的关键信息:

1. 访问调用链路查询页面

  • 登录ARMS控制台
  • 导航至应用监控 > 调用链路查询,并选择目标地域。

2. 查询具体调用链

  • 在查询页面,根据需求选择参数类型,如TraceId,在参数值中输入具体的TraceId后,添加到查询条件
  • 点击TraceID名称进入调用链路页面,这里会展示包括应用名称、日志产生时间、状态(异常或正常)、IP地址、调用类型、接口名称及时间轴等关键信息。

3. 分析耗时与异常

  • 客户端发出请求阶段耗时涉及序列化、网络传输和反序列化。若此阶段耗时长,可能原因包括客户端GC活动、大对象序列化耗时、网络延迟或服务器端处理慢导致的响应等待。
  • 服务端处理请求时间(例如示例中的10077ms)是服务器执行业务逻辑的直接耗时,不包含网络传输等外部因素。
  • 客户端收到响应阶段,如果耗时较长且已知有超时设置,说明客户端在等待响应过程中达到了超时阈值,尽管服务器仍在继续处理请求。

4. 深入分析与定位

  • 使用错/慢Trace分析功能,可以识别出导致错误或缓慢的关键特征,比如特定接口或IP地址频繁出现问题,这有助于快速定位故障点。
  • 通过单击Span名称,可过滤并下钻到特定的Trace,进一步查看相关Span的详细信息,包括调用类型占比、消耗总时间等。

5. 全量实时分析

  • 若需对特定采样比例的数据进行全量实时分析,可在调用链分析页面开启此功能,并选择分析的时间段。

注意事项

  • 调用链详情主要关注远程调用,本地方法调用通常不在其范围内,对于这部分的性能监控和异常排查,建议结合业务日志进行。
  • 利用OpenAPI如GetTrace接口,可以通过编程方式获取详细的调用链信息,便于自动化分析和故障排查。

综上所述,调用链详情是诊断分布式系统中性能瓶颈和异常的有效工具,通过细致分析各阶段耗时与异常情况,结合ARMS提供的多种分析手段,可以高效定位并解决系统中的问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答