← All open source projects

Arthas

alibaba/arthas

Arthas is a Java diagnostics tool for running applications.

Forks 7,629
Author alibaba
Language Java
License Apache-2.0
Synced 2026-06-27

What it is

Arthas is a diagnostics tool for Java applications. It became noticeable in the Java community by making it possible to inspect behavior in an already running application.

Bugs in a running Java service are not always reproducible locally, while restarts or adding logs can be expensive. The project is easiest to understand through concrete scenarios: which work it takes over, where it saves time, and which conditions make the result reliable.

In practical terms, Arthas is more than a set of source files. Arthas helps investigate Java applications without stopping the process: classes, methods, call stacks, parameters, latency, and runtime behavior. That gives quick context: this is a project that turns a common problem into a clear product or engineering layer.

What is inside

The repository contains Java tool code, diagnostic commands, attach agents, documentation, tests, and examples.

Arthas attaches to a running JVM process and provides commands for observing code, methods, and application state. This structure matters because it shows why the project can be studied, extended, and tested against a real task.

The main technical layer of the repository is connected with Java. For developers, this is a useful hint about where the core implementation lives, what dependencies to expect, and how hard the code will be to read.

Where it is useful

It is used for investigating bugs, latency, strange parameters, classloader issues, and service behavior under load.

A safe start is observation-only commands, while understanding the impact of diagnostics on the running process.

The first practical run is best done on a small but real task. That quickly shows where Arthas helps immediately, which settings need adjustment, and which parts of the project are unnecessary for the specific case.

Why it stands out

The strength is fast access to the real state of a Java application.

It stands out because live Java-service diagnostics often need tools deeper than normal logs.

Interest in projects like this usually appears when a team is tired of solving the same problem manually. Bugs in a running Java service are not always reproducible locally, while restarts or adding logs can be expensive. When a tool addresses that pain clearly, it spreads through real usage rather than polished description alone.

Limits

The limitation is that powerful commands require caution and process access rights.

Teams should document allowed commands, access levels, and usage scenarios for different environments.

Open source should not be romanticized: even a strong project is still a dependency that must be updated, understood, and sometimes debugged. If Arthas enters a working system, usage, update, and rollback rules should be explicit.

Example

Safe Arthas start

This example shows observation commands commonly used at the beginning of diagnostics.

Language: Bash
dashboard
thread
jad com.example.Service
watch com.example.Service method '{params, returnObj}' -x 2