文档

通过错/慢调用链排查应用产生异常的原因

更新时间:

在生产环境中,引发应用异常(如耗时突增、错误率突增)的原因有很多,常见的包括流量不均、单机故障、程序异常和依赖组件故障等。在新应用上线或大促备战前通常建议做一次系统性的性能调优,分析当前系统存在哪些性能瓶颈,梳理出常出错的或耗时较高的接口和组件进行优化。本文介绍如何使用ARMS调用链分析的错/慢Trace分析功能,定位系统或应用产生错、慢调用的原因,帮助您排查问题、定位系统性能瓶颈。

前提条件

已切换至新版控制台。

image

体验Demo

ARMS控制台Demo

通过错Trace分析功能排查错调用根因

步骤一:定位错调用发生时间

  1. 登录ARMS控制台,在左侧导航栏选择应用监控 > 应用列表

  2. 应用列表页面顶部选择目标地域,然后单击目标应用名称。

    说明

    语言列显示Java图标图标的应用为接入应用监控的应用,显示-图标的应用为接入可观测链路 OpenTelemetry 版的应用。

  3. 在上方导航栏单击调用链分析

    可以发现mall-gateway应用在18:20~18:27时间段出现了一些HTTP错误的调用。

    image

  4. 修改查询时间段为HTTP错误发生的时间,开始排查问题。

    image

步骤二:定位错误调用所在的接口或组件

错/慢Trace分析页签,可以发现错Trace主要集中在/components/api/v1/mall/product接口上,以及IP为10.0.0.5010.0.0.37的主机上,依次排查对应接口和IP。

image

排查/components/api/v1/mall/product接口

  1. serviceName="mall-gateway" AND spanName="/components/api/v1/mall/product"设置为筛选条件。

    可以发现/components/api/v1/mall/product接口的错误调用几乎全在10.0.0.50、10.0.0.37和10.0.0.47这3个IP中,且经过这些IP的调用链全都出错了。

    image

  2. serviceName="mall-gateway" AND spanName="/components/api/v1/mall/product" AND ip="10.0.0.50"设置为筛选条件。

    可以发现,在该筛选条件下,每一次调用都是错误调用,这说明在主机10.0.0.50中,mall-gateway应用的/components/api/v1/mall/product接口在该时段确实出现了异常。

    image

    列表页签,单击任意Trace右侧的详情,可以查看错误详情。

    image

  3. 分别将serviceName="mall-gateway" AND spanName="/components/api/v1/mall/product" AND ip="10.0.0.37"serviceName="mall-gateway" AND spanName="/components/api/v1/mall/product" AND ip="10.0.0.47"设置为筛选条件。

    同样可以发现,在对应筛选条件下,每一次调用都是错误调用。

    image

    列表页签,单击任意Trace右侧的详情,确认错误详情。

排查IP为10.0.0.50和10.0.0.37的主机

在上一步排查/components/api/v1/mall/product接口时就可以发现10.0.0.50和10.0.0.37主机有问题,但仍可以参考以上步骤继续排查。

分别将serviceName="mall-gateway" AND ip ="10.0.0.50"serviceName="mall-gateway" AND ip ="10.0.0.37"设置为筛选条件,并下钻分析,最终可以发现错误Trace同样指向了/components/api/v1/mall/product接口,并且这些错误都是500错误。

image

通过慢Trace分析功能梳理慢接口

步骤一:定位错调用发生时间

  1. 登录ARMS控制台,在左侧导航栏选择应用监控 > 应用列表

  2. 应用列表页面顶部选择目标地域,然后单击目标应用名称。

    说明

    语言列显示Java图标图标的应用为接入应用监控的应用,显示-图标的应用为接入可观测链路 OpenTelemetry 版的应用。

  3. 在上方导航栏单击调用链分析

    可以发现mall-user-server应用在15:40~15:49时间段存在许多5s以上的慢调用。

    image

  4. 修改查询时间段为慢调用发生的时间,并在错/慢Trace分析页签修改耗时对比临界值为5000ms,开始排查问题。

步骤二:定位慢调用所在的接口或组件

错/慢Trace分析页签,可以发现慢Trace主要集中在/components/api/v1/local/success/components/api/v1/http/success接口上,以及IP为10.0.0.44的主机上,依次排查对应接口和IP。

image

排查/components/api/v1/local/success接口

serviceName="mall-user-server" AND spanName="/components/api/v1/local/success"设置为筛选条件。

可以发现,在该筛选条件下,每一次调用耗时都大于5s,/components/api/v1/local/success接口即为慢调用根因。

image

耗时百分位区域同样可以发现调用平均耗时大于5s。

image

排查/components/api/v1/http/success接口

serviceName="mall-user-server" AND spanName="/components/api/v1/http/success"设置为筛选条件。

可以发现,在该筛选条件下,每一次调用耗时都大于5s,/components/api/v1/http/success接口也是一个慢接口。

image

耗时百分位区域同样可以发现调用平均耗时大于5s。

排查IP为10.0.0.44的主机

serviceName="mall-user-server" AND ip="10.0.0.44"设置为筛选条件。

可以发现,在该筛选条件下,慢Trace的也指向了/components/api/v1/http/success接口,结合对/components/api/v1/http/success接口的排查,可以推断接口部署在10.0.0.44主机上的/components/api/v1/http/success接口出现了一些异常。

您还可以通过serviceName="mall-user-server" AND ip="10.0.0.44" AND spanName="/components/api/v1/http/success"筛选条件继续下钻分析。

image

  • 本页导读 (1)
文档反馈