From 66781d8d90f7fcc27c50b6465308875cea67ff3f Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 19 Sep 2026 03:26:17 +0200 Subject: [PATCH] =?UTF-8?q?feat(fleet):=20Auslastungs-Monitor=20pro=20Box?= =?UTF-8?q?=20=E2=80=94=20live=20nvidia-smi=20+=20Graphen=20(Stage=20E)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pro Box ein "Auslastung"-Button in der Compute-Flotte → Modal mit live nvidia-smi (1s), Graphen (GPU-Auslastung + Tokens/Intervall) und Besen-Reset. Historie liegt auf der Box, Diagnostic holt sie via RVS. - node_stats.py (identisch in allen 4 Worker-Build-Contexts): Sampler alle 15s (nvidia-smi + Token-Delta → Ringpuffer ~500 Punkte, persistent als JSON auf der Box), Live-Stream (node_stats, 1s, Auto-Stop 300s), History-Request, Reset. nvidia-smi via async subprocess, fail-safe ohne GPU. - Worker-Wiring (f5tts/whisper/voxtral/llm-adapter): Import, Sampler-Task, _stats.handle() nach dem targetInstance-Filter. llm-adapter zaehlt Tokens (usage.total_tokens) → Token-Graph nur bei LLM-Boxen. Dockerfiles kopieren node_stats.py. - compose: llm-adapter bekommt runtime:nvidia + NVIDIA_VISIBLE_DEVICES=all + DRIVER_CAPABILITIES=utility (nur nvidia-smi, KEIN VRAM/Compute). - diagnostic/server.js: relay node_stats_* (Browser→Box) + forward (Box→Browser). - diagnostic/index.html: Auslastung-Button pro Node (Ziel bevorzugt llm-Instanz), Modal mit live nvidia-smi + Inline-SVG-Sparklines, Besen-Reset. Reporter-Wahl bevorzugt die llm-Instanz (sieht alle GPUs + Tokens); GPU-Worker sehen ihre gepinnte Karte. Gitignored Historie stoert git-Baum der Box nicht. Deploy: diagnostic + GPU-Boxen neu bauen. Co-Authored-By: Claude Opus 4.8 --- diagnostic/index.html | 107 ++++++++++++++++++++- diagnostic/server.js | 7 ++ xtts/docker-compose.yml | 3 + xtts/f5tts/Dockerfile | 1 + xtts/f5tts/bridge.py | 9 ++ xtts/f5tts/node_stats.py | 167 +++++++++++++++++++++++++++++++++ xtts/llm-adapter/Dockerfile | 1 + xtts/llm-adapter/adapter.py | 25 ++++- xtts/llm-adapter/node_stats.py | 167 +++++++++++++++++++++++++++++++++ xtts/voxtral/Dockerfile | 2 +- xtts/voxtral/bridge.py | 9 ++ xtts/voxtral/node_stats.py | 167 +++++++++++++++++++++++++++++++++ xtts/whisper/Dockerfile | 2 +- xtts/whisper/bridge.py | 9 ++ xtts/whisper/node_stats.py | 167 +++++++++++++++++++++++++++++++++ 15 files changed, 837 insertions(+), 6 deletions(-) create mode 100644 xtts/f5tts/node_stats.py create mode 100644 xtts/llm-adapter/node_stats.py create mode 100644 xtts/voxtral/node_stats.py create mode 100644 xtts/whisper/node_stats.py diff --git a/diagnostic/index.html b/diagnostic/index.html index 3fd420f..b9ce70b 100644 --- a/diagnostic/index.html +++ b/diagnostic/index.html @@ -171,6 +171,31 @@ + + +