Výjimka se zaloguje, spustí se upozornění, někdo to opraví. Tato smyčka funguje - u selhání dostatečně hlasitých na to, aby se sama ohlásila. Selhání, která naše klienty stojí skutečné peníze, jsou ta tichá: dodavatel tiše obměnil klíč SFTP, noční export vytvořil platný soubor s nula řádky, konzument fronty „běží", ale nic nezpracovává.
Nic neselhalo chybou. Všechno se zastavilo.
Metriky toku místo health checků
Health check odpovídá na otázku „je proces naživu?" Otázka, na které záleží, zní „proběhla ta práce?" Proto je primárním signálem na každé integraci, kterou provozujeme, metrika toku - počet záznamů za interval, porovnaný s tím, co daný interval obvykle nese:
- Objednávky synchronizované za hodinu, s výchozími hodnotami pro všední dny a víkendy - tichá neděle je normální; tiché úterý v 10:00 je incident.
- Příchody souborů jako termíny, ne jako události: „cenový soubor partnera X musí dorazit do 06:30" - upozornění se spustí, když nedorazí.
- Zpoždění od začátku do konce, měřené od časového razítka zdroje po zápis do cíle, ne od vstupu do fronty.
Problém nulových řádků
Zvláštní zmínku si zaslouží nejčastější tiché selhání, které vídáme: naplánovaná úloha, která uspěje s prázdným výstupem. Upstream změnil filtr, přihlašovací údaje přišly o přístup ke čtení jedné tabulky, chyba v časovém okně vyloučila úplně vše - a úloha skončí s kódem 0, samá zelená.
Každý extrakt, který dodáváme, nese hranici věrohodnosti: nejmenší velikost výstupu, která kdy byla pro danou úlohu a kalendářní kontext legitimní. Pod touto hranicí je běh pozastaven a člověka se zeptáme: „tohle vytvořilo 0 řádků; posledních 90 úterků byl průměr 4 200 - pokračovat?" Tato jediná pojistka zachytila víc skutečných incidentů než všechno naše upozorňování na výjimky dohromady.
Ticho je signál. Nastavte pro něj měření záměrně, protože samo se nikdy neohlásí.