2017-01-14 16 views
0

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

ответ

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 состоянии.