Argus v1.0.0
50 CLI commands. Production-ready JVM diagnostics.
Killer Features
| Command | Description |
|---|---|
argus doctor <pid> |
One-click JVM health diagnosis with 8-rule engine + tuning recommendations |
argus gclog <file> |
GC log analysis with pause distribution + tuning (GCEasy alternative) |
argus flame <pid> |
One-shot flame graph β HTML β browser open |
argus watch <pid> |
Real-time terminal dashboard (htop for JVM) |
argus tui [pid] |
k9s-style interactive terminal UI β browse all 50 commands |
argus ci <pid> |
CI/CD health gate with GitHub annotations + exit codes |
argus suggest <pid> |
JVM flag optimization by workload (web/batch/streaming) |
argus compare <pid1> <pid2> |
Side-by-side JVM comparison with delta % |
argus slowlog <pid> |
Real-time slow method detection via JFR streaming |
Architecture
- DiagnosticCommand SPI β ServiceLoader-based pluggable command system
- CommandRegistry β auto-discovery, zero registration code
- RouteTable β declarative HTTP routing for dashboard
- JLine3 β proper terminal handling for TUI
Critical Fixes (since v0.9.0)
doctor/suggest/watchnow properly diagnose target PID via jcmd (was diagnosing self)- jcmd errors propagated to user with helpful messages (was silently swallowed)
- GC log parser: streaming (handles multi-GB), ZGC + Shenandoah support
suggest: classpath-based framework detection (was 3 if-statements)watch: shutdown hook for terminal restore, Windows safety- TUI: arrow key handling fixed
- VERSION read from JAR manifest (never drifts)
Infrastructure
- Docker:
docker run --pid=host ghcr.io/rlaope/argus doctor - GitHub Action: CI/CD JVM health checks with
--format=github-annotations - 125 unit tests passing
Breaking Changes
- CLI requires Java 21+ to run (diagnoses any JVM 11+)
- Version numbering: 0.8.0 β 1.0.0 (no intermediate releases)
What's Changed
- refactor: introduce DiagnosticCommand SPI for pluggable command architecture by @rlaope in #55
- refactor: migrate legacy commands to SPI + RouteTable by @rlaope in #56
- refactor: bridge CLI commands with core CommandGroup SPI by @rlaope in #57
- feat: argus doctor β one-click JVM health diagnosis with recommendations by @rlaope in #65
- feat: argus gclog β GC log analysis with tuning recommendations by @rlaope in #66
- feat: argus flame β one-shot flame graph with browser open by @rlaope in #67
- feat: argus watch β real-time terminal dashboard (htop for JVM) by @rlaope in #68
- feat: argus suggest β JVM flag optimization by @rlaope in #69
- fix: code review fixes (deprecated API, resource leak) by @rlaope in #70
- fix: code review round 2 (CRITICAL sparkline bug, HIGH injection fix) by @rlaope in #71
- docs: sync to 47 commands + killer features in README by @rlaope in #72
- docs: detailed documentation for doctor, gclog, flame, watch, suggest by @rlaope in #73
- feat: HTML export + on-demand profiling API by @rlaope in #74
- fix(critical): doctor/suggest/watch now diagnose target PID by @rlaope in #89
- fix(high): GcLogParser streaming + ZGC/Shenandoah support by @rlaope in #90
- fix(high): suggest workload detection β classpath-based framework detection by @rlaope in #91
- fix(high): watch terminal β shutdown hook + Windows safety by @rlaope in #93
- feat: argus tui β k9s-style interactive terminal UI by @rlaope in #94
- feat: argus ci β CI/CD health gate with exit codes by @rlaope in #95
- feat: argus compare β side-by-side JVM comparison by @rlaope in #96
- feat: argus slowlog β real-time slow method detection by @rlaope in #97
- feat: Dockerfile + GitHub Actions for Docker image by @rlaope in #98
- feat: GitHub Action for CI/CD JVM health checks by @rlaope in #99
- docs: final overhaul β 50 commands, Docker, CI/CD by @rlaope in #100
- test+fix: 30+ tests for core features + hardened doctor rules by @rlaope in #101
- fix: critical UX fixes for v1.0.0 by @rlaope in #102
Full Changelog: v0.9.0...v1.0.0