线上问题诊断工具Arthas

是什么

Arthas 是 Alibaba 开源的 Java 诊断工具

能解决什么问题

  1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  2. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  3. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  4. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  5. 是否有一个全局视角来查看系统的运行状况?
  6. 有什么办法可以监控到 JVM 的实时运行状态?
  7. 怎么快速定位应用的热点,生成火焰图?

如何使用

安装

首先启动你的 java 应用程序, 这一点要注意

1
2
3
4
5
6
curl -O https://arthas.aliyun.com/arthas-boot.jar

java -jar arthas-boot.jar

# 如果下载速度慢可以使用 aliyun 镜像
java -jar arthas-boot.jar --repo-mirror aliyun --use-http

运行上面命令会让你选择代理的应用, 输入应用前面的序号并回车, 开始下载 arthas, 可以看到 arthas 下载到了 /Users/zhanghao/.arthas/lib/3.4.6/arthas 下, 日志会存储在 /Users/zhanghao/logs