---
title: monitor.stateChangesOnly() function
description: monitor.stateChangesOnly() takes a stream of tables that contains a _level column and returns a stream of tables grouped by _level where each record represents a state change.
url: https://docs.influxdata.com/flux/v0/stdlib/influxdata/influxdb/monitor/statechangesonly/
estimated_tokens: 1589
product: Flux
version: v0
---

# monitor.stateChangesOnly() function

-   Flux 0.65.0+
-   View InfluxDB support

`monitor.stateChangesOnly()` takes a stream of tables that contains a \_level column and returns a stream of tables grouped by `_level` where each record represents a state change.

##### Function type signature

```js
(<-tables: stream[{A with _level: B}]) => stream[C] where B: Equatable, C: Record
```

For more information, see [Function type signatures](/flux/v0/function-type-signatures/).

## Parameters

### tables

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

## Examples

### Return records representing state changes

```js
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.stateChangesOnly()
```

[](#view-example-input-and-output)

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 |

| _time | *_level |
| --- | --- |
| 2021-01-01T00:02:00Z | warn |

[transformations](/flux/v0/tags/transformations/)
