Skip to content

rlaope/Argus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

300 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Argus Logo

Argus

Build License Java GitHub stars

One CLI for all JVM diagnostics. 66 commands, zero agent required, works on Java 11+. The free alternative to GCEasy + jcmd + VisualVM combined โ€” GC analysis, health diagnosis, flame graphs, async-profiler integration, ZGC live monitoring, and CI/CD profile gates.


Quick Start

# Install (macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/rlaope/argus/master/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/rlaope/argus/master/install.ps1 | iex
argus doctor <pid>              # One-click JVM health diagnosis
argus zgc <pid>                 # ZGC live diagnosis (30s JFR capture + verdict)
argus profile <pid> --duration=30  # CPU/allocation profiling via async-profiler

Shell completions (bash, zsh, fish, PowerShell) are installed automatically.


JVM Harness

Continuous JVM monitoring + optimization + troubleshooting on top of Argus, available as a Claude Code plugin.

/plugin marketplace add https://github.com/rlaope/Argus
/plugin install argus-jvm-harness

CLI equivalent (no Claude Code required):

argus harness <pid>                          # 30-min trend-aware health watch
argus harness <pid> --profile=quick --duration=1m
argus harness <pid> --out=session.json --format=json

The harness samples on a fixed interval, runs the doctor rule set plus four trend rules (heap-leak regression, GC overhead trend, thread growth, pause-time regression), and produces a single session report with severity-ranked findings and JVM-flag suggestions.

Full reference: docs/harness.md


Why Argus?

  • 66 diagnostic commands โ€” heap, GC, threads, profiling, flame graphs, NMT, class loaders, and more. No agent required.
  • Live JVM attach โ€” attaches externally via jcmd/JMX; target JVM needs no restart and no -javaagent flag.
  • ZGC-aware โ€” argus zgc gives a HEALTHY/WARNING/UNHEALTHY verdict with allocation stall detection, cycle-overlap analysis, SoftMax breach detection, and diff-against-baseline in one command.
  • Virtual thread support โ€” JFR-based pinning detection, carrier-thread distribution, and virtual thread monitoring on Java 21+.

Full command reference: docs/cli-commands.md


Example: argus doctor <pid>

$ argus doctor 39113

โ•ญโ”€ Health Diagnosis โ”€โ”€ pid:39113 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                                              โ”‚
โ”‚  โœ…  Heap usage normal       41M / 256M  (16%)                               โ”‚
โ”‚  โœ…  GC overhead acceptable  0.3%                                            โ”‚
โ”‚  โœ…  No deadlocks detected                                                   โ”‚
โ”‚  โœ…  Thread count normal     29 threads                                      โ”‚
โ”‚  โš    Metaspace near limit   96.5% โ€” consider -XX:MaxMetaspaceSize           โ”‚
โ”‚  โš    Old Gen elevated        41.8% โ€” monitor for promotion pressure         โ”‚
โ”‚                                                                              โ”‚
โ”‚  Overall: WARN โ€” 2 recommendations                                           โ”‚
โ”‚                                                                              โ”‚
โ”‚  Tuning Tips                                                                 โ”‚
โ”‚  โ†’ Add -XX:MaxMetaspaceSize=256m to prevent unlimited growth                 โ”‚
โ”‚  โ†’ Run argus gclog <file> to analyze GC pressure over time                  โ”‚
โ”‚                                                                              โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Exit codes are machine-readable: 0 = healthy, 1 = warnings, 2 = critical.


Where to Learn More

Topic Doc
Installation, prerequisites, Java version compatibility docs/getting-started.md
All commands with output examples docs/cli-commands.md
Usage walkthroughs (agent, Spring Boot, ZGC, CI/CD, monitoring stack) docs/usage.md
Agent properties, flag tables, env vars docs/configuration.md
Module layout, SPI patterns, architecture diagrams docs/architecture.md
Build, commit, i18n, release procedures docs/contributing.md
Common errors and fixes docs/troubleshooting.md

Building from Source

./gradlew :argus-cli:fatJar

See docs/contributing.md for the full build, test, and release workflow.


License & Contributing

MIT License โ€” see LICENSE.

Contributions welcome โ€” bugs, features, docs, tests. See docs/contributing.md.

Maintainer: @rlaope

About

โœจ The best JVM observability, troubleshoot, and optimize. ๐Ÿš€ Unlock deep insights instantly via our dashboard, CLI and Harness. ๐Ÿ“Š

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages