Умные базовые тревоги

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

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

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

Создание канала статистики

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

Для создания статистического канала выберите Редактировать свойства аккаунта устройства из контекстного меню сетевого устройства, перейдите во вкладку Каналы Статистики и добавьте новую строку в таблице каналов:

Настройте Переменную так, чтобы она указывала на переменную, содержащую значения нагрузки на ЦП - hrProcessorTable. Откройте Параметры и настройте Выражение, которое вернет те числовые значения, чьи средние значения будут отслеживаться тревогой. В нашем случае это значение переменной, которую нужно отслеживать - {hrProcessorTable} но при необходимости можно применять любые операции, доступные в языке выражений.

Также желательно отключить все типы Агрегации, кроме Среднего. Это позволит сохранить место в статистической базе данных.

Создание тревоги

Создайте тревогу, которая будет возникать при серьезных нарушениях базовых параметров. Настройте оповещения о тревоге (такие как отправка электронного письма или SMS).

Добавьте к тревоге один триггер, активируемый состоянием и настройте следующим образом:

  • Контекстная маска: users.admin.devices.criticalServer (контекст сервера, чья нагрузка на ЦП отслеживается)

  • Переменная: hrProcessorTable (таблица нагрузки на ЦП)

  • Выражение: select(select({.:statistics}, "statistics", "name", "cpuLoad"), "average", "period", 3) > select(select({.:statistics}, "statistics", "name", "cpuLoad"), "average", "period", 6) + 20

  • Режим Состояние (Ложь/Истина)

  • Задержка: 0 мс

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

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

Давайте проанализируем первую часть select(select({.:statistics}, "statistics", "name", "cpuLoad"), "average", "period", 3). Во-первых, select({.:statistics}, "statistics", "name", "cpuLoad") извлекает статистические значения для канала cpuLoad из значения переменной statistics. Во-вторых, функция select(statistics, "average", "period", 3) возвращает среднее значение последнего дня (в процентах) из предыдущей таблицы.

Числовая константа 3 соответствует временной единице Час.

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