Laravel Telescope
Telescope kann beim Debugging einer Laravel-Anwendung helfen. Dafür bietet es ein übersichtliches Dashboard, über das sich verschiedene Ereignisse, die zur Laufzeit der Anwendung stattfinden anzeigen und analysieren lassen. Ereignisse umfassen unter anderem Http-Anfragen, ausgeführte Datenbank-Queries, angefragte Routen, Cache-Anfragen und Fehlermeldungen.
Telescope installieren
Telescope ist in der Standard-Installation nicht enthalten und kann per
composer require laravel/telescope
in das bestehende Projekt integriert werden.
Mit php artisan telescope:install
können die Config-Dateien von Telescope bearbeitbar gemacht werden.
Außerdem benötigt Telescope drei neue Datenbanktabellen, die mit
php artisan migrate angelegt werden können
.
Standardmäßig lässt sich das Telescope-Dashboard jetzt im Browser unter der Route /telescope
aufrufen.
Das geht aber nur in der lokalen Entwicklungsumgebung.
Für den Live-Betrieb können autorisierte User über die gate
-Funktion in
app\Providers\TelescopeServiceProvider.php
definiert werden:
protected function gate() { Gate::define('viewTelescope', function ($user) { return in_array($user->email, [ „admin@example.com“ ]); }); }
Das Telescope-Dashboard

Auf dem Dashboard sehen wir links eine Liste aller Ereignisse, die Telescope aufzeichnet. In der Queries-Ansicht sehen wir zum Beispiel alle Queries die ausgeführt wurden. Das kann sehr hilfreich sein, wenn man Eloquent-Abfragen optimieren möchte (s. auch unter "Eloquent queries optimieren" auf Laravel Performance-Optimierung).
Telescope-Tabellen regelmäßig leeren
Da Telescope viele einzelne Ereignisse aufzeichnet, können daraus sehr schnell sehr viele Datenbank-Einträge entstehen.
Es ist also wichtig, die Telescope-Tabellen regelmäßig zu leeren.
Über den command php artisan telescope:prune
werden Einträge, die älter als 24 Stunden sind, gelöscht.
Am besten man legt den Command direkt per Scheduler fest, damit er auch regelmäßig ausgeführt wird
(s. hierzu auch Task Scheduler).
Wer den Löschzeitraum selbst festlegen möchte kann den Command erweitern und zum Beispiel alle Einträge bis zur letzten Stunde löschen:
php artisan telescope:prune –hours=1
Live-Einsatz von Telescope
Telescope im Live-Betrieb zu verwenden sollte man sich angesichts des teils immensen Overheads, der durch das Loggen aller möglichen Events entstehen kann, jedoch gut überlegen.
Zum Debugging einer Live-Anwendung könnte man alternativ Telescope nur vorübergehend aktivieren.
Dazu lässt sich in der .env der Eintrag TELESCOPE_ENABLED=false
hinzufügen, den wir dann für kurze Zeit auf true
setzen können.
In config\telescope.php
sieht man, dass standardmäßig alle Ereignisse für Telescope aktiviert sind (durch die sogenannten "Watcher").
Das könnte man direkt hier oder auch über die entsprechenden env-Variablen anpassen, so dass zum Beispiel nur TELESCOPE_EXCEPTION_WATCHER
aktiviert wird, wenn nur Exceptions aufgezeichnet werden sollen.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project