v0.8.0: monitor vLLM and Ollama servers, with a tray icon per metric
Adds an inference-server half to the widget: any number of vLLM and Ollama servers, configured in %LOCALAPPDATA%\ClaudeUsageWidget\servers.json, each exposing whichever metrics you want as their own tray icon -- live tokens/sec, live connections, queue depth, KV-cache occupancy, TTFT, requests/min. The two hardcoded tray icons become a config-driven collection, and server metrics get a third badge shape (hexagon) so the tray stays unambiguous when several icons are green at once. Notes on the parts that needed care: - Rates come from counter deltas between scrapes. `tps` divides by the server's own decode time (how fast it generates while generating; the number benchmarks quote), `tps_wall` by wall-clock (what the box actually produced). A server restart is detected by any counter moving backwards and re-baselines rather than reporting a spike. Averages that belong to requests rather than to time -- TTFT, TPOT, cache hit rate -- hold their last value through an idle interval and fall back to lifetime figures on the first scrape. - Ollama publishes no aggregate metrics at all (0.32.14: /metrics and /debug/vars are both 404), so it gets resident models, VRAM, installed count and reachability, plus live throughput only via an opt-in synthetic probe that refuses to touch a model which isn't already loaded. - The hexagon draws smaller digits than the circle. The circle's boxes fit inside it by about a pixel, and a screenshot of the real tray showed them reading as a solid block against the slanted edges -- the same "fits but isn't legible" trap as the 3-digit fix in 0.7.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JFVNrELtN4qRmV15szTU66
A
Arsen Apostolov committed
e1be0b06a45bfaff1333d88af9372b454ad1a74b
Parent: f2cb91e