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()))