Fehlerbehandlung in Webapplikationen (Teil 3)

Überblick

Mit RootCause stellen wir hier ein weiteres Tool für Fehleranalyse und -reporting vor, dabei ist RootCause speziell für JavaScript Umgebungen gedacht. Es wird von Bryntum entwickelt und ist hauptsächlich als SaaS verfügbar, eine Vor-Ort Option, sowie weitere kundenspezifische Anpassungen sind möglich. Der gewünschte Funktionsumfang bestimmt den Preis: die einfachste Lösung für genau ein Teammitglied und mit begrenztem Logging ist kostenlos. Für die umfangreichere Business Option werden im Monat 199$ veranschlagt.


RootCause bietet genau wie Sentry Lösungen für

  • Monitoring
  • Code Analyse
  • Bug Tracking
  • User Feedback

Wie auch bei Sentry, bietet ein übersichtliches Dashboard einen Überblick über die aktuell erfassten Fehler und die kürzlichen Aktivitäten der Teammitglieder. In weiteren Tabs finden sich detaillierte Listen der Fehler, die man hier in einer eigenen Detailansicht genau analysieren kann. Ebenso wird ein Replay des Fehlers und eine Event-Timeline angeboten.
Seit kurzem unterstützt RootCause auch Source Maps.  

Framework Integration

Als reines Tool für JavaScript unterstützt RootCause natives JavaScript, Angular 1, Angular 2+ und Sencha ExtJS.

Weitere Möglichkeiten zur Anbindung

Es lässt sich eine Anbindung an JIRA und Slack einrichten. Man erhält dann die Möglichkeit, Fehler manuell als JIRA Ticket zu exportieren und die Meldungen gleich im Slack Channel zu sehen zu bekommen.

Browsersupport

  • Chrome
  • Firefox
  • Edge
  • Opera
  • IE 9+ grundlegendes Logging und Unterstützung von Screenshots
  • ab IE 10 Event Recording, Videoaufnahme & Replay
  • Alle modernen mobilen Browser

Rootcause unterstützt alle gängigen Browser. Beim Internet Explorer muss bei älteren Versionen Abstriche bei den Features gemacht werden. Mobil werden alle modernen Browser unterstützt.

Einrichtung

Die Dokumentation ist umfassend und verständlich geschrieben, so dass die Einrichtung und eigene Anpassungen leicht umzusetzen sind.
Im Dashboard lässt sich RootCause so konfigurieren, wie man es benötigt - daraufhin erhält man einen Codeteil, den man nur auf seiner Webapplikation einfügen muss. 

In ExtJS wäre dies beispielsweise in der index.html, damit ist RootCause unter window.logger in der ganzen App verfügbar.

Analog zu den Beispielen bisher (siehe Teile 1 und 2):

 

/**
 * init der Errorhandler Klasse
 * @return {[type]}
 */
init: function(){
    // bind error handler
    window.onerror = Ext.Function.bind(me.handleError, this);
}

/**
 * handleError
 *
 * @param message
 * @param file
 * @param line
 * @param column
 * @param errorObj Exception Klasse
 */
handleError:  function (message, file, line, column, errorObj) {
    if (window.logger) {
        window.logger.logException(errorObj);
    }
    // evtl weitere Fehlerbehandlung
}

 

So werden alle Exceptions automatisch an den RootCause Server gemeldet und sind im Dashboard einsehbar.
Die Nutzung eines eigenen Error Handlers in der ExtJS Applikation ist für RootCause angeblich nicht notwendig, allerdings ist so der Ablauf des Reporting transparenter und lässt sich einfacher anpassen.