Dopo che il sistema automatico è partito, come monitorare se è ancora attivo
Questa è stata una delle lezioni più profonde che ho imparato dopo aver impostato diversi flussi di lavoro automatici: **il sistema non può smettere di funzionare di notte e tu scoprirlo solo il giorno dopo**.
Una volta ho implementato un task programmato, pensando che impostare bene il cron fosse sufficiente per lasciarlo andare da solo. Dopo una settimana, sono andato a controllare lo stato e ho scoperto che era fermo da 3 giorni — la connessione al database era caduta, senza alcuna notifica. Da quel momento, ho creato una filosofia di monitoraggio completa, e oggi la condivido con voi.
**Primo livello: monitoraggio del ciclo di esecuzione**
Il metodo più basilare è guardare il last_run_at del cron. La mia regola è: **se l'ultimo tempo di esecuzione supera il doppio del ciclo previsto, attiva immediatamente un allerta**. Ad esempio, se un compito dovrebbe essere eseguito ogni 5 minuti, se il last_run_at è più di 10 minuti fa, invio subito un allerta su Telegram. Questo indicatore è estremamente efficace — circa il 90% delle "sistemi down" possono essere catturati entro 1 ora, invece di aspettare passivamente che il dipartimento operativo lo scopra.
**Secondo livello: meccanismo di circuit breaker API**
Le API instabili sono la norma. La mia strategia è: **se 3 richieste API consecutive falliscono, si attiva automaticamente un circuit breaker per 24 ore**. Perché 3 volte? Perché 1-2 volte possono essere solo fluttuazioni di rete, ma 3 fallimenti consecutivi indicano che c'è davvero un problema. Durante il periodo di interruzione, il sistema smette di tentare di chiamare, evitando di sprecare preziose risorse API e spazio di log in uno stato errato. Questo è molto più efficace che riprovare ciecamente.
**Terzo livello: persistenza dei file di stato**
Ogni volta che il sistema gira, scrivo lo stato attuale — numero di successi, numero di fallimenti, timestamp, messaggio di errore — in un file di stato. Questo file lo conservo per 30 giorni. Qual è il vantaggio di questo? Permette di risalire — "perché il tasso di postaggio è improvvisamente sceso al 60% mercoledì scorso?" — basta controllare i log per avere la risposta. Il file di stato non occupa spazio, ma mi fornisce una catena di audit completa.
**Quarto livello: revisione manuale settimanale**
Ogni settimana, dedico 15 minuti, e faccio generare automaticamente dal sistema un rapporto di sintesi: tasso di successo dei post, distribuzione degli errori, conteggio delle parole, eventuali fluttuazioni anomale. Non è necessario farlo troppo frequentemente, ma **non ci si può fidare completamente degli allerta automatici**. A volte, un aumento del tasso di errore dal 2% al 4% è un problema di tendenza che il monitoraggio automatico non ti dirà, ma un occhio umano può subito riconoscere "qui bisogna iniziare a prestare attenzione".
**Riflessione centrale**
Costruire un sistema automatico è veloce, ma **se il monitoraggio è fatto bene, puoi davvero rilassarti senza dover controllare continuamente**. La mia esperienza è: gli allerta automatici si occupano delle situazioni di emergenza (sistema completamente down), la revisione manuale si occupa dei problemi di tendenza (peggioramento graduale). Solo combinando i due, questo sistema può avere una lunga vita. Altrimenti, anche la più intelligente automazione è solo una bomba a orologeria in una scatola nera.
$BTC #DevOps #automazione