定位、排查RT类错误需要对多项指标逐一排查,过程漫长且复杂。针对此类问题,ARMS应用监控提供主动诊断功能,帮助您快速准确地定位应用中RT类错误,进而解决应用响应时间过长问题。

背景信息

RT类错误可能是由下游应用响应时间太长、流量不均匀、FullGC过高、负载过高等原因导致。定位、排查RT类错误时,需要知道以下信息:

  • 导致本次RT突增的服务器。
  • 应用SQL耗时分析。
  • 检测应用的FullGC的次数、耗时是否有突增。
  • 是否存在内存泄漏。
  • 检测异常日志。
  • 检测下游应用的响应时间是否出现同样的趋势。

步骤一:安装探针

为您的应用安装ARMS探针后,ARMS将对应用进行全方位监控。请根据实际需求选择一种方式来安装探针。

步骤二:查看异常信息

为应用安装ARMS探针后,ARMS会收集和展示选定时间内应用的总请求量、平均响应时间、错误数、实时实例数、FullGC次数、慢SQL次数、异常次数和慢调用次数等指标。请按以下步骤查看应用的异常信息。

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

    应用列表页面,若应用存在异常,则状态栏显示为红色。

  2. 应用列表页面上,单击目标应用状态栏的红点。

    应用健康状态
  3. 关键事件页面查看异常详情信息。

    关键事件页面展示了该应用的响应时间、下游应用响应时间、平均响应时间的时序曲线、异常接口信息以及异常调用Top 5的TraceID。

    图 1. 关键事件
    应用关键事件

步骤三:诊断异常出现的原因

掌握应用异常的统计信息还不足以诊断异常出现的原因。可以通过SQL分析、链路追踪、接口快照等功能快速定位导致异常出现的具体原因。

  1. 关键事件页面单击依赖服务的名称,例如单击调用MYSQL。然后在概览页应用依赖服务区域查看下游应用详情。

    应用依赖服务区域展示了应用依赖服务的请求量、平均响应和应用实例数的时序曲线,以及HTTP-状态码统计等信息。在本示例中,下游服务响应时间达到1680 ms,可以判断应用RT突增是由下游应用RT突增导致的。

    图 2. 应用依赖服务详情
    应用依赖服务详情
  2. 返回关键事件页面,并在该页面单击对突变影响最大的接口,例如单击/xxxdata/...page,然后在/xxxdata/...page的接口详情页面单击SQL分析页签,查看接口信息。

    SQL分析页签中展示了SQL调用统计、SQL语句详情等信息,详情请参见SQL分析。在本示例中,可以判断下游服务的SQL调用太慢导致应用RT突增。

    图 3. SQL分析
    SQL分析
  3. 返回关键事件页面,并在该页面单击Top5耗时的一个TraceID,然后再单击方法栈列的放大镜图标,查看问题代码。

    若您需要查找目标调用链路,请参见调用链路查询

    在本示例中,可以看到在耗时为536 ms的调用中,大部分的时间都消耗在了SELECT t1.id As...这次SQL调用中。

    图 4. 调用链路信息
    调用链路信息

操作至此,您已发现了系统中的一个慢调用的原因,这将有效地帮助您进行下一步的代码优化工作。您还可以返回关键事件页面,查看列表中其他慢调用,逐一解决。

后续操作

为避免在出现问题后被动诊断错误原因,您还可以使用ARMS的报警功能针对一个接口或全部接口创建报警,即可在出现问题的第一时间向运维团队发送通知。

创建报警操作步骤请参见快速创建ARMS报警

更多信息