Problem
Every number on a dashboard is a number over some window. The window is the first thing an investigator changes and the last thing a casual reader checks, so it has to be both fast to change and impossible to misread.
Solution
Three kinds of range, and a product needs all three for different reasons.
Relative is what people use. Last 15 minutes, last 6 hours, last 7 days. Grafana lets you type 13h into the picker and get the last thirteen hours, which is the right level of friction for the most common action on the page.
Absolute is what people share. A specific start and end, pinned.
Semi-relative is the one that gets skipped and shouldn’t: an absolute start with now as the end. That’s the shape of “since the deploy” and “since the incident started”, which is most of what anyone actually wants during an investigation.
The detail that decides whether the control is any good is what happens to the range when it leaves the page. Grafana puts from, to and timezone in the URL, so a link carries the window. That also creates the trap: a link containing from=now-6h describes a different six hours to whoever opens it tomorrow. Paste a relative range into an incident writeup and within a day it points at nothing in particular. The fix is a product decision, not a user one—pin to absolute when copying a link, or say clearly that you haven’t.
Then timezone. The dashboard has one, the browser has one, and the incident happened in UTC. Grafana treats timezone as both a dashboard setting and a URL parameter, which is the honest arrangement, because two people reading the same chart in different offices are otherwise reading different charts.
Use when
Any view built on time series, which is nearly all of them. The control belongs where the eye lands first, usually top right, and its current value has to be readable without opening it.
Don’t use when
The view answers a fixed question over a fixed window. A month-end report with a range picker invites someone to change it and get an answer that no longer matches the title above it.
Trade-offs
A global picker makes every panel agree, which is what you want during an incident and wrong for a page that mixes a live rate with a year-over-year trend. Per-panel overrides fix that and quietly destroy the guarantee that two panels on one screen cover the same period. Wide ranges silently change the aggregation underneath, so the same panel at 1h and 30d is showing different maths under one title. And quick-range lists grow: eleven options where four would do turns a one-second decision into a menu.
Checklist
- Is the current range readable without opening the control?
- Are the common windows one click away, and are they the windows this audience actually uses?
- Can someone express “since 09:40 today” without doing arithmetic?
- Does the range go into the URL, and does a copied link mean the same thing tomorrow?
- Which timezone is this, and does the control say so?
- Does changing the range change the aggregation interval, and can the viewer tell?
- Do all panels share this range, and if any override it, is that visible on the panel?
- What happens to a relative range on a wallboard nobody reloads?
- Does zooming on a chart update this control, and does the control update the chart?
- Is there a way back to the previous range after an accidental change?
Compare
Grafana carries the fullest version of the control—relative, absolute, semi-relative, typed shorthand, timezone, per-panel shift—and pays for it with a picker that takes a moment to learn and a URL that can disagree with itself. Honeycomb folds the range into the query rather than floating it above the page, so the window is part of what you asked rather than ambient state that can drift out from under a saved result. Sentry scopes time to the thing being examined, so an issue carries first-seen and last-seen and the range is mostly a filter on a list rather than an axis on a chart. Netdata treats dragging on any chart as the range control itself and syncs every other chart on the page to match, which removes the picker as a separate thing to find.
Related
Zoom and pan is the same control operated directly on the chart, and the two have to stay in sync. Compare periods is what happens when one window stops being enough. Freshness indicator answers how old the newest point in this window is. Saved view is how a useful range stops being something you retype. Template variable is the other piece of dashboard state that belongs in the URL for the same reasons.