Проверка InfluxdB для изменений поля

Мы используем InfluxDB для хранения работоспособности нескольких устройств, и одно поле-это текущее состояние устройства. Хотел бы вызвать событие (через журналы, электронную почту, внешние сигналы тревоги), когда это поле изменяется (e.g от значения 0 до 1 или от 1 до 0). Можно ли это сделать с помощью CQ или Kapacitor ? У нас есть несколько серий, поэтому хотите избежать дополнительных запросов

1 ответ

  1. Лучший способ достичь этого-использовать Kapacitor. В частности, вы захотите использовать узел оповещения, и ваш Тикскрипт будет выглядеть примерно следующим образом:

     stream
      .from()
      .measurement('mymeasurement')
      .groupBy('mytag')
     |alert()
      .stateChangesOnly()
      .info(lambda: bool("myfield"))
      .post("http://example.com/api/alert")
      .email('oncall@example.com')
    

    Это зависит от stateChangesOnly, который будет запускать предупреждение, когда infoусловие выполнено и когда оно возвращается в OKсостояние.