阿里开源的 Java 诊断工具:Arthas

Arthas 是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱,在 GitHub 上已经有 25.6K Star了。
这个诊断工具可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。为了方便程序员快手上手,该工具也提供了用户文档:

开源:https://github.com/alibaba/arthas

文档:https://arthas.aliyun.com/doc/

图片

当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决:
0. 这个类从哪个 jar 包加载的?
1. 为什么会报各种类相关的 Exception?
2. 我改的代码为什么没有执行到?
3. 难道是我没 commit?
4. 分支搞错了?
5. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
6. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
7. 是否有一个全局视角来查看系统的运行状况?
8. 有什么办法可以监控到JVM的实时运行状态?
9. 怎么快速定位应用的热点,生成火焰图?
Arthas支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
诊断工具可以以全局视角来查看系统的运行状况、健康状况。能反编译源码,查看 jvm 加载的是否为预期的文件内容。

可以查看某个方法的返回值,参数等,计算方法内调用路径及各方法调用耗时。还能够查看 jvm 运行状况以及外部 .class 文件重新加载到 jvm 里。

说几个你会经常遇到的场景,Arthas 便可派上用场:
当我们调用一个接口时,接口返回了异常信息。如果该异常信息没有清晰定位到某行代码,那么我们只能依靠大脑回忆代码,可能是哪里发生了错误,如果无法估计,一般情况下就会进入测试环境,模拟复现,费时费力。
再比如进行某个查询,耗时20s,我们想要分析一下到底是哪些代码导致的。但是该方法内部又穿插调用了其它业务功能方法,又不想手动嵌入代码的方式调试查找,因为这样容易遗漏、费力还费时。
而 arthas便可以为我们解决上述问题,该工具的使用教程和方法可以参考这个文档:
用户文档:https://arthas.aliyun.com/doc/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2565.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!