Search
Write a publication
Pull to refresh

Comments 9

Странно, что различные типы систем — мониторинг, поиск аномалий и оповещения используются как синонимы.

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

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

P.S. И было бы гуд дать заревьюить артиклу нейтиву.
Да, у меня были сложности с тем как на русском определить термины. Это сложно.
Monitoring, Anomalies, Alerts это разные термины.
Поэтому возможна путаница.

В некотором смысле параметры все равно приходится подкручивать ручками. Падение на 40% от среднего на сайтах с десятками тысяч пользователей — проблема. На других брендах где среднее порядка сотни на часовом интервале падение на 40% норма. Это тонкий баланс. Универсальные алгоритмы и подходы как правило работают плохо. И в то же время хочется быть как можно более универсальным.

Да, я чищу явные выбросы. Просматриваю метрики и ищу слишком сильную динамику подьема. Но там еще есть свой технический долг :)
У меня сейчас интересный проект отпочковавшийся от этой системы. Это магистерская работа для нашего интерна. Мы можем представить метрики как матрицы, и идти по ним конволюционными ядрами, которые подстроены под поиск градиента (падения или подъема).
image
В прошлом году были удачные академические публикации о применении этого метода с финансовыми рынками. Я писал о своем воспроизведении на английском тут.
Я напишу если этот подход будет удачным. Но теоретически все должно получиться.
Что вы имели в виду под «описание не архитектуры, а то как именно выполняется поиск аномалий»? Я опишу подробнее.
Возьмем одну метрику и соответствующий ей временной ряд. Каков алгоритм поиска аномалий в нем? Понятно, что ряд предварительно сглаживается, но как выбираются параметры сглаживания? Далее, насколько я понял, каким то образом строится допустимый интервал. Каким образом? Тут (Отклонение от «повседневного») я описал встреченные мной варианты.

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

Я пробовал несколько подходов, ARIMA, Twitter ESDA. Но по факту лучше всего оказалось считать моделью данные с предыдущей недели пройденные скользящими средними и разбросом с окном 60 минут (гранулярность 1 минута). Баундариз считается как значение трех значений скользящего разброса по обеим сторонам.

В дальнейшем я хочу считать модель по данным 4 недель, усредняя их и давая уменьшающиеся веса по мере удаленности.

Если на той неделе был инцидент, то я пока просто не беру эту неделю, хотя писал функцию которая вырезает этот кусок из предыдущих недель. Аутлаером считается то, что выходит за границы.
Скорее всего потому, что метрики уже писались в Инфлюкс для визуализации в Графане. Плюс мы умеем хорошо готовить эту базу.
Но у нее есть тоже свои особенности, которые надо учитывать. Или вот например свежее, поначалу я грешил на графану, почему и открыл issue там но
github.com/grafana/grafana/issues/11482

Хотя проблема наблюдалась только в графане, моя система не имела проблем.

По большому счету сделать коннектор к другой базе не проблема, там достаточно имплементировать интерфеис, который должен возвращать данные в формате pandas.DataFrame

Можете попробовать хранить данные в VictoriaMetrics вместо InfluxDB:



Вот тут можно почитать дополнительный материал по VictoriaMetrics — https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/Articles

Sign up to leave a comment.

Articles