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.
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
.
warn
Predicate function that determines warn
status.
Default is (r) => false
.
info
Predicate function that determines info
status.
Default is (r) => false
.
ok
Predicate function that determines ok
status.
Default is (r) => true
.
messageFn
A function that constructs a message to append to each row.
The message is stored in the _message
column.
data
Meta data used to identify this check.
tables
Input data.
Default is piped-forward data (<-
).
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: {}
},
)
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, the following resources are available:
InfluxDB Cloud customers can contact InfluxData Support.