Der Blog

5 Best Practices zur schnellen Behebung von Fehlern

von Neil Manvar 8. November 2018 | 5 Minuten Lesezeit

Ich liebe es, Software zu schreiben, aber ich hasse es, mich mit Fehlern herumzuschlagen. Sie halten einen von dem ab, was man eigentlich tun möchte, und führen einen oft in ein Kaninchenloch. Posten — eine Open-Source-Fehlerverfolgungsplattform, die vollständige App-Logik, tiefen Kontext und Sichtbarkeit über den gesamten Stack in Echtzeit bietet — haben wir ein paar Tipps, die wir im Laufe der Zeit verfeinert haben, um die Fehlerbehebung schmerzlos (ok, weniger schmerzhaft) zu machen, darunter ein offizielle Integration mit PagerDuty .

Unten finden Sie eine Liste dieser Best Practices. Wir wünschen Ihnen eine schnelle Reise in den Kaninchenbau „Wo ist dieser Fehler und wie kann ich ihn beheben?“, wenn Sie das nächste Mal um 3 Uhr morgens benachrichtigt werden.

Identifizieren Sie die Auswirkungen des Problems

Du stolperst also um 3 Uhr morgens im Tiefschlaf zu deinem Computer und versuchst, klar über die PagerDuty Sie haben gerade eine E-Mail erhalten. Als Erstes sollten Sie die Auswirkungen des Problems ermitteln.

Ist dieses Problem nur beim Internet Explorer aufgetreten? Nur bei Kunden in einem bestimmten Rechenzentrum? Sie wissen, welche Fragen Sie am besten zu den Auswirkungen stellen sollten, und jetzt ist der richtige Zeitpunkt dafür.

Sentry implementiert ein System namens Stichworte – verschiedene Schlüssel/Wert-Paare, die einem Ereignis zugewiesen werden – die auf Problemebene zusammengefasst werden. Sie können Zeit und Stress sparen, indem Sie das Hin und Her mit Ihren Kunden über ihre Browserinformationen vermeiden, indem Sie Tags zulassen, um die Hotspots des Fehlers aufzudecken.

Verfolgen Sie die Schritte Ihres Benutzers, um das Problem zu reproduzieren

Wenn die Ursache des Problems nicht offensichtlich ist (und das ist sie wahrscheinlich auch nicht, sonst hätten Sie es gar nicht erst ausgeliefert), kann es hilfreich sein, zu verstehen, wie Ihr Benutzer dorthin gelangt ist. Sentry verfolgt automatisch den Pfad, den Ihr Benutzer genommen hat, als Semmelbrösel . Natürlich können Sie die Daten auch manuell zusammenfügen, indem Sie Ihre Protokolle durchsuchen, aber das klingt wirklich mühsam.

Kontext aus Stacktraces gewinnen

An diesem Punkt haben Sie das Kaninchenloch identifiziert und ein oder zwei Schritte hinein gemacht. Machen Sie jetzt noch ein paar Schritte. Und dann noch ein paar mehr.

Im Idealfall haben Sie den Fehler bereits reproduziert und können nun den Code genauer untersuchen, um herauszufinden, was schiefgelaufen ist und warum. Der Schlüssel zur Beantwortung dieser Fragen ist der Kontext – Sie werden so viel wie möglich davon benötigen, um aus diesem Loch herauszukommen.

Eine Möglichkeit, diesen Kontext zu erhalten, besteht darin, einen Blick auf Ihren Stacktrace zu werfen. Dieser gibt Ihnen vermutlich eine Vorstellung davon, wo die Ausnahme ausgelöst wurde. Stacktraces sollten Ihnen Einblick in die Abfolge der Ereignisse geben, die zum Fehler geführt haben, sowie in die Codezeile, in der Sie den Fehler finden können. So hilfreich!

Sie möchten noch mehr Kontext? Sentry bietet Ihnen Einblick in Ihren Stacktrace und erweitert ihn außerdem um alles, was Sie sich wünschen, einschließlich Ihres nicht minimierten Quellcodes und lokaler Stack-Elemente.

Fügen Sie bei Bedarf den ursprünglichen Entwickler hinzu

Natürlich können Sie, sobald Sie den Fehler gefunden haben und wissen, was ihn verursacht, so lange herumtüfteln, bis Sie ihn behoben haben. Oder auch nicht. Oder Sie können wieder das tun, was Sie vorher getan haben (essen, schlafen, das Leben genießen), indem Sie den Fehler von der richtigen Person beheben lassen. Das Delegieren von Fehlern ist vielleicht nicht die angenehmste Aufgabe, sollte aber letztendlich den Fehlerbehebungsprozess vereinfachen und beschleunigen.

Als PagerDuty Kunden können wir Entwickler hinzufügen als Interessengruppen oder Antwortende entsprechend.

Sentry bietet umfassende Integrationen mit Quellcode-Verwaltungsplattformen, um die Commits aufzudecken, die wahrscheinlich den Fehler verursacht haben. Verdächtige begeht .

Sentry auch schlägt der Entwickler vor wer das Problem am besten beheben kann.

Priorisieren Sie Ihre Warnmeldungen

Seien wir ehrlich – nicht alle Fehler sind es wert, geweckt zu werden. Wenn Sie Benachrichtigungen erhalten, die keine Handlung erfordern, unternehmen Sie etwas dagegen. Nutzen Sie Ihre Tools zu Ihrem Vorteil.

Vielleicht möchten Sie nur dann über PagerDuty benachrichtigt werden, wenn ein Fehler mehr als 100 Kunden in einer Minute betrifft. Vielleicht möchten Sie auch immer dann benachrichtigt werden, wenn ganz bestimmte Fehlertypen auftreten. Sie können all dies ganz einfach konfigurieren über Sentrys Alarmregeln .

Möchten Sie Warnungen oder JavaScript-Fehler herausfiltern, die durch merkwürdige Plugins verursacht werden, auf die Sie keinen Einfluss haben? Verwenden Sie PagerDutys Eventmanagement oder löschen Sie sie direkt aus dem Sentry-Problem mithilfe von Löschen und verwerfen .

Diese Best Practices können zwar auch außerhalb von Sentry und PagerDuty angewendet werden, aber warum sollte man sich mit etwas anderem als dem Allerbesten abgeben? Schließlich können Zehntausende von Kunden nichts falsch machen.

Und wie Sie vielleicht schon vermutet haben, arbeiten Sentry und PagerDuty hervorragend zusammen. So gut, dass wir eine offizielle Integration mit PagerDuty . Unsere Integration sendet Warnmeldungen über PagerDuty für die von Ihnen definierten Incident Response- und Intelligence-Workflows. Ermöglichen Sie Ihren Entwicklungs- und Betriebsteams, von überall in Ihrer App aus einen vollständigen Überblick über Fehler, Warnmeldungen gemäß Eskalationsrichtlinie, Benachrichtigungsdringlichkeit und Reaktionsverhalten zu erhalten.

Neil Manvar ist Solutions Engineer Manager bei Sentry. Nach Jahren der Erfahrung in der Softwareentwicklung wechselte Neil in die Lösungsentwicklung für DevOps. Er ist immer auf Abruf und kommt immer für Cinnabon vorbei.