Izjema se zabeleži, sproži se opozorilo, nekdo jo popravi. Ta zanka deluje - pri napakah, ki so dovolj glasne, da se same najavijo. Napake, ki naše stranke stanejo pravega denarja, so tihe: ponudnik je tiho zamenjal ključ SFTP, nočni izvoz je ustvaril veljavno datoteko z nič vrsticami, porabnik čakalne vrste „teče", vendar ne obdeluje ničesar.
Nič ni javilo napake. Vse se je ustavilo.
Metrike pretoka namesto preverjanj zdravja
Preverjanje zdravja odgovori na vprašanje „ali proces živi?" Vprašanje, ki šteje, pa je „ali se je delo zgodilo?" Zato je primarni signal pri vsaki integraciji, ki jo vodimo, metrika pretoka - število zapisov na interval, primerjano s tem, kar ta interval običajno nosi:
- Naročila, sinhronizirana na uro, z osnovnimi vrednostmi za delovnike/vikende - tiha nedelja je normalna; tih torek ob 10:00 je incident.
- Prihod datotek kot roki, ne kot dogodki: „datoteka s cenami partnerja X mora prispeti do 06:30" - opozorilo se sproži, ko datoteka ne prispe.
- Zamik od začetka do konca, merjen od izvornega časovnega žiga do zapisa v cilju, ne od vstopa v čakalno vrsto.
Problem ničelnega števila vrstic
Posebna omemba za najpogostejšo tiho napako, ki jo opažamo: načrtovano opravilo, ki uspe s praznim izhodom. Nadrejeni sistem je spremenil filter, poverilnica je izgubila bralni dostop do ene tabele, napaka v časovnem oknu datuma je izključila vse - opravilo pa se konča z 0, vse zeleno po vrsti.
Vsak izvoz, ki ga dostavimo, ima vgrajen prag verjetnosti: najmanjšo velikost izhoda, ki je bila kadar koli legitimna za to opravilo in koledarski kontekst. Pod tem pragom se izvajanje zadrži, človeku pa se zastavi vprašanje: „to je ustvarilo 0 vrstic; zadnjih 90 torkov je povprečje znašalo 4.200 - nadaljujem?" Ta edina zaščita je ujela več resničnih incidentov kot vsa naša opozorila o izjemah skupaj.
Tišina je signal. Namerno jo instrumentirajte, kajti sama se ne bo nikoli najavila.