DROP - примеры

За основу каждого из примеров использования правила DROP взяты взаимоисключающие поля include и exclude.

При использовании правил рекомендуется расширять таблицу данных всеми метриками первым действием, иначе метрики, не указанные в правилах, не будут обновляться в таблице данных:

[
  {
    "actions": [
      {
        "type": "extend"
      }
    ]
  },
...
]

Пример 1: удаление указанных метрик

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

Пошаговое руководство:

Шаг 1: в секции Мониторинг настроить тип проверки Выполнение программы/скрипта

В процессе мониторинга в таблице данных отобразились три метрики: exitCode, stdout, stderr. Пусть метрика exitCode большую часть времени имеет значение 0 - выполнение скрипта завершено. Чтобы отслеживать изменения других метрик было удобнее, метрика exitCode скрыта. Как только её значение станет отличным от 0, метрика должна отобразиться в таблице данных с актуальным значением.

Шаг 2: расширить таблицу данных метриками и удалить метрику exitCode

[
  {
    "actions": [
      {
        "type": "extend"
      },
      {
        "type": "drop",
        "include": [
          "exitCode"
        ]
      }
    ]
  },
...
]

Шаг 3: в правилах формирования данных настроить условия и действия

Если exitCode не 0, то перезаписать метрику с актуальным значением в таблицу.

[
...
  {
    "conditions": [
      {
        "_field": {
          "name": "new.exitCode",
          "value": {
            "_neq": "0"
          }
        }
      }
    ],
    "actions": [
      {
        "type": "extend",
        "include": [
          "exitCode"
        ]
      }
    ]
  }
]

**

Пример 2: удаление всех метрик, кроме указанных

Цель: переименовать метрику и обновлять её значения.

Особенно это полезно для визуализации значений на виджете:

image

Пошаговое руководство:

Шаг 1: в секции Мониторинг настроить MQTT-сенсор

Мониторится температуры воздуха в помещении через MQTT-сенсор. В таблице данных отображаются метрики topic и stdout.message; stdout.message - значение температуры. Пусть в таблице данных отображается только эта метрика с актуальными значениями и названием temperature.

Шаг 2: расширить таблицу данных всеми метриками

[
  {
    "actions": [
      {
        "type": "extend"
      }
    ]
  },
...
]

Шаг 3: создать метрику temperature и установить ей значение из stdout.message

[
...
  {
    "actions": [
      {
        "type": "set",
        "field": "temperature",
        "value": "{{current.stdout.message}}"
      }
    ]
  },
...
]

Шаг 4: удалить все метрики, за исключением temperature

[
...
  {
    "actions": [
      {
        "type": "drop",
        "exclude": [
          "temperature"
        ]
      }
    ]
  }
]
image