{ "dashboard": { "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 1, "id": null, "links": [], "liveNow": false, "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 1, "panels": [], "title": "Host health", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "percent", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 1 }, "id": 2, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\"$job_node\", instance=\"$instance\", mode=\"idle\"}[5m])) * 100)", "legendFormat": "{{instance}}", "refId": "A" } ], "title": "CPU usage (%)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "short", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 1 }, "id": 3, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "expr": "node_load1{job=\"$job_node\", instance=\"$instance\"}", "legendFormat": "load1", "refId": "A" }, { "expr": "node_load5{job=\"$job_node\", instance=\"$instance\"}", "legendFormat": "load5", "refId": "B" }, { "expr": "node_load15{job=\"$job_node\", instance=\"$instance\"}", "legendFormat": "load15", "refId": "C" } ], "title": "Load (1m/5m/15m)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "bytes", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 1 }, "id": 4, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "expr": "(node_memory_MemTotal_bytes{job=\"$job_node\", instance=\"$instance\"} - node_memory_MemAvailable_bytes{job=\"$job_node\", instance=\"$instance\"})", "legendFormat": "used", "refId": "A" }, { "expr": "node_memory_MemAvailable_bytes{job=\"$job_node\", instance=\"$instance\"}", "legendFormat": "available", "refId": "B" } ], "title": "Memory used (bytes)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "percent", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 9 }, "id": 5, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "100 * (1 - (node_filesystem_avail_bytes{job=\"$job_node\", instance=\"$instance\", fstype!~\"tmpfs|overlay|squashfs\"} / node_filesystem_size_bytes{job=\"$job_node\", instance=\"$instance\", fstype!~\"tmpfs|overlay|squashfs\"}))", "legendFormat": "{{mountpoint}} ({{device}})", "refId": "A" } ], "title": "Disk usage (%) by mountpoint", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "Bps", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 9 }, "id": 6, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "sum by (device) (irate(node_disk_read_bytes_total{job=\"$job_node\", instance=\"$instance\"}[5m]))", "legendFormat": "read {{device}}", "refId": "A" }, { "expr": "sum by (device) (irate(node_disk_written_bytes_total{job=\"$job_node\", instance=\"$instance\"}[5m]))", "legendFormat": "write {{device}}", "refId": "B" } ], "title": "Disk I/O (bytes/s)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "Bps", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 18 }, "id": 7, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "sum by (device) (irate(node_network_receive_bytes_total{job=\"$job_node\", instance=\"$instance\", device!~\"lo\"}[5m]))", "legendFormat": "rx {{device}}", "refId": "A" }, { "expr": "sum by (device) (irate(node_network_transmit_bytes_total{job=\"$job_node\", instance=\"$instance\", device!~\"lo\"}[5m]))", "legendFormat": "tx {{device}}", "refId": "B" } ], "title": "Network throughput (bytes/s)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "s", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 6, "x": 12, "y": 18 }, "id": 8, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "expr": "time() - node_boot_time_seconds{job=\"$job_node\", instance=\"$instance\"}", "legendFormat": "uptime", "refId": "A" } ], "title": "Uptime (seconds)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "short", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 6, "x": 18, "y": 18 }, "id": 9, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "expr": "max by (name) (node_systemd_unit_state{job=\"$job_node\", instance=\"$instance\", name=\"proxmox-vm.service\", state=\"active\"})", "legendFormat": "{{name}}", "refId": "A" } ], "title": "proxmox-vm.service (systemd active=1)", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 26 }, "id": 10, "panels": [], "title": "Docker (cAdvisor)", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "percent", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 27 }, "id": 11, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "topk(10, 100 * sum by (name) (rate(container_cpu_usage_seconds_total{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"}[5m])))", "legendFormat": "{{name}}", "refId": "A" } ], "title": "Top container CPU (%)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "bytes", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 27 }, "id": 12, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "topk(10, container_memory_usage_bytes{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"})", "legendFormat": "{{name}}", "refId": "A" } ], "title": "Top container memory (bytes)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "bytes", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 36 }, "id": 13, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "topk(10, container_fs_usage_bytes{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"})", "legendFormat": "{{name}}", "refId": "A" } ], "title": "Container filesystem usage (bytes)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "Bps", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 36 }, "id": 14, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "topk(10, sum by (name) (rate(container_network_receive_bytes_total{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"}[5m])))", "legendFormat": "rx {{name}}", "refId": "A" }, { "expr": "topk(10, sum by (name) (rate(container_network_transmit_bytes_total{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"}[5m])))", "legendFormat": "tx {{name}}", "refId": "B" } ], "title": "Container network (bytes/s)", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 44 }, "id": 15, "title": "Container seen (last 2m)", "type": "table", "targets": [ { "expr": "max by (name) (container_last_seen{job=\"$job_cadvisor\", instance=\"$instance\", name=~\"$container\"})", "legendFormat": "{{name}}", "refId": "A", "format": "table", "instant": true } ], "options": { "showHeader": true, "sortBy": [ { "displayName": "Value", "desc": true } ] }, "fieldConfig": { "defaults": { "unit": "dateTimeFromNow", "custom": { "align": "auto" } }, "overrides": [] }, "transformations": [ { "id": "organize", "options": { "renameByName": { "Value": "Last seen (unix seconds)" }, "excludeByName": { "Time": true } } } ] }, { "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 52 }, "id": 16, "panels": [], "title": "Optional: directory sizes (node_exporter textfile collector)", "type": "row" }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, "fieldConfig": { "defaults": { "unit": "bytes", "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] } }, "overrides": [] }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 53 }, "id": 17, "options": { "legend": { "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "multi", "sort": "none" } }, "targets": [ { "expr": "dir_size_bytes{job=\"$job_node\", instance=\"$instance\", path=~\"/opt/monitoring|/nextcloud|/gitea|/vaultwarden\"}", "legendFormat": "{{path}}", "refId": "A" } ], "title": "Directory sizes (bytes) — requires custom metric dir_size_bytes", "type": "timeseries" } ], "refresh": "10s", "schemaVersion": 39, "style": "dark", "tags": [ "host", "docker", "prometheus" ], "templating": { "list": [ { "current": { "selected": false, "text": "Prometheus", "value": "Prometheus" }, "hide": 0, "includeAll": false, "label": "Datasource", "name": "DS_PROMETHEUS", "options": [], "query": "prometheus", "refresh": 1, "regex": "", "type": "datasource" }, { "current": { "selected": false, "text": "node", "value": "node" }, "hide": 0, "includeAll": false, "label": "Job (Node Exporter)", "name": "job_node", "options": [], "query": "label_values(node_uname_info, job)", "refresh": 2, "regex": "", "type": "query", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" } }, { "current": { "selected": false, "text": "", "value": "" }, "hide": 0, "includeAll": false, "label": "Instance", "name": "instance", "options": [], "query": "label_values(node_uname_info{job=\"$job_node\"}, instance)", "refresh": 2, "regex": "", "type": "query", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" } }, { "current": { "selected": false, "text": "cadvisor", "value": "cadvisor" }, "hide": 0, "includeAll": false, "label": "Job (cAdvisor)", "name": "job_cadvisor", "options": [], "query": "label_values(container_last_seen, job)", "refresh": 2, "regex": "", "type": "query", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" } }, { "current": { "selected": false, "text": "All", "value": "$__all" }, "hide": 0, "includeAll": true, "label": "Container", "name": "container", "options": [], "query": "label_values(container_last_seen{job=\"$job_cadvisor\", instance=\"$instance\"}, name)", "refresh": 2, "regex": "^(?!/).*$", "type": "query", "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" } } ] }, "time": { "from": "now-6h", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Host + Docker (Node Exporter + cAdvisor)", "uid": "emy-host-docker", "version": 1 }, "overwrite": true }