Observability
Grafana Dashboard Debugging Guide
Fix empty or misleading Grafana panels by checking time range, variables, data source queries, units and aggregation semantics. This reference is written for developers who need practical validation behavior, reviewable rules and safe examples rather than copied snippets with no explanation.
Recommended workflow
| Step | Why it matters |
|---|---|
| Freeze the time range | Use an absolute interval that includes known data. |
| Inspect variables | Resolve template variables and compare their final values with label names. |
| Run the raw query | Use query inspection to separate data-source results from panel transformations. |
| Review presentation | Units, null handling and stacked series can change the story without changing data. |
Starter snippet
time range -> datasource -> variables -> raw query -> transformations -> visualizationReview checks
- Show dashboard timezone clearly.
- Document variable defaults.
- Use rate functions for counters.
- Link panels to logs or traces when possible.
Common mistakes
- Treating no-data and zero as the same state.
- Using an instant query for a time-series panel accidentally.
- Sharing dashboards with hidden environment filters.
Validation should help users correct input while protecting systems from bad data. Keep syntax checks, product policy, security review and deliverability checks separate.
Related Formalint references
Continue with Prometheus High Cardinality, Structured Logging Guide, OpenTelemetry Trace Debugging.