Как мы подбирали ключи. Внедрение мониторинга APM Ключ-Астром
Краткая справка: Ключ-Астром — система мониторинга класса АРМ (application performance monitoring). Штука платная, лицензируется по объему оперативной памяти на серверах приложений и по сессиям мобилок или веб-приложений.
Полезна для мониторинга работы приложений, под капотом ИИ, который оперативно перестраивает пороги и следит за серьезными изменениями, например, рост количества ошибок и ухудшение времени отклика операций. Также находит связь между событиями и объединяет их в проблемы, обозначая все затронутые ИТ-системы, стоящие на мониторинге. И указывает количество затронутых пользователей.
Используется для:
Сквозного транзакционного мониторинга
Поиска первопричины сбоя
Узких мест
Поиска наиболее медленно выполняющейся операции в цепочке
Сбора клиентского пути (клиентского опыта)
Сравнению работы новых релизов с текущим PROD-ом.
История: В 2021 году мы очень удачно отыграли конкурс, где Ключ-Астром победил AppDynamics. Если бы получилось наоборот, то в 2022 году наш АРМ превратился бы в тыкву)
Процесс внедрения: Внедрение прошло не сложно. Отказоустойчивый кластер на 3 ЦОД-а собрали. «Прокси» раскидали по подсетям. Установка агентов не заняла много времени, но для нормальной работы нужно перегружать приложения. Сами агенты тут называются Едиными, что означает, что они унифицированы для всех поддерживаемых технологий и внедряются сами, автоматически. На высококритичных системах, в нашем случае, приходилось ждать по неделе и больше для того, чтобы попасть в технологическое окно для перезапуска приложения.
Тестировать на препроде обязательно, были прецеденты укладывания приложения на бок, подтекания памяти из криво написанных микросервисов. Но здесь, скорее, не вина агента, а особенности приложения. На БД агенты ставить не обязательно — запрос видно со стороны приложения. Надо ставить агенты на все серверы в цепочке для получения трейсинга , в том числе и на балансировщики, (типа nginx).
Также на первых порах возникают вопросы со стороны ИБ. Они сильно возбуждаются на установку агентов под root-правами. Но дальше агент работает и обновляется в non-root
С обучением персонала чуть сложнее. Система как книга «Шантарам», кому-то понятна и проста, а у кого-то есть проблемы с восприятием. Хотя UX/UI более-менее понятный. Так что нужно несколько итераций, чтобы загнать ключевых людей из 2–3 линии поддержки в Ключ.
Далее идет настройка алертов. В нашем случае мы настраивали алерты в корпоративный мессенджер. И начинается работа с «серым шумом». В некоторых случаях нужно настроить частоту проверок, а часто нужно собрать фактуру и идти в разработку чтобы они подумали, почему их так «колбасит».
На картинке представлен вид с проблемами (событиями) за 24 часа
При хорошо настроенной системе очень приятно видеть e2e-транзакции с участием многих систем. И поиск точек отказа и узких мест сильно упрощается.
Также есть интересные медийные вещи, которые помогают с постмортом. Выглядит, конечно, сладенько, но когда у вас массовый инцидент затронул 15 систем — и все они на мониторинге, то этот фильм по тому откуда все началось, как развивалось и как затухало можно пересматривать много раз)) Посмотрите это на видео.
Самая трудоёмкая задача — это настройка сбора клиентского опыта.
Для чайников: это сбор времени начала и конца пользовательских операций, получения кодов ошибок. Используется как бизнесом для дальнейшего анализа и создания реакций менеджеров на определенные действия (как пример мониторинг ошибок VIP-клиентов) или на превышение времени выполнения операций. Самый простой пример — время авторизации (ошибки), загрузка основного экрана с продуктами.
И чтобы это качественно настроить, надо пройти страшных людей под названием ИБ. Настроить прохождение WAF-а, побиться, чтобы нигде не резались header-ы. У нас это заняло прямо очень много времени, несколько раз присоединялся бизнес, чтобы ускорить ИБ.
Чтобы все это хорошо работало, в большинстве случаев нужна помощь разработки. Действия автоматом попадает в систему, но как вы поймете, что имел в виду разработчик, назвав это beatle.juice.002
? Так что собираете пожелания от бизнеса и закидываете в бэклог разработчикам. И после этого волшебным образом появляются действия «Выдача кредита» или другие операции с временем выполнения и кодами ошибок «три раза неправильно ввел пароль»).
Что делать с этим клиентским опытом?
Мы через elastic выгружаем его в корпоративное хранилище, где с ним могут работать аналитики от бизнеса.
Ещё можно строить дашборды прямо в Ключе. Как пример простого использования — мы построили воронку получения карты МИР. Очень интересно всем было обнаружить, на каком этапе квеста отваливается большинство желающих)
Ну и можно настраивать алерты по проблемах у части клиентов, как вариант на превышения среднего времени выполнения операций или коды технических ошибок.
Пример Трейса
Какие неожиданные возможности еще дает система?
Мы её использовали, чтобы искать dblinks.
Иногда очень помогает возможность посмотреть, какой сервис в какой момент времени кушает CPU, RAM или генерирует много трафика.
Один раз система помогла найти Garbage collector, который при запуске укладывал систему.
То есть их система поиска первопричин проблем действительно работает.
Матрицу использования системы в нашей компании можно представить так:
Какие интересные аспекты работы системы мы открыли при использовании?
Есть старые системы, которые автоматом не залетают на мониторинг. Самый простой пример — старый Siebel, у которого на фронте java, а на бэке C#. Фронт прекрасно мониторится, а вот бэк — черный ящик. И тут каждый сам решает, что с этим делать. Отключить бэк или разметить его, приложив определенные усилия разрабов.
Систему можно использовать на внутренних web-приложениях, где все хотят видеть «яндекс.метрику», но ИБ не дает ее туда пустить. Система выдает все то же после настройки, только не грузит так сайт. И как плюс — каждую пользовательскую операцию можно разобрать по маршрутам её прохождения (оттрассировать ее).
Последние новости — появились плагины для расширенного мониторинга БД и сети, модуль поиска уязвимостей. БД успели посмотреть, выглядит интересно, но серьезных выводов пока не готов озвучивать, пилоты на реальных системах впереди.
Если все звучит слишком хорошо, помните, система платная и требует настройки. Но опенсурс требует еще большей настройки)
З.Ы. За подготовку статьи спасибо Альберту и Людмиле!