DROP - примеры

DROP - примеры

DROP - примеры ​

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

NOTE

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

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

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

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

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

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

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

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

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

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

json
[
...
  {
    "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: расширить таблицу данных всеми метриками ​

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

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

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

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

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

image