¿Qué es Laravel Pulse?
Laravel Pulse es un dashboard de monitorización que muestra de un vistazo el rendimiento y el uso de la aplicación. Permite localizar cuellos de botella (jobs y endpoints lentos) o consultar quiénes son los usuarios más activos.Diferencia entre Telescope y Pulse
| Característica | Laravel Pulse | Laravel Telescope |
|---|---|---|
| Objetivo | Monitorizar tendencias y datos agregados de la app | Depurar solicitudes/eventos individuales en detalle |
| Datos | Métricas agregadas | Logs de eventos individuales |
| Uso adecuado | Monitorización de rendimiento en producción | Depuración en desarrollo/staging |
Para depuración detallada de eventos individuales, usa Laravel Telescope.
Diagrama del flujo de datos
Instalación
Tras la migración, accede al dashboard en la ruta
/pulse.
Publicar el archivo de configuración
También puedes publicar solo el archivo de configuración para personalizarlo.Acceso al dashboard
Configuración de autenticación
Por defecto, solo se accede al dashboard en el entornolocal.
En producción, personaliza la puerta de autorización viewPulse para controlar el acceso.
boot de app/Providers/AppServiceProvider.php.
Personalización del dashboard
Publica la vista del dashboard para personalizar cards y layout.resources/views/vendor/pulse/dashboard.blade.php.
Como el dashboard funciona con Livewire, puedes personalizarlo sin compilar JavaScript.
cols y rows para ajustar tamaño y posición.
Recorders
Los recorders capturan eventos de la aplicación y los registran en la BD de Pulse. La configuración vive en la secciónrecorders de config/pulse.php.
Requests / Slow Requests
Requests captura información de las solicitudes.
Puedes configurar el umbral de rutas lentas (1000 ms por defecto), la tasa de muestreo y las rutas a ignorar.
Slow Jobs
SlowJobs captura jobs que superan el umbral (1000 ms por defecto).
Puedes configurar umbrales distintos por job.
Exceptions
Exceptions captura las excepciones reportables. Se agrupan por clase y ubicación.
Cache
CacheInteractions captura hits y misses de caché.
Puedes agrupar claves parecidas con una regex.
Queues
Queues captura el throughput de los jobs en cola (encolados, procesando, completados, liberados y fallidos).
Servers
Servers captura el uso de CPU, memoria y almacenamiento de los servidores que ejecutan la app.
Para usarlo, mantén activo pulse:check en cada servidor monitorizado.
gethostname(). Personalízalo con una variable de entorno.
Users
UserRequests y UserJobs capturan el usuario que originó solicitudes o jobs y lo muestran en la card “Application Usage”.
Ingesta con Redis
En entornos de alto tráfico, puedes enviar las entradas a un stream de Redis y luego ingestarlas a la BD.pulse:work para procesar el stream.
Muestreo
En entornos de alto tráfico, capturar todos los eventos puede generar millones de filas. Con el muestreo registras solo una parte y el dashboard muestra un valor aproximado.~.
Cuanto más grande sea el volumen de entradas, más se puede bajar la tasa manteniendo precisión.
Variables de entorno
Los principales ajustes se controlan por variables de entorno.| Variable | Descripción | Por defecto |
|---|---|---|
PULSE_ENABLED | Activa/desactiva Pulse | true |
PULSE_DB_CONNECTION | Conexión de BD que usa Pulse | La por defecto de la app |
PULSE_INGEST_DRIVER | Driver de ingesta (por ejemplo, redis) | storage |
PULSE_SERVER_NAME | Nombre identificador del servidor | Valor de gethostname() |
PULSE_SLOW_REQUESTS_THRESHOLD | Umbral de solicitud lenta (ms) | 1000 |
PULSE_SLOW_JOBS_THRESHOLD | Umbral de job lento (ms) | 1000 |
PULSE_SLOW_QUERIES_THRESHOLD | Umbral de consulta lenta (ms) | 1000 |
Cards personalizadas
Puedes crear tus propias cards de Pulse para mostrar datos específicos. Se implementan como componentes de Livewire.Pulse::record.
Resumen
| Objetivo | Método |
|---|---|
| Instalar Pulse | composer require laravel/pulse |
| Acceder al dashboard | Ruta /pulse |
| Control de acceso en producción | Definir la puerta viewPulse |
| Activar monitorización de servidores | Mantener activo php artisan pulse:check |
| Configurar muestreo | Ajustar sample_rate |
Próximos pasos
Manejo de errores
Aprende el manejo y reporte de excepciones de la aplicación.
Logging
Configuración y uso del sistema de logs de Laravel.