Kontakt aufnehmen

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

Laravel 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.

Laravel Entwickler gesucht?

Wir haben bereits viel Erfahrung im Umgang mit Laravel und Vue.js.
Nehmen Sie gerne unverbindlich Kontakt zu uns auf.

zum Angebot

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Über uns

Stefan Wienströer

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

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern