Dashboard
While the CLI is great for quick checks, sometimes you need to watch what's happening over time. That's where the Argus Agent comes in. Attach it to your JVM, and you get a real-time web dashboard that shows you everything.
Starting the Dashboard
Add the -javaagent flag when starting your application:
java -javaagent:argus-agent.jar \
-Dargus.gc.enabled=true \
-Dargus.cpu.enabled=true \
-Dargus.allocation.enabled=true \
-jar your-application.jar
Open http://localhost:9202/ in your browser and you'll see the dashboard immediately. No configuration files, no external services, no database.
Argus Dashboard — real-time JVM monitoring with GC, CPU, memory, and thread analysis
What the Dashboard Shows
The dashboard is organized in a JVM-health-first layout. When you're responding to an incident, you look at the most critical metrics first:
Memory & GC
Heap usage over time, GC pause timeline, GC cause distribution, overhead percentage. See immediately if GC is your bottleneck.
CPU Utilization
JVM and system CPU load plotted over the last 60 seconds. Spot CPU spikes and correlate them with GC pauses.
Allocation & Metaspace
Object allocation rate, peak rate, top allocating classes, metaspace growth rate. Detect memory pressure before it becomes an OOM.
Profiling & Contention
CPU hot methods, lock contention hotspots, interactive flame graph. Find exactly which code paths are consuming resources.
Virtual Threads
Thread creation rate, active count, pinning detection with stack traces, carrier thread distribution. Java 21+ only.
Recommendations
Auto-generated insights from cross-correlating GC, CPU, memory, and thread metrics. The dashboard tells you what to investigate.
Interactive Console
The dashboard includes an interactive console at /console.html where you can run diagnostic commands directly in the browser. Click a command button, watch the typing animation, and see the results — all without leaving the dashboard.
Configuration Options
Production tip: Start with just gc and cpu enabled. These have negligible overhead. Enable allocation, profiling, and contention only when actively investigating — they generate more JFR events and use more memory.
| Property | Default | Description |
|---|---|---|
argus.server.port | 9202 | Dashboard HTTP port |
argus.gc.enabled | true | GC event collection |
argus.cpu.enabled | true | CPU load sampling |
argus.allocation.enabled | false | Object allocation tracking (higher overhead) |
argus.profiling.enabled | false | CPU method profiling (higher overhead) |
argus.contention.enabled | false | Lock contention monitoring |
argus.metaspace.enabled | true | Metaspace usage tracking |
argus.metrics.prometheus.enabled | true | Prometheus metrics endpoint at /prometheus |
For the full set of agent properties and CLI flags, see the configuration reference. For framework-native auto-configuration, see Spring Boot integration.