# services/monitoring/grafana-dashboard-public.yaml apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-public labels: grafana_dashboard: "1" data: atlas-public-overview.json: | { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "datasource", "uid": "grafana" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "folderUid": "atlas-public", "graphTooltip": 0, "links": [], "panels": [ { "id": 1, "type": "stat", "title": "Running pods", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 5, "w": 4, "x": 0, "y": 0 }, "targets": [ { "expr": "sum(kube_pod_status_phase{phase=\"Running\"})", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(115, 115, 115, 1)", "value": null }, { "color": "green", "value": 1 } ] }, "unit": "none" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value" } }, { "id": 2, "type": "stat", "title": "Ready nodes", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 5, "w": 4, "x": 4, "y": 0 }, "targets": [ { "expr": "sum(kube_node_status_condition{condition=\"Ready\",status=\"true\"})", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(115, 115, 115, 1)", "value": null }, { "color": "green", "value": 1 } ] }, "unit": "none" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value" } }, { "id": 3, "type": "stat", "title": "Cluster nodes", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 5, "w": 4, "x": 8, "y": 0 }, "targets": [ { "expr": "count(kube_node_info)", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(115, 115, 115, 1)", "value": null }, { "color": "green", "value": 1 } ] }, "unit": "none" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value" } }, { "id": 4, "type": "stat", "title": "Hottest node CPU", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 5, "w": 4, "x": 12, "y": 0 }, "targets": [ { "expr": "topk(1, avg by (node) (((1 - rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100) * on (instance) group_left(node) kube_node_info))", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "percentage", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 70 }, { "color": "red", "value": 85 } ] }, "unit": "percent" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value_and_name" } }, { "id": 5, "type": "stat", "title": "Hottest node memory", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 5, "w": 4, "x": 16, "y": 0 }, "targets": [ { "expr": "topk(1, avg by (node) ((((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes) * 100) * on (instance) group_left(node) kube_node_info))", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "percentage", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 75 }, { "color": "red", "value": 90 } ] }, "unit": "percent" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value_and_name" } }, { "id": 6, "type": "stat", "title": "Failed pods (24h)", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 5, "w": 4, "x": 20, "y": 0 }, "targets": [ { "expr": "sum(increase(kube_pod_status_phase{phase=\"Failed\"}[24h]))", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 1 }, { "color": "red", "value": 3 } ] }, "unit": "none" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value" } }, { "id": 7, "type": "piechart", "title": "Namespace CPU share", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 5 }, "targets": [ { "expr": "topk(10, sum(rate(container_cpu_usage_seconds_total{namespace!=\"\",pod!=\"\",container!=\"\"}[5m])) by (namespace))", "refId": "A" } ], "fieldConfig": { "defaults": { "unit": "cores" }, "overrides": [] }, "options": { "legend": { "displayMode": "list", "placement": "right" }, "pieType": "pie", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false } } }, { "id": 8, "type": "piechart", "title": "Namespace memory share", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 5 }, "targets": [ { "expr": "topk(10, sum(container_memory_working_set_bytes{namespace!=\"\",pod!=\"\",container!=\"\"}) by (namespace))", "refId": "A" } ], "fieldConfig": { "defaults": { "unit": "bytes" }, "overrides": [] }, "options": { "legend": { "displayMode": "list", "placement": "right" }, "pieType": "donut", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false } } }, { "id": 9, "type": "timeseries", "title": "Node CPU usage (per node)", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 14 }, "targets": [ { "expr": "avg by (node) (((1 - rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100) * on (instance) group_left(node) kube_node_info)", "refId": "A", "legendFormat": "{{node}}" } ], "fieldConfig": { "defaults": { "unit": "percent" }, "overrides": [] }, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } } }, { "id": 10, "type": "timeseries", "title": "Node memory usage (per node)", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 14 }, "targets": [ { "expr": "avg by (node) ((((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes) * 100) * on (instance) group_left(node) kube_node_info)", "refId": "A", "legendFormat": "{{node}}" } ], "fieldConfig": { "defaults": { "unit": "percent" }, "overrides": [] }, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } } }, { "id": 11, "type": "table", "title": "Key service availability", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 22 }, "targets": [ { "expr": "avg by (label_app_kubernetes_io_name, namespace) (kube_pod_status_ready{condition=\"true\"} * on (namespace,pod) group_left(label_app_kubernetes_io_name) kube_pod_labels{label_app_kubernetes_io_name=~\"traefik|gitea|vault|victoria-metrics-single|grafana|alertmanager\"})", "refId": "A" } ], "fieldConfig": { "defaults": { "custom": { "align": "auto" }, "unit": "percent" }, "overrides": [] }, "options": { "showHeader": true } }, { "id": 12, "type": "table", "title": "Failed pods by namespace (24h)", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 22 }, "targets": [ { "expr": "topk(10, sum by (namespace) (increase(kube_pod_status_phase{phase=\"Failed\"}[24h])))", "refId": "A" } ], "fieldConfig": { "defaults": { "unit": "none" }, "overrides": [] }, "options": { "showHeader": true } }, { "id": 13, "type": "timeseries", "title": "Root filesystem usage per node", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 29 }, "targets": [ { "expr": "avg by (node) (((1 - (node_filesystem_avail_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"})) * 100) * on (instance) group_left(node) kube_node_info)", "refId": "A", "legendFormat": "{{node}}" } ], "fieldConfig": { "defaults": { "unit": "percent" }, "overrides": [] }, "options": { "legend": { "displayMode": "table", "placement": "bottom" }, "tooltip": { "mode": "multi" } } }, { "id": 14, "type": "bargauge", "title": "Nodes closest to full root disks", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 29 }, "targets": [ { "expr": "topk(8, avg by (node) (((1 - (node_filesystem_avail_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"})) * 100) * on (instance) group_left(node) kube_node_info))", "refId": "A" } ], "fieldConfig": { "defaults": { "unit": "percent", "min": 0, "max": 100 }, "overrides": [] }, "options": { "displayMode": "gradient", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false } } }, { "id": 15, "type": "stat", "title": "Astreae/Asteria usage", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 37 }, "targets": [ { "expr": "sum(longhorn_disk_usage_bytes{disk=~\"astreae.*|asteria.*\"}) / sum(longhorn_disk_capacity_bytes{disk=~\"astreae.*|asteria.*\"}) * 100", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "percentage", "steps": [ { "color": "green", "value": null }, { "color": "yellow", "value": 70 }, { "color": "red", "value": 85 } ] }, "unit": "percent" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value" } }, { "id": 16, "type": "stat", "title": "Schedulable free capacity", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 37 }, "targets": [ { "expr": "sum(longhorn_disk_capacity_bytes{disk=~\"astreae.*|asteria.*\"} - longhorn_disk_usage_bytes{disk=~\"astreae.*|asteria.*\"} - longhorn_disk_reservation_bytes{disk=~\"astreae.*|asteria.*\"})", "refId": "A" } ], "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "rgba(115, 115, 115, 1)", "value": null }, { "color": "green", "value": 1 } ] }, "unit": "decbytes" }, "overrides": [] }, "options": { "colorMode": "value", "graphMode": "area", "justifyMode": "center", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false }, "textMode": "value" } }, { "id": 17, "type": "piechart", "title": "Longhorn node schedulable", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 37 }, "targets": [ { "expr": "sum(longhorn_node_status{condition=\"schedulable\"})", "refId": "A", "legendFormat": "Schedulable" }, { "expr": "sum(1 - longhorn_node_status{condition=\"schedulable\"})", "refId": "B", "legendFormat": "Blocked" } ], "fieldConfig": { "defaults": { "unit": "none" }, "overrides": [] }, "options": { "legend": { "displayMode": "list", "placement": "right" }, "pieType": "donut", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false } } }, { "id": 18, "type": "piechart", "title": "Longhorn volume health", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 44 }, "targets": [ { "expr": "sum(longhorn_volume_robustness == 1)", "refId": "A", "legendFormat": "Healthy" }, { "expr": "sum(longhorn_volume_robustness == 2)", "refId": "B", "legendFormat": "Degraded" }, { "expr": "sum(longhorn_volume_robustness == 3)", "refId": "C", "legendFormat": "Faulted" } ], "fieldConfig": { "defaults": { "unit": "none" }, "overrides": [] }, "options": { "legend": { "displayMode": "list", "placement": "right" }, "pieType": "pie", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "", "values": false } } }, { "id": 19, "type": "table", "title": "Astreae/Asteria disk usage", "datasource": { "type": "prometheus", "uid": "atlas-vm" }, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 44 }, "targets": [ { "expr": "(sum by (node,disk) (longhorn_disk_usage_bytes{disk=~\"astreae.*|asteria.*\"}) / sum by (node,disk) (longhorn_disk_capacity_bytes{disk=~\"astreae.*|asteria.*\"})) * 100", "refId": "A" } ], "fieldConfig": { "defaults": { "unit": "percent" }, "overrides": [] }, "options": { "showHeader": true } }, { "id": 20, "type": "text", "title": "About this dashboard", "gridPos": { "h": 5, "w": 24, "x": 0, "y": 51 }, "options": { "mode": "markdown", "content": "### Atlas at a glance\n- Flux-managed Pi + Jetson cluster with 20+ active nodes\n- Longhorn (Astreae/Asteria) storage mirrored above; root disks tracked separately\n- Login for the SRE view with alert routes, Longhorn drilldowns, and workload burn rates" } } ], "refresh": "30s", "schemaVersion": 39, "style": "dark", "tags": [ "atlas", "public" ], "templating": { "list": [] }, "time": { "from": "now-12h", "to": "now" }, "title": "Atlas Public Overview", "uid": "atlas-public", "version": 4 }