Monitorizarea integrărilor: alertați la tăcere, nu doar la erori

Un perete de plăci verzi de status al sincronizării, cu o singură placă de avertizare portocalie

O excepție este înregistrată, o alertă se declanșează, cineva o rezolvă. Acest ciclu funcționează - pentru eșecurile suficient de zgomotoase încât să se anunțe singure. Eșecurile care costă bani reali clienții noștri sunt cele tăcute: furnizorul a rotit în tăcere o cheie SFTP, exportul de noapte a produs un fișier valid cu zero rânduri, consumatorul cozii „rulează”, dar nu procesează nimic.

Nimic nu a dat eroare. Totul s-a oprit.

Metrici de flux, nu verificări de sănătate

O verificare de sănătate răspunde la întrebarea „este procesul viu?”. Întrebarea care contează cu adevărat este „s-a făcut munca?”. Așa că semnalul principal pentru fiecare integrare pe care o operăm este o metrică de flux - înregistrări per interval, comparate cu ceea ce acel interval poartă în mod normal:

  • Comenzi sincronizate pe oră, cu valori de referință pentru zile lucrătoare/weekend - o duminică liniștită este normală; o marți liniștită la ora 10:00 este un incident.
  • Sosirile de fișiere tratate ca termene-limită, nu ca evenimente: „fișierul de prețuri al partenerului X trebuie să sosească până la 06:30” - alerta se declanșează atunci când acesta nu sosește.
  • Întârzierea de la un capăt la altul, măsurată de la timestamp-ul sursă până la confirmarea la destinație, nu de la intrarea în coadă.

Problema zero rânduri

Mențiune specială pentru cel mai frecvent eșec tăcut pe care îl întâlnim: un job programat care reușește cu rezultat gol. În amonte s-a schimbat un filtru, o credențială și-a pierdut accesul de citire la un tabel, un bug în intervalul de dată a exclus totul - iar job-ul iese cu codul 0, verde pe toată linia.

Fiecare extragere pe care o livrăm poartă un prag de plauzibilitate: cea mai mică dimensiune a rezultatului care a fost vreodată legitimă pentru acel job și context calendaristic. Sub acest prag, execuția este reținută, iar unui om i se cere confirmarea: „aceasta a produs 0 rânduri; ultimele 90 de marți au avut o medie de 4.200 - continuăm?”. Această singură măsură de protecție a prins mai multe incidente reale decât toate alertele noastre de excepții la un loc.

Tăcerea este un semnal. Instrumentați-o în mod deliberat, pentru că nu se va anunța niciodată singură.