Skip to content

Monitoring & Diagnose

CachePanel bringt mehrere Bordmittel mit, um zu sehen, was dein Cache eigentlich tut — vom schnellen Blick aufs Dashboard bis zum vollen Prometheus/Grafana-Setup.

Dashboard-Kacheln

Direkt auf der Startseite:

  • Diagnose — vier geordnete Checks (Container-Status, DNS-Auflösung gegen lancache-dns, HTTP-Erreichbarkeit) beantworten konkret "Warum wird Spiel X nicht gecacht?". Damit die DNS-/Erreichbarkeits-Checks laufen, muss LANCACHE_IP gesetzt sein (die LAN-IP deines LanCache-Servers) — siehe Erweiterte Konfiguration.
  • Cache-Integrität — ein Scan zählt 0-Byte-Dateien im Cache (bewusst die einzige zuverlässig erkennbare Korruption, siehe Sicherheit) und kann sie gezielt bereinigen.
  • Top-Clients — Traffic pro Client-IP, direkt aus den LanCache-Logs.
  • Traffic-Verlauf und Traffic pro Dienst — Verlaufsgraph und Aufschlüsselung nach Steam/Battle.net/Epic.

So sieht das im Zusammenspiel aus (Beispieldaten):

Dashboard mit Traffic-Verlauf, Top-Clients und Diagnose

Prometheus

CachePanel liefert einen Prometheus-kompatiblen /metrics-Endpunkt — bewusst ohne Login-Pflicht (er liegt außerhalb von /api/), damit ein externer Scraper ihn ohne Session-Cookie erreicht. Enthalten sind Cache-Hit/Miss-Bytes und -Anfragen pro Dienst, die Trefferquote, der Live-Status der Kern-Container und der letzte Prefill-Lauf pro Dienst.

Beispiel-Scrape-Config:

yaml
scrape_configs:
  - job_name: cachepanel
    static_configs:
      - targets: ["<host>:8090"]

Grafana

Ein fertiges Dashboard liegt im Repository unter grafana/cachepanel-dashboard.json — 7 Panels (Hit-Ratio, gesparte/neu geladene Bandbreite, Container-Status, Traffic pro Dienst, Hit-Ratio pro Dienst, letzter Prefill-Lauf pro Dienst).

  1. In Grafana eine Prometheus-Datenquelle anlegen, die auf deinen Scraper zeigt.
  2. Dashboards → New → Import und die Datei aus dem Repository auswählen.

Fertig — keine weitere Konfiguration nötig, das Dashboard erwartet nur die Standard-Metriknamen aus Schritt 1.

Veröffentlicht unter der MIT-Lizenz.