@ -34,7 +34,7 @@ A state timeline visualization displays data in a way that shows state changes o
For example, if you're monitoring the CPU usage of a server, you can use a state timeline to visualize the different states, such as “LOW,” “NORMAL,” “HIGH,” or “CRITICAL,” over time. Each state is represented by a different color and the lengths represent the duration of time that the server remained in that state:
{{<figuresrc="/static/img/docs/state-timeline-panel/state-timeline-panel.png"max-width="1025px"alt="A state timeline visualization showing CPU usage">}}

The state timeline visualization is useful when you need to monitor and analyze changes in states or statuses of various entities over time. You can use one when you need to:
@ -58,11 +58,9 @@ The state timeline visualization works best if you have data capturing the vario
Each state ends when the next state begins or when there is a `null` value.
### Examples
### Example 1
The following tables are examples of the type of data you need for a state timeline visualization and how it should be formatted.
#### Single time column with null values
The following example has a single time column and includes null values:
| Timestamps | Server A | Server B |
| ------------------- | -------- | -------- |
@ -76,11 +74,13 @@ The following tables are examples of the type of data you need for a state timel
| 2024-02-29 10:00:00 | Down | Down |
| 2024-02-29 10:30:00 | Warning | Down |
The data is converted as follows, with the [null and empty values visualized as gaps](https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/state-timeline/#connect-null-values) in the state timeline:
The data is converted as follows, with the [null and empty values visualized as gaps](#connect-null-values) in the state timeline:
{{<figuresrc="/static/img/docs/state-timeline-panel/state-timeline-with-null-values.png"max-width="1025px"alt="A state timeline visualization with null values showing the status of two servers">}}
#### Two time columns without null values
### Example 2
The following example has two time columns and doesn't include any null values:
@ -97,80 +97,74 @@ The data is converted as follows:
If your query results aren't in a table format like the preceding examples, especially for time-series data, you can apply specific [transformations](https://stackoverflow.com/questions/68887416/grafana-state-timeline-panel-with-values-states-supplied-by-label) to achieve this.
You can also create a state timeline visualization using time series data. To do this, add [thresholds](#thresholds), which turn the time series into discrete colored state regions.
## State timeline options

| Merge equal consecutive values | Controls whether Grafana merges identical values if they are next to each other. |
| Show values | Controls whether values are rendered inside the state regions. Choose from **Auto**, **Always**, and **Never**. **Auto** renders values if there is sufficient space. |
| Align values | Controls value alignment inside state regions. Choose from **Left**, **Center**, and **Right**. |
| Row height | Controls how much space between rows there are. 1 = no space = 0.5 = 50% space. |
| [Page size](#page-size-enable-pagination) | The **Page size** option lets you paginate the state timeline visualization to limit how many series are visible at once. |
| Line width | Controls line width of state regions. |
| Fill opacity | Controls value alignment inside state regions. |
| [Connect null values](#connect-null-values) | Choose how null values, which are gaps in the data, appear on the graph. |
| [Disconnect null values](#disconnect-values) | Choose whether to set a threshold above which values in the data should be disconnected. |
Controls how much space between rows there are. 1 = no space = 0.5 = 50% space.
<!-- prettier-ignore-end -->
### Page size (enable pagination)
#### Page size (enable pagination)
The **Page size** option lets you paginate the state timeline visualization to limit how many series are visible at once. This is useful when you have many series. With paginated results, the visualization displays a subset of all series on each page:
The visualization can be used with time series data as well. In this case, the thresholds are used to turn the time series into discrete colored state regions.
{{<figuresrc="/static/img/docs/v8/state_timeline_time_series.png"max-width="1025px"caption="state timeline with time series">}}