System monitor endpoint for Windows 11 - CPU, RAM, GPU, VRAM metrics
- HTML 61.4%
- JavaScript 34.6%
- Batchfile 4%
| system-monitor | ||
| .gitignore | ||
| README.md | ||
| system-monitor-endpoint-plan.md | ||
System Monitor Endpoint
HTTP endpoint built with Node.js + Express that exposes system metrics (CPU, RAM, GPU, VRAM) in JSON format. Designed for Windows 11 with NVIDIA hardware (RTX 5080), but runs on any platform.
Features
/api/metricsendpoint: JSON with CPU, RAM, and GPU metrics updated every 10 seconds./healthendpoint: Server status, uptime, and collection count.- Web dashboard: Visual interface with circular gauges, progress bars, and canvas-based history chart.
- Self-contained: Extractable ZIP with
start.batfor double-click execution on Windows.
Installation
- Download and extract the ZIP archive.
- Install Node.js (v18+ recommended).
- Double-click
start.bat. - Open
http://localhost:3000orhttp://localhost:3000/dashboard.html.
The start.bat script checks for Node.js and installs dependencies automatically.
Configuration
| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
Server port |
POLL_INTERVAL |
10000 |
Collection interval in milliseconds |
PORT=9000 POLL_INTERVAL=5000 node index.js
Response Format
{
"timestamp": "2026-08-17T10:56:23.347Z",
"cpu": {
"usage_percent": 8.58,
"per_core_percent": null,
"cores_physical": 8,
"cores_logical": 16,
"frequency_mhz": 3800
},
"ram": {
"total_gb": 32.0,
"used_gb": 18.2,
"available_gb": 13.8,
"percent": "56.9"
},
"gpu": [
{
"name": "GeForce RTX 5080",
"usage_percent": 45,
"temperature_celsius": 62,
"power_watts": 180,
"vram": {
"total_mb": 16384,
"used_mb": 4096
}
}
]
}
Notes
- GPU on Windows: Requires
nvidia-smiin PATH (C:\Program Files\NVIDIA Corporation\NVSMI). Without an NVIDIA driver, GPU fields will benullandgpu: []. - Per-core CPU load: Not available on Windows via
systeminformation.per_core_percentis alwaysnull. - Listens on 0.0.0.0: Accessible from the local network, not just localhost.
Structure
system-monitor/
├── index.js Express server + metrics collector
├── package.json Dependencies
├── package-lock.json
├── start.bat Windows launcher
└── public/
└── dashboard.html Visual dashboard
License
MIT