Was ist Laravel Nightwatch?
Laravel Nightwatch ist eine gehostete SaaS-Plattform, die den produktiven Betrieb von Laravel-Anwendungen kontinuierlich überwacht. Sie erfasst und visualisiert Telemetriedaten der gesamten Anwendung in Echtzeit – HTTP-Requests, SQL-Queries, Exceptions, Queue-Jobs, Logs, Scheduled Tasks u. a.Nightwatch ist ein kostenpflichtiger Dienst (monatliche Abrechnung). Ein Free-Tarif steht zur Verfügung, jedoch mit einer Obergrenze für die erfassbaren Events. Für den praxistauglichen Einsatz im Free-Tarif sind die weiter unten beschriebenen Sampling- und Filter-Einstellungen zwingend nötig.
Unterschiede zu Telescope und Pulse
Nightwatch verfolgt einen anderen Zweck als die bestehenden Monitoring- und Debug-Tools im Laravel-Ökosystem. Hier ein Überblick über die jeweiligen Einsatzbereiche.| Tool | Zweck | Hosting | Zielumgebung |
|---|---|---|---|
| Telescope | Debugging und Query-Analyse in der Entwicklung | selbst gehostet (in der Laravel-Anwendung) | Lokale Entwicklung |
| Pulse | Aggregation und Anzeige von Performance-Metriken | selbst gehostet (in der Laravel-Anwendung) | Produktion, Staging |
| Nightwatch | Echtzeit-Monitoring von Produktions-Apps | von Laravel gehostetes SaaS | Produktion |
Architektur
Nightwatch schaltet einen Agent-Prozess zwischen die Laravel-Anwendung und die Nightwatch-Cloud. Der Agent lauscht lokal (127.0.0.1:2407), empfängt Events aus der Laravel-Anwendung und leitet sie in die Cloud weiter. Der Agent-Prozess muss deshalb dauerhaft laufen.
Installation und Erst-Konfiguration
1. Account und Anwendung anlegen
Erstellen Sie unter nightwatch.laravel.com einen Account und registrieren Sie Organisation und Anwendung. Nach der Registrierung der Anwendung wird ein Umgebungs-Token ausgegeben.2. Paket installieren
--dev nicht erforderlich. Nightwatch ist auf den Einsatz in der Produktion ausgelegt.
3. Token konfigurieren
Fügen Sie den Token in der.env-Datei hinzu.
4. Agenten starten
5. Deaktivierung in der Testumgebung
Für Test-Läufe empfiehlt es sich, Nightwatch zu deaktivieren.phpunit.xml:
Konfiguration für den praxistauglichen Einsatz im Free-Tarif
Sampling-Rate reduzieren
NIGHTWATCH_REQUEST_SAMPLE_RATE ist standardmäßig 1.0 (alle Requests werden erfasst). Im Free-Tarif wird eine Reduktion auf etwa 0.1 (10 %) empfohlen.
Query-Erfassung deaktivieren
Datenbank-Queries machen oft einen großen Anteil der Events aus. Wenn Sie die Query-Erfassung im Free-Tarif deaktivieren, bleibt Kapazität für wichtige Events (Exceptions, Requests, Jobs) frei.Weitere Filter-Einstellungen
Bei Bedarf lassen sich auch Cache-Events und Mails deaktivieren.Empfohlene Konfiguration für den Free-Tarif
Wichtige Funktionen
Request-Monitoring
Pro HTTP-Request werden Response-Zeit, Statuscode, Route-Informationen u. a. erfasst. So identifizieren Sie ungewöhnlich langsame Endpunkte und finden Performance-Engpässe.Exception-Tracking
Unhandled Exceptions in der Produktion werden in Echtzeit erfasst. Stacktrace und Codeausschnitte werden automatisch protokolliert; die Ursachenanalyse wird deutlich einfacher.Log-Erfassung
Integration mit dem Logging-System von Laravel (z. B.Log::error()), strukturierte Logs werden an Nightwatch gesendet.
Monitoring von Jobs und Scheduled Tasks
Ausführungsverlauf, Erfolg/Fehlschlag und Laufzeit von Queue-Jobs und Scheduled Tasks werden nachverfolgt. Probleme in Batch-Verarbeitung lassen sich schnell aufspüren.Deployment-Tracking
Verknüpfung von Änderungen pro Release mit auftretenden Problemen. Analysen wie „Seit diesem Deployment nehmen die Exceptions zu” werden visuell möglich.Alerts und Benachrichtigungen
Per Slack-Integration und Webhooks lassen sich Spitzenlasten bei Exceptions oder Performance-Verschlechterungen sofort melden.Wann Telescope, wann Nightwatch?
- Lokale Entwicklung → Telescope
- Aggregations-Dashboard für die Produktion gewünscht → Pulse
- Detaillierte Traces und Alerts in der Produktion gewünscht → Nightwatch
Fazit
Laravel Nightwatch ist ein leistungsstarkes SaaS-Tool, das die Sichtbarkeit produktiver Laravel-Anwendungen erheblich steigert. Bei der Einführung sollten Sie folgende Punkte beachten:- Der Agent-Prozess muss dauerhaft laufen
- Im Free-Tarif sind
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1undNIGHTWATCH_IGNORE_QUERIES=truepraktisch unverzichtbar - Telescope (Entwicklung), Pulse (Aggregation) und Nightwatch (Monitoring) erfüllen unterschiedliche Rollen und lassen sich kombinieren
Praxis-Techniken zu Laravel Telescope
Für Debugging in der lokalen Entwicklung setzen Sie Telescope ein.