arthas
alibaba/arthas
Alibaba Java Diagnostic Tool Arthas
Overview
Arthas is an open-source diagnostic tool for troubleshooting production issues in Java applications without modifying code or restarting servers.
Categories
Tags
Similar tools
ECC
affaan-m/ECC
The agent harness performance optimization system
AutoGPT
Significant-Gravitas/AutoGPT
AutoGPT: Build, Deploy, and Run AI Agents
prompts.chat
f/prompts.chat
The world's largest open-source prompt library for AI
JavaGuide
Snailclimb/JavaGuide
Snailclimb/JavaGuide: 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
browser-use
browser-use/browser-use
🌐 Make websites accessible for AI agents. Automate tasks online with ease.
caveman
JuliusBrussee/caveman
Cuts 65% of tokens in AI coding agent responses.
Install
git clone https://github.com/alibaba/arthasREADME
Arthas
Arthas is a Java Diagnostic tool open sourced by Alibaba.
Arthas allows developers to troubleshoot production issues for Java applications without modifying code or restarting servers.
中文说明/Chinese Documentation
Background
Often times, the production system network is inaccessible from the local development environment. If issues are encountered in production systems, it is impossible to use IDEs to debug the application remotely. More importantly, debugging in production environment is unacceptable, as it will suspend all the threads, resulting in the suspension of business services.
Developers could always try to reproduce the same issue on the test/staging environment. However, this is tricky as some issues cannot be reproduced easily on a different environment, or even disappear once restarted.
And if you're thinking of adding some logs to your code to help troubleshoot the issue, you will have to go through the following lifecycle; test, staging, and then to production. Time is money! This approach is inefficient! Besides, the issue may not be reproducible once the JVM is restarted, as described above.
Arthas was built to solve these issues. A developer can troubleshoot your production issues on-the-fly. No JVM restart, no additional code changes. Arthas works as an observer, which will never suspend your existing threads.
Key features
- Check whether a class is loaded, or where the class is being loaded. (Useful for troubleshooting jar file conflicts)
- Decompile a class to ensure the code is running as expected.
- View classloader statistics, e.g. the number of classloaders, the number of classes loaded per classloader, the classloader hierarchy, possible classloader leaks, etc.
- View the method invocation details, e.g. method parameter, return object, thrown exception, and etc.
- Check the stack trace of specified method invocation. This is useful when a developers wants to know the caller of the said method.
- Trace the method invocation to find slow sub-invocations.
- Monitor method invocation statistics, e.g. qps, rt, success rate and etc.
- Monitor system metrics, thread states and cpu usage, gc statistics, and etc.
- Supports command line interactive mode, with auto-complete feature enabled.
- Supports telnet and websocket, which enables both local and remote diagnostics with command line and browsers.
- Supports profiler/Flame Graph
- Support get objects in the heap that are instances of the specified class.
- Supports JDK 8+ in version 4.x, including JDK 17, JDK 21, and JDK 25.
- Supports Linux/Mac/Windows.
Online Tutorials(Recommended)
Quick start
Use arthas-boot(Recommended)
Downloadarthas-boot.jar,Start with java command:
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
Print usage:
java -jar arthas-boot.jar -h
Use as.sh
You can install Arthas with one single line command on Linux, Unix, and Mac. Copy the following command and paste it into the command line, then press Enter to run:
curl -L https://arthas.aliyun.com/install.sh | sh
The command above will download the bootstrap script as.sh to the current directory. You can move it any other place you want, or put its location in $PATH.
You can enter its interactive interface by executing as.sh, or execute as.sh -h for more help information.