我在 kapacitor 中有一个 tickscript,我使用窗口节点计算一系列测量以创建警报。在这种特定情况下,窗口为 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)