Documentation

tickscript.deadman() function

tickscript.deadman() is a user-contributed function maintained by the package author.

tickscript.deadman() detects low data throughput and writes a point with a critical status to the InfluxDB _monitoring system bucket.

For each input table containing a number of rows less than or equal to the specified threshold, the function assigns a crit value to the _level column.

This function is comparable to Kapacitor AlertNode deadman.

Function type signature
(
    <-tables: stream[M],
    check: {A with tags: E, _type: D, _check_name: C, _check_id: B},
    measurement: string,
    ?id: (r: {F with _check_name: C, _check_id: B}) => G,
    ?message: (
        r: {
            H with
            dead: bool,
            _type: D,
            _time: J,
            _time: time,
            _source_timestamp: int,
            _source_measurement: I,
            _measurement: I,
            _measurement: string,
            _level: string,
            _check_name: C,
            _check_id: B,
        },
    ) => K,
    ?threshold: L,
    ?topic: string,
) => stream[{
    H with
    dead: bool,
    _type: D,
    _time: J,
    _time: time,
    _source_timestamp: int,
    _source_measurement: I,
    _message: K,
    _measurement: I,
    _measurement: string,
    _level: string,
    _check_name: C,
    _check_id: B,
}] where E: Record, F: Record, L: Comparable + Equatable, M: Record
  • Copy
  • Fill window

For more information, see Function type signatures.

Parameters

check

(Required) InfluxDB check data. See tickscript.defineCheck().

measurement

(Required) Measurement name. Should match the queried measurement.

threshold

Count threshold. Default is 0.

The function assigns a crit status to input tables with a number of rows less than or equal to the threshold.

id

Function that returns the InfluxDB check ID provided by the check record. Default is (r) => "${r._check_id}".

message

Function that returns the InfluxDB check message using data from input rows. Default is (r) => "Deadman Check: ${r._check_name} is: " + (if r.dead then "dead" else "alive").

topic

Check topic. Default is "".

tables

Input data. Default is piped-forward data (<-).

Examples

Detect when a series stops reporting

import "contrib/bonitoo-io/tickscript"

option task = {name: "Example task", every: 1m}

from(bucket: "example-bucket")
    |> range(start: -task.every)
    |> filter(fn: (r) => r._measurement == "pulse" and r._field == "value")
    |> tickscript.deadman(
        check: tickscript.defineCheck(id: "000000000000", name: "task/${r.service}"),
        measurement: "pulse",
        threshold: 2,
    )
  • Copy
  • Fill window

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

InfluxDB 3 Core and Enterprise are now in Beta

InfluxDB 3 Core and Enterprise are now available for beta testing, available under MIT or Apache 2 license.

InfluxDB 3 Core is a high-speed, recent-data engine that collects and processes data in real-time, while persisting it to local disk or object storage. InfluxDB 3 Enterprise is a commercial product that builds on Core’s foundation, adding high availability, read replicas, enhanced security, and data compaction for faster queries. A free tier of InfluxDB 3 Enterprise will also be available for at-home, non-commercial use for hobbyists to get the full historical time series database set of capabilities.

For more information, check out: