Триггеры переменной

Триггер переменной активирует тревогу в случае:

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

Выбор между данными методами осуществляет свойство триггера Режим. Другие свойства триггера переменной описаны здесь.

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

  • Если в поле Режим выбрано Состояние (ложь/истина), сервер вычисляет выражение, заданное в настройке Выражение. В таком случае данное выражение имеет логическое значение. Оно может содержать ссылки на ячейки таблицы данных, содержащей значение переменной, но также может ссылаться на другие переменные и функции контекстов SberMobile Server. Если значение выражения равно TRUE, а результат предыдущего вычисления был FALSE (или если переменная проверяется впервые после запуска SberMobile Server или после последнего изменения свойств данной тревоги), триггер запускает и активирует тревогу. Если же результат вычисления равен TRUE и был такой же во время последней проверки, ничего не происходит. Если же она изменилась с TRUE на FALSE, действие также не выполняется, но последующее изменение на TRUE активирует тревогу.

Если определено Record Key Expression is specified, это Выражение is independently evaluated for each line of the Variable value.

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

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

Пример триггера переменной, когда Режим триггера – "Состояние (ложь/истина)":

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

Параметры триггера могут быть следующими:

Маска контекста

users.user123.devices.temperature_sensor (Данная маска соответствует одному контексту терминала данных).

Переменная

currentTemperature

Выражение

{celsiusTemperature} > 100

Режим

State (true/false)

Период проверки (секунды)

10

Задержка (секунды)

0

Уровень тревоги

Warning

Пример триггера переменной с "Изменение состояния (любое значение)":

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

Параметры триггера могут быть следующими:

Маска контекста

users.user123.deviceservers.medical12.devices.monitor1 (Данная маска соответствует одному контексту терминала данных).

Переменная

warningList

Выражение

{warning[0]} + {warning[1]} + {warning[2]} + {warning[3]} + {warning[4]}

Режим

Изменение состояние (любое значение)

Период проверки (секунды)

100

Задержка (секунды)

0

Уровень тревоги

Warning

Время выдержки и гистерезис (зона нечувствительности)

Триггеры переменной имеют параметр Задержка, который помогает задать такие тревоги, как "Предупреждение: температура ниже 10 градусов более часа".

Параметр Задержка применяется, когда в поле Режим выбрано Состояние (ложь/истина). Он определяет интервал между временем, когда выражение триггера становится TRUE и временем поднятия тревоги. Если Задержка не равна нулю, сервер ждет определенное количество секунд до активации триггера и поднятия тревоги. Если Выражение становится снова FALSE до окончания Задержки, тревога не поднимается и счетчик времени сбрасывается.

Независимо от значения Задержки, выражение триггера заново вычисляется каждый раз за Период проверки (который также является параметром триггера -- см. выше). Например, если Период проверки задан на 10 секунд, а время задержки - 15 секунд, тревога активируется спустя 20 секунд после того, как выражение было оценено как TRUE в первый раз.

Триггер переменной активируется, если Выражение является TRUE в течение времени большего, чем Задержка. Он деактивируется, если:

  • Выражение деактивации не задано, и Выражение является FALSE не дольше Задержки деактивации.
  • Выражение деактивации задано и является TRUE не дольше, чем время Задержки деактивации.

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

Комбинация Задержки и Задержки деактивации называется гистерезисом.

Гистерезис - задержка между действием и его причиной

Изображение, приведенное ниже, показывает, как активируется/деактивируется триггер переменной, когда Выражение деактивации не задано.

Когда Выражение деактивации задано, то активация/деактивация триггера происходит по схеме, изображенной далее:

Пример триггера переменной с гистерезисом:

Вернемся к вышеупомянутому примеру о контроле температуры.

Мы хотим установить триггер, который:

  • Поднимает тревогу, когда температура выше 50 градусов более 5 минут.
  • Деактивирует тревогу, когда она активна и температура ниже 35 градусов более 20 минут.

Параметры триггера могут быть следующими:

Маска контекста

users.user123.devices.temperature_sensor (Данная маска соответствует одному контексту терминала данных).

Переменная

currentTemperature

Выражение

{celsiusTemperature} > 50

Контролировать изменения состояния

disabled

Период проверки, секунды

10

Задержка, секунды

300

Уровень тревоги

Warning

Выражение деактивации

{celsiusTemperature} < 35

Задержка деактивации, секунды

1200

Распознавание "биения"

"Колебанием" называется ситуация, когда Выражение триггера меняет свой результат слишком быстро - постоянно переключает между TRUE и FALSE. Это может происходить ввиду следующих причин - например, если устройство постоянно перезагружается, его онлайн статус будет постоянно меняться.

SberMobile может обнаружить "колебание" триггера переменной. Это происходит посредством анализа предыдущих результатов оценки Выражения относительно количества произошедших изменений состояния. SberMobile хранит историю 101 последней проверки и анализирует изменения внутри истории. Если выражение TRUE не меняется на FALSE или наоборот в течение последней 101 проверки состояния (т.е. 100 изменений состояния), процент "колебания" будет равен 0%. Если все проверки имеют различные состояния, процент "колебания" равен 100%.

Распознавание "биения" контролируется тремя параметрами:

  • Включить распознавание "биения"
  • Порог активации
  • Порог деактивации

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

Тревога "биение" возникает, когда в истории находятся более, чем 11 проверок (10 изменений состояния) и процент "биения" превышает Порог активации. Тревога "биение" обрабатывается и доставляется подобно другим тревогам, ее единственными отличиями являются причина и данные тревоги.

Триггер будет оставаться в состоянии "Обнаружено биение" до тех пор, пока процент "биение" не упадет ниже Порога деактивации.

"биение" и активация триггера

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

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

Анализ внешних таблиц инцидентов

Иногда SberMobile Server извлекает таблицу инцидентов из внешнего источника. Появляется необходимость активизировать отдельную тревогу для каждой строки внешней таблицы. В этом случае, нужно настроить Выражение ключа записи триггера переменной. Это выражение будет оцениваться независимо для каждой строки значения Переменной, и оно должно вернуть уникальный ID инцидента, представленного строкой. В большинстве случаев, это выражение указывает на колонку "ID" внешней таблицы инцидентов.

В данном случае SberMobile Server активизирует отдельный экземпляр для каждого нового ID (значения), возвращенного Выражением ключа записи. Этот экземпляр будет активен пока во внешней таблице существует строка с этим ID. Если определенный ID на некоторое время исчезает из таблицы, а затем появляется снова, создается новый экземпляр тревоги.

В случае использования Выражения ключа записи, Выражение основного триггера проанализирует отдельную строку значения Переменной, а не целое табличное значение. Если оно вернет false, строка не будетактивизировать новую тревогу. Это удобно для отфильтровывания инцидентов с низкой уровнем критичности от инцидентов, которые не должны обрабатываться SberMobile Server.

Сообщение триггера

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

Среда вычисления

Среда вычисления выражения триггера переменной и выражения деактивации:

Контекст по умолчанию

Контекст, чья переменная проверяется.

Таблица данных по умолчанию

Текущее значение переменной триггера.

Ряд по умолчанию

0

Переменные среды

Только стандартные переменные.