exclusions:
  template-job-rule:
    reason: fleet-scoped dashboards; no per-job drill-down variable by design
  template-instance-rule:
    reason: fleet-scoped dashboards; no per-instance drill-down variable by design
  target-job-rule:
    reason: queries pin exporters with explicit job labels instead of a $job variable
  target-instance-rule:
    reason: panels aggregate across the fleet; no $instance filtering by design
  panel-title-description-rule:
    reason: panel titles are self-describing; per-panel descriptions are not maintained
  target-rate-interval-rule:
    reason: fixed rate windows are deliberate; revisit if migrating to $__rate_interval
  uneditable-dashboard:
    reason: grafana-operator reverts drift each resync; editable kept for ad-hoc exploration
  template-on-time-change-reload-rule:
    reason: refresh-on-time-range-change not set on the datasource variable; revisit
  template-datasource-rule:
    reason: house style is `$datasource` (+ `$logs_datasource` where VictoriaLogs panels exist), not type-prefixed names
  # Scoped, not blanket: PromQL validation stays on everywhere else. The rule
  # parses every `table` target as PromQL whenever the dashboard's default
  # datasource is Prometheus, without looking at the target's own datasource —
  # so a table fed by VictoriaLogs is a false positive. `logs` panels are
  # skipped by the rule and need no entry.
  # Imported upstream dashboards (o11y/scripts/import-upstream.py) keep the
  # units upstream ships; re-import would revert any local fix-ups.
  panel-units-rule:
    entries:
      - dashboard: "Cilium / Hubble"
        reason: imported upstream dashboard; graph panels predate fieldConfig units
      - dashboard: "Cilium / Operator"
        reason: imported upstream dashboard; graph panels predate fieldConfig units
  target-promql-rule:
    entries:
      - dashboard: "Yucca / Michael"
        panel: Top source addresses (selected range)
        targetIdx: "0"
        reason: LogsQL stats query against $logs_datasource, not PromQL
      - dashboard: "CloudNativePG"
        targetIdx: "4"
        reason: grafana server-side math expression target (__expr__), not PromQL
