- PagerDuty /
- Der Blog /
- Vorfallmanagement und -reaktion /
- Spaß mit Webhooks: PagerDuty -Vorfälle mit irischem Akzent
Der Blog
Spaß mit Webhooks: PagerDuty -Vorfälle mit irischem Akzent
PagerDuty -Webhooks erleichtern die Entwicklung leistungsstarker Apps und Tools, die auf Vorfälle reagieren, sobald diese auftreten. Anstatt Skripte zu erstellen, die PagerDuty APIs kontinuierlich abfragen, ermöglichen Webhooks Ihren eigenen Diensten, Vorfälle zu empfangen, sobald sie ausgelöst, bestätigt und gelöst werden. So ist es beispielsweise möglich, automatisch eine Postkarte an das PagerDuty Hauptquartier senden, wenn sich ein Vorfall ändert (es fallen die regulären Portogebühren an).
Ein etwas praktischeres Beispiel ist etwas, das Clay Smith, einer unserer Webentwickler, während unseres letzten Hackdays erstellt hat. Er implementierte einen unkomplizierten Webhook-Consumer, der Vorfallmeldungen in einem schönen irischen Singsang ins Foyer spricht:
Erste Schritte
Um hörbare Vorfälle zu aktivieren, benötigen Sie einen Ersatzcomputer, ein Paar Lautsprecher und ein Tool, das Text-to-Speech über die Kommandozeile ermöglicht. Wir verwenden die hochwertige irisch-englische Stimme „Moira“, die mit Mac OS X Mountain Lion geliefert wird. Sofern Sie sich hinter einer Firewall befinden, benötigen Sie außerdem eine Art Localhost-Tunneling, damit PagerDuty Ihren internen Webhook-Endpunkt erreichen kann. Wir empfehlen die Verwendung von ngrok hierfür ist es aber auch möglich, die Localtunnel-Pakete Python oder Ruby zu verwenden.
Erstellen Ihres ersten Webhooks mit einem Localhost-Tunnel
Zuerst werden wir installieren und starten ngrok auf Port 7388, um einen Tunnel zum lokalen Host zu erstellen, an den PagerDuty Vorfälle senden kann:
$ sh ./ngrok 7388
Tunnelstatus online
Version 0.14/0.17
Protokoll http
Weiterleitung https://2812f1d7.ngrok.com -> 127.0.0.1:7388
Webschnittstelle https://localhost:4040
# Verbindung 0
Durchschnittliche Verbindungszeit 0,00 ms
Die Weiterleitungs-URL verwenden wir, wenn wir einen PagerDuty Webhook für einen Dienst erstellen.
Wählen Sie in der PagerDuty Weboberfläche einen Dienst aus, für den Sie akustische Warnungen erhalten möchten. Bearbeiten Sie den Dienst und erstellen Sie einen neuen Webhook namens „Audible Alert“ mit der Endpunkt-URL: https://<random ngrok key> .ngrok.com/pd-webhook. Vergessen Sie nicht, den pd-webhook-Pfad hinzuzufügen, wenn Sie das in diesem Blogbeitrag verwendete Tootles-Node.js-Skript verwenden.
Speichern Sie den Webhook und dann können wir mit der Konfiguration der Audioausgabe beginnen.
Verwenden von Tootles, einem Node.js-Server, der Vorfälle in die Befehlszeile druckt
Für unseren Hackday haben wir einen der einfachsten Webhook-Consumer überhaupt entwickelt, genannt tootles . Tootles druckt lediglich jeden von einem Webhook empfangenen PagerDuty -Vorfall in den Standardausgang. Nutzung die Leistung von UNIX , wir können diese Ausgabe an etwas Interessanteres weiterleiten.
Nach der Installation von Tootles können Sie es über die Befehlszeile starten:
$ node index.js -o Zusammenfassung
Versuchen Sie zum Testen, einen manuellen Vorfall in Ihrem mit einem Webhook konfigurierten Dienst auszulösen. Anschließend sollte in der Ausgabe eine Zusammenfassung dieses Vorfalls angezeigt werden:
$ node index.js -o Zusammenfassung
PagerDuty -Alarm im Testdienst wurde ausgelöst: Test 1234
Das Drucken einer Zusammenfassung der Statusänderungen des Vorfalls ist jedoch nicht sehr interessant. Wir möchten, dass Mac OS X den Vorfall in einer angenehmen irischen englischen Stimme vorliest. Dies erreichen wir, indem wir die Ausgabe von tootles an den Befehl say oder ein anderes Text-to-Speech-Kommandozeilentool weiterleiten, falls Sie ein anderes System verwenden:
$ node index.js -o Zusammenfassung | xargs -L 1 sagen
Wenn Sie einen Mac verwenden, können Sie zusätzliche Stimmen installieren Für noch mehr Spaß gibt es eine nette irisch-englische Stimme namens Moira. Damit Moira Ihre Vorfälle vorliest, verwenden Sie das Flag -v im Befehl „say“:
$ node index.js -o summary | xargs -L 1 say -v Moira
Die Möglichkeiten sind endlos, einschließlich der Übermittlung von Vorfallzusammenfassungen an Ihren Drucker:
$ node index.js -o Zusammenfassung | lpr
Obwohl Text-to-Speech einen physischen Computer mit Lautsprechern erfordert, lohnt es sich auch, einen Blick darauf zu werfen webscript.io wenn Sie eine in der Cloud gehostete Lösung für benutzerdefinierte Webhook-Verbraucher ausprobieren möchten, die in Lua geschrieben ist.
Wir sind begeistert von den Möglichkeiten der Webhook-Integrationen bei PagerDuty und freuen uns auf Ihre Rückmeldung zu Ihren Webhook-Nutzungsgewohnheiten. Kontaktieren Sie den Support unter pagerduty.com für weitere Informationen, wenn Sie Hilfe bei Ihrer Webhook-Integration benötigen.