dashboard(7): merge xmin horizon blockers panels into overview section

Closes #183 (closed)

Summary

Consolidate Dashboard 7's xmin horizon area into a single section. The two panels in the standalone xmin horizon blockers (experimental) row are direct context for the overview chart above, so they now sit underneath it inside the xmin horizon overview (experimental) row.

Before

  • Wraparound risk — top-N tables (drill down to specific tables)
  • xmin horizon overview (experimental)
    • xmin horizon age by source
  • xmin horizon blockers (experimental)
    • Longest non-idle transaction age, > 1 min
    • Current blocker counts
  • Autovacuum mechanics

After

  • Wraparound risk — top-N tables (drill down to specific tables)
  • xmin horizon overview (experimental)
    • xmin horizon age by source
    • Longest non-idle transaction age, > 1 min
    • Current blocker counts
  • Autovacuum mechanics

What changed

  • Removed the xmin horizon blockers (experimental) row (id 80) from config/grafana/dashboards/Dashboard_7_Autovacuum_and_xmin_horizon.json.
  • Recomputed gridPos.y for the two affected panels and every panel below to keep the layout contiguous (shifted down by 1 row).

No metric, query, description, unit, panel id, or panel-content changes — purely a layout consolidation.

Validation

  • jq empty config/grafana/dashboards/Dashboard_7_Autovacuum_and_xmin_horizon.json — passes.
  • python3 -m unittest discover -s tests/xmin_horizon -p 'test_metrics_sql_static.py' — 36/36 pass.
  • bun test cli/test/config-consistency.test.ts — 10/10 pass.

Merge request reports

Loading