JVM Observability Platform GitHub

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.

PropertyDefaultDescription
argus.server.port9202Dashboard HTTP port
argus.gc.enabledtrueGC event collection
argus.cpu.enabledtrueCPU load sampling
argus.allocation.enabledfalseObject allocation tracking (higher overhead)
argus.profiling.enabledfalseCPU method profiling (higher overhead)
argus.contention.enabledfalseLock contention monitoring
argus.metaspace.enabledtrueMetaspace usage tracking
argus.metrics.prometheus.enabledtruePrometheus 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.