3.5 KiB
3.5 KiB
title | description | menu | weight | flux/v0/tags | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
monitor.deadman() function | `monitor.deadman()` detects when a group stops reporting data. It takes a stream of tables and reports if groups have been observed since time `t`. |
|
301 |
|
monitor.deadman()
detects when a group stops reporting data.
It takes a stream of tables and reports if groups have been observed since time t
.
monitor.deadman()
retains the most recent row from each input table and adds a dead
column.
If a record appears after time t
, monitor.deadman()
sets dead
to false
.
Otherwise, dead
is set to true
.
Function type signature
(<-tables: stream[{B with _time: C}], t: A) => stream[{B with dead: bool, _time: C}] where A: Comparable, C: Comparable
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
Parameters
t
({{< req >}}) Time threshold for the deadman check.
tables
Input data. Default is piped-forward data (<-
).
Examples
- Detect if a host hasn’t reported since a specific time
- Detect if a host hasn't reported since a relative time
Detect if a host hasn’t reported since a specific time
import "array"
import "influxdata/influxdb/monitor"
data =
array.from(
rows: [
{_time: 2021-01-01T00:00:00Z, host: "a", _value: 1.2},
{_time: 2021-01-01T00:01:00Z, host: "a", _value: 1.3},
{_time: 2021-01-01T00:02:00Z, host: "a", _value: 1.4},
{_time: 2021-01-01T00:03:00Z, host: "a", _value: 1.3},
],
)
|> group(columns: ["host"])
data
|> monitor.deadman(t: 2021-01-01T00:05:00Z)
{{< expand-wrapper >}} {{% expand "View example input and output" %}}
Input data
_time | *host | _value |
---|---|---|
2021-01-01T00:00:00Z | a | 1.2 |
2021-01-01T00:01:00Z | a | 1.3 |
2021-01-01T00:02:00Z | a | 1.4 |
2021-01-01T00:03:00Z | a | 1.3 |
Output data
_time | _value | dead | *host |
---|---|---|---|
2021-01-01T00:03:00Z | 1.3 | true | a |
{{% /expand %}} {{< /expand-wrapper >}}
Detect if a host hasn't reported since a relative time
Use date.add()
to return a time value relative to a specified time.
import "influxdata/influxdb/monitor"
import "date"
from(bucket: "example-bucket")
|> range(start: -10m)
|> filter(fn: (r) => r._measurement == "example-measurement")
|> monitor.deadman(t: date.add(d: -5m, to: now()))