Zum Inhalt

Monitoring & Prozesse

Das Admin-Backend bietet zwei Monitoring-Ebenen: das System-Monitoring für aggregierte Prometheus-Metriken und das Live-Monitoring für Echtzeit-Prozessverfolgung mit Kill-Funktion.


System-Monitoring (/monitoring)

Provider Rate-Limits

Wenn Claude Code aktiv ist, zeigt dieser Bereich den verbleibenden API-Kontingentstand für jeden Endpunkt:

Spalte Beschreibung
Endpunkt Server/Provider-Name
Verbleibend Verbleibende Tokens bis zum nächsten Reset
Limit Gesamtlimit
% Auslastung als Fortschrittsbalken
Reset Nächster Reset-Zeitpunkt

Farbkodierung: Grün (>20% frei) · Gelb (<20%) · Rot (erschöpft)

System-Gauges

Sechs Echtzeit-Indikatoren für den Zustand des Knowledge-Stacks:

Gauge Metrik Beschreibung
ChromaDB-Dokumente moe_chroma_documents_total Anzahl Vektordokumente im Cache
Neo4j Entities moe_graph_entities_total Knoten im Knowledge-Graph
Neo4j Relationen moe_graph_relations_total Kanten im Knowledge-Graph
Ontologie-Entities moe_ontology_entities_total Ontologie-Konzepte
Planner-Muster moe_planner_patterns_total Gelernte Routing-Muster
Ontologie-Lücken moe_ontology_gaps_total Nicht abgedeckte Themen

LLM Server-Status

Kompakte Übersicht aller konfigurierten Inferenz-Server:

  • Online / Offline Badge
  • API-Typ Badge (Ollama / OpenAI)
  • Latenz (ms)
  • GPU-Anzahl
  • Geladene Modelle mit VRAM-Nutzung (Ollama) oder Modellanzahl (OpenAI)
  • Fehlermeldung bei Offline-Status

Metriken-Diagramme

Alle Charts werden per Prometheus-API (/api/monitoring) abgefragt und mit Chart.js gerendert.

Diagramm Metrik Typ
Token-Verbrauch pro Modell moe_tokens_total (by model) Balkendiagramm
Cache-Performance moe_cache_hits_total / moe_cache_misses_total Donut
Expert-Aufrufe nach Kategorie moe_expert_calls_total (by category) Balkendiagramm
Expert-Aufrufe nach Modell moe_expert_calls_total (by model) Balkendiagramm
Expert-Aufrufe nach Modell & Node Gruppiert Balkendiagramm
Anfragen nach Modus moe_requests_total (by mode) Donut
Konfidenz-Verteilung moe_expert_confidence_total Donut
Latenz & Bewertungen P50/P95, Selbstbewertung, Feedback Tabelle

Latenz-Metriken

Metrik Formel
P50 (Median) histogram_quantile(0.50, rate(moe_response_duration_seconds_bucket[1h]))
P95 (95. Perzentil) histogram_quantile(0.95, rate(moe_response_duration_seconds_bucket[1h]))
Selbstbewertung Ø moe_self_eval_score_bucket (avg)
Nutzer-Feedback Ø moe_feedback_score_bucket (avg)

Live-Monitoring (/live-monitoring)

Das Live-Monitoring bietet Echtzeit-Einblick in laufende Prozesse mit der Möglichkeit, einzelne Anfragen zu beenden.

Tab: Aktive Prozesse

Laufende API-Anfragen

Tabelle aller aktuell laufenden Requests (auto-refresh alle 5 Sekunden):

Spalte Beschreibung
Gestartet Startzeit der Anfrage
Dauer Laufzeit in Sekunden
User Username
Modell Eingesetztes LLM
Modus MoE-Modus (native, moe_reasoning, etc.)
Template Verwendetes Expert-Template (falls gesetzt)
Typ streaming oder standard
Client-IP IP-Adresse des Clients
Request-ID Eindeutige Chat-ID
Kill Button zum Beenden

Farbkodierung nach Laufzeit:

Farbe Laufzeit Bedeutung
Grün ≤ 30s Normal
Gelb ≤ 120s Länger als üblich
Rot > 120s Potenzieller Timeout

Prozess beenden (Kill)

Kill-Button klicken → Bestätigungsdialog → POST /api/live/kill-request/{chatId}

Was passiert beim Kill:

  1. Der Redis-Key moe:active:{chatId} wird gelöscht
  2. Der Request wird in moe:admin:completed (Sorted Set) mit Status killed verschoben
  3. Der laufende LangGraph-Node empfängt beim nächsten Checkpoint das Kill-Signal
  4. Der Client erhält einen Abbruch-Fehler

Laufende Streams

Bei Streaming-Anfragen kann es bis zu einigen Sekunden dauern, bis der Kill-Befehl wirksam wird (beim nächsten LangGraph-Checkpoint).

Prozess-Verlauf

Tabelle aller abgeschlossenen Requests (bis zu HISTORY_MAX_ENTRIES, Standard: 5000):

Spalte Beschreibung
Gestartet Startzeit
Beendet Endzeit
Dauer Gesamtlaufzeit
User Username
Modell LLM
Modus MoE-Modus
Typ streaming / standard
Status completed (grün) oder killed (rot)

Mit dem Button „History löschen" (oben rechts im Verlauf-Panel) kann der gesamte Verlauf aus Redis gelöscht werden.

Das Verlauf-Limit kann per Umgebungsvariable konfiguriert werden:

HISTORY_MAX_ENTRIES=5000   # Maximale Anzahl Einträge vor Bereinigung (Standard: 5000)

Tab: LLM Instanzen

Detaillierter Status aller Inferenz-Server:

Pro Server (Ollama)

Geladene Modelle:

Spalte Beschreibung
Modell Modellname:Tag
VRAM Aktuell genutzter VRAM (MB)
Gesamt Modellgröße gesamt (MB)
Parameter Parameteranzahl
Quant. Quantisierungs-Level
Familie Modell-Familie
Läuft ab Wann das Modell aus dem VRAM entladen wird

Ollama Metriken (Chips):

Metrik Bedeutung Alarm
In Arbeit Aktuelle Requests Rot wenn > 0
Wartend Queue-Länge Rot wenn > 0
Geladen Anzahl geladener Modelle
Anfragen gesamt Lifetime-Requests
Ø / Anfrage Durchschnittliche Dauer
↑ Eingabe Request-Größe (MB)
↓ Ausgabe Response-Größe (MB)

Verfügbare Modelle (ausklappbar):

Alle installierten Modelle mit Name, Größe (GB), Parameteranzahl, Quantisierung.

Pro Server (OpenAI-kompatibel)

  • Modellanzahl
  • Verfügbare Modelle (Liste)

Refresh-Steuerung

Element Funktion
Letzte Aktualisierung Timestamp der letzten Abfrage
Manuell aktualisieren Sofortige Abfrage
Auto 5s ☑ 5-Sekunden-Polling (Standard: aktiv)

Prometheus-Metriken – Vollständige Liste

Metrik Labels Typ Beschreibung
moe_tokens_total model, token_type, node, user_id Counter Verarbeitete Tokens
moe_expert_calls_total category, model, node Counter Experten-Aufrufe
moe_requests_total mode Counter Anfragen nach Modus
moe_response_duration_seconds Histogram Antwortzeiten
moe_cache_hits_total Counter Cache-Treffer
moe_cache_misses_total Counter Cache-Fehlschläge
moe_expert_confidence_total level Counter Konfidenz-Verteilung
moe_self_eval_score_bucket le Histogram Selbst-Bewertungsscores
moe_feedback_score_bucket le Histogram Nutzer-Feedback-Scores
moe_chroma_documents_total Gauge ChromaDB-Dokumente
moe_graph_entities_total Gauge Neo4j-Entities
moe_graph_relations_total Gauge Neo4j-Relationen
moe_ontology_entities_total Gauge Ontologie-Entities
moe_planner_patterns_total Gauge Planner-Muster
moe_ontology_gaps_total Gauge Ontologie-Lücken

Alle Metriken sind auch direkt über Prometheus (http://localhost:9090) und Grafana (http://localhost:3001) zugänglich.