Вот уже около года команда поддержки одного из наших высоконагруженных продуктов использует собственную систему ML — Платформу обнаружения проблем (PDP).
Этот сервис может анализировать журналы и автоматически классифицировать возникающие ошибки.
В результате поддержка получает не тонны сырой информации из логов, а данные, с которыми можно быстро и удобно работать.
Платформа использует машинное обучение для выявления ранних признаков сбоя в журналах.
В отличие от человека, роботу не составит труда просмотреть десятки тысяч цепочек бревен и найти в них характерные признаки технических неисправностей.
Обученная модель может использовать накопленный опыт для выявления будущих проблем таким же образом.
Используя эти данные, инженеры смогут принять решение: внести ошибку в разработку или пропустить ее, поскольку это типичная ошибка.
В результате поддержка избавляется от рутины, а ее эффективность качественно возрастает.
Как это работает
Решение состоит из трёх приложений: одно анализирует логи и сохраняет результат анализа в базу данных, второе обновляет модель раз в сутки, т.е.предоставляет возможность обучения, третье (консольная утилита) позволяет корректировать результаты для дальнейшего обучить модель.
У инженеров также есть панель управления в Kibana, где они могут погружаться в соответствующие события.
Сервис собирает результаты анализа в таблицу Excel, где можно увидеть общую статистику по возникшим проблемам, разбивку по классам и потенциальным угрозам, а также динамику в течение дня.
Здесь вы можете увидеть, какие события являются регулярными, а какие произошли впервые.
Набор данных для обучения модели был собран следующим образом:
- Мы взяли из системы 130 000 логов (это цифра за 5 дней)
- Мы с помощью скрипта выбрали из них около 3500 уникальных логов с похожими сообщениями.
- Мы сгруппировали их в 37 файлов по уровню сходства.
- Заполненные описания, согласно которым модель относит ошибку к конкретному кластеру и конкретной группе.
ПДП в нашей практике В прошлом году команда поддержки нашей высоконагруженной системы продаж начала работу с прототипом продукта.
Уже в первые недели благодаря PDP служба поддержки обнаружила несколько ошибок и технических проблем.
В том числе ошибка, затронувшая критический бизнес-процесс.
Первые месяцы работа была рутинной – нужно было обучать модель.
Для этого инженеры вручную отмечали ошибки во входящих логах.
Мы проработали десятки тысяч журналов, чтобы PDP научился выявлять в них ошибки.
И со временем результаты становились все более очевидными.
Главное, что стало возможным эффективно работать с большим объемом записей журнала.
В день сейчас происходит около 58 тысяч событий, и в отличие от человека система считывает каждую строчку.
Поддержка видит динамику известных случаев и оперативно замечает неизвестные и новые ошибки.
Это очень ценная информация для поддержки.
Например, вы можете видеть, что несколько десятков ошибок могут быть более серьезными, чем тысяча инцидентов.
Если последние разбросаны в течение дня, то проблемы может и не быть, но ошибки носят технический характер.
А вот пик небольшого количества ошибок за короткое время может указывать на угрозу.
На практике это означает, что команда не узнает о проблемах от заказчика или пользователей, а выпускает исправление буквально в течение получаса после релиза (реальная цифра).
Что мы планируем дальше?
На данный момент сервис находится на стадии прототипа.Конечная цель — сделать настоящие MLOps с автоматическими и непрерывными процессами сбора данных для обучения, дополнительного обучения модели и ее публикации.
Плюс технологии обеспечения отказоустойчивости и масштабирования под нагрузкой и постоянной поддержки во время работы.
Для сокращения ручной работы поддержки и участия специалистов в работе PDP необходимо более точно определять критичность событий и правильно относить ее к одному из классов.
В теории машинного обучения работа по выявлению новых функций называется Feature Engineering. В результате PDP подаст сигнал тревоги только в тех случаях, когда поддержке действительно необходимо обратить внимание на ошибки.
Еще одно важное направление — обработка ошибок средней критичности, если их количество начинает резко возрастать.
Иногда плотный поток не самых значимых сбоев указывает на серьезные проблемы – такие случаи могут не тревожить НДП, но их нужно ловить.
Для реализации этой качественно новой функции в систему будет добавлена дополнительная модель.
Давайте не будем забывать о UX. Теперь служба поддержки смотрит логи в Kibana, а анализ событий и дополнительное обучение модели происходит через Excel. В финальной версии PDP будет единое окно для просмотра сводной информации об ошибках в конкретном классе, перемаркировки событий и отправки данных для дополнительного обучения.
Также планируется реализовать предиктивный ввод, чтобы система на основе введенных символов подсказывала уже известные проблемы или сообщала, что подобная цепочка уже отмечалась в прошлом.
Однако, по отзывам службы поддержки, PDP уже доказал свою полезность на стадии прототипа: «Картина критичности и частоты возникающих проблем выглядит объективной.
Уже в нынешнем виде инструмент стал обязательным при запуске после релизов, благодаря тому, что можно мгновенно заметить ошибки».
Теги: #Машинное обучение #Управление продуктом #техническая поддержка #логи
-
Над Чем Работает Mandriva
19 Oct, 24