Glossario · Tipi di monitoraggio

Cos’è un endpoint di health check?

Un endpoint di health check è un URL, come /health o /healthz, che un servizio espone affinché load balancer, orchestratori e sistemi di monitoraggio possano chiedergli se funziona. Risponde 200 quando il servizio è in salute e uno stato di errore, di solito 503, quando non lo è.

Come funziona e perché è importante

Un buon health check verifica ciò di cui il servizio ha bisogno per servire gli utenti: una query veloce al database, la cache, la coda. Risponde in fretta, non ha effetti collaterali, non richiede login (o solo una chiave senza altri permessi) e restituisce un piccolo corpo JSON che indica quale controllo è fallito.

Di solito ce ne sono due tipi. Un liveness check dice che il processo è in esecuzione e non va riavviato; resta semplice. Un readiness check dice che l’istanza può ricevere traffico adesso, dipendenze comprese, così un load balancer o Kubernetes può instradare altrove. Il monitoraggio esterno richiede il tipo readiness.

Fai attenzione alle dipendenze che non controlli. Se l’health check fallisce ogni volta che un’API di terze parti è lenta, tutte le istanze possono essere messe fuori servizio contemporaneamente. Segnalale come degradate nel corpo della risposta e riserva il codice di stato ai guasti che bloccano davvero il servizio.

Esempio

GET /health

HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store

{"status":"ok","checks":{"database":"ok","cache":"ok"}}

Un monitor controlla il codice di stato e che $.status sia uguale a ok. Un 503, un timeout o qualsiasi altro valore fa fallire il controllo.

Come aiuta Uptimecheck

I monitor API di Uptimecheck possono controllare un endpoint di health check ogni minuto: il codice di stato (da 200 a 399 di default, oppure i codici che imposti), fino a 10 condizioni su JSON e header come $.status uguale a ok, una parola chiave e fino a 20 header di richiesta per una chiave. Il timeout predefinito è di 10 secondi e le risposte più lente del tuo limite inviano un avviso di lentezza.

Scopri Monitoraggio API

Prova gratuita di 14 giorni · Poi gratis con 5 monitor · Nessuna carta di credito

Approfondisci nelle guide

Guides 7 min di lettura

Come creare un endpoint di health check (e monitorarlo)

Un endpoint di health check dice a monitor e load balancer se la tua app può servire richieste. Che cosa controllare, come mantenerlo veloce e sicuro, codice per Laravel, Express e Flask e come monitorarlo.

Leggi

Agencies 7 min di lettura

Cosa monitorare sul tuo sito: checklist di URL e controlli

Monitorare solo la homepage fa perdere la maggior parte dei downtime. Una checklist degli URL e dei controlli che contano, da login e checkout a webhook, cron job, SSL, DNS e server, con configurazioni di esempio.

Leggi

Domande

Cosa dovrebbe restituire un endpoint di health check?

200 con un piccolo corpo JSON quando il servizio e le sue dipendenze critiche funzionano, 503 quando non funzionano. Aggiungi Cache-Control: no-store, così nessuna cache risponde al suo posto.

Un endpoint di health check deve essere pubblico?

Può esserlo, se non rivela nulla di sensibile: niente versioni, nomi host o messaggi di errore. Altrimenti proteggilo con un token inviato come header, e dai al monitor una chiave dedicata.

Che differenza c’è tra liveness e readiness?

La liveness dice che il processo è in esecuzione; se fallisce, il processo viene riavviato. La readiness dice che l’istanza può servire traffico adesso; se fallisce, l’istanza viene esclusa dalla rotazione finché non si ripristina.

I disservizi sono acqua passata.

Configura il tuo primo monitor in meno di un minuto, oppure esplora prima la demo live.

Prova gratuita di 14 giorni · Poi gratis con 5 monitor · Nessuna carta di credito