Статические пороги не работают на живой метрике
Порог, выставленный год назад по средней, даёт всплеск ложных тревог в высокий сезон и молчит там, где метрика проседает на треть относительно ожидаемого уровня.
Выберите тему — соберём контекст
Строим детекторы отклонений для транзакций, показаний оборудования, метрик продукта и поведения пользователей. Настраиваем пороги так, чтобы дежурный разбирал единицы значимых событий, а не сотни ложных тревог.
Или сразу: +7 (962) 368-39-51 Telegram
Проблемы, из-за которых системы алертов теряют доверие и перестают использоваться.
Порог, выставленный год назад по средней, даёт всплеск ложных тревог в высокий сезон и молчит там, где метрика проседает на треть относительно ожидаемого уровня.
Если система присылает 200 алертов в сутки и 97% из них ложные, специалист перестаёт их открывать. Это происходит в течение двух недель после запуска.
Сообщение «метрика отклонилась на 3 сигмы» не подсказывает, что делать. Нужны разбивка по сегментам, связанные события и предполагаемая причина.
Аномалии редки и редко размечены: аналитик видит, что срабатывание было ложным, но нигде это не фиксирует. Модель не может учиться на разборе инцидентов.
Мониторинг по ночной выгрузке сообщает о проблеме через 12 часов. За это время успевает уйти партия брака или закрыться касса с ошибкой.
Понедельничный пик заказов и ночной провал трафика — нормальное поведение. Детектор, не знающий расписания, считает это отклонением каждую неделю.
Комбинируем правила, статистику и модели: разные типы отклонений лучше ловятся разными методами.
Сначала обеспечиваем поток данных с нужной частотой и метками времени: без него любая детекция превращается в отчёт по вчерашнему дню.
Базовый уровень, который работает сразу и не требует разметки: сезонный профиль, скользящие окна, контрольные карты.
Для сложных многомерных отклонений используем методы, которым не нужна разметка: они находят необычные сочетания признаков.
Событие превращается в понятную карточку инцидента с контекстом. Разбор каждого случая возвращается в систему как разметка.
Начинаем с одного показателя, где цена пропуска максимальна, и только потом расширяем охват.
Определяем, какое отклонение дороже всего пропустить, и как быстро его нужно обнаруживать: минуты, часы или сутки.
Строим модель нормального поведения по истории: сезонность, тренды, типичные колебания по сегментам.
Прогоняем детектор на исторических данных и подбираем порог под допустимую долю ложных срабатываний, согласованную с дежурной сменой.
Включаем алерты, собираем разметку по каждому разбору, дообучаем модели и расширяем список показателей.
Качество детектора аномалий нельзя оценивать только полнотой: система, которая помечает аномалией каждое второе событие, найдёт всё, но пользоваться ею невозможно. Практический критерий — сколько срабатываний в сутки получает дежурный и какова среди них доля подтверждённых.
Мы работаем от этого ограничения: сначала фиксируем, сколько разборов в смену может позволить себе команда, и только потом подбираем порог. Если при заданной нагрузке полнота обнаружения оказывается неприемлемо низкой, это сигнал, что нужны дополнительные признаки или более быстрый контур реакции, а не ослабление порога.
Размеченных аномалий обычно мало: их единицы против сотен тысяч нормальных событий, и размечать их задним числом сложно — часть инцидентов вообще не была зафиксирована. Обучение с учителем на такой выборке даёт нестабильные модели, которые плохо переносят новые типы отклонений.
Поэтому базой служат методы без учителя, которые находят то, что не похоже на норму, независимо от того, встречалось ли это раньше. Размеченные случаи используются иначе: для калибровки порога, для оценки качества и для проверки, что детектор действительно ловит известные инциденты из прошлого.
Пакетный пересчёт раз в сутки подходит для медленных процессов: динамика оттока, финансовые показатели, качество данных. Для операционных задач задержка в сутки бессмысленна — к моменту алерта партия уже отгружена, а клиент ушёл.
Потоковый контур строится на брокере сообщений и хранилище с быстрой записью: события попадают в обработчик, детектор сравнивает их с профилем нормы и выдаёт решение за секунды. Стоимость такого контура выше, поэтому мы применяем его только там, где скорость реакции прямо влияет на потери, а остальные показатели оставляем в пакетном режиме.
Можно, но первые недели система будет работать в режиме наблюдения. Мы включаем детекторы на статистических правилах, собираем распределение срабатываний и только после накопления 3–4 недель данных о сезонности и нормальных колебаниях подбираем устойчивые пороги. До этого алерты отправляются в отдельный канал для анализа и не будят дежурных.
Три основных приёма: учитывать сезонность и расписание (день недели, час, праздники), группировать связанные события в один инцидент вместо десятка отдельных алертов и требовать подтверждения аномалии на нескольких уровнях — например, отклонение метрики точки при отклонении регионального агрегата. На практике это снижает шум в 5–10 раз без потери полноты обнаружения.
Да, и это один из самых окупаемых сценариев. Для телеметрии оборудования мы строим профиль нормы по режимам работы и нагрузке, а отклонения в вибрации, температуре или потреблении указывают на износ узла. Такой подход позволяет перейти от планового обслуживания к обслуживанию по состоянию и сократить внеплановые простои.
Каждый алерт приходит в виде карточки: что отклонилось, насколько, в каких сегментах, что происходило в это же время в связанных системах. Дежурный подтверждает или отклоняет срабатывание, и это решение сохраняется как разметка. Накопленная разметка раз в квартал используется для калибровки порогов и дообучения моделей, поэтому со временем шум снижается.
Смежные задачи, которые обычно решаются в одном проекте с этой.
Опишите показатель и частоту данных — покажем, как будет выглядеть детектор, сколько срабатываний в неделю он даст и как их разбирать.
Cookie и аналитика
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie (Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия — от него можно отказаться. Подробнее: Политика использования cookie и обработка персональных данных.