Skip to content

Conversation

@rlaope
Copy link
Owner

@rlaope rlaope commented Jan 26, 2026

Summary

  • Add GC monitoring via jdk.GarbageCollection and jdk.GCHeapSummary JFR events
  • Add CPU monitoring via jdk.CPULoad JFR event
  • Add dashboard UI with GC Timeline, Heap Usage, and CPU Load charts

Changes

argus-core

  • Add GC_PAUSE, GC_HEAP_SUMMARY, CPU_LOAD to EventType enum
  • Create GCEvent and CPUEvent record classes

argus-agent

  • Implement GCEventExtractor and CPUEventExtractor for JFR data extraction
  • Update JfrStreamingEngine to capture GC/CPU events
  • Add configuration options (argus.gc.enabled, argus.cpu.enabled, argus.cpu.interval)

argus-server

  • Add GCAnalyzer and CPUAnalyzer for server-side metrics aggregation
  • Add /gc-analysis and /cpu-metrics REST endpoints
  • Extend EventBroadcaster to broadcast GC/CPU events via WebSocket

argus-frontend

  • Add metric cards for GC Pauses, Heap Used, CPU (JVM)
  • Add GC Timeline chart (bar chart)
  • Add Heap Usage chart (line chart)
  • Add CPU Load chart (line chart with JVM/System CPU)
image

demo metrics sample

$ ./gradlew :samples:virtual-thread-simulation:runMetricsDemo

Test plan

  • Build passes (./gradlew build)
  • Run server with demo application
  • Verify GC metrics appear in dashboard when GC occurs
  • Verify CPU metrics update every second
  • Test /gc-analysis and /cpu-metrics endpoints

🤖 Generated with Claude Code

rlaope-ai and others added 2 commits January 26, 2026 15:18
- Add GC monitoring via jdk.GarbageCollection and jdk.GCHeapSummary JFR events
- Add CPU monitoring via jdk.CPULoad JFR event
- Create GCEvent and CPUEvent records in argus-core
- Implement GCEventExtractor and CPUEventExtractor for JFR data extraction
- Add GCAnalyzer and CPUAnalyzer for server-side metrics aggregation
- Add /gc-analysis and /cpu-metrics REST endpoints
- Extend EventBroadcaster to broadcast GC/CPU events via WebSocket
- Add dashboard UI with GC Timeline, Heap Usage, and CPU Load charts
- Add configuration options: argus.gc.enabled, argus.cpu.enabled, argus.cpu.interval

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@rlaope rlaope self-assigned this Jan 26, 2026
@rlaope rlaope added the enhancement New feature or request label Jan 26, 2026
@rlaope rlaope merged commit db69452 into master Jan 26, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants