{
"annotations": {
"list": [
{
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"enable": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Reboots",
"expr": "changes(node_boot_time_seconds[5m]) > 0",
"titleFormat": "reboot {{instance}}"
}
]
},
"editable": false,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"id": null,
"uid": "homelab-node",
"title": "Homelab / Node",
"tags": ["homelab", "node"],
"timezone": "browser",
"schemaVersion": 39,
"version": 7,
"refresh": "30s",
"time": { "from": "now-6h", "to": "now" },
"templating": {
"list": [
{
"name": "instance",
"type": "query",
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"query": "label_values(node_uname_info, instance)",
"includeAll": false,
"multi": false,
"refresh": 2
}
]
},
"panels": [
{
"type": "stat",
"title": "Uptime",
"id": 1,
"gridPos": { "x": 0, "y": 0, "w": 4, "h": 4 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "time() - node_boot_time_seconds{instance=~\"$instance\"}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": { "unit": "s", "decimals": 0 },
"overrides": []
},
"options": { "reduceOptions": { "calcs": ["lastNotNull"] }, "colorMode": "value" }
},
{
"type": "stat",
"title": "CPU",
"id": 2,
"gridPos": { "x": 4, "y": 0, "w": 4, "h": 4 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "instance:node_cpu_usage:ratio_avg1m{instance=~\"$instance\"}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percentunit",
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null },
{ "color": "orange", "value": 0.7 },
{ "color": "red", "value": 0.9 }
]
}
}
}
},
{
"type": "stat",
"title": "Memory used",
"id": 3,
"gridPos": { "x": 8, "y": 0, "w": 4, "h": 4 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "instance:node_memory_used:ratio{instance=~\"$instance\"}",
"refId": "A"
}
],
"fieldConfig": { "defaults": { "unit": "percentunit" } }
},
{
"type": "stat",
"title": "Load1",
"id": 4,
"gridPos": { "x": 12, "y": 0, "w": 4, "h": 4 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "node_load1{instance=~\"$instance\"}",
"refId": "A"
}
]
},
{
"type": "stat",
"title": "Disk used /",
"id": 5,
"gridPos": { "x": 16, "y": 0, "w": 4, "h": 4 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "instance:node_filesystem_used:ratio{instance=~\"$instance\",mountpoint=\"/\"}",
"refId": "A"
}
],
"fieldConfig": { "defaults": { "unit": "percentunit" } }
},
{
"type": "timeseries",
"title": "CPU by mode",
"id": 10,
"gridPos": { "x": 0, "y": 4, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "sum by (mode) (rate(node_cpu_seconds_total{instance=~\"$instance\",mode!=\"idle\"}[5m]))",
"legendFormat": "{{mode}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": { "unit": "percentunit", "custom": { "stacking": { "mode": "normal" } } }
}
},
{
"type": "timeseries",
"title": "Memory",
"id": 11,
"gridPos": { "x": 12, "y": 4, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "node_memory_MemTotal_bytes{instance=~\"$instance\"} - node_memory_MemAvailable_bytes{instance=~\"$instance\"}",
"legendFormat": "used",
"refId": "A"
},
{
"expr": "node_memory_Buffers_bytes{instance=~\"$instance\"} + node_memory_Cached_bytes{instance=~\"$instance\"}",
"legendFormat": "buffers+cache",
"refId": "B"
}
],
"fieldConfig": { "defaults": { "unit": "bytes" } }
},
{
"type": "timeseries",
"title": "Network (bps)",
"id": 12,
"gridPos": { "x": 0, "y": 12, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "instance:node_network_receive:bps5m{instance=~\"$instance\"}",
"legendFormat": "rx",
"refId": "A"
},
{
"expr": "instance:node_network_transmit:bps5m{instance=~\"$instance\"}",
"legendFormat": "tx",
"refId": "B"
}
],
"fieldConfig": { "defaults": { "unit": "bps" } }
},
{
"type": "timeseries",
"title": "Filesystem use",
"id": 13,
"gridPos": { "x": 12, "y": 12, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "instance:node_filesystem_used:ratio{instance=~\"$instance\",fstype!~\"tmpfs|overlay\"}",
"legendFormat": "{{mountpoint}}",
"refId": "A"
}
],
"fieldConfig": { "defaults": { "unit": "percentunit", "max": 1, "min": 0 } }
},
{
"type": "timeseries",
"title": "Disk IO",
"id": 14,
"gridPos": { "x": 0, "y": 20, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "rate(node_disk_read_bytes_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{device}} read",
"refId": "A"
},
{
"expr": "rate(node_disk_written_bytes_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{device}} write",
"refId": "B"
}
],
"fieldConfig": { "defaults": { "unit": "Bps" } }
},
{
"type": "timeseries",
"title": "Disk latency",
"id": 15,
"gridPos": { "x": 12, "y": 20, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "rate(node_disk_read_time_seconds_total{instance=~\"$instance\"}[5m]) / rate(node_disk_reads_completed_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{device}} read",
"refId": "A"
},
{
"expr": "rate(node_disk_write_time_seconds_total{instance=~\"$instance\"}[5m]) / rate(node_disk_writes_completed_total{instance=~\"$instance\"}[5m])",
"legendFormat": "{{device}} write",
"refId": "B"
}
],
"fieldConfig": { "defaults": { "unit": "s" } }
},
{
"type": "timeseries",
"title": "Load",
"id": 16,
"gridPos": { "x": 0, "y": 28, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{ "expr": "node_load1{instance=~\"$instance\"}", "legendFormat": "1m", "refId": "A" },
{ "expr": "node_load5{instance=~\"$instance\"}", "legendFormat": "5m", "refId": "B" },
{ "expr": "node_load15{instance=~\"$instance\"}", "legendFormat": "15m", "refId": "C" }
]
},
{
"type": "timeseries",
"title": "File descriptors",
"id": 17,
"gridPos": { "x": 12, "y": 28, "w": 12, "h": 8 },
"datasource": { "type": "prometheus", "uid": "prom-homelab" },
"targets": [
{
"expr": "node_filefd_allocated{instance=~\"$instance\"}",
"legendFormat": "allocated",
"refId": "A"
}
]
}
]
}