SET - примеры
Основой каждого примера правила SET являются форматы значений.
NOTE
При использовании правил рекомендуется расширять таблицу данных всеми метриками первым действием, иначе метрики, не указанные в правилах, не будут обновляться в таблице данных:
Пример 1: в качестве value установлены числовые и текстовые значения
Цель: расширить возможности по настройке условий перехода состояний и повысить уровень визуализации.
Пошаговое руководство:
Шаг 1: в секции Мониторинг настроить тип проверки Ping
Здесь будет рассмотрена метрика packetLossPercentile (процентиль потерь пакетов). В этом примере допустимое значение packetLossPercentile равно 10.
Шаг 2: расширить таблицу данных всеми метриками
json
[
{
"actions": [
{
"type": "extend"
}
]
},
...
]Шаг 3: в правилах формирования данных настроить условия и действия (всё в порядке)
Если packetLossPercentile = [0;10], то
- в таблицу данных запишется метрика
packetLossPercentileсо значением OK, - будет создана метрика
over_packetLossPercentile- число ошибок - со значением 0.
json
[
...
{
"conditions": [
{
"_field": {
"name": "new.packetLossPercentile",
"value": {
"_lte": "10"
}
}
}
],
"actions": [
{
"type": "set",
"field": "packetLossPercentile",
"value": "OK"
},
{
"type": "set",
"field": "over_packetLossPercentile",
"value": "0"
}
]
},
...
]Шаг 4: задать условие перехода состояний для Working
Если packetLossPercentile = OK, то объект переходит в состояние WORKING.

Шаг 5: в правилах формирования данных настроить условия и действия (аварийная ситуация)
Если packetLossPercentile > 10, и это значение пришло больше одного раза (ситуация для одного раза описывается позже), то в таблицу данных метрика packetLossPercentile записывается со значением ALERT.
json
[
...
{
"conditions": [
{
"_field": {
"name": "new.packetLossPercentile",
"value": {
"_gt": "10"
}
}
},
{
"_field": {
"name": "new.over_packetLossPercentile",
"value": {
"_eq": "1"
}
}
}
],
"actions": [
{
"type": "drop",
"include": "over_packetLossPercentile"
},
{
"type": "set",
"field": "packetLossPercentile",
"value": "ALERT"
}
]
}
]Шаг 6: задать условие перехода состояний для Alarm
Если packetLossPercentile = ALERT, то объект переходит в состояние ALARM, требуя от технической поддержки немедленного вмешательства.

Шаг 7: в правилах формирования данных настроить условия и действия (ошибка)
Если packetLossPercentile > 10, и это значение пришло один раз, то:
- в таблицу данных записывается метрика
packetLossPercentileсо значением WARNING, - факт превышения допустимых потерь фиксируется в метрике
over_packetLossPercentile.
json
[
...
{
"conditions": [
{
"_field": {
"name": "new.packetLossPercentile",
"value": {"_gt": "10"}
}
},
{
"_field": {
"name": "current.over_packetLossPercentile",
"value": {"_eq": "0"}
}
}
],
"actions": [
{
"type": "set",
"field": "over_packetLossPercentile",
"value": "1"
},
{
"type": "set",
"field": "packetLossPercentile",
"value": "WARNING"
}
]
}]Шаг 8: задать условие перехода состояний для Overloaded
Если packetLossPercentile = WARNING, то объект переходит в состояние OVERLOADED, не являясь приоритетным для решения технической поддержкой.

NOTE
Данный метод позволяет повысить уровень визуализации в виджетах.
Пример 2: в качестве value установлены формулы с использованием метрик из таблицы данных с указателями current и new
Цель: получить отображение шаговых значений.
Пошаговое руководство:
Шаг 1: в секции Мониторинг настроить тип проверки Процесс по имени
NOTE
Здесь будет рассмотрена метрика
bytesResident(объём используемой физической памяти) в рамках одного процесса. То есть разница между вновь пришедшим значением (new) и текущим (current): {{new.bytesResident}}-{{current.bytesResident}}.
Шаг 2: расширить таблицу данных всеми метриками
json
[
{
"actions": [
{
"type": "extend"
}
]
},
...
]Шаг 3: в правилах формирования данных создать новую метрику last_diff (разность), а в значении прописать формулу
json
[
...
{
"actions": [
{
"type": "set",
"field": "last_diff",
"value": "{{new.bytesResident}}-{{current.bytesResident}}"
}
]
}
]