Files
florian.wildeandClaude Opus 5 8a299f6c5e feat(alerts): zehn Warnregeln mit Worker, Liste und Einstellungen (#011)
Regeln als reine Funktionen, Abgleich oeffnet und schliesst Warnungen anhand
eines Fingerabdrucks. Worker wertet stuendlich aus, zusaetzlich nach jedem
Report. 123 Tests.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 22:25:33 +02:00

1.9 KiB
Raw Permalink Blame History

#011 Warnregeln

Status: erledigt Meilenstein: v0.7.0 Labels: backend, alerts Geschätzt: 8 h Tatsächlich: 0 h 30 min

Ziel

Konfigurierbare Warnregeln, die Alerts öffnen und automatisch schließen.

Aufgaben

  • Regel-Engine: reine Funktionen, Fingerprint, Abgleich offen/neu/erledigt
  • Regeln: Ablauf 30/14/7, Status ≠ active, Sockets-Abweichung, keine Meldung 48 h, Server-ID geändert, Key mehrfach, Host ohne Kunde, Proxmox-Rechnung fällig, Kundenrechnung fehlt, Kundenrechnung unbezahlt nach X Tagen
  • Worker-Prozess mit Scheduler (stündlich) + Auswertung nach jedem Report
  • Einstellungsseite: Regeln aktivieren, Schwellwerte ändern
  • Warnglocke und Alert-Liste (offen/erledigt, quittieren)
  • Tests für jede Regel inkl. Grenzfälle

Akzeptanzkriterien

  • Kein doppelter offener Alert für denselben Sachverhalt
  • Alerts schließen sich automatisch, wenn die Ursache behoben ist
  • Alle Regel-Tests grün

Abhängigkeiten

#008

Notizen / Entscheidungen

  • Die Regeln sind reine Funktionen ohne Datenbankzugriff (src/server/alerts/regeln.ts); der Abgleich (abgleich.ts) öffnet, aktualisiert und schließt die Warnungen. Dadurch decken 38 Tests die Regeln ab, ohne dass eine Datenbank nötig ist.
  • Stufen als Teil des Fingerabdrucks: subscription-laeuft-ab:<host>:7. Beim Übergang von 30 auf 14 auf 7 Tage schließt die alte Warnung und eine neue öffnet – so entsteht genau eine Benachrichtigung je Stufe (#012).
  • Ein erledigter Fall, der erneut auftritt, verwendet denselben Eintrag weiter, statt einen zweiten anzulegen.
  • Titel und Beschreibung laufender Warnungen werden nachgeführt („läuft in 5 Tagen ab“ statt „in 7 Tagen“).
  • Ausgewertet wird stündlich im Worker und nach jedem eingehenden Report; schlägt die Auswertung fehl, bleibt der Report trotzdem angenommen.
  • Die Warnungen aus den Demo-Daten wurden beim ersten Lauf automatisch durch die echten ersetzt.