初探Arthas

基础理论篇学习笔记

Arthas(阿尔萨斯) 能为你做什么?

arthas

Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。

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

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

Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

快速入门

1
2
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar

打印帮助信息

1
java -jar arthas-boot.jar -h

快速启动(使用国内阿里下载包)

1
java -jar arthas-boot.jar --repo-mirror aliyun

  • 如果当前没有java程序运行则提示这个内容,并且不会被正常启动。

demo程序作为演示

1
https://github.com/hengyunabc/spring-boot-inside
  • 运行效果

我们先运行一个demo,然后让arthas运行起来。

1
2
3
4
5
6
7
cd spring-boot-inside // 进入文件夹

cd demo-arthas-spring-boot // 进入demo项目

mvn clean install // 构建项目

java -jar demo-arthas-spring-boot-0.0.1-SNAPSHOT.jar // 启动项目

启动项目之后在运行arthas

1
java -jar arthas-boot.jar

如果已经有启动的项目,会提示 [1] project-name 这种。输入数字选择对应的项目即可。

END