alibaba /arthas
Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas
★ 37,614⑂ 7,642👁 1,096⑃ 1,012● 2,167▤ 79◈ 32
37,614
stars
+1+11+38
7,642
forks
1,096
watchers
1,012
prs
2,167
issues
79
releases
32
discussions
README
Arthas
!arthas
!license
English version goes here.
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
0. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
0. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
0. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
0. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
0. 是否有一个全局视角来查看系统的运行状况?
0. 有什么办法可以监控到JVM的实时运行状态?
0. 怎么快速定位应用的热点,生成火焰图?
0. 怎样直接从JVM内查找某个类的实例?
Arthas 4.x 支持 JDK 8+,包括 JDK 17、JDK 21 和 JDK 25,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
快速开始
使用arthas-boot(推荐)
下载arthas-boot.jar,然后用java -jar的方式启动:
bash
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
打印帮助信息:
bash
java -jar arthas-boot.jar -h
如果下载速度比较慢,可以使用 aliyun 的镜像:java -jar arthas-boot.jar --repo-mirror aliyun
使用as.sh
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:
bash
curl -L https://arthas.aliyun.com/install.sh | sh
上述命令会下载启动脚本文件 as.sh 到当前目录,你可以放在任何地方或将其加入到 $PATH 中。
直接在shell下面执行./as.sh,就会进入交互界面。
也可以执行./as.sh -h来获取更多参数信息。
文档
用户文档
安装
下载
快速入门
进阶使用
命令列表
WebConsole
Docker
Arthas Spring Boot Starter
用户案例
FAQ/常见问题
编译调试/参与贡献
Release Notes
QQ群/钉钉群
案例展示
Dashboard
https://arthas.aliyun.com/doc/dashboard
!dashboard
Thread
https://arthas.aliyun.com/doc/thread
一目了然的了解系统的状态,哪些线程比较占cpu?他们到底在做什么?
$ thread -n 3
"as-command-execute-daemon" Id=29 cpuUsage=75% RUNNABLE
at sun.management.ThreadImpl.dumpThreads0(Native Method)
at sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:440)
at com.taobao.arthas.core.command.monitor200.ThreadCommand$1.action(ThreadCommand.java:58)
at com.taobao.arthas.core.command.handler.AbstractCommandHandler.execute(AbstractCommandHandler.java:238)
at com.taobao.arthas.core.command.handler.DefaultCommandHandler.handleCommand(DefaultCommandHandler.java:67)
at com.taobao.arthas.core.server.ArthasServer$4.run(ArthasServer.java:276)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Number of locked synchronizers = 1
- java.util.concurrent.ThreadPoolExecutor$Worker@6cd0b6f8
"as-session-expire-daemon" Id=25 cpuUsage=24% TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at com.taobao.arthas.core.server.DefaultSessionManager$2.run(DefaultSessionManager.java:85)
"Reference Handler" Id=2 cpuUsage=0% WAITING on java.lang.ref.Reference$Lock@69ba0f27
at java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.Reference$Lock@69ba0f27
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
jad
https://arthas.aliyun.com/doc/jad
对类进行反编译:
java
$ jad javax.servlet.Servlet
ClassLoader:
+-java.net.URLClassLoader@6108b2d7
+-sun.misc.Launcher$AppClassLoader@18b4aac2
+-sun.misc.Launcher$ExtClassLoader@1ddf84b8
Location:
/Users/xxx/work/test/lib/servlet-aTop issues
#111Wanted: who's using Arthas/您在使用Arthas吗?221 comments · 2018-09-20#536Arthas 4.0计划22 comments · 2019-02-20#1168Support html view for WebUI17 comments · 2020-05-13#393Arthas源码分析15 comments · 2018-12-20#1874在k8s 临时容器 ephemeral container里 attach 问题14 comments · 2021-07-28#1269Enhance error! exception: java.lang.NoClassDefFoundError: class names don't match14 comments · 2020-06-19#2720trace spring intercept时不能正常工作12 comments · 2023-11-06#2849Proposal: 表达式体验优化与引擎更换11 comments · 2024-06-18
Discussions
#3214ccline — 在 zsh shell 中使用 AI,适合 Java 开发者0 comments · 2026-06-10#3169Arthas MCP Server这个功能非常不错0 comments · 2026-04-09#3036redefine热更新类型转换问题0 comments · 2025-06-28#3035Arthas 会有线程安全问题吗?0 comments · 2025-06-25#2935执行完某个命令后,执行ctrl+c会调用哪段代码0 comments · 2024-11-05#2907trace 命令如何设置自动打印request中的指定属性0 comments · 2024-09-19#2906arthas 如何获取request属性1 comments · 2024-09-19#2901在 java-1.8.0-openjdk-1.8.0.412 这个openJDK环境下 不能执行吗0 comments · 2024-09-14
Latest release
arthas-all-4.3.5 arthas-all-4.3.5 2026-08-31变更概览 - fix: 将 fastjson2 从 2.0.58 升级到 2.0.64,引入 AutoType 加固及解析器 OOM/DoS 修复,见 3261 - docs: 新增 Kubernetes 临时调试容器与 sidecar 跨容器 attach 指南 - docs: 新增中英文复杂 OGNL 表达式指南,并从相关命令与 API 文档统一链接,见 3262 - chore: 清理 CLI、README、Web Console 与站点文档中已失效的在线教程入口,见 3263 对比 - https://github.com/alibaba/arthas/compare/arthas-all-4.3.4...arthas-all-4.3.5