Skip to content

MAD - cистема поиска аномалий в метриках микросервисного приложения

В проекте испольуется Helm, Terraform, Istio, Victoria Metrics, Grafana, Prometheus

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

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

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

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

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

Так, например, всплеск активности на сайте может быть вызван как успешной рекламной кампанией, так и DDoS-атакой. Чтобы отличить одно от другого, нужно анализировать не только общее количество запросов, но и другие метрики, такие как время ответа сервера и количество ошибок.

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

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