java线上诊断工具_阿里开源Java 线上诊断工具 Arthas——使用示例

摘要

功能

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?

我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?

遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?

线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!

是否有一个全局视角来查看系统的运行状况?

有什么办法可以监控到JVM的实时运行状态?

参考及命令文档

使用示例

环境安装

trace命令(追踪某个方法的执行耗时情况,支持多方法,时间过滤)

这个命令用来追踪方法的执行性能,支持按照时间过滤,更详细的参考官方文档 trace命令

正常单层跟踪调用链路

命令:

trace com.zero.secret.web.controller.AlbumController home

效果:

java线上诊断工具_阿里开源Java 线上诊断工具 Arthas——使用示例_第1张图片 结果里面,第一列是该方法的耗时,第二列是具体的方法,第三列是 代码所在的行号

筛选时间

有时候方法内的方法太多,可以根据时间过滤,筛选出超哥某个时间的方法。命令如下:

trace com.zero.secret.web.controller.AlbumController home '#cost > 10'

带上时间过滤测试的没有效果,下次再试试。

深层次跟踪调用链路

trace命令只能跟踪一层,如果想要跟踪更深层的方法,可以用多方法。

trace -E com.zero.secret.web.controller.AlbumController|com.zero.secret.dal.mapper.AlbumMapper home|selectByPrimaryKey

java线上诊断工具_阿里开源Java 线上诊断工具 Arthas——使用示例_第2张图片

注意:

trace本身是有耗时的,这里面显示的耗时没有减去trace本身的耗时

你可能感兴趣的:(java线上诊断工具)