我想通过在处理后设置一个标志来确保kapacitor仅处理唯一的数据点。这是因为传感器将数据发送到db时出现时间重叠,以防止多次处理数据点。我想做这样的事情:
dbrp "TEST_MEASUREMENTS"."autogen"
batch
|query('''
SELECT mean(data)
FROM "TEST_MEASUREMENTS"."autogen"."temperature"
WHERE "processed" != 'true'
''')
.period(5h)
.every(1m)
|alert()
.crit(lambda: "mean" > 3)
.post('http://localhost/api/post-alerts')
|InfluxDBOut()
.database('TEST_MEASUREMENTS')
.retentionPolicy('autogen')
.measurement('temperature')
.tag('processed','true')
我可以放弃节点| changeDetect(“已处理”)的位置。显然,我的脚本不起作用,因为它会将新的数据点写入到我的表中,而不是使用已处理的true更新旧的数据点。如何使用kapacitor做到这一点?
由于某种原因,另外进行“处理” ==“假”不会触发警报。