Repository navigation
tools: add real-time web dashboard for hardware and engine monitoring - #22
code-martin wants to merge 1 commit into
Conversation
1b63f1a to
e7a2eee
Compare
|
I was just doing this, will push in about 2hrs. |
…toring - Provide standalone, zero-dependency live dashboard on port 8081 - Monitor GPU utilization, VRAM usage, PCIe mode, and temperature via NVML - Monitor CPU utilization, RAM, and NVMe disk throughput - Track active engine inference state, tokens/sec, and request history - Implement ThreadingHTTPServer with cached process metrics and live clock/uptime
e7a2eee to
a3b200c
Compare
The browser page at http://127.0.0.1:8080 is now the Strata app, in the Strata design language (serve/web, same origin, no CDN): - Chat: streaming answers, collapsible thinking, Markdown with code copy, images when enabled, sampling/thinking settings, export, new chat. - Monitor: live model state (reading with progress / generating at tok/s), GPU load, VRAM, temperature, power, PCIe traffic, CPU, RAM, disk, the context fill and the last requests, each with a minute of history. - About: the model and engine settings, this PC, the API addresses. Server: GET /metrics (API key when set), /web/* app files, /fonts/* only when installed locally (not shipped; the page falls back to the system font). serve/telemetry.py reads NVML via ctypes and psutil (new setup dependency) with fallbacks. The engine prints an INFO line before READY (kv, expert slots, speculation); older servers ignore it and the server works with older engines. Based on the dashboard idea in PR #22 by code-martin. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0154bwiad8gY7wRehCXy27pN
|
Thanks a lot for this! The idea shaped v0.1.8, but I didn't merge the separate dashboard server. I built it into the main server instead, so there's one port and one process: The Monitor covers what your dashboard had: live state with prompt progress and tok/s, GPU util / VRAM / temp / power / PCIe gen and traffic (NVML via ctypes, like yours), CPU / RAM / disk, context fill, expert slots, KV mode and the request history, each with a minute of sparkline. It reads a new Credited you in the release notes and in docs/DETAILS.md. Closing this since the code itself isn't merged. If there's something from yours that the Monitor misses (per-disk NVMe load, for example), open an issue or a PR against |
The browser page at http://127.0.0.1:8080 is now the Strata app, in the Strata design language (serve/web, same origin, no CDN): - Chat: streaming answers, collapsible thinking, Markdown with code copy, images when enabled, sampling/thinking settings, export, new chat. - Monitor: live model state (reading with progress / generating at tok/s), GPU load, VRAM, temperature, power, PCIe traffic, CPU, RAM, disk, the context fill and the last requests, each with a minute of history. - About: the model and engine settings, this PC, the API addresses. Server: GET /metrics (API key when set), /web/* app files, /fonts/* only when installed locally (not shipped; the page falls back to the system font). serve/telemetry.py reads NVML via ctypes and psutil (new setup dependency) with fallbacks. The engine prints an INFO line before READY (kv, expert slots, speculation); older servers ignore it and the server works with older engines. Based on the dashboard idea in PR #22 by code-martin.
…the upstream ncols > 1 layout timed on sm_86, the exact one stays the default Comments only. The next commit puts this branch's kernel timings on its two models' shapes beside the pull request's decode numbers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What
Adds a self-contained real-time monitoring web dashboard (
tools/dashboard_server.py) for Strata:http.server,urllib,json,subprocess,ctypes).python tools/dashboard_server.py --port 8081 --server http://127.0.0.1:8080.Preview
Features
PCIe 4.0 x16via NVML), and expert cache slots in VRAM./proc/diskstatson Linux) to monitor DirectStorage/SSD streaming during MoE expert offloading.Verification