Problem
People need to see when a state changed and how long it lasted across a period too long for a detailed value chart.
Solution
Show each item on a row with time running horizontally. Represent its states as labeled or clearly keyed regions.
Use continuous regions when the data supports a state lasting between observations. Use separate marks when individual checks are the evidence. Keep unknown periods distinct from healthy ones.
Make brief changes discoverable through zoom or detail even when they are too short to see at the current scale. Show the rule that converts measurements into states when one is used.
Use when
The data has a small set of meaningful states and people need to review their duration or timing.
Don’t use when
The underlying value is continuous and the magnitude matters. Reducing latency to green/amber/red loses the difference between 210ms and 900ms, and both are amber.
Trade-offs
Short events can disappear at wide time ranges. Merging repeated states can imply more continuous observation than actually occurred. Many rows need useful ordering or grouping to remain readable.
Checklist
- What turns the underlying data into a state, and where does that rule live?
- How many distinct states, and is that few enough to read as colour alone?
- What does a gap mean: healthy, unknown, or not-yet-checked?
- Are consecutive equal values merged, and does that hide the sampling interval?
- At the widest range shown, how short an outage becomes invisible?
- Is there a hover giving exact start, end and duration?
- Is the row order meaningful, and is it stable between visits?
- Would a colourblind viewer distinguish degraded from down?
- Can the viewer get from a red region to what caused it?
- Does the strip agree with the incident record, and if not, which is wrong?
Compare
Grafana ships two panels for this and the choice between them is the design decision: state timeline for continuous regions with merging, status history for one mark per discrete sample. Public status pages in the Statuspage mould reduce it to the minimum honest form—one bar per component per day, ninety days across—which is the most-read version of this pattern anywhere and the one most tuned for readers with no context. Datadog ties the strip to monitor state rather than to raw metrics, so the history you read is the history of what actually paged someone. Netdata keeps alarm transitions per node in a log-shaped view, which trades the instant scan for exact times and reasons.
Related
Threshold line can show the rule behind a state. Semantic status color defines consistent colors. Error and stale state handles unknown periods.
Time series preserves numeric detail. Annotation links events to a state change.