Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Why Your Grafana Dashboard Shows No Data (When Prometheus Is Fine)

Description and use

Grafana panels displayed “No data” despite healthy Prometheus metrics. The issue was self-referencing variables that returned no values. Correcting the variables and saving explicit defaults restored data display.

Problem

Grafana dashboards display “No data” even though Prometheus has healthy metrics.

Outcome

The dashboard now renders correctly on all hosts; empty panels are intentional and documented.

Workflow

  • 1. Verify target scraping via Prometheus API
  • 2. Check metric existence directly with Prometheus query
  • 3. Test panel expression manually
  • 4. Identify variable layer causing empty results
  • 5. Remove self-referencing variable and set explicit defaults
  • 6. Save current values for variables
  • 7. Verify Grafana’s saved variable values via API
  • 8. Resolve $__all sentinel to allValue before expanding

Evidence

All three were green: 7 targets up, 25k series ingested, and the panel's raw expression returned data when I ran it by hand.

Source

The dashboard had a host picker. Two variables chained: $nodename and $node. The definition of the first one was: # BROKEN — the variable filters on its own value label_values(node_uname_info{job="unraid-host", nodename=~"$nodename"}, nodename)

Source

The fix is to stop the self-reference and give each variable an explicit saved default: # FIXED — no self-reference, one hop per variable # $nodename label_values(node_uname_info{job="unraid-host"}, nodename) # $node label_values(node_uname_info{job="unraid-host", nodename="$nodename"}, instance)

Source

  • Record date: 2026-11-01T07:59:19.560Z