How jerremiz/monitor-java works
Performance Metrics is a Spring Boot system monitor. It samples host metrics, broadcasts live readings over WebSocket, and records readings for REST history queries; scheduled maintenance removes old records. The README also documents cross-platform operation, while the sampled source shows OS metrics collection through OSHI. The principal flow and storage behavior are supported by sampled code; other platform details are documented but not independently verified here.
Main entry points: HistoryDataService.java History data service · RealTimeDataService.java Live metrics handler · SystemMetricsService.java System metrics · HistoryDataController.java History REST API
Components 10
Metric collection
- System metrics
src/main/java/com/jeremiz/monitor/service/SystemMetricsService.java
Live monitoring
- WebSocket endpoint config
src/main/java/com/jeremiz/monitor/config/WebSocketConfig.java - Live metrics handler
src/main/java/com/jeremiz/monitor/service/RealTimeDataService.java - WebSocket sessions
src/main/java/com/jeremiz/monitor/utils/WebSocketSessionManager.java
History and storage
- History REST API
src/main/java/com/jeremiz/monitor/controller/HistoryDataController.java - History data service
src/main/java/com/jeremiz/monitor/service/HistoryDataService.java - SQLite metrics store
src/main/java/com/jeremiz/monitor/service/HistoryDataService.java
Other components
- Monitor user
- monitor-vue frontend
- Host operating system
Connections 16
- Monitor user → monitor-vue frontend: views metrics
- monitor-vue frontend → Live metrics handler: opens WebSocket
- monitor-vue frontend → History REST API: requests history
- WebSocket endpoint config → Live metrics handler: registers handler
- Live metrics handler → WebSocket sessions: tracks clients
- Live metrics handler → System metrics: samples metrics
- System metrics → Host operating system: reads resources
- Live metrics handler → monitor-vue frontend: sends live readings
- History data service → WebSocket sessions: checks clients
- History data service → Live metrics handler: reads live sample
- History data service → System metrics: samples when idle
- History data service → System metrics: reads system load
- History data service → SQLite metrics store: writes and queries
- History REST API → History data service: queries time ranges
- History REST API → System metrics: reads total memory
- History data service → SQLite metrics store: purges and vacuums