docs-v2/content/v2.0/reference/flux/functions/built-in/transformations/stateduration.md

2.0 KiB

title description aliases menu weight
stateDuration() function The `stateDuration()` function computes the duration of a given state.
/v2.0/reference/flux/functions/transformations/stateduration
v2_0_ref
name parent
stateDuration built-in-transformations
401

The stateDuration() function computes the duration of a given state. The state is defined via the function fn. For each consecutive point for that evaluates as true, the state duration will be incremented by the duration between points. When a point evaluates as false, the state duration is reset. The state duration is added as an additional column to each record.

Function type: Transformation
Output data type: Duration

{{% note %}} As the first point in the given state has no previous point, its state duration will be 0. {{% /note %}}

stateDuration(fn: (r) => r._measurement == "state", column: "stateDuration", unit: 1s)

If the expression generates an error during evaluation, the point is discarded, and does not affect the state duration.

Parameters

{{% note %}} Make sure fn parameter names match each specified parameter. To learn why, see Match parameter names. {{% /note %}}

fn

A single argument function that evaluates true or false to identify the state of the record. Records are passed to the function. Those that evaluate to true increment the state duration. Those that evaluate to false reset the state duration.

Data type: Function

column

The name of the column added to each record that contains the state duration.

Data type: String

unit

The unit of time in which the state duration is incremented. For example: 1s, 1m, 1h, etc.

Data type: Duration

Examples

from("monitor/autogen")
  |> range(start: -1h)
  |> filter(fn: (r) => r._measurement == "http")
  |> stateDuration(
    fn: (r) => r.http_response_code == "500",
    column: "server_error_duration"
  )