From 80ac64c5409cee2afd0510679c2de33d3994abad Mon Sep 17 00:00:00 2001 From: "grafana-delivery-bot[bot]" <132647405+grafana-delivery-bot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 12:22:33 -0400 Subject: [PATCH] [v10.4.x] docs: initial updates to state timeline documentation (#84758) docs: initial updates to state timeline documentation (#84224) * docs: initial updates to state timeline documentation * docs: apply linting * Apply suggestions from code review Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com> * docs: add feedback from PR review * docs: apply linting * Wording and formatting edits * Fixed grammar * Update docs/sources/panels-visualizations/visualizations/state-timeline/index.md Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com> * docs: add two examples for state timeline to show null values and two timestamps * docs: add steps to configuring a state timeline * docs: add state timeline video * docs: add link to creating dashboards * Changed link text and added version interpolation syntax --------- Co-authored-by: Isabel Matwawana <76437239+imatwawana@users.noreply.github.com> (cherry picked from commit 2f539060f8f0d8413fa06c0ddfc26a4f5064d8f7) Co-authored-by: Marie Cruz --- .../visualizations/state-timeline/index.md | 67 ++++++++++++++++++- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/docs/sources/panels-visualizations/visualizations/state-timeline/index.md b/docs/sources/panels-visualizations/visualizations/state-timeline/index.md index b7cf7ff472c2..add92e9968f8 100644 --- a/docs/sources/panels-visualizations/visualizations/state-timeline/index.md +++ b/docs/sources/panels-visualizations/visualizations/state-timeline/index.md @@ -19,9 +19,72 @@ 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: + +{{< figure src="/static/img/docs/state-timeline-panel/state-timeline-panel.png" max-width="1025px" alt="A state timeline panel 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: + +- 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 + +Once you have [created a dashboard](https://grafana.com/docs/grafana//dashboards/build-dashboards/create-dashboard/), the following video shows you how to configure a state timeline: + +{{< youtube id="a9wZHM0mdxo" >}} + +## 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** - Indicate when each state change occurred. This could also be the start time for the state change. You can also add an optional timestamp to indicate the end time for the state change. +- **Entity name/identifier** - Represents the name of the entity you're trying to monitor. +- **State value** - Represents the state value of the entity you're monitoring. These can be string, numerical, or boolean states. + +Each state ends when the next state begins or when there is a `null` value. + +### Examples + +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 + +| 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 | + +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" alt="A state timeline panel with null values showing the status of two servers" >}} + +#### Two time columns without null values + +| Start time | End time | Server A | Server B | +| ------------------- | ------------------- | -------- | -------- | +| 2024-02-29 8:00:00 | 2024-02-29 8:15:00 | Up | Up | +| 2024-02-29 8:15:00 | 2024-02-29 8:30:00 | Up | Up | +| 2024-02-29 8:45:00 | 2024-02-29 9:00:00 | Down | Up | +| 2024-02-29 9:00:00 | 2024-02-29 9:15:00 | Down | Up | +| 2024-02-29 9:30:00 | 2024-02-29 10:00:00 | Down | Down | +| 2024-02-29 10:00:00 | 2024-02-29 10:30:00 | Warning | Down | + +The data is converted as follows: + +{{< figure src="/static/img/docs/state-timeline-panel/state-timeline-with-two-timestamps.png" max-width="1025px" alt="A state timeline panel with two time columns showing the status of two servers" >}} + +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. ## State timeline options