问题描述
我在 kapacitor 中有一个记号脚本,我使用窗口节点计算一系列测量值以创建警报。在这种特定情况下,窗口为 30 分钟,每 1 分钟进行一次测量。这实际上做的是缓存 30 个测量值并通过管道传输到下一个节点。
警报按预期创建,但随后我想将警报存储在 influxdb 中,这会导致 30 个重复,每个缓存测量一个。如何删除以便只将一个警报存储到 influxdb?
var data = stream
|from()
.measurement(measurement)
.groupBy(groupBy)
.where(whereFilter)
|log()
|window()
.period(period)
.every(every)
.align()
|log()
|stateCount(stateCountExpr)
.as('value')
|log()
var trigger = data
|alert()
.category(category)
.info(info)
.warn(warn)
.crit(crit)
.message(message)
.details(details)
.id(idVar)
.idTag(idTag)
.levelTag(levelTag)
.messageField(messageField)
.durationField(durationField)
.stateChangesOnly()
.topic(topic)
trigger
|eval(lambda: float("value"))
.as('value')
.keep()
|log()
|influxDBOut()
.create()
.database(outputDB)
.retentionPolicy(outputRP)
.measurement(outputMeasurement)
.tag('alertName',name)
.tag('triggerType',triggerType)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)