influxdata / kapacitor

Open source framework for processing, monitoring, and alerting on time series data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OK events are not generating even on matching condition on stateDuration. Data is in stream mode, and using window() node

VenuDodd opened this issue · comments

var db = 'telegraf'
var rp = 'autogen'
var measurement = 'cpu'
var groupBy = ['host', 'gms-rule']
var period = 5m
var every = 1m
var whereFilter = lambda: isPresent("gms-rule") AND "cpu" == 'cpu-total' AND isPresent("usage_pct") AND "host" == 'venu-test'
var data = stream
|from()
.database(db)
.retentionPolicy(rp)
.measurement(measurement)
.groupBy(groupBy)
.where(whereFilter)
|window()
.period(period)
.every(every)
.align()
|eval(lambda: "usage_pct")
.as('value')
|httpOut('stream')

var trigger = custom
|stateDuration(lambda: "warningEnabled" AND "value" >= "warningThreshold" AND "enable")
.as('actual_warn_duration')
|stateDuration(lambda: "criticalEnabled" AND "value" >= "criticalThreshold" AND "enable")
.as('actual_crit_duration')
|stateDuration(lambda: "value" < "warningThreshold" OR "value" < "criticalThreshold" AND global_ok_stateDuration_enabled)
.as('ok_duration_counter')
|httpOut('trigger')
|log()
|alert()
.warn(lambda: "actual_warn_duration" >= "warningStateDuration")
.crit(lambda: "actual_crit_duration" >= "criticalStateDuration")
// .message(message)
.critReset(lambda: "ok_duration_counter" > "okstateDuration")
.warnReset(lambda: "ok_duration_counter" > "okstateDuration")
.id(idVar)
.levelTag(levelTag)
.messageField(messageField)
.stateChangesOnly()
.log('/apps/helios/influx-ent/logs/kapacitor/a-test-ok-1.log')

With this tick script, i am getting a warning or critical alert, but never doing a reset (no OK events are coming) even the critReset or warnReset conditions are becoming true.

Is this a kind of bug? or reset will not happen when i use a window() node?

If i am not using the window() node, its working as expected. Getting crit/warn alerts, and resetting back to OK on a matching condition.