Laravel Time Machine analiza el ciclo de vida de las peticiones sin base de datos
Laravel Time Machine, un paquete de Jaydeep Gadhiya, mide cada fase de una petición Laravel —arranque, middleware, enrutamiento, controlador, respuesta, terminación— con precisión de milisegundos y captura consultas SQL.
Los perfiles se guardan en JSON dentro de storage/time-machine, marcando peticiones lentas, con un panel en /time-machine para Laravel 8 a 13.
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.
Tribuna de lectores
Aún no hay aportaciones — abre el debate.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
Esperando tu clic …
·