Saltar al contenido principal

¿Qué es Laravel Nightwatch?

Laravel Nightwatch es una plataforma SaaS gestionada para monitorizar de forma continua el entorno de producción de aplicaciones Laravel. Recoge y visualiza en tiempo real datos de telemetría de toda la aplicación: peticiones HTTP, consultas SQL, excepciones, jobs de cola, logs, tareas programadas, etc.
Nightwatch es un servicio de pago (facturación mensual). Se puede usar también con el plan gratuito, pero hay un límite en el número de eventos que se pueden recoger. Para usarlo de forma práctica en el plan gratuito es imprescindible aplicar la configuración de muestreo y filtrado descrita a continuación.

Diferencias con Telescope y Pulse

Nightwatch difiere en propósito de las herramientas de monitorización y depuración ya existentes en el ecosistema Laravel. Vamos a organizar sus usos.
HerramientaUsoHostingEntorno objetivo
TelescopeDepuración e investigación de queries en desarrolloPropio (dentro de la app Laravel)Desarrollo local
PulseAgregación y visualización de métricas de rendimientoPropio (dentro de la app Laravel)Producción y staging
NightwatchMonitorización en tiempo real de apps en producciónSaaS gestionado por LaravelEntorno de producción
Recoge prácticamente la misma información que Telescope, pero Nightwatch mantiene un proceso agente residente y envía los datos a la nube. Por eso, aunque el servidor caiga, puedes consultar el histórico, y puedes gestionar múltiples servidores y aplicaciones de forma centralizada.

Arquitectura

Nightwatch adopta una configuración en la que se interpone un proceso agente entre la app Laravel y la nube de Nightwatch. El agente permanece a la escucha en local (127.0.0.1:2407), recibe eventos de la app Laravel y los reenvía a la nube. Por eso hay que mantener el proceso agente siempre en ejecución.

Instalación y configuración inicial

1. Creación de cuenta y aplicación

Crea una cuenta en nightwatch.laravel.com y registra la organización y la aplicación. Tras registrar la aplicación se emite un token de entorno.

2. Instalación del paquete

composer require laravel/nightwatch
A diferencia de Telescope, la flag --dev no es necesaria. Nightwatch está pensado para usarse en producción.

3. Configuración del token

Añade el token al archivo .env.
NIGHTWATCH_TOKEN=your-api-key

4. Arranque del agente

php artisan nightwatch:agent
Hay que mantener el agente ejecutándose siempre en segundo plano. Laravel Cloud, Laravel Forge y Laravel Vapor cuentan con guías específicas. En Forge, con la integración oficial se configura automáticamente. Comprobación del estado del agente:
php artisan nightwatch:status

5. Desactivación en el entorno de tests

Se recomienda desactivar Nightwatch durante la ejecución de tests.
# .env
NIGHTWATCH_ENABLED=false
También se puede configurar en phpunit.xml.
<php>
    <env name="APP_ENV" value="testing"/>
    <env name="NIGHTWATCH_ENABLED" value="false"/>
</php>

Configuración para usarlo de forma práctica en el plan gratuito

El plan gratuito tiene un límite mensual de eventos. Con la configuración por defecto (muestreo al 100 % y recolección de todos los datos), aplicaciones con mucho tráfico alcanzan rápidamente el límite. Aplica siempre la siguiente configuración.

Bajar la tasa de muestreo

NIGHTWATCH_REQUEST_SAMPLE_RATE es por defecto 1.0 (recoge todas las peticiones). Se recomienda reducirlo a algo así como 0.1 (10 %) en el plan gratuito.
# .env
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1
Ejemplo de configuración que sigue recogiendo el 100 % de excepciones y comandos:
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1    # Solo el 10 % de las peticiones
NIGHTWATCH_EXCEPTION_SAMPLE_RATE=1.0  # Todas las excepciones (por defecto)
NIGHTWATCH_COMMAND_SAMPLE_RATE=1.0    # Todos los comandos (por defecto)

Desactivar la recolección de queries

Las consultas a base de datos representan una gran proporción de eventos. Desactivando la recolección de queries en el plan gratuito, dejas espacio para guardar eventos importantes (excepciones, peticiones, jobs).
# .env
NIGHTWATCH_IGNORE_QUERIES=true

Otras configuraciones de filtrado

Según sea necesario, puedes desactivar también la recolección de eventos de caché o de correo.
NIGHTWATCH_IGNORE_CACHE_EVENTS=true
NIGHTWATCH_IGNORE_MAIL=true
NIGHTWATCH_IGNORE_NOTIFICATIONS=true
NIGHTWATCH_IGNORE_OUTGOING_REQUESTS=true

Resumen de configuración recomendada para el plan gratuito

# .env (configuración recomendada para plan gratuito)
NIGHTWATCH_TOKEN=your-api-key
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1
NIGHTWATCH_IGNORE_QUERIES=true
Con solo estas tres líneas puedes lograr una monitorización de aplicaciones útil incluso en el plan gratuito.

Funcionalidades principales

Monitorización de peticiones

Recoge por cada petición HTTP el tiempo de respuesta, el código de estado y la información de ruta. Puedes identificar endpoints anormalmente lentos y descubrir cuellos de botella de rendimiento.

Seguimiento de excepciones

Captura en tiempo real las excepciones no gestionadas que se produzcan en producción. Se registran automáticamente la traza y snippets del código fuente, lo que facilita la investigación de la causa.
# Recolección de código fuente de la excepción (activado por defecto)
NIGHTWATCH_CAPTURE_EXCEPTION_SOURCE_CODE=true

Recolección de logs

Se integra con el sistema de logging de Laravel (Log::error(), etc.) y envía logs estructurados a Nightwatch.
# Nivel mínimo de logs a recoger (por defecto: debug)
NIGHTWATCH_LOG_LEVEL=error

Monitorización de jobs y tareas programadas

Sigue el historial de ejecución, el estado de éxito o fallo y el tiempo de ejecución de los jobs de cola y las tareas programadas. Permite identificar rápidamente problemas en el procesamiento por lotes.

Seguimiento de despliegues

Relaciona los cambios de cada release con los problemas. Permite investigar visualmente cosas como “desde este despliegue han aumentado las excepciones”.

Alertas y notificaciones

Usando la integración con Slack o webhooks puedes notificar al instante subidas repentinas de excepciones o degradaciones de rendimiento.

Cuándo usar Telescope y cuándo Nightwatch

  • Desarrollo local → Telescope
  • Quiero un dashboard agregado de producción → Pulse
  • Quiero trazas detalladas y alertas en producción → Nightwatch
Los tres no se excluyen mutuamente; también se puede usar Pulse y Nightwatch conjuntamente.

Conclusión

Laravel Nightwatch es una potente herramienta SaaS que mejora enormemente la visibilidad de las aplicaciones Laravel en producción. Al implantarla, ten en cuenta lo siguiente.
  • Hay que mantener el proceso agente ejecutándose siempre
  • En el plan gratuito son prácticamente imprescindibles las configuraciones NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1 y NIGHTWATCH_IGNORE_QUERIES=true
  • Telescope (desarrollo), Pulse (agregación) y Nightwatch (monitorización) tienen roles distintos y pueden usarse conjuntamente
Para la configuración detallada consulta la documentación oficial y la referencia de variables de entorno.

Técnicas prácticas de Laravel Telescope

Para depurar en desarrollo local, usa Telescope.
Última modificación el 13 de julio de 2026