In unserem Alltag als IT-Dienstleister hatten wir mit Tools wie Sentry, Datahog und anderen immer wieder kleinere Reibungspunkte. Als Teamlead eines auf Laravel spezialisierten Teams beim Platinum-Partner byte5 dachte ich direkt an die möglichen Vorteile: einfacheres Monitoring für alle Kundenprojekte, schnellere Bug-Erkennung – und das Ganze nativ auf unser tägliches Framework abgestimmt.
Und Laravel hat geliefert. Kaum hatten wir unseren Vorabzugang, installierte ich Nightwatch in einem Testprojekt und war sofort begeistert: einfache Einrichtung, klare Oberfläche, beeindruckende Detailtiefe. Doch dann kam wieder der Alltag dazwischen – keine Zeit für tiefere Analysen. Nun habe ich mir endlich die Zeit genommen und Nightwatch intensiv getestet – in eigenen Testszenarien und realen Kundenprojekten. Das Ergebnis: eine Sammlung aus konkreten Tipps, Tricks und Beobachtungen, die den Einsatz von Nightwatch noch effektiver machen.
Im ersten Teil dieses Artikels liegt der Fokus auf dem Monitoring. Im zweiten Teil folgen dann Erkenntnisse rund um Issues, Jobs und Edge-Cases.
Ein echter Vorteil gegenüber anderen Monitoring-Tools ist die Möglichkeit, die angezeigten Nutzerinformationen gezielt anzupassen. So ist es beispielsweise sehr hilfreich, direkt die Nutzerrolle sichtbar zu machen, um sofort zu erkennen, ob bestimmte Fehler ausschließlich bei einer spezifischen Nutzergruppe auftreten.
Das lässt sich sehr einfach über den AppServiceProvider realisieren.
Durch die Anzahl der Aufrufe pro Route sehe ich nun übersichtlich, welche Routen häufig genutzt werden und welche kaum bis gar nicht. Das eröffnet neue Optimierungsmöglichkeiten, etwa im Bereich Usability. So könnten wir gezielt Funktionen hinterfragen, die Nutzer anders verwenden als ursprünglich gedacht. Auch veraltete Routen, wie etwa ein RSS-Feed, der unerwartet noch viele Aufrufe verzeichnet, lassen sich hiermit identifizieren und anschließend besser beurteilen (Danke für den Hinweis an Laravel Daily!).
Nachdem beim ersten Testlauf viele Nutzer rasch ihre Event-Volumenlimits erreicht hatten, implementierte das Nightwatch-Team zügig eine Sampling-Funktion. Die Standardkonfiguration sieht zunächst so aus:
Kurz nach Release folgten weitere granulare Optionen, beispielsweise Route-based Sampling oder Dynamic Sampling. So könnte eine E-Commerce-Anwendung beispielsweise insgesamt mit geringem Sampling-Level überwacht werden, während kritische Prozesse wie der Checkout-Vorgang intensiver gemonitort werden, um Fehler oder Performance-Probleme schneller zu erkennen.
Ein kurzer Blick in den Menüpunkt „Outgoing Requests“ lohnt sich immer. Hier lässt sich einfach feststellen, mit welchen externen Servern die Anwendung kommuniziert. Dies könnte manche Überraschungen offenbaren (wie zum Beispiel ein ungeplanter Aufruf zu Google Analytics). Außerdem lassen sich so eventuell Tippfehler in implementierten API-URLs aufdecken, wodurch wir gleich doppelt profitieren: Monitoring und Fehlerbehebung in einem Schritt.
Aktuell zeigt Nightwatch Notifications, die über mehrere Kanäle verschickt werden (z. B. Mail, Slack und Datenbank) nur dann sauber in der Übersicht an, wenn alle Kanäle funktionieren. Sobald einer dieser Kanäle fehlschlägt, wird das nicht direkt sichtbar – stattdessen erscheint lediglich eine neue Exception. Das führt zu einem Bruch in der Darstellung.
Ich würde mir wünschen, dass Nightwatch hier genauer unterscheidet: Welcher Kanal war erfolgreich? Wo ist etwas schiefgelaufen? Ein detaillierteres Feedback – ähnlich wie bei fehlgeschlagenen Jobs – würde die Fehleranalyse enorm verbessern.
Zwei Aufrufe mit fehlerhafter Slack-Notification, Dritter Aufruf sind alle drei Wege erfolgreich.
In Jobs werden nicht erfolgreiche Jobs angezeigt und extra markiert.
Die Filterung nach dem P95-Wert (d. h. Events, die länger als 95 % der anderen dauern) ist nützlich – aber aktuell zu grob. Nightwatch berechnet den P95-Wert über alle Events einer Kategorie hinweg. Habe ich z. B. 15 Notifications über verschiedene Kanäle verschickt, zeigt mir der Filter nur die global langsamsten Events – nicht aber die langsamsten pro Kanal.
Gerade bei komplexen Multi-Channel-Setups wäre ein kanalbezogener P95-Wert deutlich hilfreicher. So ließen sich gezielt Performanceprobleme einzelner Ausspielwege identifizieren und optimieren.
Nightwatch ist ein vielversprechender Schritt in die richtige Richtung. Besonders für Laravel-Teams wie unseres bringt es den großen Vorteil, direkt im vertrauten Ökosystem zu arbeiten – mit durchdachten Features, klarer Oberfläche und hoher Integrationsfähigkeit. Die bisherigen Beobachtungen zeigen: Das Tool ist praxisnah und mächtig, aber in manchen Details noch ausbaufähig.
Trotz kleinerer Schwächen im Reporting oder bei der Filterlogik überzeugt Nightwatch durch sein Konzept und die schnelle Weiterentwicklung durch das Laravel-Team. Ich bin überzeugt, dass es sich schon bald zu einem unverzichtbaren Werkzeug für das tägliche Arbeiten mit Laravel entwickeln kann.
Im zweiten Teil werde ich tiefer auf Themen wie Issues, Jobs und besondere Edge-Cases eingehen.
Stay tuned.
PHP-Teamlead
Yannick Kupferschmidt
Unser Teamlead Yannick bringt frischen Wind in unsere Kundenprojekte und unterstützt das Team mit seiner lösungsorientierten Arbeitsweise. Neben seiner Leidenschaft für sauberen Code interessiert sich Yannick für Fußball und reist gerne, um neue Perspektiven zu gewinnen.
Nightwatch für Ihr Laravel Projekt?
Wir beraten euch gern.
Kontakt