Правила порогов
В данном разделе документации предоставлена информация о работе с правилами обработки метрик и генерации новых объектов в системе Monq - Порогов.
Порог метрики (англ. threshold) - это предельное значение, которое устанавливается для определенной метрики с целью определения критического состояния метрики. Когда значение метрики превышает или достигает установленного порога, это может сигнализировать о проблеме, ошибке, перегрузке или другом важном событии, требующем внимания или реагирования.
Генерация событий по порогам из метрик, с целью дальнейшего прохождения по пайплайну обработки событий дает возможность полноценной обработки метрик внутри Monq.
Пороги генерируются из собираемых метрик в специальном процессоре Monq - mcs-thresholds-service
, который запускает правила расчета с определенной периодичностью. Результатом работы процессора могут быть: открытие нового порога, закрытие существующего порога и подтверждение порога.
В случае открытия или закрытия порога на выходе генерируются специальные события, которые далее поступают в основной тракт обработки событий Monq.
События открытия поступают в маршрутный узел "Автоматона" привязки порога к КЕ - ThresholdsProcessor
.
Привязка Порогов происходит автоматически в специальном маршрутном узле "Автоматона" при помощи разработанных пользователями сценариев, с указанием правил привязки по меткам получаемых метрик.
Порог аналогично Сигналу представляет собой короткоживущий объект, у которого есть время начала и время завершения.
Открывать завершённые пороги в Monq не допускается.
Установка подходящих порогов метрик является важным аспектом мониторинга и управления системами. Они должны быть настроены в соответствии с требованиями и характеристиками конкретной системы или приложения. Неправильно установленные пороги метрик могут приводить к ложным предупреждениям или недостаточному обнаружению проблем, поэтому требуется внимательное исследование и настройка для достижения оптимальных результатов.
Управление правилами порогов
Экран управления порогами расположен в разделе меню "Сбор данных (ETL)" - Правила порогов.
Для работы с правилами перейдите в соответствующий раздел.
Создание правила порога
Для создания нового правила расчета порогов нажмите кнопку + Создать правило в правом верхнем углу экрана управления правилами порогов.
Заполните форму создания правила:
- Название правила
Название правила должно быть уникальным в рамках Рабочей группы
- Владелец
Рабочая группа, которой принадлежит правило расчета порога
- Описание (опционально)
- Импорт
Код правила расчета порога в формате
base64
(подробнее в разделе Экспорт/импорт правил порогов)
После создания правила расчета порогов, его необходимо настроить:
Настройки правила
- Частота расчета
Временной интервал, определяющий, с какой частотой будет производиться расчет правила.
По умолчанию:
10 мин
- Частота расчета
Запрос метрик
Потоки данных
Необходимо выбрать как минимум один поток данных - источник метрик
Запрос
Запрос значений метрики на языке MetricsQL (PromQL)
Например:
aggregator_openapi_v2_regeneration_count{endpoint="https", instance="10.18.0.100:6443", job="apiserver"}
Чем более подробно указан набор лейблов, тем более точно будет производиться идентификация конкретного вектора.
Если указать просто название метрики:
aggregator_openapi_v2_regeneration_count
, то запрос так же будет валиден, но вместо одного вектора, придет набор из нескольких векторовСправкаПри необходимости внести изменения в Запрос - Правило необходимо предварительно остановить, чтобы закрылись созданные Пороги. В противном случае открытые Пороги останутся висеть, а новые не смогут их перезаписать.
Окно вычисления
Временной период, в котором будет рассчитываться функция агрегации значений метрик. Окно позволяет исключить резкие изменения значения метрик, реагируя только на изменения за больший промежуток времени
Функция агрегации
Last (Последнее)
- для расчета берет последнее значение вектораAverage (Среднее)
- берет среднее значение вектораMax (Максимум)
- берет максимальное значение вектораMin (Минимум)
- берет минимальное значение вектораSum (Сумма)
- суммирует все значения вектораСправкаВсе функции агрегации применяются к временным рядам в рамках заданного окна расчета
Введенный запрос можно проверить соответствующей кнопкой "Проверить запрос". Будут загружены все попадающие под запрос временные ряды.
Условия создания порога
Пользователь системы может задать условия для расчета уровня порога, чтобы разделить полученные значения метрик по степени критичности.
Для настройки условий доступно несколько уровней критичности:
Fatal
Critical
Major
Warning
Info
По-умолчанию, для вновь созданных правил расчета порогов устанавливается статус
Ok
.В качестве дополнительной функции, условия создания порогов, пользователи могут задавать уникальность метрики (правило формирования хэша), по следующим критериям:
- По всем меткам метрики (по умолчанию для всех правил)
- По всем меткам, кроме - перечисление меток в соответствующем поле
Данные метки, также должны быть исключены из основного запроса правила
- Только по меткам - перечисление меток в соответствующем поле
ВажноПри изменении настроек правила формирования хэша допускается ситуация, при которой на экране порогов для одного порога будет отображаться несколько графиков, т.к. общий хэш будет уже не у уникальной метрики, а у нескольких метрик одновременно.
Настройки порога
Автозакрытие
Время, через которое порог автоматически будет закрыт, если события подтверждения порога не приходят.
Отсчет выполняется с момента открытия/подтверждения порога.
Название порога
Допускается использование макросов (указываются в двойных фигурных скобках):
Rule.Id
- ID правилаRule.Name
- название правилаRule.Description
- описание правилаRule.CreatedAt
- дата создания правила порогаRule.FilterQuery
- данные из поля 'Запрос'Rule.CheckIntervalSeconds
- интервал запроса метрик в секундахRule.EvaluationWindowSeconds
- значение поля 'Окно вычисления' в секундахRule.AutoCloseTimeSeconds
- значение поля 'Автозакрытие'Rule.AggregationFunction
- указанная для правила функция агрегацииRule.StreamIds
- выбранные потоки для правилаRule.Conditions
- список настроенных условийRule.OwnerWorkGroupId
- ID РГ-владельца правила порогаRule.OwnerWorkGroupName
- название РГ-владельца порогаCondition.Function
- указанная для сработавшего правила функция сравненияCondition.Value
- с каким значением производилось сравнениеCondition.Level
- сработавший уровень условияCondition.LevelNumber
- цифровое значение уровняMetric.Value
- значение метрики при расчете порогаMetric.Labels
- метки метрикиMetric.Hash
- уникальный хэш метрикиMetric.Name
- название метрикиMetric.Labels.<название метки>
- позволяет указать название метки метрики
:::tip Справка При отсутствии значения - макрос игнорируется
Аннотации
Дополнительные поля порога, которые будут присвоены ему при создании
Запуск/остановка правил порогов
Запуск
После настройки правило расчета порогов можно запустить и начать анализ метрических рядов, поступающих в систему.
Нажмите кнопку Запустить в правом верхнем углу настроек правила, чтобы начать расчет по данному правилу.
Сразу после запуска правила будут проверены подходящие под Запрос метрические ряды и сгенерированы пороги в соответствии с условиями создания порогов.
По-умолчанию пороги создаются без привязки к каким-либо КЕ.
Чтобы увидеть сгенерированные без привязки к КЕ пороги, на вкладке Пороги панели РСМ активируйте соответствующую настройку фильтра - "Без КЕ - Показать"
Остановка
Для остановки расчета порогов по определенному правилу его нужно Остановить соответствующей кнопкой в настройках правила.
При остановке правила, по умолчанию, пользователю предлагается закрыть все открытые ранее пороги по данному правилу.
Удаление правила порога
Удаление правил расчета порогов доступно в настройках правила, в дополнительном меню.
После удаления правила расчета будут закрыты все созданные по данному правилу пороги.
Экспорт/импорт правил порогов
Для удобства настройки логики обработки метрик пользователям доступны функции:
Клонирование - создание копии правила порога в текущем пространстве
Экспорт - экспорт настроек правила порога в формат
base64
Импорт - импорт настроек из формата
base64
в текущее правилоВАЖНОВсе текущие настройки правила будут заменены значениями из импортируемого правила.
Расчетчик (процессор) порогов
Расчет правила производится в указанный пользователем интервал времени в правиле. При расчете производится запрос к хранилищу метрик, согласно выбранных потоков данных и указанного запроса.
Каждый запрос оборачивается в агрегационную функцию, указанную пользователем в настройках правила.
Для каждого полученного временного ряда формируется хэш-идентификатор, при помощи которого производится проверка наличия ранее созданного порога для данного временного ряда.
После выполнения выражения правила, полученный результат сравнивается с таблицей текущих открытых порогов по хэш-идентификатору:
- Если порога с таким хэш-идентификатором нет - создается новый порог
- Если порог с таким хэш-идентификатором есть и уровень критичности совпадает - обновляется время жизни порога
- Если порог с таким идентификатором есть и уровень не совпадает - старый порог закрывается и открывается новый с другим уровнем критичности.
Права доступа к разделу
При помощи ролевой модели Рабочей группы, менеджер проекта может настроить определенные роли пользователей, которым будет доступно:
- Чтение - доступен просмотр всех правил в рамках Рабочей группы
- Редактирование - полный доступ для управления правилами Порогов
- Запрещено - доступ к просмотру правил Порогов запрещен