GitHub 标星 25k:阿里开源的 Java 诊断工具


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/
[1] https://www.jianshu.com/p/95449939cca3
[2] https://github.com/alibaba/arthas
最后,防止找不到本篇文章,可以收藏点赞,方便翻阅查找。欢迎关注公众号 逛逛GitHub(ggGithub),进群请后台联系我。
推荐阅读
1. Nginx 可视化配置神器
2. B站,牛啊。
3. 这俩 AI 项目贼有意思
4. GitHub 上的摸鱼神器
到顶部