Was ist Laravel Pulse
Laravel Pulse ist ein Monitoring-Dashboard, das Ihnen Performance und Nutzung Ihrer Anwendung auf einen Blick zeigt. Sie identifizieren Bottlenecks bei langsamen Jobs oder Endpunkten und finden die aktivsten Benutzer.Unterschied zwischen Telescope und Pulse
| Merkmal | Laravel Pulse | Laravel Telescope |
|---|---|---|
| Zweck | Trends und aggregierte Daten für die gesamte App | Detailliertes Debugging einzelner Requests/Events |
| Daten | Bereits aggregierte Metriken | Log einzelner Events |
| Geeignet für | Performance-Monitoring in Produktion | Debugging in Dev/Staging |
Für detailliertes Debugging einzelner Events verwenden Sie Laravel Telescope.
Datenfluss
Installation
Konfigurationsdatei und Migrationen veröffentlichen
Veröffentlichen Sie die Dateien mit dem Artisan-Befehl
vendor:publish./pulse erreichbar.
Konfigurationsdatei veröffentlichen
Sie können die Konfigurationsdatei separat veröffentlichen, um sie anzupassen.Zugriff auf das Dashboard
Authentifizierung
Standardmäßig ist das Dashboard nur in der Umgebunglocal zugänglich.
In Produktivumgebungen richten Sie den Zugriff über das viewPulse-Gate ein.
boot-Methode von app/Providers/AppServiceProvider.php ein.
Dashboard anpassen
Sie können die Dashboard-View veröffentlichen und Cards sowie Layout anpassen.resources/views/vendor/pulse/dashboard.blade.php.
Da das Dashboard mit Livewire läuft, sind Anpassungen ohne JavaScript-Build möglich.
cols und rows in Größe und Position steuern.
Recorders
Recorders fangen Events in Ihrer Anwendung ab und schreiben sie in die Pulse-Datenbank. Die Konfiguration finden Sie inconfig/pulse.php unter recorders.
Requests / Slow Requests
Der RecorderRequests erfasst Informationen zu eingehenden Requests.
Sie können den Schwellenwert für langsame Routen (Standard: 1000 ms), die Sampling-Rate und zu ignorierende Pfade festlegen.
Slow Jobs
SlowJobs erfasst Jobs, die den Schwellenwert (Standard: 1000 ms) überschreiten.
Sie können pro Job unterschiedliche Werte definieren.
Exceptions
Der RecorderExceptions erfasst gemeldete Ausnahmen der Anwendung.
Sie werden nach Exception-Klasse und Fundort gruppiert.
Cache
CacheInteractions erfasst Hits und Misses des Caches.
Sie können reguläre Ausdrücke definieren, um ähnliche Schlüssel zusammenzufassen.
Queues
Queues erfasst den Durchsatz der Queue-Jobs (eingereiht, in Bearbeitung, erledigt, freigegeben, fehlgeschlagen).
Servers
Servers erfasst CPU-, Speicher- und Storage-Auslastung der Server, auf denen die App läuft.
Auf jedem überwachten Server muss der Befehl pulse:check dauerhaft laufen.
gethostname() verwendet. Für einen abweichenden Namen setzen Sie eine Umgebungsvariable.
Users
UserRequests und UserJobs erfassen, welche Benutzer Requests bzw. Jobs ausgelöst haben, und zeigen sie in der Card „Application Usage“ an.
Redis Ingest
In High-Traffic-Umgebungen können Sie Einträge zunächst in einen Redis-Stream schicken und erst dann in die Datenbank übernehmen.pulse:work den Stream verarbeiten.
Sampling
Bei hohem Traffic können durch das Erfassen aller Events Millionen von Zeilen in der Datenbank entstehen. Mit Sampling protokollieren Sie nur einen Teil der Events und zeigen sie im Dashboard als Näherungswerte an.~ gekennzeichnet.
Je mehr Einträge eine Metrik erhält, desto stärker können Sie die Sampling-Rate senken, ohne die Aussagekraft zu verlieren.
Umgebungsvariablen
Wichtige Einstellungen lassen sich per Umgebungsvariable steuern.| Umgebungsvariable | Beschreibung | Standard |
|---|---|---|
PULSE_ENABLED | Pulse aktivieren/deaktivieren | true |
PULSE_DB_CONNECTION | DB-Verbindung von Pulse | Voreinstellung der App |
PULSE_INGEST_DRIVER | Ingest-Treiber (z. B. redis) | storage |
PULSE_SERVER_NAME | Server-Kennname | Wert von gethostname() |
PULSE_SLOW_REQUESTS_THRESHOLD | Schwelle für langsame Requests (ms) | 1000 |
PULSE_SLOW_JOBS_THRESHOLD | Schwelle für langsame Jobs (ms) | 1000 |
PULSE_SLOW_QUERIES_THRESHOLD | Schwelle für langsame Queries (ms) | 1000 |
Eigene Cards
Sie können eigene Pulse-Cards erstellen, um anwendungsspezifische Daten darzustellen. Cards werden als Livewire-Komponente implementiert.Pulse::record.
Zusammenfassung
| Ziel | Vorgehen |
|---|---|
| Pulse installieren | composer require laravel/pulse |
| Auf das Dashboard zugreifen | Route /pulse |
| Zugriff in Produktion regeln | viewPulse-Gate definieren |
| Server-Monitoring aktivieren | php artisan pulse:check dauerhaft laufen lassen |
| Sampling konfigurieren | Sampling-Rate über sample_rate festlegen |
Nächste Schritte
Error Handling
Erfahren Sie, wie Ihre Anwendung Ausnahmen behandelt und meldet.
Logging
Konfiguration und Nutzung des Logsystems von Laravel.