Laravel Time Machine es un perfilador del ciclo de vida de peticiones creado por el desarrollador Jaydeep Gadhiya. Registra cada etapa de una petición Laravel —arranque del framework, middleware, enrutamiento, ejecución del controlador, respuesta y el paso de terminación— con precisión de milisegundos, respondiendo a la pregunta de dónde se fue el tiempo en la petición.
El paquete construye una línea de tiempo estilo Gantt para cada petición y puede capturar cada consulta SQL con sus bindings, nombre de conexión y tiempo de ejecución, mediante la opción activable collectors.queries. Por defecto, las peticiones que superan 500ms y las consultas que superan 50ms se marcan como lentas, siendo ambos umbrales configurables. Los perfiles se almacenan como archivos JSON planos en storage/time-machine en lugar de tablas de base de datos, por lo que no se requieren migraciones. Patrones de exclusión permiten ignorar peticiones de assets o rutas como el panel de Telescope. El perfilador sigue APP_DEBUG y permanece desactivado en producción salvo que se habilite explícitamente.
Una vez instalado, se sirve un panel autónomo en /time-machine que muestra una línea de tiempo visual por petición junto con el uso de memoria y el número de consultas, destacando las peticiones lentas en la lista.
Los desarrolladores pueden instrumentar su propio código mediante la fachada TimeMachine: TimeMachine::mark() coloca un marcador puntual, TimeMachine::measure() cronometra una closure, y TimeMachine::startSpan()/endSpan() permiten control manual de spans, útil para seguir por ejemplo una llamada a una API externa junto a las fases del framework.
Por defecto, el paquete conserva los 100 perfiles más recientes y elimina automáticamente los más antiguos; el límite se puede ajustar mediante la configuración storage.max_records o la variable de entorno TIME_MACHINE_MAX_RECORDS.
Comparado con Laravel Telescope y Laravel Debugbar, Time Machine se sitúa en un punto intermedio: Telescope monitoriza un ámbito más amplio de la aplicación (peticiones, jobs, correo, notificaciones, caché) y almacena en base de datos; Debugbar muestra datos de timing y consultas solo para la página actual. Time Machine mantiene un historial navegable como Telescope, pero limita su alcance al timing del ciclo de vida y las consultas, almacenados en archivos planos.
El paquete es compatible con Laravel 8 a 13 y se instala vía Composer (composer require jaydeep/laravel-time-machine) con auto-discovery para el service provider y la fachada; publicar el archivo de configuración con php artisan vendor:publish --tag=time-machine-config es opcional. El código fuente está disponible en GitHub bajo JaydeepGadhiya/laravel-timemachine.