# TI-Status Checker - Statistik-Funktionalität ## Übersicht Der TI-Status Checker wurde um umfangreiche Statistik-Funktionalität erweitert, die automatisch alle Störungen und deren Dauer aufzeichnet. ## Neue Features ### 1. Automatische Störungsaufzeichnung - **Störungsbeginn**: Wird automatisch erkannt und aufgezeichnet - **Störungsende**: Wird automatisch erkannt und die Dauer berechnet - **Störungstypen**: Unterscheidung zwischen "full" und "partial" Störungen ### 2. Detaillierte Statistiken - **Service-spezifische Statistiken**: Für jeden betroffenen Service - **Gesamtstatistiken**: Über alle Störungen hinweg - **Trend-Analysen**: Durchschnittswerte der letzten 30 Tage - **Zeitreihen**: Chronologische Aufzeichnung aller Störungen ### 3. Statistik-Berichte - **Automatische Berichte**: Über Apprise versendbar - **Markdown-Format**: Gut lesbar in Chat-Systemen - **Zusammenfassungen**: Übersichtliche Darstellung der wichtigsten Kennzahlen ## Verwendung ### Normale Ausführung (Störungen überwachen) ```bash python ti_status_checker.py ``` ### Statistik-Bericht senden ```bash python ti_status_checker.py --stats # oder python ti_status_checker.py -s ``` ### Debug-Modus aktivieren ```bash python ti_status_checker.py --debug # oder python ti_status_checker.py -d ``` ## Statistik-Daten ### Gespeicherte Informationen - **Störungsbeginn**: ISO-Zeitstempel - **Störungsende**: ISO-Zeitstempel - **Dauer**: In Minuten - **Service-Name**: Betroffener Dienst - **Störungstyp**: "full" oder "partial" - **Status**: "active" oder "resolved" ### Berechnete Kennzahlen - Gesamtanzahl Störungen - Gesamtdauer aller Störungen - Durchschnittsdauer pro Störung - Längste Störung - Am stärksten betroffener Service - Tägliche Durchschnittswerte - Trends der letzten 30 Tage ## Dateien ### Neue Dateien - `ti_statistics.py`: Statistik-Funktionen und -Klasse - `ti_outage_statistics.json`: Gespeicherte Statistik-Daten ### Erweiterte Dateien - `ti_status_checker.py`: Hauptscript mit Statistik-Integration ## Beispiel-Statistik-Bericht ``` 📊 **TI-Status Ausfall-Statistiken** ================================================== **Zusammenfassung:** • Gesamte Störungen: 15 • Aktive Störungen: 2 • Gesamtdauer: 1245 Minuten • Durchschnittsdauer: 83.0 Minuten • Längste Störung: 180 Minuten • Am stärksten betroffen: konnektor **Service-Statistiken:** • **KONNEKTOR**: - Störungen: 8 - Gesamtdauer: 720 Min - Durchschnitt: 90.0 Min - Längste: 180 Min **Trends (letzte 30 Tage):** • Durchschnitt Störungen/Tag: 0.5 • Durchschnitt Dauer/Tag: 41.5 Min • Tage mit Störungen: 12 • Max. Störungen an einem Tag: 3 **Letzte Störungen (7 Tage):** • **KONNEKTOR** (partial) - 15.01. 14:30 - 15.01. 16:45 (135 Min) ``` ## Konfiguration Die Statistik-Funktionalität verwendet dieselben Apprise-Konfigurationen wie der normale Status-Checker. Stellen Sie sicher, dass in Ihrer `.env` Datei mindestens eine Apprise-URL konfiguriert ist: ```env APPRISE_URL_MATTERMOST=mattermost://... APPRISE_URL_SLACK=slack://... # etc. ``` ## Automatisierung ### Cron-Job für regelmäßige Statistiken ```bash # Täglich um 9:00 Uhr Statistik-Bericht senden 0 9 * * * cd /path/to/script && python ti_status_checker.py --stats ``` ### Windows Task Scheduler Erstellen Sie eine geplante Aufgabe, die regelmäßig `python ti_status_checker.py --stats` ausführt. ## Fehlerbehebung ### Häufige Probleme 1. **Keine Apprise-URLs konfiguriert**: Prüfen Sie Ihre `.env` Datei 2. **Berechtigungsfehler**: Stellen Sie sicher, dass das Script Schreibrechte im Verzeichnis hat 3. **JSON-Fehler**: Bei korrupten Statistik-Daten wird automatisch eine neue Datei erstellt ### Debug-Modus Verwenden Sie `--debug` für detaillierte Ausgaben und Fehlerdiagnose. ## Erweiterte Verwendung ### Statistik-Daten exportieren Die Statistik-Daten werden in `ti_outage_statistics.json` gespeichert und können für weitere Analysen verwendet werden. ### Benutzerdefinierte Berichte Die `OutageStatistics` Klasse kann in eigene Scripts importiert werden, um maßgeschneiderte Berichte zu erstellen. ## Support Bei Fragen oder Problemen mit der Statistik-Funktionalität: 1. Aktivieren Sie den Debug-Modus mit `--debug` 2. Prüfen Sie die Logs auf Fehlermeldungen 3. Stellen Sie sicher, dass alle Abhängigkeiten installiert sind