From 9024d412301cf60f9baf06a96b7bdc271b5d3ce7 Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Mon, 23 Mar 2026 21:16:54 -0700 Subject: [PATCH] Add Grafana alerts dashboard for mobile-friendly alert overview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two panels: currently firing alerts (firing/pending/noData/error) and recent state changes. Refreshes every 30s. Uses Grafana's built-in alertlist panel type — no datasource needed. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../dashboards/configmap-alerts.yaml | 77 +++++++++++++++++++ .../grafana-config/kustomization.yaml | 1 + docs/changelog.d/+alerts-dashboard.feature.md | 1 + 3 files changed, 79 insertions(+) create mode 100644 argocd/manifests/grafana-config/dashboards/configmap-alerts.yaml create mode 100644 docs/changelog.d/+alerts-dashboard.feature.md diff --git a/argocd/manifests/grafana-config/dashboards/configmap-alerts.yaml b/argocd/manifests/grafana-config/dashboards/configmap-alerts.yaml new file mode 100644 index 0000000..a94acc3 --- /dev/null +++ b/argocd/manifests/grafana-config/dashboards/configmap-alerts.yaml @@ -0,0 +1,77 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: grafana-dashboard-alerts + namespace: monitoring + labels: + grafana_dashboard: "1" +data: + alerts.json: | + { + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": null, + "links": [], + "panels": [ + { + "gridPos": { "h": 10, "w": 24, "x": 0, "y": 0 }, + "id": 1, + "options": { + "alertListOptions": { + "showOptions": "current", + "maxItems": 50, + "sortOrder": 1, + "stateFilter": { + "firing": true, + "pending": true, + "noData": true, + "normal": false, + "error": true + } + } + }, + "title": "Firing Alerts", + "type": "alertlist" + }, + { + "gridPos": { "h": 10, "w": 24, "x": 0, "y": 10 }, + "id": 2, + "options": { + "alertListOptions": { + "showOptions": "changes", + "maxItems": 50, + "sortOrder": 1, + "stateFilter": { + "firing": true, + "pending": true, + "noData": true, + "normal": true, + "error": true + } + } + }, + "title": "Recent State Changes", + "type": "alertlist" + } + ], + "refresh": "30s", + "schemaVersion": 38, + "tags": ["alerts"], + "templating": { + "list": [] + }, + "time": { + "from": "now-24h", + "to": "now" + }, + "timepicker": {}, + "timezone": "browser", + "title": "Alerts", + "uid": "alerts", + "version": 1, + "weekStart": "" + } diff --git a/argocd/manifests/grafana-config/kustomization.yaml b/argocd/manifests/grafana-config/kustomization.yaml index bb7ef87..6412e8b 100644 --- a/argocd/manifests/grafana-config/kustomization.yaml +++ b/argocd/manifests/grafana-config/kustomization.yaml @@ -26,6 +26,7 @@ resources: - dashboards/configmap-sifaka-disks.yaml - dashboards/configmap-forgejo.yaml - dashboards/configmap-tempo.yaml + - dashboards/configmap-alerts.yaml # TeslaMate dashboards are fetched by the init-teslamate-dashboards init # container in the Grafana deployment, sourced from mirrors/teslamate on forge. # See argocd/manifests/grafana/deployment.yaml for the version pin. diff --git a/docs/changelog.d/+alerts-dashboard.feature.md b/docs/changelog.d/+alerts-dashboard.feature.md new file mode 100644 index 0000000..d69802f --- /dev/null +++ b/docs/changelog.d/+alerts-dashboard.feature.md @@ -0,0 +1 @@ +Add Grafana "Alerts" dashboard showing currently firing alerts and recent state changes.