Nach fĂŒnf Monaten Entwicklung wurde die Version 1.1 des Projekts IncidentRelay veröffentlicht, das ein offenes System zur Organisation von Bereitschaften, zur RoutenfĂŒhrung von Benachrichtigungen und zur UnterstĂŒtzung von VorfĂ€llen bereitstellt, das auf einem eigenen Server (Self-Hosted) lĂ€uft. IncidentRelay 1.1 wird als erste stabile Version ausgezeichnet (die Version 1.0 hatte den Status einer Beta-Version). Das Projekt richtet sich an SRE-, DevOps- und Infrastrukturteams, die eine lokal bereitzustellende Alternative zu SaaS-Diensten fĂŒr das Management von Bereitschaften (On-Call Management), die Anwendung von Eskalationsrichtlinien und die Reaktion auf VorfĂ€lle benötigen. Der Code des Projekts ist in Python geschrieben und wird unter der MIT-Lizenz vertrieben.
IncidentRelay empfĂ€ngt Ereignisse von Ăberwachungssystemen, ordnet sie einem Dienst, einem Team und einer Rotation zu und sendet dann Benachrichtigungen an die zustĂ€ndigen Bereitschaftsdienste oder Teams. Im System sind Bereitschaftszeiten, Rotation, Ăbersteuerungen von Schichten, BestĂ€tigungen des Eingangs eines Vorfalls, Status-ACK/Resolve, Erinnerungen, Eskalationen, vorĂŒbergehende Vertretungen von Bereitschaftsdiensten, die Festlegung von Zeitfenstern fĂŒr geplante Arbeiten und die UnterdrĂŒckung von lauten Alarmen implementiert.
Der Hauptvorteil des Projekts ist die vollstĂ€ndige Kontrolle ĂŒber die Infrastruktur und die Logik der RoutenfĂŒhrung. IncidentRelay wird in seiner eigenen Umgebung bereitgestellt, arbeitet mit seiner eigenen Datenbank und ermöglicht eine eindeutige Trennung der eingehenden Routen, Teams, Rotation und ZustellungskanĂ€le. Eingehende Tokens gehören den Routen und nicht den KanĂ€len, was es einfacher macht, zu verstehen, welche externe Quelle das Recht hat, Ereignisse an ein bestimmtes Team zu senden.
In IncidentRelay wird der Empfang von Ereignissen aus Prometheus Alertmanager, Grafana Alerting, Zabbix, Sentry, LibreNMS, RMON, AWS SNS/CloudWatch und beliebigen Webhooks unterstĂŒtzt. FĂŒr den Versand von Benachrichtigungen sind die KanĂ€le Mattermost, Slack, Telegram, Discord, Microsoft Teams, E-Mail, Webhooks, Browser/PWA Push und Anbieter fĂŒr Sprachaufrufe vorgesehen. In Mattermost und Telegram können die Benachrichtigungen Aktionen zum BestĂ€tigen und Lösen des Problems enthalten, was es ermöglicht, einen Vorfall zu bearbeiten, ohne zu einer separaten Schnittstelle wechseln zu mĂŒssen.
Das Projekt kann ĂŒber Docker Compose, RPM-Paket fĂŒr Red Hat-Ă€hnliche Distributionen, manuell ĂŒber systemd und auch in Kubernetes mit einem Helm-Chart gestartet werden. FĂŒr kleine Installationen kann SQLite verwendet werden, fĂŒr produktive Systeme und höhere Lasten wird PostgreSQL empfohlen.
In der neuen Version wurden folgende Ănderungen vorgeschlagen:
- Es wurden mehrstufige On-Call-Rotationen mit zeitlichen EinschrĂ€nkungen, PrioritĂ€ten der Ebenen und BerĂŒcksichtigung von temporĂ€ren Vertretungen hinzugefĂŒgt;
- Ein Dienstkalender, CalDAV- und ICS-Abonnements fĂŒr externe Kalender sind verfĂŒgbar;
- Es wurden Eskalationsrichtlinien fĂŒr VorfĂ€lle mit mehrstufigen Anpassungsoptionen implementiert;
- Es wurden Warnungsgruppen, Ereignisgruppen, verzögerte Benachrichtigungen und manuelle ZusammenfĂŒhrungen verwandter Warnungen hinzugefĂŒgt;
- Fenster fĂŒr geplante Wartungsarbeiten und "stille" Warnungen sind verfĂŒgbar;
- Die Möglichkeit, Kommentare zu Warnungen hinzuzufĂŒgen, wurde implementiert;
- Es wurden PrioritĂ€ten fĂŒr VorfĂ€lle (P1-P5) und eine automatische Anhebung der PrioritĂ€t basierend auf der Wichtigkeit hinzugefĂŒgt;
- Ein Servicekatalog, AbhÀngigkeiten der Dienste, SLI/SLO, die Historie der Auswirkungen auf die Systemleistung (Service Impact History) und GeschÀftsdienste (Business Services) wurden implementiert;
- Explain Trace zur Analyse der Weiterleitung: warum eine Warnung ins Team gelangt ist oder nicht, gruppiert, unterdrĂŒckt oder in einen bestimmten Kanal gesendet wurde, ist verfĂŒgbar;
- ĂberprĂŒfungen (Heartbeats/dead-man-switch) fĂŒr Watchdog, Backup, ETL und andere Aufgaben, bei denen das Fehlen eines erwarteten Signals ein Problem darstellt, wurden hinzugefĂŒgt.


Quelle: opennet.ru
