Правила порогов
В данном разделе документации предоставлена информация о работе с правилами обработки метрик и генерации новых объектов в системе 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.<название метки>
- позволяет указать название метки метрики
СправкаПри отсутствии значения - макрос игнорируется
-
Аннотации
Дополнительные поля порога, которые будут присвоены ему при создании
-
Запуск/остановка правил порогов
Запуск
После настройки правило расчета порогов можно запустить и начать анализ метрических рядов, поступающих в систему.
Нажмите кнопку Запустить в правом верхнем углу настроек правила, чтобы начать расчет по данному правилу.
Сразу после запуска правила будут проверены подходящие под Запрос метрические ряды и сгенерированы пороги в соответствии с условиями создания порогов.
По-умолчанию пороги создаются без привязки к каким-либо КЕ.
Чтобы увидеть сгенерированные без привязки к КЕ пороги, на вкладке Пороги панели РСМ активируйте соответствующую настройку фильтра - "Без КЕ - Показать"
Для выполнения привязки Порога к КЕ необходимо создать сценарий с типом ThresholdsProcessor
и выстроить в нем логику, по которой будет выполняться проверка соответствия и привязка к КЕ.
Остановка
Для остановки расчета порогов по определенному правилу его нужно Остановить соответствующей кнопкой в настройках правила.
При остановке правила, по умолчанию, пользователю предлагается закрыть все открытые ранее пороги по данному правилу.
Удаление правила порога
Удаление правил расчета порогов доступно в настройках правила, в дополнительном меню.
После удаления правила расчета будут закрыты все созданные по данному правилу пороги.
Экспорт/импорт правил порогов
Для удобства настройки логики обработки метрик пользователям доступны функции:
-
Клонирование - создание копии правила порога в текущем пространстве
-
Экспорт - экспорт настроек правила порога в формат
base64
-
Импорт - импорт настроек из формата
base64
в текущее правилоВАЖНОВсе текущие настройки правила будут заменены значениями из импортируемого правила.
Привязка порогов к слотам и компонентам
В зависимости от выстроенной логики РСМ, привязывать Пороги к КЕ можно по разным критериям:
- Привязка порога к КЕ и компоненту по умолчанию
- Привязка порога к КЕ с указанием определенного компонента
- Привязка порога к КЕ с указанием слотов компонентов
При этом вне зависимости от выбранных критериев, логика привязки задается через Сценарии автоматизации.
Экран управления Сценариями расположен в разделе меню "Действия" - Автоматизация.
Для создания нового Сценария привязки Порогов к КЕ:
-
Нажмите кнопку + Создать сценарий в правом верхнем углу экрана
-
Заполните форму создания сценария:
- Владелец сценария
Рабочая группа, которой принадлежит сценарий автоматизации
- Название
Название сценария должно быть уникальным в рамках Рабочей группы
- Тип
В данном случае необходимо выбрать
ThresholdsProcessor
- Описание (опционально)
- Импорт сценария (опционально)
Импорт готового сценария выполняется в формате
base64
(подробнее в разделе Импорт/экспорт сценария)
- Владелец сценария
-
Напишите свой сценарий привязки
Для операций привязки/отвязки порогов вам потребуются функции:
-
Нажмите кнопку Скомпилировать для применения внесенных изменений
-
Активируйте Сценарий
Если настройка была выполнена верно, Пороги начнут привязываться к слотам и компонентам КЕ по заданному в сценарии алгоритму. :::
Если по какой-то причине, администратор пространства удалит компонент на типе КЕ, к которому были привязаны пороги - система автоматически привяжет эти пороги к компоненту КЕ по умолчанию.
При изменении названий компонентов КЕ в настройках CMDB - информация о связи порога с компонентом КЕ обновится автоматически.
Расчетчик (процессор) порогов
Расчет правила производится в указанный пользователем интервал времени в правиле. При расчете производится запрос к хранилищу метрик, согласно выбранных потоков данных и указанного запроса.
Каждый запрос оборачивается в агрегационную функцию, указанную пользователем в настройках правила.
Для каждого полученного временного ряда формируется хэш-идентификатор, при помощи которого производится проверка наличия ранее созданного порога для данного временного ряда.
После выполнения выражения правила, полученный результат сравнивается с таблицей текущих открытых порогов по хэш-идентификатору:
- Если порога с таким хэш-идентификатором нет - создается новый порог
- Если порог с таким хэш-идентификатором есть и уровень критичности совпадает - обновляется время жизни порога
- Если порог с таким идентификатором есть и уровень не совпадает - старый порог закрывается и открывается новый с другим уровнем критичности.
Права доступа к разделу
При помощи ролевой модели Рабочей группы, менеджер проекта может настроить определенные роли пользователей, которым будет доступно:
- Чтение - доступен просмотр всех правил в рамках Рабочей группы
- Редактирование - полный доступ для управления правилами Порогов
- Запрещено - доступ к просмотру правил Порогов запрещен