Skip to main content

Cos’è Laravel Nightwatch

Laravel Nightwatch è una piattaforma SaaS ospitata che monitora continuamente l’ambiente di produzione delle applicazioni Laravel. Raccoglie e visualizza in tempo reale i dati di telemetria dell’intera applicazione: richieste HTTP, query SQL, eccezioni, job in coda, log, task pianificati e altro.
Nightwatch è un servizio a pagamento (fatturazione mensile). Puoi usare anche il piano gratuito, ma il numero di eventi raccolti ha un tetto. Per usarlo in modo pratico con il piano gratuito, è indispensabile impostare sampling e filtri come descritto di seguito.

Differenze rispetto a Telescope e Pulse

Nightwatch ha obiettivi diversi rispetto agli strumenti di monitoraggio e debug esistenti nell’ecosistema Laravel. Riepiloghiamo l’uso di ciascuno. Raccoglie informazioni quasi identiche a Telescope, ma Nightwatch mantiene residente un processo agente che invia i dati al cloud. Puoi quindi consultare i dati storici anche se il server è caduto e gestire in un unico posto più server e applicazioni.

Architettura

Nightwatch adotta una struttura in cui un processo agente sta tra l’app Laravel e il cloud Nightwatch. L’agente resta in ascolto in locale (127.0.0.1:2407), riceve gli eventi dell’app Laravel e li inoltra al cloud. Per questo il processo agente deve essere sempre attivo.

Installazione e configurazione iniziale

1. Creazione di account e applicazione

Su nightwatch.laravel.com crea un account e registra organizzazione e applicazione. Dopo la registrazione dell’applicazione viene emesso un token d’ambiente.

2. Installazione del pacchetto

A differenza di Telescope, il flag --dev non è necessario. Nightwatch è pensato per l’uso in produzione.

3. Impostazione del token

Aggiungi il token al file .env.

4. Avvio dell’agente

L’agente deve rimanere in esecuzione in background in modo continuo. Laravel Cloud, Laravel Forge e Laravel Vapor hanno guide dedicate. Con Forge, usando l’integrazione ufficiale, la configurazione è automatica. Verifica dello stato dell’agente:

5. Disattivazione in ambiente di test

Si consiglia di disabilitare Nightwatch durante l’esecuzione dei test.
Puoi configurarlo anche in phpunit.xml.

Configurazione per un uso pratico con il piano gratuito

Il piano gratuito ha un tetto mensile di eventi. Con la configurazione di default (sampling rate 100% e raccolta di tutti i dati), un’app con molto traffico raggiunge rapidamente il limite. Applica sempre le impostazioni seguenti.

Abbassa il sampling rate

NIGHTWATCH_REQUEST_SAMPLE_RATE ha valore predefinito 1.0 (tutte le richieste). Nel piano gratuito si consiglia di limitarlo a circa 0.1 (10%).
Esempio di configurazione che raccoglie ancora tutti gli eccezioni e i comandi:

Disabilita la raccolta delle query

Le query al database rappresentano una quota importante degli eventi. Nel piano gratuito, disabilitare la raccolta delle query lascia spazio per eventi più importanti (eccezioni, richieste, job).

Altre impostazioni di filtro

Se necessario, puoi disabilitare anche la raccolta di eventi cache e di email.

Riepilogo della configurazione consigliata per il piano gratuito

Solo con queste tre righe puoi ottenere un monitoraggio applicativo pratico anche con il piano gratuito.

Funzionalità principali

Monitoraggio delle richieste

Raccoglie, per ogni richiesta HTTP, tempo di risposta, status code, informazioni di rotta e altro. Puoi individuare endpoint anomalmente lenti e trovare colli di bottiglia di performance.

Tracciamento delle eccezioni

Cattura in tempo reale le eccezioni non gestite in produzione. Stack trace e snippet di codice sorgente vengono registrati automaticamente, semplificando l’indagine.

Raccolta dei log

Si integra con il sistema di log di Laravel (Log::error(), ecc.) e invia log strutturati a Nightwatch.

Monitoraggio di job e task pianificati

Tiene traccia della cronologia di esecuzione, dello stato di successo/fallimento e del tempo di esecuzione di job in coda e task pianificati. Puoi identificare rapidamente i problemi delle elaborazioni batch.

Tracciamento dei deployment

Collega ogni rilascio ai relativi cambiamenti e problemi. Consente indagini visive tipo “dopo questo deploy sono aumentate le eccezioni”.

Alert e notifiche

Con l’integrazione Slack o via webhook puoi ricevere notifiche immediate su picchi di eccezioni o degradi di performance.

Come scegliere tra Telescope e Nightwatch

  • Sviluppo locale → Telescope
  • Vuoi una dashboard di aggregazione della produzione → Pulse
  • Vuoi trace dettagliati e alert per la produzione → Nightwatch
I tre non si escludono a vicenda: puoi usare insieme Pulse e Nightwatch.

Conclusioni

Laravel Nightwatch è un potente strumento SaaS che aumenta di molto la visibilità sulle app Laravel in produzione. Al momento dell’introduzione, tieni a mente questi punti.
  • È necessario mantenere sempre attivo il processo agente
  • Per il piano gratuito è di fatto obbligatorio impostare NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1 e NIGHTWATCH_IGNORE_QUERIES=true
  • Telescope (sviluppo), Pulse (aggregazione) e Nightwatch (monitoraggio) hanno ruoli diversi e possono coesistere
Per la configurazione dettagliata consulta la documentazione ufficiale e il riferimento delle variabili d’ambiente.

Tecniche pratiche di Laravel Telescope

Per il debug in sviluppo locale usa Telescope.
Ultima modifica il 13 luglio 2026