docs-v2/content/flux/v0/stdlib/influxdata/influxdb/monitor/statechanges.md

2.7 KiB

title description menu weight flux/v0/tags introduced
monitor.stateChanges() function `monitor.stateChanges()` detects state changes in a stream of data with a `_level` column and outputs records that change from `fromLevel` to `toLevel`.
flux_v0_ref
name parent identifier
monitor.stateChanges influxdata/influxdb/monitor influxdata/influxdb/monitor/stateChanges
301
transformations
0.42.0

monitor.stateChanges() detects state changes in a stream of data with a _level column and outputs records that change from fromLevel to toLevel.

Function type signature
(<-tables: stream[{C with _level: D}], ?fromLevel: A, ?toLevel: B) => stream[E] where A: Equatable, B: Equatable, D: Equatable, E: Record

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

fromLevel

Level to detect a change from. Default is "any".

toLevel

Level to detect a change to. Default is "any".

tables

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

Examples

Detect when the state changes to critical

import "array"
import "influxdata/influxdb/monitor"

data =
    array.from(
        rows: [
            {_time: 2021-01-01T00:00:00Z, _level: "ok"},
            {_time: 2021-01-01T00:01:00Z, _level: "ok"},
            {_time: 2021-01-01T00:02:00Z, _level: "warn"},
            {_time: 2021-01-01T00:03:00Z, _level: "crit"},
        ],
    )

data
    |> monitor.stateChanges(toLevel: "crit")

{{< expand-wrapper >}} {{% expand "View example input and output" %}}

Input data

_time _level
2021-01-01T00:00:00Z ok
2021-01-01T00:01:00Z ok
2021-01-01T00:02:00Z warn
2021-01-01T00:03:00Z crit

Output data

_time *_level
2021-01-01T00:03:00Z crit

{{% /expand %}} {{< /expand-wrapper >}}