Перейти к основному содержимому
Версия: 9.2

Правила порогов

COMMUNITYCOREBUSINESSENTERPRISE

В данном разделе документации предоставлена информация о работе с правилами обработки метрик и генерации новых объектов в системе Monq - порогов.

Порог метрики (англ. threshold) - это предельное значение, которое устанавливается для определенной метрики с целью определения критического состояния метрики. Когда значение метрики превышает или достигает установленного порога, это может сигнализировать о проблеме, ошибке, перегрузке или другом важном событии, требующем внимания или реагирования.

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

Пороги генерируются из собираемых метрик в специальном процессоре Monq - mcs-thresholds-service, который запускает правила расчета с определенной периодичностью. Результатом работы процессора могут быть: открытие нового порога, закрытие существующего порога и подтверждение порога.

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

Привязка генерируемых порогов к конфигурационным единицам (КЕ) выполняется непосредственно в правиле порогов в блоке Связь с CMDB и осуществляется одним из трёх способов: по метке ID КЕ, по набору ключевых атрибутов или через сценарий автоматизации.

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

переоткрывать завершенные пороги невозможно

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

Обзор экрана

Экран управления правилами порогов доступен из основного меню Анализ и обработка → Правила порогов

Изображение

доступ к разделу и его содержимому

регулируется ролевой моделью: права зависят от назначенной пользователю роли

На экране представлены следующие данные и элементы управления:

  • таблица с созданными правилами порогов с возможностью открыть карточку любого из них
  • поисковая строка
  • рубрикатор для фильтрации правил порогов
  • кнопка + Создать правило

При помощи рубрикатора пользователи могут фильтровать правила порогорв по следующим свойствам:

  • Состояние - поможет показать только включенные или только отключенные правила порогов
  • Статус - отфильтрует правила порогов по их статусу
  • Поток данных - покажет только те правила порогов, которые связаны с выбранным потоком данных
  • Теги - фильтрация по назначенным тегам

Таблица с правилами порогов отображает основную информацию о созданных правилах порогов в контексте рабочей группы:

  • Статус правила порогов:
    • Неизвестно (серый) - правило не имеет запусков
    • Успешно (зеленый) - правило запускалось и последний его запуск завершился без ошибок
    • Ошибка (красный) - правило запускалось и последний его запуск завершился с ошибкой
  • Название правила порогов
  • Описание (при наличии)
  • Состояние правила (Запущено/ Остановлено)
  • Связанный поток данных:
    • Иконка
    • Название
    • Индикация остановленного потока (если поток остановлен)
    • Действие перехода к настройке потока данных выбранного потока данных
  • Частоту расчета - интервал частоты расчета правила порога
  • Дата и время внесения последнего изменения в правиле порога
  • Список аннотаций - список дополнительных полей присвоенных при создании правила порога (ключ/значение)
  • Список тегов (цвет/название)

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

Общее количество доступных правил порогов в разделе отображается в виде счётчика в правом верхнем углу над списком.

Из списка правил порогов пользователь может открыть настройки правила, кликнув по нему в списке. В верхней панели правила доступны действия:

  • скопировать ID правила
  • открыть в новой вкладке браузера
  • скопировать ссылку на правило
  • изменить размер модального окна правила
  • закрыть карточку правила
  • запустить / остановить правило
  • воспользоваться контекстным меню с дополнительными возможностями
  • просмотреть настройки правила

Массовые действия

Работая с экраном правил порогов доступно выполнение массовых действий по удалению и запуску правил порогов.

Изображение

Массовые действия доступны через "кебаб"-меню при выборе одного и более правила порогов.

Дополнительные действия

В меню дополнительных действий доступны операции:

  • Запустить / остановить правило
  • Создать копию правила
  • Экспортировать правило
  • Удалить правило Изображение

Операции с правилами порогов

Создание правила порога

Для создания нового правила расчета порогов нажмите кнопку + Создать правило в правом верхнем углу экрана управления правилами порогов.

Заполните форму создания правила:

Изображение

  • Владелец - рабочая группа, которой принадлежит правило расчета порога
  • Название правила - должно быть уникальным в рамках рабочей группы
  • Описание (опционально)
  • Потоки данных - обязательное поле выбора потока/потоков данных
  • Импорт - код правила расчета порога в формате base64 (подробнее в разделе Экспорт/импорт правил порогов)

После создания правила расчета порогов его необходимо настроить:

1. Основная информация

Изображение

Частота расчета

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

2. Источник метрик

Изображение

Потоки данных

Необходимо выбрать как минимум один поток данных - источник метрик. Для выбора доступны потоки данных с типом "Метрики" контекстной РГ + пошаренные.

Окно вычисления

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

Функция агрегации
  • Last (Последнее) - для расчета будет использовано последнее значение вектора
  • Average (Среднее) - среднее значение вектора
  • Max (Максимум) - максимальное значение вектора
  • Min (Минимум) - минимальное значение вектора
  • Sum (Сумма) - суммирует все значения вектора
Запрос

Запрос значений метрики может быть сформирован двумя способами: с помощью Конструктора запросов (интерактивный выбор метрик и меток) или вручную на языке MetricsQL (PromQL) с помощью Строки запроса.

Пример ручного ввода:
aggregator_openapi_v2_regeneration_count{endpoint="https", instance="10.18.0.100:6443", job="apiserver"}

Чем более подробно указан набор меток, тем более точно будет производиться идентификация конкретного вектора. Например, если указать только название метрики: aggregator_openapi_v2_regeneration_count, запрос будет валиден, но вместо одного вектора придет набор из нескольких векторов.

Допускается ввод многострочного запроса. Для этого реализован перенос на новую строку нажатием Shift+Enter.

Строка для запроса работает одновременно и в режиме Поиска по существующим в БД метрикам. Изображение

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

важно

При необходимости внесения изменений в Запрос активного правила - Правило сначала нужно остановить и выбрать "Закрыть пороги". Если это не сделать, пороги будут создаваться как новые, не заменяя предыдущие. А старые останутся открытыми.

Проверка уникальности
Это способ использования указанных меток для определения уникальности порога (правило формирования хэша). Доступны следующие критерии:

  • По всем меткам метрики (по умолчанию для всех правил)

  • По меткам, кроме - перечисление меток в соответствующем поле

    Эти метки также должны быть исключены из основного запроса правила

  • Только по меткам - перечисление меток в соответствующем поле Изображение

    Справка

    При изменении настроек правила формирования хэша допускается ситуация, при которой на экране порогов для одного порога будет отображаться несколько графиков, т.к. одинаковый хэш будет у нескольких метрик одновременно.

График временных рядов

При выполнении запроса, помимо меток и значений метрик, выводится полный график временных рядов. На графике отображаются уровни критичности, настроенные в Блоке условий Статического детектора аномалий. Изображение

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

При работе с графиком доступен датапикер. Также предусмотрена возможность выбора периода непосредственно на графике — для этого необходимо зажать левую кнопку мыши и выделить нужную область.

Изображение

Важно

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

3. Детектор аномалий

Данный блок позволяет выполнять настройки условий создания порогов.

Изображение

Статический детектор аномалий

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

Инструментом для задания границ выступает Блок условий.

Каждое созданное правило уже имеет созданный Блок условий и удалить этот блок нельзя. По умолчанию для Блока условий устанавливается статус Ok.

Чтобы создать Блок условий необходимо нажать на кнопку + Блок условий

каждое правило порогов может содержать не более 20 Блоков условий. Для определенных  периодов  можно задать разные уровни критичности и значения для порогов (например, для ночных часов, выходных или сезонных кампаний).

Для перехода к настройкам Блока условий необходимо выполнить по нему клик.

Изображение

Для каждого блока условий отображается:

  • Название (для блока по умолчанию — Блок условий 1 с пометкой «По умолчанию»).
  • Уровни критичности и их значения (с цветовой индикацией):
    • Fatal
    • Critical
    • Major
    • Warning
    • Info
  • График с метричным рядом
  • Настройки активности

Доступные действия:

  • изменение названия
  • изменение периода отображения временных рядов (по умолчанию — последние 24 часа)
  • выполнить настройки активности
    • задать период действия блока через расписание (месяц, дни недели, дни месяца, тип дней, время, часовой пояс)
    • задать диапазон дат
  • выбрать интервал времени на графике с помощью выделения мышью
  • включение / отключение отображения легенды
  • задание условий для создания порогов (по умолчанию — Оk)

После завершения всех настроек необходимо сохранить изменения — блок будет создан и настроен в соответствии с указанными параметрами.

4. Прогноз

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

Горизонт прогноза

Включение функции прогнозирования позволяет построить Краткосрочный, Среднесрочный или Долгосрочный прогноз. Для каждого горизонта задается количество точек: 15 (по умолчанию), 30 или 60 соответственно.

Изображение

Для ручного управления параметрами прогнозирования предусмотрен инструмент расширенной настройки, в котором пользователь может самостоятельно задать параметры прогноза. Для этого активируйте переключатель "Расширенная настройка" в блоке Прогноз

Изображение

Чем больше период предсказания, тем менее точный будет результат.

Расширенные настройки позволяют вручную управлять параметрами прогнозирования вместо использования предустановленных горизонтов (15/30/60 точек). Доступен ручной ввод от 5 до 100 точек (по умолчанию 15). Настройки обучения гарантируют, что прогноз строится только при достаточном объёме качественных исторических данных. Пользователь задаёт минимальное количество точек (от 10 до 20 000) и период релевантности (от 1 до 300 дней), а система автоматически проверяет, что в выбранном интервале действительно набирается нужное число точек с учётом окна вычисления. Если данных недостаточно — прогноз не строится, а проверка повторяется при каждом цикле расчёта порога до выполнения условия. Это исключает построение прогнозов на недостаточных или нерепрезентативных данных, повышая их точность и надёжность.

Сезонность

Данная настройка позволяет учитывать циклические паттерны (повторяющиеся закономерности) в данных для повышения точности прогноза. а Изображение

Режимы работы:

  • Автоматический (по умолчанию) — система самостоятельно определяет сезонность с помощью встроенного алгоритма.
  • Ручной — пользователь задаёт границу одного сезона (длительность полного цикла повторяющегося паттерна).
  • Выключен — сезонность не учитывается (применяется для линейных временных рядов).

Граница сезона вычисляется по формуле: граница сезона = количество точек прогноза × окно вычисления. Например, при окне вычисления 5 минут и 15 точках прогноза граница сезона составит 75 минут — это означает, что сезонный паттерн повторяется каждые 75 минут. Ручной режим полезен, когда известен нестандартный цикл метрики (например, суточный или недельный), который система может не распознать автоматически.

Дополнительная фильтрация по меткам позволяет уточнить, для каких порогов строить прогноз. Пользователю отображается исходный запрос из блока Источник метрик, который может быть дополнен условиями (название метки, оператор и значение) — количество фильтров не ограничено. Система отображает финальный запрос с учётом всех фильтров, который можно скопировать вместе с исходным, а также доступен быстрый переход к экрану Метрики Изображение

BUSINESSENTERPRISE

4. Связь с CMDB

Связь с CMDB позволяет привязать генерируемые пороги к конкретному объекту инфраструктуры (например, серверу, базе данных или приложению). Это значит, что все аномалии и алерты будут привязаны не просто к метрике, а к конкретному оборудованию или сервису, что упрощает поиск причины проблемы и понимание, на что именно повлиял сбой.

Изображение

Для выполнения настроек блока CMDB необходимо активировать (включить) переключатель.

возможность включения блока CMDB определяется параметрами лицензии. Если лицензия не предусматривает работу с CMDB, переключатель не отображается в интерфейсе, независимо от установленных прав в контекстной РГ

Алгоритмы привязки:

  • По ID КЕ — прямая привязка к конкретной единице.

  • По ключевым атрибутам — динамический поиск КЕ по заданным атрибутам.

  • Через сценарий автоматизации — гибкий механизм привязки с использованием сценариев автоматизации.

Выбор алгоритма позволяет адаптировать привязку под различные сценарии использования и структуру CMDB.

Алгоритм привязки по ID КЕ

Привязка по ID КЕ позволяет сопоставить порог с конфигурационной единицей на основе идентификатора, хранящегося в метрике. Изображение

Настройка:

  • Указывается ключ метрики с ID КЕ (по умолчанию configItemId), обязательное поле
  • При необходимости указывается тип КЕ (из выпадающего списка типов пространства), компонент и слот. Если тип не указан или не найден — порог привязывается к компоненту по умолчанию.

Если соответствие (КЕ) не найдено:

  • Не привязано — в configItemId записывается 0 (по умолчанию).
  • Не найдено — записывается -1.

Алгоритм привязки по ключевым атрибутам

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

Изображение

Настройка:

  • Тип КЕ — выбирается из выпадающего списка типов пространства (один или несколько), обязательное поле. Доступен текстовый поиск по типу.
  • Компонент и слот — компонент выбирается из доступных для указанного типа. Если компонент не указан — выставляется по умолчанию. Слот указывать необязательно.
  • Ключевые атрибуты — выбирается группа ключевых атрибутов из доступных для выбранного типа КЕ. Рядом с полем есть кнопка перехода к настройкам типа КЕ в Метамодели РСМ.
  • Соответствие атрибутов — устанавливается соответствие между ключевыми атрибутами КЕ и метками временного ряда.

Если КЕ не найдена:

  • «Не привязано» — в configItemId записывается 0 (по умолчанию).
  • «Не найдено» — записывается -1.

Алгоритм привязки через Сценарий автоматизации

Привязка через сценарий автоматизации позволяет сопоставить порог с конфигурационной единицей на основе пользовательской логики, реализованной в сценарии с типом ThresholdsToCmdbBinder.

Изображение

Настройка:

  • Сценарий автоматизации — выбирается из выпадающего списка доступных сценариев с типом ThresholdsToCmdbBinder в контексте текущей РГ. Обязательное поле.
  • Пользователь может перейти к сценарию по кнопке Перейти к сценарию, а также выполнить переход к списку сценариев с типом ThresholdsToCmdbBinder контекстной РГ с помощью кнопки 🡕. Изображение

4. Дополнительные настройки

Изображение

Автозакрытие

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

Автоматизация (дробление порогов)

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

  • не ограничено - дробление порогов осуществляться не будет
  • не более - дробление порогов будет производится по заданному значению
  • по умолчанию - дробление порогов будет производится по заданной политике Политика дробления порогов в настройках пространства
Название порога

Допускается использование макросов: указываются в {{двойных фигурных скобках}}:

  • 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.<название метки> - позволяет указать название метки метрики
При отсутствии значения - макрос игнорируется
Аннотации

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

Запуск/остановка правил порогов

Запуск

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

Нажмите кнопку Запустить в правом верхнем углу настроек правила, чтобы начать расчет по данному правилу.

Изображение

Сразу после запуска правила будут проверены подходящие под Запрос метрические ряды и сгенерированы пороги в соответствии с условиями создания порогов.

По умолчанию пороги создаются без привязки к каким-либо КЕ.

Чтобы увидеть сгенерированные без привязки к КЕ пороги,

на вкладке «Пороги» оперативного центра активируйте + Фильтр → Без КЕ

Остановка

Для остановки расчета порогов по определенному правилу его нужно Остановить соответствующей кнопкой в настройках правила.

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

Удаление правила порога

Удаление правил расчета порогов доступно:

  • меню дополнительных действий карточки правила

Изображение

  • меню дополнительных действий из списка правил порогов

Изображение

при удалении правила будут закрыты все созданные им пороги

Экспорт/импорт правил порогов

Для удобства настройки логики обработки метрик пользователям доступны функции:

  • Клонирование - создание копии правила порога

    Изображение

при выполнении копирования правила порогов настройки связи с CMDB не будут скопированы. При необходимости заполните данный раздел вручную

При создании копии пользователь может внести изменения в следующие параметры правила порога:

  • Владелец
  • Название
  • Описание
  • Потоки данных
Скопированное Правило порога имеет состояние Выключено
  • Экспорт - экспорт настроек правила порога в формат base64

    Изображение

экспорт настроек правила порогов осуществляется без настроек потоков и связи с CMDB
  • Импорт - импорт настроек из формата base64 в текущее правило при его создании

    Изображение

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

Поиск правил порогов

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

  • Название правила
  • ID правила
  • Описание

Расчетчик (процессор) порогов

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

Запрос выполняется в API Instant query.

Пример результирующего запроса настроенного правила со следующими параметрами:

  • Потоки данных: поток с ID = 1
  • Окно вычисления: 30 мин
  • Функция агрегации: Max
  • Запрос: increase(metric_count_total[30m])[30m:1m]
curl --location 'http://<vm_address>/prometheus/api/v1/query' \
--header 'Authorization: Basic xxxxxxxxxxxx' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'query=max_over_time(increase(metric_count_total[30m])[30m:1m])&extra_filters[]={monq_stream_id=~"1"}&extra_label=monq_userspace_id=1&step=30m'

Где:

  • В параметр extra_filters[] передаются значения, указанные в настройке «Потоки данных».
    При поступлении в поток каждой метрике присваивается метка monq_stream_id=<id_потока>.
  • В параметр extra_label передается системный метка monq_userspace_id=1, соответствующий текущему пространству пользователя.
    Метка monq_userspace_id присваивается всем метрикам по умолчанию.
  • В параметр step передается значение из настройки «Окно вычисления»
  • В параметр query подставляется исходный запрос из поля «Запрос», обернутый в выбранную в настройках функцию агрегации.
    В примере increase(...) обернут в max_over_time(...) и в результате получается:
    max_over_time(increase(metric_count_total[30m])[30m:1m])
Важно учитывать вложенность субзапросов

В примере выше для субзапроса increase(...) явно задан диапазон [range:resolution][30m:1m].
Это необходимо, потому что в VictoriaMetrics шаг субзапроса по умолчанию наследуется из параметра step.
Если не указать range:resolution явно, субзапрос будет выполняться с шагом 30m, что приведет к существенной потере детализации и может вызвать ошибки в расчетах — например, пропуск кратковременных пиков метрики.

Для каждого полученного временного ряда формируется хэш-идентификатор, при помощи которого производится проверка наличия ранее созданного порога для данного временного ряда.

После выполнения выражения правила, полученный результат сравнивается с таблицей текущих открытых порогов по хэш-идентификатору:

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