About this project

Arthas is an open-source Java diagnostic tool from Alibaba. Its stated purpose is to let developers troubleshoot production issues in Java applications without changing code or restarting servers. The README describes it as an observer that does not suspend existing threads, addressing the common problem that production environments are often inaccessible from local development setups and that remote IDE debugging or added logging is slow or risky. Key capabilities listed in the README include: checking whether a class is loaded and where it is loaded from (useful for jar conflicts); decompiling classes; viewing classloader statistics such as counts, hierarchy and possible leaks; inspecting method invocation details including parameters, return values and thrown exceptions; viewing stack traces of a specified method invocation; tracing method invocations to find slow sub-invocations; monitoring method statistics such as QPS, response time and success rate; monitoring system metrics, thread states, CPU usage and GC statistics; an interactive command-line mode with auto-completion; telnet and websocket access for local and remote diagnostics via command line or browser; profiler/flame graph support; retrieving heap objects that are instances of a specified class; and support for JDK 8+ in version 4.x, including JDK 17, 21 and 25, on Linux, Mac and Windows. Installation options shown are the recommended arthas-boot.jar started with java, or a one-line install script that downloads as.sh on Linux, Unix and Mac. Documentation links cover the user manual, installation, download, quick start, advanced usage, commands, web console, Docker, the Spring Boot starter, user cases, FAQ, contribution guide and release notes. Feature examples in the README demonstrate the dashboard, thread (ranking threads by CPU usage), jad (decompilation), mc (in-memory compilation of .java to .class), retransform (hot-swapping loaded classes), sc (searching loaded classes with detailed metadata), vmtool (getting heap instances of a class), stack (viewing a method's call stack), trace (finding slow method invocations), watch (observing parameters and exceptions under conditions), monitor (periodic invocation statistics), tt/time tunnel (recording invocation data for later inspection), classloader (listing classloaders and loaded class counts), the web console, and profiler/flame graph output. The README also notes more than 120 registered users and lists derivative projects such as Bistoury, plus credits to projects including bytekit, greys-anatomy, termd, crash, cli, a memory compiler, Apache Commons Net and async-profiler.