我的刻度文件:
dbrp "xxxxxz"."autogen"
stream
// Select just the cpu measurement from our example database.
|from()
.measurement('stream_periodic_stats__agg')
.where(lambda: "__agg_period" == '5s')
|groupBy('__agg_group_by')
|window()
.period(1m)
.every(5s)
.align()
|alert()
.crit(lambda: int("event__count") < 200)
.message('value for tag {{ index .Tags "component_name" }} field event__count:{{ index .Fields "event__count" }} is < 200')
// Whenever we get an alert write it to a file.
.log('/kapacitor/logs/alerts.log')
|httpOut('dump')
|influxDBOut()
.database('xxxxxxxz')
.measurement('alert_output')
我需要在全局状态更改上实现以下警报逻辑: 对于每1分钟的窗口间隔以及12个周期性输出(.every(5s)), 如果在该窗口的12个周期中的3个周期中有3个满足条件,请设置全局变量ALERT_BAD_STATE(如果尚未设置为TRUE)。 如果在该窗口的12个周期中的12个周期中有12个满足条件,请设置全局变量ALERT_BAD_STATE(如果尚未设置为FALSE)。
仅在状态更改时设置ALERT_BAD_STATE的警报,并且仅在有数据输入时才设置(??)。 详细信息:
|window
.period: 1m
.every(5s)
.align()
从开始时间(?或Kapacitor启动?)开始每隔1分钟(12个周期)
触发条件:
BAD状态:如果存在测量变量(output_fps__count),并且<29。如果在3/12周期内条件为TRUE(如何?),则全局变量ALERT_BAD_STATE设置为ON / true。
良好状态:如果存在测量变量(output_fps__count)且> =30。如果在12/12周期内条件为TRUE,则全局变量ALERT_BAD_STATE设置为OFF / false。
我该怎么办,因为我必须在1分钟窗口的12个间隔中的每个间隔之间保持状态?
我必须针对每个随后的1分钟窗口(每个间隔5秒的12个间隔)再次重做一次。
TIA,