--- title: monitor.check() function description: > The `monitor.check()` function checks input data and assigns a level (`ok`, `info`, `warn`, or `crit`) to each row based on predicate functions. aliases: - /v2.0/reference/flux/functions/monitor/check/ menu: v2_0_ref: name: monitor.check parent: InfluxDB Monitor weight: 202 --- 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_ ```js 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 Data to append to the output. **InfluxDB populates check data.** _**Data type:** Object_ ## Examples ### Monitor disk usage ```js 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." ) ```