monitor.check() function
The monitor.check()
function checks input data and assigns a level (ok
, info
, warn
, or crit
) to each row based on predicate functions.
*Function type: Transformation*
import "influxdata/influxdb/monitor"
monitor.check(
crit: (r) => r._value > 90.0,
warn: (r) => r._value > 80.0,
info: (r) => r._value > 60.0,
ok: (r) => r._value <= 20.0,
messageFn: (r) => "The current level is ${r._level}",
data: {}
)
monitor.check()
stores statuses in the _level
column and writes results to the statuses
measurement in the _monitoring
bucket.
Parameters
crit
Predicate function that determines crit
status. Default is (r) => false
.
*Data type: Function*
warn
Predicate function that determines warn
status. Default is (r) => false
.
*Data type: Function*
info
Predicate function that determines info
status. Default is (r) => false
.
*Data type: Function*
ok
Predicate function that determines ok
status. Default is (r) => true
.
*Data type: Function*
messageFn
A function that constructs a message to append to each row. The message is stored in the _message
column.
*Data type: Function*
data
Meta data used to identify this check.
InfluxDB populates check data.
*Data type: Record*
Examples
Monitor disk usage
import "influxdata/influxdb/monitor"
from(bucket: "telegraf")
|> range(start: -1h)
|> filter(fn: (r) =>
r._measurement == "disk" and
r._field = "used_percent"
)
|> group(columns: ["_measurement"])
|> monitor.check(
crit: (r) => r._value > 90.0,
warn: (r) => r._value > 80.0,
info: (r) => r._value > 70.0,
ok: (r) => r._value <= 60.0,
messageFn: (r) =>
if r._level == "crit" then "Critical alert!! Disk usage is at ${r._value}%!"
else if r._level == "warn" then "Warning! Disk usage is at ${r._value}%."
else if r._level == "info" then "Disk usage is at ${r._value}%."
else "Things are looking good.",
data: {
_check_name: "Disk Utilization (Used Percentage)",
_check_id: "disk_used_percent",
_type: "threshold",
tags: {}
}
)