- kern/messreihen.py: Minutenwerte als JSON-Zeilen je Quelle und Tag unter <Datenordner>/mc2-messwerte/, Anhaengen unter flock, Aufraeumen nach 8 Tagen, Lesen fuer 1h/24h/7d (60 s, 5-min- und 30-min-Mittel), Luecken bleiben null, kaputte Zeilen werden uebersprungen, Zaehler-Raten ohne Spruenge - KI-Box: Taktgeber im Steward (services/messwerte.py) schreibt jede Minute cpu, ram, gpu, Temperaturen, platte, Netz in Bytes/s und Tokens pro Minute; GET /api/messwerte (nur Rolle box) - Homelab: Der Ausfuehrer schickt jede Minute in einem eigenen Faden Host-Werte aus /proc und die Gaeste aus einem pvesh-Aufruf an POST /api/homelab/ausfuehrer/messwerte; services/homelab/messwerte.py rechnet die Zaehler in Bytes/s um (Neustarts und Spruenge ergeben null), GET /api/homelab/messwerte liefert Host und Gaeste wie im Inventar - Waechter (homelab): gelb, wenn der Host 10 Minuten ueber 95 % RAM oder 90 °C liegt - Aufraeumen der Modell-Platte bietet mc2-messwerte nie zum Loeschen an Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
671 B
Python
19 lines
671 B
Python
"""Messwerte der KI-Box mit Verlauf (Rolle box, seit 24.09.2026).
|
|
|
|
GET /api/messwerte?zeitraum=1h|24h|7d Minutenwerte des Stewards, verdichtet auf 60 s, 5 min bzw. 30 min
|
|
|
|
Dünn: die Logik liegt in services/messwerte.py, die Ablage in kern/messreihen.py.
|
|
"""
|
|
|
|
from fastapi import APIRouter, HTTPException
|
|
from services import messwerte
|
|
|
|
router = APIRouter(prefix="/api", tags=["messwerte"])
|
|
|
|
|
|
@router.get("/messwerte")
|
|
def messwerte_lesen(zeitraum: str = "1h") -> dict:
|
|
if zeitraum not in messwerte.ZEITRAEUME:
|
|
raise HTTPException(status_code=400, detail="Den Zeitraum gibt es nicht; möglich sind 1h, 24h und 7d.")
|
|
return messwerte.abfrage(zeitraum)
|