Утром команда замечает, что welcome-цепочка не отправляла письма всю ночь. При этом серверы работали, запросы получали успешные ответы, а технический мониторинг молчал. Сбой оказался в условии входа: после изменения поля ни один новый клиент ему не соответствовал.

Мониторинг CRM должен следить и за техническими компонентами, и за результатом сценария. Алерт — уведомление об условии, требующем реакции. Хороший алерт сообщает, какой процесс нарушен, кого это затрагивает и что проверить сначала.

Задача не в том, чтобы разбудить команду при любом изменении числа писем. Нужно обнаружить значимый сбой достаточно рано и отличить его от нормального отсутствия спроса или корректных исключений.

Наблюдайте воронку решения

Для welcome-программы выделите подтверждённые регистрации, подходящих кандидатов, входы, созданные задания, принятые провайдером сообщения и дальнейшие статусы. Между соседними этапами должны быть известные причины исключения.

Ноль отправок может означать ноль регистраций, отсутствие разрешений, задержку очереди или ошибку настройки. Без промежуточных счётчиков все причины выглядят одинаково.

Google SRE разделяет наблюдение за внутренним состоянием системы и проверку её поведения снаружи. В CRM полезно сочетать журналы интеграции с контрольным прохождением сценария, чтобы не принять техническую доступность за исправную клиентскую цепочку.

Выберите несколько значимых сигналов

СигналЧто он может обнаружитьПервая проверка
Есть подходящие регистрации, но нет входовОшибка условия или передачиВерсия события и причины исключения
Растёт возраст ожидающих заданийЗадержка обработкиОчередь и доступная производительность
Всплеск отказов одного типаИзменение данных или настройкиПример отклонённого профиля
Слишком много действий на клиентаПовторы или зацикливаниеКлюч операции и повторный вход
Контрольный сценарий не завершёнНарушение сквозного путиПоследняя успешная контрольная точка

Точные пороги задают по объёму, времени суток и последствиям. Правило «нет писем десять минут» будет постоянно шуметь у бизнеса с редкими ночными регистрациями.

Сравнивайте с ожидаемым потоком

Для массового процесса полезна обычная динамика по часам и дням недели. Но исторический фон не учитывает все изменения: новая форма подписки может законно уменьшить поток, а акция — резко увеличить его.

Добавьте сигналы, основанные на причинной последовательности. Если подтверждённые подходящие регистрации есть, а после допустимой задержки входов нет, подозрение сильнее, чем при простом сравнении числа писем со вчерашним днём.

Для небольшой базы используйте индивидуальные просроченные случаи: конкретный подходящий клиент ждёт дольше согласованного срока. Тогда не требуется искусственный массовый порог там, где в час бывает всего несколько регистраций.

Проверяйте путь контрольным клиентом

Синтетическая проверка создаёт заранее подготовленный тестовый случай и ожидает известный результат. Например, тестовый аккаунт проходит регистрацию и доходит до контролируемого приёмника сообщения.

Он должен идти через достаточно похожий путь, иначе тест проверит только отдельный стенд. При этом его данные, получатели и действия изолируют от реальных клиентов, а покупки и отправки исключают из бизнес-отчётов.

Один контрольный клиент не проверит все сегменты. Добавьте разные нужные ветки: разрешённый email, отсутствие разрешения, уже совершённая покупка, другой язык. Нельзя считать успешную отправку тестового письма доказательством соблюдения всех исключений.

Условный разбор ночного алерта

За ночь зарегистрировались 40 клиентов. По правилам программы 25 подходят для первого письма, 15 исключены. Из 25 кандидатов ни один не вошёл в цепочку после допустимого срока. Алерт сообщает эти три числа, затронутую программу и время последнего изменения условий.

Дежурный проверяет несколько ID и видит, что поле consent_status теперь содержит confirmed вместо прежнего true. Исправление условия на тестовых случаях восстанавливает вход. Пропущенные клиенты проходят новую проверку актуальности перед отправкой.

Если бы все 40 корректно не имели разрешения, нулевая отправка не была бы сбоем. Именно поэтому алерт строится на подходящих кандидатах и понятных причинах отказа.

Сделайте уведомление пригодным для действия

В сообщении дежурному нужны название процесса, наблюдаемое нарушение, период, масштаб, несколько безопасных служебных ID и ссылка на инструкцию диагностики. Полные персональные данные в таком уведомлении обычно не нужны.

Разделите немедленную реакцию и задачу на рабочее время. Нарушение критичных запретов требует другого приоритета, чем небольшое отклонение времени обычной подборки. Для каждого уровня назначьте ответственного и резерв.

После релиза пороги и ожидаемые состояния могут измениться. Если алерт не обновить, команда либо утонет в ложных срабатываниях, либо перестанет видеть новый тип сбоя.

Сопоставляйте числитель с его кандидатами

Письма, принятые провайдером в текущие пять минут, могут относиться к регистрациям предыдущего интервала. Делить их на регистрации текущего интервала и называть долей успешного прохождения неверно: это разные группы записей.

Для оценки прохождения отслеживайте когорту подходящих регистраций и давайте ей согласованное время завершиться. Текущие скорости и длину очереди показывайте отдельными показателями. Это помогает отличить задержку от устойчивого падения доли успешных действий.

При нулевом числе подходящих кандидатов доля не равна нулю процентов — она не рассчитана. Такое состояние не должно автоматически создавать алерт о стопроцентном отказе. Для него нужен самостоятельный сигнал, если отсутствие входящего потока само по себе неожиданно.

Проверяйте сам мониторинг

На стенде намеренно остановите один участок и убедитесь, что сигнал появился, дошёл до ответственного и помог найти причину. Затем восстановите процесс и проверьте сообщение о нормализации.

Измеряйте время обнаружения и долю уведомлений, после которых потребовалось действие. Удаляйте повторяющийся шум и добавляйте недостающие признаки. Рабочий мониторинг должен помогать восстановлению, а не просто подтверждать наличие большого дашборда.

Источники

Google. Monitoring Distributed Systems. Site Reliability Engineering. Раздел Black-Box Versus White-Box. Проверено 22.09.2026.