explaingit

alibaba/arthas

📈 Trending37,311JavaAudience · developerComplexity · 3/5ActiveLicenseSetup · moderate

TLDR

Live debugging tool for running Java applications. Inspect code, trace methods, and diagnose performance issues in production without stopping or restarting the service.

Mindmap

mindmap
  root((Arthas))
    What it does
      Decompile live code
      Trace method calls
      Monitor threads
      Inspect memory
    How it works
      Java agent injection
      CLI interface
      Web console access
    Use cases
      Find slow methods
      Verify deployments
      Debug exceptions
      Check jar versions
    Tech stack
      Java
      JVM agent
    Audience
      Backend engineers
      DevOps teams
      SREs

Things people build with this

USE CASE 1

Diagnose why a production Java service is running slowly without taking it offline.

USE CASE 2

Verify that a recently deployed class is the correct version in a running application.

USE CASE 3

Trace which method is throwing an exception by inspecting live call stacks and parameters.

USE CASE 4

Monitor garbage collection and memory usage to identify memory leaks in production.

Tech stack

JavaJVM

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a running Java application with JVM agent attachment or startup configuration.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice and license text.

In plain English

Arthas is a Java diagnostic tool from Alibaba that lets you inspect and troubleshoot a running Java application without stopping it, restarting it, or modifying its code. The core problem it solves is the difficulty of debugging production issues: production environments typically cannot be paused or attached to a debugger, and adding log statements requires a full redeploy cycle. Arthas attaches to an already-running Java process and gives you live visibility into what it is doing. Arthas works by injecting a Java agent into the target JVM (Java Virtual Machine, the runtime that executes Java programs). Once attached, it gives you an interactive command-line interface where you can decompile classes to see what code is actually running in production, trace method calls to find which one is slow, view method parameters and return values in real time, check which threads are consuming the most CPU, inspect classloader hierarchies to diagnose jar version conflicts, monitor system metrics like garbage collection and memory usage, and even patch a running class without redeployment. It supports both local access via a terminal and remote access via a web browser console. You would use Arthas when a production Java service is behaving unexpectedly and you need to diagnose it without taking the service offline, for example, tracking down an intermittent slowdown, verifying that a recently deployed class is the expected version, or finding which code path is throwing an exception. It runs on Java 6 through current versions and supports Linux, macOS, and Windows. The tech stack is Java, and it installs by downloading a single jar file and running it with the java command.

Copy-paste prompts

Prompt 1
How do I use Arthas to attach to a running Java process and decompile a class to see what code is actually executing?
Prompt 2
Show me how to trace method calls in Arthas to find which method is causing a performance bottleneck in production.
Prompt 3
How can I use Arthas to inspect method parameters and return values in real time without restarting my Java application?
Prompt 4
What's the command in Arthas to check which threads are consuming the most CPU and why?
Prompt 5
How do I access Arthas remotely via a web browser console instead of using the local terminal?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.