Мониторинг на интеграции: сигнализирайте при тишина, не само при грешки

Стена от зелени плочки за статус на синхронизация с една единствена кехлибарена плочка за предупреждение

Изключение се записва в лог, задейства се сигнал, някой го поправя. Този цикъл работи - за провали, достатъчно шумни, за да оповестят себе си. Провалите, които струват на нашите клиенти реални пари, са тихите: доставчикът тихомълком е сменил SFTP ключ, нощният износ е произвел валиден файл с нула редове, консуматорът на опашката „работи“, но не обработва нищо.

Нищо не даде грешка. Всичко просто спря.

Метрики за поток вместо проверки за здраве

Проверката за здраве отговаря на въпроса „процесът жив ли е?“. Въпросът, който има значение, е „случи ли се работата?“. Затова основният сигнал за всяка интеграция, която поддържаме, е метрика за поток - записи на интервал, сравнени с това, което този интервал обикновено носи:

  • Синхронизирани поръчки на час, с базови стойности за делник/уикенд - тих неделен ден е нормален; тих вторник в 10:00 ч. е инцидент.
  • Пристигането на файлове като крайни срокове, а не като събития: „ценовият файл на партньор X трябва да пристигне до 06:30“ - сигналът се задейства, когато файлът не пристигне.
  • Закъснение от край до край, измерено от времевия маркер на източника до записа в целевата система, а не от влизането в опашката.

Проблемът с нулевите редове

Специално внимание заслужава най-често срещаният тих провал, който наблюдаваме: планирана задача, която завършва успешно с празен изход. Нагоре по веригата някой е променил филтър, идентификационни данни са изгубили достъп за четене до дадена таблица, бъг в времевия прозорец е изключил всичко - и задачата излиза с код 0, изцяло зелено.

Всеки извлечен набор от данни, който доставяме, носи праг на правдоподобност: най-малкият размер на изхода, който някога е бил легитимен за тази задача и календарен контекст. Под този праг изпълнението се задържа и се пита човек: „това произведе 0 реда; последните 90 вторника средно са давали 4 200 - да продължим ли?“. Тази единствена защита е засякла повече реални инциденти от цялото ни сигнализиране за изключения, взето заедно.

Тишината е сигнал. Инструментирайте съзнателно за нея, защото тя никога няма да оповести себе си.