Мы используем InfluxDB для сохранения работоспособности нескольких устройств, а одно поле - это текущий статус устройства. Хотелось бы инициировать событие (через журналы, электронную почту, внешние аварийные сигналы), когда это поле изменяется (например, от 0 до 1 или от 1 до 0). Можно ли это сделать через CQ или Kapacitor? У нас есть несколько серий, поэтому вы хотите избежать дополнительных запросов.InfluxdB проверить изменения полей
0
A
ответ
0
Лучший способ добиться этого - использовать Kapacitor. В частности, вы будете хотеть использовать alert node и ваш TICKscript будет выглядеть следующим образом:
stream
.from()
.measurement('mymeasurement')
.groupBy('mytag')
|alert()
.stateChangesOnly()
.info(lambda: bool("myfield"))
.post("http://example.com/api/alert")
.email('[email protected]')
Это зависит от stateChangesOnly, который стартует оповещение, когда состояние info
удовлетворяется, и когда он возвращается к OK
состоянии.