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
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,
)
Was this page helpful?
Thank you for your feedback!
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, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.