Der Blog

Wie wir PagerDuty um die Multi-User-Alarmierung erweitert haben

von Joseph Pierri 16. April 2014 | 4 Minuten Lesezeit

Seit der Einführung unserer Multi-User-Alarmfunktion letzte Woche haben wir viel positives Feedback erhalten und eine hohe Akzeptanz festgestellt. Multi-User-Alarmierung war unsere am häufigsten nachgefragte Funktion, und wir wollten sicherstellen, dass wir sie richtig umsetzen und gleichzeitig unsere Zuverlässigkeitsstandards einhalten. Wir haben unsere Architektur und unseren Workflow erheblich angepasst, um die Grundlage für zukünftige Alarmierungsanwendungen zu schaffen.

Einen Plan entwickeln

multi_user_alerting_200px Die größte Herausforderung bestand darin, unser Alarmdatenmodell neu zu strukturieren, um Vorfälle mehreren Benutzern zuzuweisen und ihnen die Bestätigung zu ermöglichen. Diese Umstrukturierung musste unter Beibehaltung des laufenden Betriebs für unsere Kunden erfolgen (daher gibt es bei PagerDuty keine Ausfallzeiten). Unser Produktteam dokumentierte die gewünschten Änderungen an PagerDuty und erstellte gemeinsam mit unserem Echtzeit- und unserem Webteam einen Rollout-Zeitplan. Obwohl die Änderungen umfangreich waren, erstellten wir einen Release-Plan, sodass jeder Schritt des Rollouts inkrementell und abwärtskompatibel war.

Verfolgen von Mehrfachbestätigungen und Bestätigungs-Timeouts

Mit Multi-User-Alerts werden Vorfälle mehreren Benutzern zugewiesen und können von mehreren Benutzern bestätigt werden. Mehrfachbestätigungen helfen Teams, Informationen zur Reaktion auf Vorfälle zu sammeln – Sie können herausfinden, wer der Situation gewachsen ist und wer seine Alarme verschläft. Da Vorfälle nun mehreren Benutzern zugewiesen und von ihnen bestätigt werden können, mussten wir unserer Datenbank neue Tabellen hinzufügen, um diese Informationen zu verfolgen.

cross_team_responders Vorfälle sind mit Diensten verknüpft und das Team kann innerhalb jedes Dienstes das Zeitlimit für die Vorfallbestätigung festlegen. Zeitlimits für die Vorfallbestätigung führen dazu, dass der Vorfall in den Zustand „Ausgelöst“ zurückkehrt und verhindern, dass Vorfälle vergessen werden. Daher werden für sehr kritische Dienste kürzere Zeitlimits konfiguriert. Das Zeitlimit bezieht sich auf den Zeitpunkt der ersten Bestätigung des Vorfalls und wird bei mehreren Bestätigungen bei jeder erneuten Bestätigung des Vorfalls zurückgesetzt. Beispiel: Wenn das Zeitlimit für die Vorfallbestätigung auf 5 Minuten eingestellt ist und Benutzer A einen Vorfall um 2:00 Uhr bestätigt und Benutzer B denselben Vorfall um 2:04 Uhr, würde das Zeitlimit für die Vorfallbestätigung dazu führen, dass der Vorfall um 2:09 Uhr statt um 2:05 Uhr in den Zustand „Ausgelöst“ zurückkehrt. Dadurch wird verhindert, dass Benutzer A und B nur 1 Minute, nachdem Benutzer B ihn bestätigt hat, eine weitere Warnung erhalten. Wir haben dieses Verhalten hinzugefügt, um zu verhindern, dass Benutzer mit Warnungen für bestätigte Vorfälle überhäuft werden, die sie aktiv beheben.

Vorfall-Schnappschüsse für Minute-Zero-Alarm-Garantie

multiple_responders_200px Die PagerDuty Alarmierungspipeline wurde entwickelt, um Alarme mit möglichst aktuellen Vorfallinformationen zu versenden. Wenn ein Benutzer nur eine Benachrichtigungsregel mit einer Minute Verzögerung hat und ein Vorfall 30 Sekunden nach Auslösung behoben wird, senden wir dem Benutzer keine weitere Alarmierung, da der Vorfall bereits behoben wurde. Eine Folge der Mehrbenutzer-Alarmierung besteht darin, dass ein Benutzer mit einer Eskalationsrichtlinie einen Vorfall bestätigen/beheben/neu zuweisen kann, bevor ein anderer Benutzer darüber benachrichtigt wird.

Um dieses Problem zu lösen, haben wir unsere Pipeline modifiziert, um ein spezielles „Minute-Null“-Verhalten zu implementieren. Wenn ein Benutzer eine Benachrichtigungsregel mit einer Null-Minuten-Verzögerung eingerichtet hat, folgern wir daraus, dass er in jedem Fall über einen Vorfall benachrichtigt werden möchte. Selbst wenn der Vorfall in der kurzen Zeit zwischen Auslösung und Versand der Benachrichtigung geändert wird, wird die Benachrichtigung trotzdem versendet. Wenn sich beispielsweise Benutzer A und Benutzer B auf derselben Eskalationsstufe mit einer sofortigen Benachrichtigungsregel befinden und Benutzer A einen Vorfall unmittelbar nach dessen Auslösung bestätigt, verhindert dies nicht, dass Benutzer B eine Benachrichtigung erhält.

Zeit zwischen Eskalationsstufen

Ein Workaround, den PagerDuty -Kunden vor der Einführung von Multi-User Alerting nutzten, bestand darin, einer Eskalationsrichtlinie Eskalationsregeln hinzuzufügen, die durch eine sehr geringe Eskalationsverzögerung (z. B. 1 Minute) getrennt waren. So wurde effektiv eine Gruppe von Benutzern innerhalb kurzer Zeit benachrichtigt. Mit Multi-User Alerting ist dieser Workaround nicht mehr erforderlich. Wir empfehlen allen Kunden, die diesen Workaround verwendet haben, ihre Eskalationsrichtlinien neu zu konfigurieren: Sie können jetzt bis zu 10 Eskalationsziele (Benutzer oder Zeitpläne) zu einer Eskalationsstufe hinzufügen.

Multi-User Alerting erweitert die Alarmierungsszenarien für unsere Kunden, sodass sie die richtigen Personen zum richtigen Zeitpunkt erreichen können. Gibt es Alarmierungsszenarien, die Sie berücksichtigen möchten, aber nicht können? Teilen Sie uns Ihre Meinung in den Kommentaren mit.