Grafana Dashboard Improvements Design
Date: 2026-01-11 Issue: selfhosted-cluster-78q Status: Approved
- Operational visibility - At-a-glance health of all services
- Troubleshooting support - Deep-dive dashboards for debugging
- Consistency - Unified provisioning method and organization
Decisions
Section titled “Decisions”| Decision | Choice |
|---|---|
| Folder organization | By layer (Infrastructure, Platform, Applications, Kubernetes, Logs) |
| Dashboard sources | Grafana.com with pinned revisions; GitHub for project-maintained dashboards |
| Provisioning method | GrafanaDashboard CRD (migrate Velero from ConfigMap) |
| Directory rename | system-dashboards/ → service-ingresses/ |
New Dashboards
Section titled “New Dashboards”| Service | Source | Dashboard ID/URL | Folder |
|---|---|---|---|
| Alloy | GitHub | grafana/alloy repo | Infrastructure |
| Longhorn | Grafana.com | ID 16888 rev 9 | Infrastructure |
| Traefik | Grafana.com | ID 17346 rev 10 | Infrastructure |
| CNPG/PostgreSQL | GitHub | cloudnative-pg/grafana-dashboards | Platform |
| Vault | Grafana.com | ID 12904 rev 2 | Platform |
| MetalLB | Grafana.com | ID 14127 rev 1 | Infrastructure |
Migrations
Section titled “Migrations”| Current Dashboard | Action |
|---|---|
| Velero (ConfigMap) | Replace with Grafana.com ID 11055 rev 2 → Applications |
| ArgoCD | Move to Applications folder |
| NATS | Move to Platform folder |
| Kubernetes Overview | Move to Kubernetes folder (rename to api-server) |
| Loki Logs | Move to Logs folder |
| Node Exporter | Move from monitoring-prometheus/ to Infrastructure |
| Cert-Manager | Move from cert-manager-config/ to Platform |
| Temporal (Terraform) | Update folder to “Applications” |
Repository Structure
Section titled “Repository Structure”argocd/app-configs/grafana/dashboards/├── kustomization.yaml├── infrastructure/│ ├── alloy.yaml│ ├── longhorn.yaml│ ├── traefik.yaml│ ├── metallb.yaml│ └── node-exporter.yaml├── platform/│ ├── cnpg.yaml│ ├── nats.yaml│ ├── vault.yaml│ └── cert-manager.yaml├── applications/│ ├── argocd.yaml│ └── velero.yaml├── kubernetes/│ └── api-server.yaml└── logs/ └── loki-overview.yamlCRD Template
Section titled “CRD Template”apiVersion: grafana.integreatly.org/v1beta1kind: GrafanaDashboardmetadata: name: <service-name> namespace: grafana labels: grafana.integreatly.org/instance: grafanaspec: instanceSelector: matchLabels: dashboards: grafana folder: <Infrastructure|Platform|Applications|Kubernetes|Logs> url: https://grafana.com/api/dashboards/<ID>/revisions/<REV>/downloadFor GitHub-sourced dashboards:
url: https://raw.githubusercontent.com/<org>/<repo>/<ref>/<path>.jsonCleanup Actions
Section titled “Cleanup Actions”- Delete
argocd/app-configs/velero/monitoring/grafana-dashboard.yaml - Rename
argocd/app-configs/system-dashboards/→argocd/app-configs/service-ingresses/ - Update references in cluster-app if needed
Out of Scope
Section titled “Out of Scope”- Authentik dashboard (limited metrics available)
- Additional alert rules (separate effort)