Documentation

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: {}
        },
    )

Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.