Tutti gli articoli
2 min di letturaMonitoraggio

Perché uno stato verde non garantisce un servizio funzionante

Uno stato verde è una buona notizia: i controlli configurati sono riusciti. Conta però ciò che verificano. Un processo in esecuzione e un accesso utente riuscito sono due risultati diversi.

Indice

Che cosa significa verde in questo caso

Pensiamo a un’applicazione web: il processo è attivo e la porta è raggiungibile. L’accesso fallisce comunque perché una connessione necessaria al database non funziona. Se il monitoraggio verifica soltanto processo e porta, entrambi i controlli possono continuare a segnalare correttamente OK. Il percorso di accesso non è stato verificato.

Occorre quindi definire i controlli giusti. Un buon monitoraggio mostra quali funzioni sono disponibili e dove un problema compromette il servizio.

Dal processo alla funzione reale

I controlli su processi e porte sono utili per individuare rapidamente i guasti di base. Un servizio su cui le persone fanno affidamento richiede anche verifiche funzionali adeguate:

  • L’applicazione risponde entro un tempo ragionevole?
  • Restituisce il contenuto previsto, anziché una qualsiasi risposta HTTP riuscita?
  • Un’operazione importante e ben delimitata può essere completata con successo?

La portata del test dipende dal servizio. Dovrebbe generare poco carico ed evitare modifiche ai dati di produzione. Se serve un account, bastano le autorizzazioni necessarie per quel test.

Un avviso deve aiutare a risolvere il problema

Un avviso utile identifica la funzione interessata e il suo impatto. Metriche e log aiutano poi nella diagnosi. Tentativi ripetuti, timeout e avvisi appropriati consentono di distinguere le anomalie brevi dai problemi persistenti.

Va verificato anche il controllo stesso: rileva un guasto introdotto in modo controllato? Segnala un timeout? L’allarme rientra dopo il ripristino?

Dare al verde un significato chiaro

Uno stato utile deve essere spiegabile: che cosa è stato controllato, quando e con quale criterio di successo? Il verde rappresenta così una funzione precisa ed effettivamente verificata.

Una guida pratica è disponibile nel Public Repository: Designing Useful Monitoring Checks.

Approfondimenti: Google SRE: Monitoring Distributed Systems.