Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: initial updates to state timeline documentation #84224

Merged
merged 13 commits into from Mar 19, 2024
Expand Up @@ -19,9 +19,53 @@ weight: 100

# State timeline

State timelines show discrete state changes over time. Each field or series is rendered as its unique horizontal band. State regions can either be rendered with or without values. This visualization works well with string or boolean states but can also be used with time series. When used with time series, the thresholds are used to turn the numerical values into discrete state regions.
A state timeline visualization displays data in a way that shows state changes over time. In a state timeline, the data is presented as a series of bars or bands called _state regions_. State regions can be rendered with or without values, and the region length indicates the duration or frequency of a state within a given time range.

{{< figure src="/static/img/docs/v8/state_timeline_strings.png" max-width="1025px" caption="state timeline with string states" >}}
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:
imatwawana marked this conversation as resolved.
Show resolved Hide resolved

{{< figure src="/static/img/docs/state-timeline-panel/state-timeline-panel.png" max-width="1025px" caption="State timeline with string states" alt="A state timeline panel showing CPU usage in a Grafana dashboard" >}}
imatwawana marked this conversation as resolved.
Show resolved Hide resolved

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:

- Monitor the status of a server, application, or service to know when your infrastructure is experiencing issues over time.
- Identify operational trends over time.
- Spot any recurring issues with the health of your applications.

## Configure a state timeline

mdcruz marked this conversation as resolved.
Show resolved Hide resolved
<!-- video TBA here -->

## Supported data formats

The state timeline panel works best if you have data capturing the various states of entities over time, formatted as a table. The data must include:

- Timestamps - To indicate when each state change occurred. This could also be the start time for the state change. An optional additional timestamp can also be added to indicate the end time for the state change.
- Entity name/identifier - To represent the name of the entity you're trying to monitor.
- State value - To represent the state value of the entity you're monitoring. These could be string, numerical, or boolean states.
imatwawana marked this conversation as resolved.
Show resolved Hide resolved

Each state ends when the next state begins or when there is a `null` value.

### Example

The following table is an example of the type of data you need for a state timeline visualization and how it should be formatted:

| Timestamps | Server A | Server B |
| ------------------- | -------- | -------- |
| 2024-02-29 8:00:00 | Up | Up |
| 2024-02-29 8:15:00 | null | Up |
| 2024-02-29 8:30:00 | Down | null |
| 2024-02-29 8:45:00 | | Up |
| 2024-02-29 9:00:00 | Up | |
| 2024-02-29 9:15:00 | Up | Down |
| 2024-02-29 9:30:00 | Up | Down |
| 2024-02-29 10:00:00 | Down | Down |
| 2024-02-29 10:30:00 | Warning | Down |

> **Note**: If your query results aren't in a table format like the preceding example, especially for time-series data, you can apply [transformations](https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/transform-data/) to achieve this.

imatwawana marked this conversation as resolved.
Show resolved Hide resolved
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:

{{< figure src="/static/img/docs/state-timeline-panel/state-timeline-with-null-values.png" max-width="1025px" caption="State timeline with null values" alt="A state timeline panel showing the status of two servers in a Grafana dashboard" >}}
imatwawana marked this conversation as resolved.
Show resolved Hide resolved

## State timeline options

Expand Down