Skip to content

Instantly share code, notes, and snippets.

@rothgar
Created July 1, 2025 21:08
Show Gist options
  • Save rothgar/6134d959faeedf850ad3de15eedd43e7 to your computer and use it in GitHub Desktop.
Save rothgar/6134d959faeedf850ad3de15eedd43e7 to your computer and use it in GitHub Desktop.
Kubernetes distros node metrics comparison

This dashboard will let you compare metrics from Kubernetes nodes side-by-side from different clusters. It was used to compare different Kubernetes distributions which you can read about on this blog post.

You need to create clusters and install the node-exporter (yaml below ) and set up prometheus to scrape each node. Then add a prometheus datasource in grafana and import this dashboard.

{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"description": "Kubernetes Node Overview\r\n",
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 4,
"links": [],
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-reds"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "decbytes"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 0
},
"id": 1,
"maxPerRow": 6,
"options": {
"colorMode": "none",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg_over_time(node_memory_MemTotal_bytes{hostname=~\"$node\"}[$__range]) - avg_over_time(node_memory_MemFree_bytes{hostname=~\"$node\"}[$__range]) - avg_over_time(node_memory_Buffers_bytes{hostname=~\"$node\"}[$__range]) - avg_over_time(node_memory_Cached_bytes{hostname=~\"$node\"}[$__range])",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Avg Mem Usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-reds"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 3
},
"id": 17,
"maxPerRow": 6,
"options": {
"colorMode": "none",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum by (hostname) (increase(node_cpu_seconds_total{hostname=~\"$node\", mode=~\"system|user\"}[$__range])) / sum by (hostname) (increase(node_cpu_seconds_total{hostname=~\"$node\"}[$__range])) * 100",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Avg CPU usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-reds"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "decbytes"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 6
},
"id": 18,
"maxPerRow": 6,
"options": {
"colorMode": "none",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum by (hostname) (increase(node_disk_read_bytes_total{hostname=~\"$node\"}[$__range]) + increase(node_disk_written_bytes_total{hostname=~\"$node\"}[$__range]))",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Disk r/w bytes",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-reds"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 9
},
"id": 19,
"maxPerRow": 6,
"options": {
"colorMode": "none",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "rate(node_network_transmit_bytes_total{hostname=~\"$node\",device!~\"lo.*|flannel.*|veth.*|cni.*|cili.*|cali.*|lxc.*|dummy.*|tun.*|ip6tn.*|sit.*|teq.*|kube-.*|bond.*\"}[$__range]) + rate(node_network_receive_bytes_total{hostname=~\"$node\",device!~\"lo.*|flannel.*|veth.*|cni.*|cili.*|cali.*|lxc.*|dummy.*|tun.*|ip6tn.*|sit.*|teq.*|kube-.*|bond.*\"}[$__range])",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Network i/o",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-reds"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "decbytes"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 12
},
"id": 20,
"maxPerRow": 6,
"options": {
"colorMode": "none",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum by (hostname) (node_filesystem_size_bytes{hostname=~\"$node\", fstype!~\"tmpfs|devtmpfs|overlay\",mountpoint!~\"/boot|/sys|/proc|/dev|/run\"} - \n node_filesystem_avail_bytes{hostname=~\"$node\", fstype!~\"tmpfs|devtmpfs|overlay\",mountpoint!~\"/boot|/sys|/proc|/dev|/run\"})",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Total Disk Usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-blues"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "decbytes"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 24,
"x": 0,
"y": 15
},
"id": 16,
"maxPerRow": 6,
"options": {
"colorMode": "background",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg_over_time(node_memory_MemTotal_bytes[$__range]) - avg_over_time(node_memory_MemFree_bytes[$__range]) - avg_over_time(node_memory_Buffers_bytes[$__range]) - avg_over_time(node_memory_Cached_bytes[$__range])",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Average Memory Usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-blues"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 24,
"x": 0,
"y": 19
},
"id": 13,
"maxPerRow": 6,
"options": {
"colorMode": "background",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum by (hostname) (increase(node_cpu_seconds_total{mode=~\"system|user\"}[$__range])) / sum by (hostname) (increase(node_cpu_seconds_total[$__range])) * 100",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Average CPU Usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-blues"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "binBps"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 24,
"x": 0,
"y": 23
},
"id": 14,
"maxPerRow": 6,
"options": {
"colorMode": "background",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum by (hostname) (increase(node_disk_read_bytes_total[$__range]) + increase(node_disk_written_bytes_total[$__range]))",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Average Disk r/w",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-blues"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "binBps"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 24,
"x": 0,
"y": 27
},
"id": 15,
"maxPerRow": 6,
"options": {
"colorMode": "background",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "rate(node_network_transmit_bytes_total{device!~\"lo.*|flannel.*|veth.*|cni.*|cili.*|cali.*|lxc.*|dummy.*|tun.*|ip6tn.*|sit.*|teq.*|kube-.*|bond.*\"}[$__range]) + rate(node_network_receive_bytes_total{device!~\"lo.*|flannel.*|veth.*|cni.*|cili.*|cali.*|lxc.*|dummy.*|tun.*|ip6tn.*|sit.*|teq.*|kube-.*|bond.*\"}[$__range])",
"format": "time_series",
"instant": false,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A"
}
],
"title": "Network i/o",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "semi-dark-green",
"mode": "continuous-blues"
},
"decimals": 1,
"fieldMinMax": false,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "yellow",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 24,
"x": 0,
"y": 31
},
"id": 21,
"maxPerRow": 6,
"options": {
"colorMode": "background",
"displayMode": "basic",
"graphMode": "none",
"justifyMode": "auto",
"minVizHeight": 75,
"minVizWidth": 75,
"orientation": "vertical",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.0.1",
"repeat": "hostname",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum by (hostname) (node_filesystem_size_bytes{fstype!~\"tmpfs|devtmpfs|overlay\",mountpoint!~\"/boot|/sys|/proc|/dev|/run\"} - \n node_filesystem_avail_bytes{fstype!~\"tmpfs|devtmpfs|overlay\",mountpoint!~\"/boot|/sys|/proc|/dev|/run\"})",
"format": "time_series",
"instant": false,
"legendFormat": "{{instance}}",
"range": true,
"refId": "A"
}
],
"title": "Total Disk Usage",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percentunit"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 35
},
"id": 9,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "asc"
}
},
"pluginVersion": "12.0.1",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "node_load5{hostname=~\"$node\"}",
"intervalFactor": 4,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "B",
"step": 20,
"target": ""
}
],
"title": "System Load",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "cpu usage",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"unit": "percent"
},
"overrides": [
{
"__systemRef": "hideSeriesFrom",
"matcher": {
"id": "byNames",
"options": {
"mode": "exclude",
"names": [
"Value"
],
"prefix": "All except:",
"readOnly": true
}
},
"properties": [
{
"id": "custom.hideFrom",
"value": {
"legend": false,
"tooltip": false,
"viz": true
}
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 35
},
"id": 12,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "asc"
}
},
"pluginVersion": "12.0.1",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "100 - (avg by (hostname) (irate(node_cpu_seconds_total{hostname=~\"$node\", mode=\"idle\"}[5m])) * 100)",
"format": "time_series",
"hide": false,
"interval": "",
"intervalFactor": 10,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A",
"step": 50
}
],
"title": "CPU non-idle",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"unit": "decbytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "node_memory_SwapFree{instance=\"172.17.0.1:9100\",job=\"prometheus\"}"
},
"properties": [
{
"id": "unit",
"value": "short"
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 42
},
"id": 4,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "asc"
}
},
"pluginVersion": "12.0.1",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "sum by (hostname) (node_memory_MemTotal_bytes{hostname=~\"$node\"} - node_memory_MemFree_bytes{hostname=~\"$node\"} - node_memory_Buffers_bytes{hostname=~\"$node\"} - node_memory_Cached_bytes{hostname=~\"$node\"})",
"format": "time_series",
"hide": false,
"interval": "",
"intervalFactor": 2,
"legendFormat": "{{hostname}}",
"metric": "",
"range": true,
"refId": "C",
"step": 10
}
],
"title": "Memory Usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "{instance=\"172.17.0.1:9100\"}"
},
"properties": [
{
"id": "unit",
"value": "ms"
}
]
},
{
"matcher": {
"id": "byName",
"options": "io time"
},
"properties": [
{
"id": "unit",
"value": "ms"
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 42
},
"id": 6,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "asc"
}
},
"pluginVersion": "12.0.1",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "sum by (hostname) (rate(node_disk_read_bytes_total{hostname=~\"$node\"}[2m]))",
"format": "time_series",
"hide": false,
"intervalFactor": 4,
"legendFormat": "{{hostname}} read",
"range": true,
"refId": "A",
"step": 20,
"target": ""
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "sum by (hostname) (rate(node_disk_written_bytes_total{hostname=~\"$node\"}[2m]))",
"format": "time_series",
"hide": false,
"intervalFactor": 4,
"legendFormat": "{{hostname}} write",
"range": true,
"refId": "B",
"step": 20
}
],
"title": "Disk I/O",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "transmitted"
},
"properties": [
{
"id": "custom.axisPlacement",
"value": "right"
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 49
},
"id": 8,
"options": {
"alertThreshold": true,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "asc"
}
},
"pluginVersion": "12.0.1",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "rate(node_network_receive_bytes_total{hostname=~\"$node\",device!~\"lo|flannel.*|veth.*|lxc.*|cilium.*|cali.*|sit.*|teq.*|ip6.*|cni0|bond0|dummy0|.*bridge|.*tunl.*\"}[5m])",
"format": "time_series",
"hide": false,
"intervalFactor": 2,
"legendFormat": "{{hostname}}-{{device}}",
"range": true,
"refId": "A",
"step": 10,
"target": ""
}
],
"title": "Network Received",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 49
},
"id": 11,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "asc"
}
},
"pluginVersion": "12.0.1",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "sum by (hostname) (\n (node_filesystem_size_bytes{hostname=~\"$node\", fstype!~\"tmpfs|devtmpfs|overlay\",mountpoint!~\"/boot|/sys|/proc|/dev|/run\"} - \n node_filesystem_avail_bytes{hostname=~\"$node\", fstype!~\"tmpfs|devtmpfs|overlay\",mountpoint!~\"/boot|/sys|/proc|/dev|/run\"})\n)",
"format": "time_series",
"hide": false,
"interval": "",
"intervalFactor": 4,
"legendFormat": "{{hostname}}",
"range": true,
"refId": "A",
"step": 20,
"target": ""
}
],
"title": "Disk usage",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "transmitted"
},
"properties": [
{
"id": "custom.axisPlacement",
"value": "right"
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 56
},
"id": 10,
"options": {
"alertThreshold": true,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "multi",
"sort": "asc"
}
},
"pluginVersion": "12.0.1",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"editorMode": "code",
"expr": "rate(node_network_transmit_bytes_total{hostname=~\"$node\",device!~\"lo.*|flannel.*|veth.*|cni.*|cili.*|cali.*|lxc.*|dummy.*|tun.*|ip6tn.*|sit.*|teq.*|kube-.*|bond.*\"}[5m])",
"format": "time_series",
"hide": false,
"intervalFactor": 2,
"legendFormat": "{{hostname}} {{device}}",
"range": true,
"refId": "B",
"step": 10,
"target": ""
}
],
"title": "Network Transmitted",
"type": "timeseries"
}
],
"preload": false,
"refresh": "30s",
"schemaVersion": 41,
"tags": [
"nodes",
"kubernetes"
],
"templating": {
"list": [
{
"current": {
"text": "All",
"value": [
"$__all"
]
},
"datasource": {
"type": "prometheus",
"uid": "feo3273fxqcqob"
},
"definition": "label_values(node_boot_time_seconds,hostname)",
"includeAll": true,
"multi": true,
"name": "node",
"options": [],
"query": {
"qryType": 1,
"query": "label_values(node_boot_time_seconds,hostname)",
"refId": "PrometheusVariableQueryEditor-VariableQuery"
},
"refresh": 1,
"regex": "",
"type": "query"
}
]
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "Kubernetes - Node Overview",
"uid": "dUMN5x0mk",
"version": 39
}
global:
scrape_interval: 10s
scrape_configs:
- job_name: "node_exporters"
static_configs:
- targets:
- 192.168.122.84:9100
- 192.168.122.80:9100
- 192.168.122.100:9100
- 192.168.122.153:9100
- 192.168.122.222:9100
- 192.168.122.235:9100
- 192.168.122.247:9100
relabel_configs:
- source_labels: [__address__]
regex: '192\.168\.122\.80:9100'
target_label: hostname
replacement: canonical-k8s
- source_labels: [__address__]
regex: '192\.168\.122\.84:9100'
target_label: hostname
replacement: talos
- source_labels: [__address__]
regex: '192\.168\.122\.100:9100'
target_label: hostname
replacement: kubeadm
- source_labels: [__address__]
regex: '192\.168\.122\.153:9100'
target_label: hostname
replacement: kairos
- source_labels: [__address__]
regex: '192\.168\.122\.222:9100'
target_label: hostname
replacement: rke2
- source_labels: [__address__]
regex: '192\.168\.122\.235:9100'
target_label: hostname
replacement: k0s
- source_labels: [__address__]
regex: '192\.168\.122\.247:9100'
target_label: hostname
replacement: k3s
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
namespace: kube-system
labels:
app: node-exporter
spec:
selector:
matchLabels:
app: node-exporter
template:
metadata:
labels:
app: node-exporter
spec:
hostNetwork: true
hostPID: true
containers:
- name: node-exporter
image: quay.io/prometheus/node-exporter:latest
args:
- "--path.rootfs=/host"
ports:
- containerPort: 9100
hostPort: 9100
protocol: TCP
volumeMounts:
- name: proc
mountPath: /host/proc
readOnly: true
- name: sys
mountPath: /host/sys
readOnly: true
- name: root
mountPath: /host
readOnly: true
volumes:
- name: proc
hostPath:
path: /proc
- name: sys
hostPath:
path: /sys
- name: root
hostPath:
path: /
tolerations:
- effect: NoSchedule
operator: Exists
@rothgar
Copy link
Author

rothgar commented Jul 1, 2025

Example screenshot from the dashboard

Screenshot From 2025-06-16 15-54-13

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment