feat: Statistik-Funktionalität für TI-Status Checker hinzugefügt

- Neue Klasse OutageStatistics für automatische Störungsaufzeichnung
- Sammelt Häufigkeit und Dauer von Ausfällen
- Parameter --stats/-s zum Senden von Statistik-Berichten über Apprise
- Erweiterte Kommandozeilen-Argumente (--debug/-d)
- Automatische Aufzeichnung von Störungsbeginn und -ende
- Detaillierte Statistiken mit Trends und Service-spezifischen Daten
- Umfassende Dokumentation in README_STATISTICS.md
This commit is contained in:
2025-08-11 09:44:58 +02:00
parent e092022774
commit f79fc24b3b
4 changed files with 468 additions and 2 deletions

149
README_STATISTICS.md Normal file
View File

@ -0,0 +1,149 @@
# 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