Problem
People need a visible reference to judge whether a charted value has crossed a meaningful limit.
Solution
Draw the limit on the chart and label its value and purpose. Use a distinct line style so it cannot be confused with measured data.
Use a shaded region when the whole range beyond a boundary matters, keeping the data readable over it. Make clear whether the boundary is an absolute value or relative to a defined range.
Keep the limit tied to an agreed target or rule with an owner. If an alert also depends on duration or other conditions, make those conditions available.
Use when
A defined limit helps people decide whether a measured value needs attention.
Don’t use when
The limit is aspirational. A line drawn at a number nobody agreed to teaches viewers that lines on charts are decorative, which then costs you the next one that matters.
Trade-offs
A hard boundary can exaggerate the difference between nearby values. Static limits can become outdated or react poorly to noisy data. Filled warning regions may compete with the chart itself.
Checklist
- Who set this number, when, and against what?
- Is it absolute or relative to the axis range, and does the panel say which?
- Is this still the default 80, and if so, is 80 meaningful for this metric?
- Line or region, and does the choice suit the reading distance?
- Is the threshold visually distinguishable from the data series?
- Does crossing it trigger anything, or is it decorative?
- Does the alert behind it use the same number the chart draws?
- How does a metric that hovers at the line render, and does it flicker?
- If this is an SLO, does the panel show budget consumed rather than only the current value?
- What happens to the threshold when the y-axis autoscales past it?
Compare
Grafana ships thresholds as a field property with a colour ramp, six display styles and a default that survives into production more often than it should, so the pattern is everywhere in Grafana dashboards and correct in fewer of them. Honeycomb replaces the bare line with an error budget: the objective is declared, and the chart shows how much of the allowance has been spent and how fast, which answers “should I act now” rather than only “am I over”. Datadog ties the drawn limit to the monitor definition, so the line on the chart and the condition that pages someone are the same object rather than two numbers that drift apart. Netdata ships alarm limits with its collectors, so the thresholds arrive pre-set by whoever wrote the integration, which is a good default and a bad excuse not to revisit them.
Related
Anomaly band supplies an expected range that can vary over time. Alert rule adds notification behavior. Metric targets maintains the limit.
Semantic status color defines state cues. Time series provides the chart underneath.