Overvåking av integrasjoner: varsle ved stillhet, ikke bare ved feil

En vegg av grønne synkroniseringsstatusbrikker med én enkelt gul varselbrikke

Et unntak logges, et varsel utløses, noen fikser det. Den løkken fungerer - for feil som er høylytte nok til å varsle om seg selv. Feilene som koster kundene våre reelle penger, er de stille: leverandøren roterte en SFTP-nøkkel uten varsel, nattens eksport produserte en gyldig fil med null rader, kø-konsumenten «kjører» men behandler ingenting.

Ingenting feilet. Alt stoppet.

Flytmålinger fremfor helsesjekker

En helsesjekk svarer på «lever prosessen?». Spørsmålet som betyr noe, er «skjedde arbeidet?». Så det primære signalet på hver eneste integrasjon vi drifter, er en flytmåling - poster per intervall, sammenlignet med det intervallet normalt inneholder:

  • Ordre synkronisert per time, med grunnlinjer for hverdag/helg - en stille søndag er normalt; en stille tirsdag klokken 10:00 er en hendelse.
  • Filankomster som frister, ikke hendelser: «partner X sin prisfil skal komme innen 06:30» - varselet utløses når den ikke kommer.
  • Ende-til-ende-forsinkelse, målt fra kildens tidsstempel til commit i mål, ikke fra køinngang.

Null-rader-problemet

Spesiell omtale for den vanligste stille feilen vi ser: en planlagt jobb som lykkes med tomt resultat. Et filter ble endret oppstrøms, et legitimasjonssett mistet leserettighet til én tabell, en feil i datointervallet ekskluderte alt - og jobben avslutter med kode 0, grønt over hele linjen.

Hvert uttrekk vi leverer, har en «sannsynlighetsgrense»: den minste resultatstørrelsen som noensinne har vært legitim for den jobben i den kalendersammenhengen. Under grensen holdes kjøringen tilbake, og et menneske blir spurt: «dette produserte 0 rader; de siste 90 tirsdagene lå snittet på 4200 - fortsette?» Denne ene sikringen har fanget opp flere reelle hendelser enn all vår unntaksvarsling til sammen.

Stillhet er et signal. Instrumenter bevisst for det, for det vil aldri varsle om seg selv.