告别诊断烦恼 | 应用实时监控 ARMS 上线智能和实时诊断功能

为何要作这个功能?

做为一款应用性能监控产品,咱们一般会给用户展现两类数据:java

  • 第一种是统计数据:用户经过使用统计数据设置报警(好比应用响应时间大于2s),缩小问题范围(好比报警时间范围内,是哪个接口响应时间最长)。
  • 第二种是明细数据:用户经过统计值确认了特征之后,能够具体查看一个缓慢请求的执行过程,确认具体缓慢的方法或者慢SQL.

在用户实际使用过程当中,咱们发现实际上用户并不会按照咱们预想的状况使用,经常是以下两种状况:服务器

  • 因为ARMS提供了至关丰富的指标和维度,且用户对于产品不熟悉,当出现应用响应时长等性能问题时,用户不知道如何继续分析问题。
  • 基于性能开销的考虑,咱们的明细数据不是全量上报的(默认10%采样,可调),有可能用户最缓慢的请求咱们没有上报。

为了解决这两个问题,咱们通过两个月的迭代,隆重推出了 智能和实时诊断功能。性能

智能诊断:

经过以应用的响应时间突增做为抓手,咱们会帮助用户,依次作六项体检:url

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

通过“三堂会审”,主动的把与此次性能问题相关的 全部检查结果 呈现给您,让您一分钟内发现系统中发生了什么事情。spa

举个例子:
某应用发现RT突增到4s多线程

经过主动诊断,准确的抓到了本次异常,主动诊断发现java.util.concurrent.TimeoutException异常的统计指标和RT异常相似。日志

点击异常,直接跳转到异常诊断界面,发现异常在同一时刻突增,而且把异常栈和上下文给打印出来了。blog

实时诊断:

当您须要密切监控一小段时间内的应用性能时,例如发布应用时,或者应用出现问题时,您能够使用 ARMS 应用监控的实时诊断功能。开启实时诊断后,ARMS 应用监控会持续监控应用 5 分钟,并在此期间经过来一条上报一条的方式(延时在秒级),实时全量的上报调用链数据。接下来,您就能以出现性能问题的调用链路为抓手,经过方法栈瀑布图和线程剖析等功能定位问题缘由。接口

接下来来咱们还会继续补足智能分析的场景和数据源,但愿当 响应时间/错误率 出现问题时,能让用户经过ARMS尽量的缩短定位和解决问题的时间,让天下没有难解的性能问题。内存

原文连接 本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索