AI-система автоматической диагностики инцидентов (RCA)

Ручной разбор инцидентов съедает часы дежурных инженеров и откладывает восстановление сервиса. Мы разрабатываем автоматический RCA под ключ: система находит первопричину в потоке событий, ранжирует гипотезы и сокращает время диагностики в разы. Соберём схему под ваш поток и передадим в эксплуатацию с регламентом.
Часто задаваемые вопросы

Ручной разбор инцидентов против автоматического RCA

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

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

Видимая связь между сервисами тоже часто отсутствует: карта зависимостей либо устарела, либо держится в головах старших инженеров. Панели Grafana показывают графики, но причинно-следственную связь между смежными сервисами восстанавливает человек — по опыту прошлых смен, а не по данным.

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

Что даёт автоматический RCA: эффект в метриках

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

Основа — единый контур наблюдаемости: сигналы сходятся в одну модель, где OpenTelemetry связывает симптом с конкретным вызовом через сквозной идентификатор запроса. Система сравнивает текущий профиль сервиса с его же поведением на прошлых периодах и указывает компонент, который первым отклонился от нормы, — причину, а не следствие. Инженер подключается к разбору уже с готовой гипотезой.

Измеримых эффектов четыре:

  • Время локализации: десятки минут превращаются в минуты — к моменту открытия инцидента цепочка «релиз — сервис — зависимость» уже построена.
  • Доля автоматической диагностики: 60–80% инцидентов закрываются готовым объяснением, остальные уходят эксперту с собранным контекстом.
  • Повторные инциденты: у каждого разбора остаётся проверка, которая ловит тот же класс отказа раньше, чем он проявится на проде.
  • Нагрузка на дежурных: разбор «с нуля» заменяется подтверждением гипотезы, передача смены занимает минуты.

Цена простоя при этом измеряется минутами, а не часами, и сокращается с каждой итерацией. База разборов накапливается: растёт доля инцидентов, которые система объясняет по уже известным шаблонам.

Режимы диагностики: правила, обучение на истории, гибрид

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

Режим Когда подходит Ограничения
Правила корреляции Есть схема зависимостей, закрытых инцидентов мало Ломается на неизвестных связях, требует ручной поддержки при каждой смене архитектуры
Обучение на истории Накопились сотни разобранных инцидентов с подтверждённой первопричиной Точность падает на редких классах сбоев, новых для набора данных
Гибридный режим Есть и топология, и история Сложнее разбирать: не всегда видно, что дало гипотезу — правило или модель
Подсказки оператору Цена ошибки высокая, решение остаётся за человеком Скорость разбора ограничена действиями дежурного

Ограничения точности честнее мерить на ретроспективе: прогоняем автоматический RCA по закрытым инцидентам и считаем долю случаев, где первопричина оказалась в первых трёх гипотезах. Гибрид обычно берут как целевой — правила отсекают известное, модель достраивает неочевидное, а спорные случаи уходят подсказками оператору с пометкой уверенности, чтобы дежурный видел, где система сомневается.

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

Этапы внедрения: от аудита данных до передачи в эксплуатацию

Автоматический RCA начинается не с модели, а с инвентаризации сигналов: разбор причин возможен только там, где журналы, метрики, трассировки и история развёртываний сходятся по времени и по объекту. Поэтому порядок работ выстроен так, что каждый следующий этап опирается на артефакт предыдущего — на выходе остаётся не демонстрация, а рабочий контур и смена, которая его сопровождает.

  1. Аудит источников данных — что уже пишется и с какой детализацией: журналы приложений и хранилищ, метрики, трассировки, события развёртываний. Фиксируем сроки хранения, часовые пояса и пробелы, из-за которых цепочка «причина — следствие» рвётся.
  2. Схема связей сервисов — карта зависимостей: кто кого вызывает, через какие очереди и базы, где общие точки отказа и внешние поставщики. Карта задаёт порядок проверки гипотез и обновляется вместе с архитектурой.
  3. Настройка правил — сопоставление событий, пороги, приоритеты, подавление повторяющегося шума, справочники владельцев сервисов. Набор правил версионируется: любое изменение можно объяснить и откатить.
  4. Проверка на исторических инцидентах — прогон на прошлых разборах: доля случаев, где первопричина указана верно, уровень ложных срабатываний, время до подсказки. Отдельно проверяем на учебных отказах, которых в истории не было.
  5. Встраивание в контур реагирования — гипотеза приходит дежурному в момент открытия инцидента, вместе с обоснованием: какие события и связи её подтверждают.
  6. Опытная эксплуатация — система работает в режиме подсказки, дежурные отмечают верные и неверные выводы, по этим отметкам правятся правила и пороги.
  7. Передача в эксплуатацию — регламенты разбора, инструкции для смены, схема ролей и доступов, процедура отката и порядок обновления карты зависимостей.

Артефакты каждого шага — отчёт по источникам, карта связей, набор правил, протокол проверки — остаются у заказчика.

Артефакты внедрения: модель, правила, документация, регламент

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

  • Конфигурации моделей и правил корреляции — пороги чувствительности, окна агрегации событий, списки исключений; с пометками, что именно меняется при правке каждого параметра.
  • Карта зависимостей сервисов — кто на кого влияет и какие узлы общие; по ней система отличает корневую причину от каскада отказов.
  • Политики доступа — роли на просмотр инцидентов, запуск проверок и изменение правил, связанные с вашим каталогом учётных записей.
  • Документация — схема потоков данных, точки подключения к мониторингу и системе заявок, порядок обновления компонентов.
  • Регламент реагирования — какие сигналы поднимают дежурного ночью, какие уходят в утренний разбор, кто утверждает изменения правил.
  • Инструкции для смены — пошаговые сценарии по типовым инцидентам и порядок действий, когда система не уверена в причине.
  • Набор эталонных инцидентов — прогон после каждой правки правил, чтобы видеть, не просела ли точность на прошлых случаях.

Артефакты передаём в вашем формате: в репозитории рядом с описанием инфраструктуры, чтобы правки проходили обычное ревью. После передачи вы меняете пороги, расширяете список сервисов и обновляете инструкции сами — наше участие для этого не требуется.

Кейс: разбор инцидентов в потоке событий высокой плотности

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

Точка отсчёта

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

Что изменили и что стало

Слой автоматической диагностики поверх OpenSearch строит цепочку от симптома к источнику: сопоставляет всплеск ошибок с последними изменениями, проверяет состояние зависимостей и отсекает совпадения по времени. Инженер получает ранжированные версии причины с событиями-подтверждениями, а не выгрузку логов.

Медиана разбора — 6 минут, полный автоматически объяснённый результат по 70-80% инцидентов, остальные приходят с уже суженной областью поиска. Повторные отказы того же класса — 4-5 в месяц. Самый дорогой класс — каскады при деградации общей зависимости — распознаётся автоматически и попадает на разбор первым.

Чем отличается корреляция событий от поиска первопричины?

Корреляция событий работает на уровне симптомов: система собирает оповещения в окне времени, схлопывает их по общим меткам — хост, сервис, зона доступности — и отдаёт дежурному один инцидент вместо сотни сообщений. Это снимает шум, но не отвечает на вопрос «почему»: в одну группу одинаково попадут и причина, и её последствия.

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

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

Разница проявляется в метриках: корреляция сокращает число оповещений на дежурного, поиск корня — время до локализации и долю инцидентов с верно указанной причиной. Одно не заменяет другое: если в группу попал не тот узел, экономия на шуме оборачивается лишними часами разбора.

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

Технические сомнения: данные, точность, ложные срабатывания

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

Сколько инцидентов нужно, чтобы система заработала?

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

Телеметрия неполная, метки времени расходятся — это приговор?

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

Как вы ограничиваете ложные подсказки?

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

Насколько поэтапным будет внедрение и кто отвечает за качество?

Сначала режим наблюдения: система предлагает версию, но ничего не меняет в контуре. Затем один класс инцидентов, затем расширение. Долю верных первопричин и время до подсказки согласуем до старта — за эти метрики отвечаем мы.

Обсудим задачу: соберём схему диагностики под ваш поток

Предлагаем обсудить задачу предметно: нужен не общий рассказ о боли, а картина вашего потока инцидентов. С неё начинается оценка объёма работ и реалистичный план внедрения — по этапам, с понятным результатом на каждом.

Что запрашиваем с вашей стороны:

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

В ответ присылаем оценку объёма работ, план внедрения по этапам и предварительную схему потоков диагностики: где и какие данные нужны, что проверяем на пилотном участке, как выглядит откат, если правила ошибаются. Если части данных нет — это не блокер, обсудим, чем её заменить.

Опишите задачу в свободной форме — вернёмся с оценкой и планом.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139