Wie sieht eine Fehlermeldung aus?
Eine gute Fehlermeldung sollte nicht nur die Frage beantworten, was kaputtgegangen ist, sondern auch dabei helfen festzustellen, wo und unter welchen Bedingungen das Problem aufgetreten ist.
Deshalb kannst du neben der eigentlichen Fehlermeldung unter anderem den Stack Trace, Informationen zur Anfrage, zum Benutzer, zur Umgebung sowie zusätzlichen Kontext der Anwendung übermitteln.
Ausnahme und Stack Trace
Der wichtigste Teil eines Ereignisses ist die Ausnahme. Der Fehlertyp und seine Meldung beschreiben das Problem, während der Stack Trace den Ausführungspfad zeigt, der dazu geführt hat.
In der Praxis erlaubt gerade der Stack Trace oft den Schritt von einer allgemeinen Meldung zu einer konkreten Stelle im Code.
Informationen zur Anfrage
Wenn der Fehler bei der Verarbeitung einer HTTP-Anfrage aufgetreten ist, kann der zusätzliche Kontext die Adresse, die Methode, den Antwortstatus sowie weitere ausgewählte Informationen zur Anfrage enthalten.
So lässt sich leichter feststellen, ob das Problem einen bestimmten Endpoint, ein Formular, eine Seite oder eine vom Benutzer ausgeführte Aktion betrifft.
Benutzer und Kontext
Je nach verwendeter Integration kannst du auch Informationen zum Benutzer sowie eigene Tags und Kontextdaten übermitteln. So lassen sich Fragen beantworten wie: Welchen Benutzer betraf der Fehler, welches Modul war betroffen oder in welcher Umgebung wurde er entdeckt?
Bei Benutzerdaten lohnt es sich immer, das Prinzip der Datenminimierung anzuwenden. Sende nur die Informationen, die für die Diagnose wirklich nötig sind.
Eigene Anwendungsdaten
Wenn der Standardkontext nicht ausreicht, kannst du das Ereignis um eigene Tags anreichern. Du kannst zum Beispiel Fehler kennzeichnen, die mit Zahlungen, einem bestimmten Modul oder einer Deployment-Version zusammenhängen.
feature = payments
environment = production
release = 1.4.0
Sende keine Geheimnisse
Das Fehler-Monitoring sollte kein Ort sein, an dem Passwörter, Tokens, API-Schlüssel oder vollständige Zugangsdaten übermittelt werden. Bevor du Daten sendest, solltest du prüfen, ob die Integration nicht versehentlich sensible Informationen weitergibt.