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

Покрытие мониторингом

Описание и сценарии актуальны для Monq версии не ниже 8.7.2
демо

Рассматриваемый вариант не является единственно верным и представлен в демонстрационных целях

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

Ожидается, что в нормальной ситуации на экране «Оперативный центр» → «Пороги» в колонке «КЕ» рядом с компонентом также будет указан слот:

image

Сценарий покрытия КЕ метриками

Сценарий предназначен для периодической проверки уровня покрытия КЕ метриками мониторинга и создания информационных сигналов при его снижении.

Coverage.txt (github)
Тип сценария: SignalProcessor

Сценарий необходимо импортировать.

Принцип работы сценария

  1. При запуске запрашивается список КЕ, удовлетворяющих условиям фильтрации, владельцем которых является текущая рабочая группа
  2. Определяется текущий уровень покрытия полученных КЕ, после чего они распределяются на группы: полностью и неполностью покрытые метриками
  3. Выполняется поиск открытых сигналов с меткой CoveragePerc, привязанных к обрабатываемым КЕ
  4. В зависимости от текущего и предыдущего уровней покрытия выполняются следующие действия:
    • если покрытие было полным, а затем снизилось → создается новый сигнал
    • если покрытие было сниженным, а затем стало полным → сигнал закрывается
    • если покрытие осталось неполным, но уровень изменился → сигнал обновляется
      Обновление открытого сигнала необходимо для дедупликации. В этом случае обновляется процентное значение в названии, описании и в значении метки.
метка

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

Доступные настройки

Некоторые параметры вынесены в переменные, значения которых можно настраивать в соответствии с потребностями и техническими характеристиками инсталляции.
Переменные расположены в начале сценария рядом со стартовым блоком "OnScheduledEvent".

image

  • _SigNameTemplate - шаблон названия создаваемого сигнала
    К заданному в этой переменной названию автоматически добавляется суффикс с процентом остаточного покрытия
    Пример: Нехватка метрик, покрытие 85%

  • _TagName - название тега, который будет добавлен к сигналу
    Предустановленный цвет тега – teal, а его название можно изменить. По умолчанию предлагается «Покрытие».

    Тег не является обязательным элементом сценария, но может использоваться для удобной фильтрации сигналов данного типа на экране «Сигналы» и в соответствующей вкладке оперативного центра.
    Кроме того, тег может применяться в бизнес-процессах, например, для настройки периодической рассылки о состоянии покрытия на электронную почту или в мессенджеры.

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

    совет

    Обычно не все КЕ в системе покрываются метриками. При правильном проектировании модели CMDB для таких КЕ создаются выделенные типы, в которых настраиваются компоненты, а в компонентах - слоты.
    Поэтому для повышения эффективности сценария рекомендуется проверять только те КЕ, в типах которых настроены слоты.
    Для ограничения проверяемых типов перечислите их id в блоке «Значение по умолчанию», указывая каждый в новой строке с помощью кнопки + Добавить значение

  • _CoverageLevel - процент покрытия КЕ метриками, ниже которого сценарий начинает реагировать на снижение

  • _Severity - уровень критичности создаваемого сигнала
    По умолчанию предлагается использовать уровень Info (5), так как он не влияет на здоровье КЕ.
    Концептуально отсутствие метрик не снижает доступность системы и, соответственно, не ухудшает ее здоровье.

  • _PerPage - количество КЕ за один поисковой запрос (пагинация)
    В сценарии реализован постраничный запрос КЕ для регулирования нагрузки в системах с большим их количеством.
    Указанное значение определяет лимит на одну страницу. Поиск продолжается до тех пор, пока не будут обработаны все КЕ.

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

    справка

    Это необходимо для повышения эффективности работы сценария. Баланс между количеством API-запросов (например, при поиске КЕ) и использованием памяти сервисами критичен для предотвращения ее переполнения (OOM).

    В данном сценарии эффективнее запрашивать несколько тысяч КЕ, но сигналы по ним обрабатывать пакетами по несколько сотен.

_PerPage и _SplitSize

Для параметров _PerPage и _SplitSize нет универсальных рекомендаций. Оптимальные значения подбираются экспериментально с учетом доступных ресурсов (лимитов CPU и RAM для микросервисов) и общего времени выполнения сценария.

Расписание

Триггером запуска сценария является настроенное расписание.
Для его настройки выполните следующие действия:

  1. Нажмите «Планировщик запусков» в нижней части экрана сценария
  2. Нажмите + Запланировать запуск
  3. В секции «Повторения» выберите Расписание CRON и настройте желаемую периодичность
  4. Нажмите Запланировать запуск

После этого в списке заданий появится новое:

image

Запуск сценария

После завершения всех настроек скомпилируйте и активируйте сценарий:

image

Если в корректно настроенной системе имеются КЕ с недостаточным покрытием метриками, на экране сигналов появятся новые:

image