Page tree

SAYMON документация

Skip to end of metadata
Go to start of metadata

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

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

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

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

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

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

  2. Удалить метрику из таблицы данных.
  3. В правилах формирования данных настроить условие и действие:
    если  exitCode не равен 0, то перезаписать метрику с актуальным значением в таблицу.

    [
      {
        "actions": [
          {
            "type": "drop",
            "include": [
              "exitCode"
            ]
          }
        ]
      },
      {
        "condition": {
          "exitCode": {
            "_neq": "0"
          }
        },
        "actions": [
          {
            "type": "extend",
            "include": [
              "exitCode"
            ]
          }
        ]
      }
    ]

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

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

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

  1. В секции Мониторинг настроить MQTT-сенсор.

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

  2. Обновить все метрики.
  3. Создать метрику  temperature.
  4. Установить в  temperature значение из stdout.message.
  5. Удалить все метрики, за исключением  temperature.
[
  {
    "actions": [
      {
        "type": "extend"
      }
    ]
  },
  {
    "actions": [
      {
        "type": "extend",
        "include": [
          "temperature"
        ]
      }
    ]
  },
  {
    "actions": [
      {
        "type": "set",
        "field": "temperature",
        "value": "{{current.stdout.message}}"
      }
    ]
  },
  {
    "actions": [
      {
        "type": "drop",
        "exclude": [
          "temperature"
        ]
      }
    ]
  }
]

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


                                         ДО:                                                                                       ПОСЛЕ:

      

  • No labels