EXTEND - примеры

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

Пример 1: расширение таблицы данных всеми новыми метриками, кроме указанных.

Цель: сэкономить сетевой трафик.

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

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

Пусть достаточно знать лишь Status Code (код состояния) и Response Time (скорость ответа). Если пренебречь обновлением метрики body (тело ответа) и флажком "Присылать тело ответа", то можно существенно сэкономить сетевой трафик.

Шаг 2. В правилах формирования данных указать расширение таблицы всеми новыми метриками, кроме body

[
  {
    "actions": [
      {
        "type": "extend",
  "exclude": ["body"]
      }
    ]
  }
]

Пример 2: совмещение include и exclude

Цель: отобразить в таблице метрики, по которым данные отсутствуют.

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

Например, в рамках проекта "Умный дом" контролируются датчики движения и открытия двери. На сервер поступили данные только с датчика движения motion и отобразились в таблице данных. Чтобы метрика door не удалилась, необходимо расширить таблицу актуальных значений метрикой с указателем на устаревшие данные (last_) last_door и записать в неё последние пришедшие данные.

[
  {
    "actions": [
      {
        "type": "extend",
        "include": [
         "last_door"
  ]
      },
      {
        "type": "set",
        "field": "last_door",
        "value": "current.door"
      },
   {
  "type": "extend",
        "exclude": [
          "last_door"
        ]
      }
    ]
  }
]

image