Monitorowanie integracji: alarmujcie na ciszę, nie tylko na błędy

Ściana zielonych kafelków statusu synchronizacji z jednym bursztynowym kafelkiem ostrzegawczym

Wyjątek zostaje zalogowany, uruchamia się alert, ktoś to naprawia. Ta pętla działa - w przypadku awarii wystarczająco głośnych, by same się ogłosiły. Awarie, które kosztują naszych klientów prawdziwe pieniądze, to te ciche: dostawca po cichu zmienił klucz SFTP, nocny eksport wygenerował poprawny plik z zerem wierszy, konsument kolejki „działa”, ale niczego nie przetwarza.

Nic nie zgłosiło błędu. Wszystko przestało działać.

Metryki przepływu ważniejsze niż testy stanu

Test stanu odpowiada na pytanie „czy proces żyje?”. Pytanie, które się liczy, brzmi „czy praca została wykonana?”. Dlatego głównym sygnałem w każdej integracji, którą utrzymujemy, jest metryka przepływu - liczba rekordów na interwał, porównywana z tym, co dany interwał zwykle przenosi:

  • Liczba zsynchronizowanych zamówień na godzinę, z wartościami bazowymi dla dni roboczych i weekendów - cicha niedziela jest normalna; cichy wtorek o 10:00 to incydent.
  • Nadejście plików traktowane jako terminy, nie zdarzenia: „plik cenowy partnera X ma termin do 06:30” - alert uruchamia się, gdy plik nie nadejdzie.
  • Opóźnienie end-to-end, mierzone od znacznika czasu w źródle do zapisu w miejscu docelowym, a nie od wejścia do kolejki.

Problem zerowej liczby wierszy

Szczególne miejsce należy się najczęstszej cichej awarii, jaką widujemy: zaplanowane zadanie, które kończy się sukcesem, ale z pustym wynikiem. Coś wcześniej w łańcuchu zmieniło filtr, poświadczenie straciło dostęp do odczytu jednej tabeli, błąd w przedziale dat wykluczył wszystko - a zadanie kończy się kodem 0, wszystko na zielono.

Każdy ekstrakt, który wdrażamy, ma wbudowany próg wiarygodności: najmniejszy rozmiar wyniku, jaki kiedykolwiek był uzasadniony dla danego zadania i kontekstu kalendarzowego. Poniżej tego progu przebieg jest wstrzymywany, a człowiek otrzymuje pytanie: „to wygenerowało 0 wierszy; ostatnie 90 wtorków dawało średnio 4200 - kontynuować?”. To pojedyncze zabezpieczenie wyłapało więcej realnych incydentów niż całe nasze alarmowanie o wyjątkach razem wzięte.

Cisza to sygnał. Mierzcie ją świadomie, bo sama nigdy się nie ogłosi.