Laravel Time Machine ist ein Request-Lifecycle-Profiler des Entwicklers Jaydeep Gadhiya. Er zeichnet jede Phase eines Laravel-Requests auf – Framework-Bootstrap, Middleware, Routing, Controller-Ausführung, Response und den Terminate-Schritt – mit Millisekundengenauigkeit und beantwortet damit die Frage, wohin die Zeit im Request geflossen ist.

Das Paket erstellt eine Gantt-artige Timeline pro Request und kann über die Option collectors.queries jede SQL-Abfrage inklusive Bindings, Verbindungsname und Ausführungszeit erfassen. Requests über 500ms und Queries über 50ms werden standardmäßig als langsam markiert, beide Schwellenwerte sind konfigurierbar. Profile werden als reine JSON-Dateien in storage/time-machine gespeichert statt in Datenbanktabellen, sodass keine Migrationen nötig sind. Ignore-Patterns können Asset-Requests oder Pfade wie das Telescope-Dashboard ausschließen. Der Profiler folgt APP_DEBUG und bleibt in Produktion deaktiviert, sofern nicht explizit aktiviert.

Nach der Installation liefert ein eigenständiges Dashboard unter /time-machine eine visuelle Timeline pro Request samt Speicherverbrauch und Query-Anzahl; langsame Requests werden in der Liste hervorgehoben.

Über die TimeMachine-Facade lässt sich eigener Code instrumentieren: TimeMachine::mark() setzt einen Zeitpunkt-Marker, TimeMachine::measure() misst eine Closure, und TimeMachine::startSpan()/endSpan() erlauben manuelle Span-Steuerung – nützlich etwa, um externe API-Aufrufe neben den Framework-Phasen sichtbar zu machen.

Standardmäßig behält das Paket die 100 jüngsten Profile und entfernt automatisch ältere; das Limit lässt sich über die Konfiguration storage.max_records oder die Umgebungsvariable TIME_MACHINE_MAX_RECORDS anpassen.

Im Vergleich zu Laravel Telescope und Laravel Debugbar liegt Time Machine dazwischen: Telescope überwacht einen breiteren Bereich der Anwendung (Requests, Jobs, Mail, Notifications, Cache) und speichert in der Datenbank; Debugbar zeigt Timing- und Query-Daten nur für die aktuelle Seite. Time Machine bietet wie Telescope einen durchsuchbaren Verlauf, beschränkt sich aber auf Lifecycle-Timing und Queries in Flatfiles.

Das Paket unterstützt Laravel 8 bis 13 und wird per Composer installiert (composer require jaydeep/laravel-time-machine) mit Auto-Discovery für Service Provider und Facade; das Veröffentlichen der Konfigurationsdatei via php artisan vendor:publish --tag=time-machine-config ist optional. Der Quellcode liegt auf GitHub unter JaydeepGadhiya/laravel-timemachine.