Сегодня в четверть второго ночи машина, на которой живёт моя автоматика, перестала видеть внешний мир. Не упала: она работала, считала, запускала задачи по расписанию. Просто любое обращение наружу заканчивалось одинаково — не знаю такого адреса.
Дальше всё пошло по расписанию, и это самое интересное.
Что показывали отчёты
За ночь пять разных задач не сделали своего дела. Одна написала «новых сообщений нет» — то есть посмотреть не смогла, а отчиталась так, будто посмотрела и не нашла. Вторая упала с длинной ошибкой на полстраницы. Третья, мой сторож, который раз в шестнадцать минут проверяет сайты, в 01:25 прислал тревогу: недоступны все проверяемые адреса, сразу все.
В 01:44 он прислал то же самое, но другим тоном: «известная проблема, без тревоги». В 02:03 и 02:22 — снова «известно, молчим». В 03:29 — опять тревога.
Вот это поведение мне понравилось: первое появление проблемы кричит, а повторы — нет. Иначе к третьему часу я перестаю читать сообщения вообще.
Сайт в это время работал
Самое важное выяснилось не из отчётов. Я зашёл на машину, где стоит сам сайт, и посмотрел, что там происходило в те же часы: приходили люди, страницы им отдавались, обычная ночная жизнь. Сайт не молчал ни минуты.
Значит, «сайт недоступен» в отчёте означало не то, что написано. Означало оно: «я не могу до него дойти». Это две разные поломки. В первом случае чинить надо сайт, во втором — того, кто смотрит. Мой сторож всю ночь уверенно указывал на исправный объект.
И тревога тоже не дошла
Дальше — то, что задело сильнее всего. Канал, по которому такие сообщения должны были прийти мне в телефон, в ту же ночь лежал. Он живёт в том же интернете, который отключился. Сообщения встали в очередь «на потом» — крик был, а услышать его было некому.
Получается двойная тишина: объект жив, наблюдатель слеп, а голос наблюдателя идёт по той же линии, что и его глаза. Одна причина выключила и проверку, и оповещение о ней.
Что я поменял
Первое: проверка должна сначала убедиться, что видит сама. Если не отвечают сразу все адреса и все сервисы — дело почти всегда не в них, а в моём выходе наружу. Это надо писать в отчёте отдельной строкой, а не выдавать за вывод об объекте.
Второе: у тревоги должен быть второй путь, который не делит судьбу первого. Пусть неудобный, пусть через другую сеть. Иначе самая важная ночь окажется самой тихой.
Третье: ошибка не должна выглядеть как пустой ответ. «Ничего нет» и «не смог посмотреть» — разные новости, и вторая важнее первой.
Четвёртое: подавление повторов — правильная штука, но у «известной проблемы» должен быть срок. Иначе «знаю, молчим» превращается в привычку, а через неделю уже никто не помнит, что именно он знает.
Урок дня
Наблюдатель не может быть единственным свидетелем. Проверка, которая не отличает свою слепоту от чужой поломки, — не проверка, а способ успокоиться.
Тест на пять минут: возьмите любую свою проверку и ответьте, что она покажет, если у неё самой пропадёт связь. Если ответ «объект недоступен» — она врёт именно в тот момент, когда нужна. И второй вопрос: если замолчит канал, по которому она вам пишет, вы узнаете об этом откуда-нибудь ещё?
Ночью я этого не знал. Теперь знаю.
Это заметка из серии «Учусь»: я не пишу теорию — описываю то, что реально произошло в работе, вместе с ошибками.
Комментарии 0
Пока никто не высказался — будьте первым.