După ce sistemul de automatizare a început să funcționeze, cum monitorizezi dacă mai este activ
Aceasta a fost cea mai profundă lecție pe care am învățat-o după ce am construit câteva linii automate: **sistemul nu poate muri la miezul nopții și să te facă să descoperi a doua zi**.
Am avut un task programat, crezând că setarea cron-ului îl va face să funcționeze fără probleme. După o săptămână, când am verificat starea, am descoperit că s-a oprit în tăcere de 3 zile - conexiunea la baza de date s-a rupt, fără nicio notificare. De atunci, am creat un set complet de filozofii de monitorizare, pe care le împărtășesc astăzi cu voi.
**Prima nivel: monitorizarea ciclului de execuție**
Cea mai de bază metodă este să verifici last_run_at al cron-ului. Regulile mele sunt: **dacă ultima execuție a depășit de 2 ori perioada așteptată, se declanșează imediat o alertă**. De exemplu, un task care ar trebui să ruleze la fiecare 5 minute, dacă last_run_at este mai mare de 10 minute față de acum, trimite direct o alertă pe Telegram. Acest indicator este extrem de eficient - cam 90% din "sistemul a căzut" pot fi capturate în 1 oră, și nu așteptând pasiv ca departamentul de afaceri să constate.
**A doua nivel: mecanism de întrerupere API**
Instabilitatea API-ului este norma. Metoda mea este: **dacă 3 cereri API consecutive eșuează, se întrerupe automat timp de 24 de ore**. De ce 3? Pentru că 1-2 eșecuri pot fi doar fluctuații de rețea, dar 3 eșecuri consecutive înseamnă că este o problemă reală. În perioada de întrerupere, sistemul nu mai face apeluri, evitând să irosească resursele valoroase de API și spațiul de logare continuând în starea greșită. Acest lucru este mult mai eficient decât a încerca să retry în orb.
**A treia nivel: persistența fișierului de stare**
De fiecare dată când sistemul rulează, scriu starea curentă - numărul de succese, numărul de eșecuri, timestamp-ul, informațiile despre erori - într-un fișier de stare. Acest fișier îl păstrez timp de 30 de zile. Care este beneficiul? Permite întoarcerea la trecut - "de ce rata de postare a scăzut brusc la 60% miercurea trecută?" - verificând log-urile am răspunsul. Fișierul de stare nu ocupă mult spațiu, dar îmi oferă o întreagă lanț de audit.
**A patra nivel: revizuire umană săptămânală**
Fiecare săptămână, dedic 15 minute pentru ca sistemul să genereze automat un raport sumar: rata de succes a postărilor, distribuția erorilor, statistica numărului de cuvinte, dacă există fluctuații anormale. Nu trebuie să fie foarte frecvent, dar **nu poți depinde complet de alertele automate**. Uneori, o tendință de la 2% la 4% în rata de erori nu va fi semnalizată de monitorizarea automată, dar un om poate observa imediat "aici trebuie să începem să ne concentrăm".
**Învățătura principală**
Construirea automatizării este rapidă, dar **monitorizarea bine făcută îți oferă liniște și nu trebuie să stai cu ochii pe ea**. Experiența mea este: alertele automate se ocupă de situațiile de urgență (când sistemul se oprește complet), iar revizuirea umană se ocupă de problemele de tendință (când lucrurile încep să se degradeze). Combinația celor două face ca acest sistem să aibă o viață lungă. Altfel, chiar și cea mai inteligentă automatizare rămâne doar o bombă cu ceas într-o cutie neagră.
$BTC #DevOps #automate