Hi I have the following tick:
dbrp “statsd”.“shortterm”
stream
|from()
.measurement('memory_percent_free')
.groupBy('host')
|window()
.period(5m)
.every(1m)
|mean('value')
|eval(lambda: sigma("mean"))
.as('sig')
|stateDuration(lambda: "sig" > 2.0)
.as('sig_gt_2_min')
.unit(1m)
|stateDuration(lambda: "sig" > 3.0)
.as('sig_gt_3_min')
.unit(1m)
|alert()
.message('{{ .Level}}: {{ .Name }}/{{ index .Tags "host" }} has high cpu load: {{ index .Fields "mean" }}')
.warn(lambda: "sig_gt_2_min" > 5)
.crit(lambda: "sig_gt_3_min" > 10)
.stateChangesOnly()
.log('/tmp/kap.log')
.slack()
.sensu()
The way i am reading it is if stddev > 2 for 5 min alert warn; if stddev > 3 for 5 min alert crit
I am putting a load on a server for more than 30 min and I get no alert.