Node health dashboard + fix node-exporter scrape config (role:pod, instance=node name)
This commit is contained in:
@@ -22,6 +22,66 @@ metadata:
|
|||||||
name: grafana-dashboards
|
name: grafana-dashboards
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
data:
|
data:
|
||||||
|
node-health.json: |
|
||||||
|
{
|
||||||
|
"title": "planck node health",
|
||||||
|
"uid": "plancknodes",
|
||||||
|
"timezone": "browser",
|
||||||
|
"refresh": "10s",
|
||||||
|
"time": { "from": "now-1h", "to": "now" },
|
||||||
|
"panels": [
|
||||||
|
{
|
||||||
|
"id": 1, "type": "timeseries", "title": "CPU temperature (all nodes)",
|
||||||
|
"gridPos": {"x": 0, "y": 0, "w": 12, "h": 8},
|
||||||
|
"targets": [{"expr": "node_thermal_zone_temp", "legendFormat": "{{instance}}"}],
|
||||||
|
"fieldConfig": {"defaults": {"unit": "celsius"}, "overrides": []}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2, "type": "timeseries", "title": "CPU usage % (all nodes)",
|
||||||
|
"gridPos": {"x": 12, "y": 0, "w": 12, "h": 8},
|
||||||
|
"targets": [{"expr": "100 * (1 - avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[2m])))", "legendFormat": "{{instance}}"}],
|
||||||
|
"fieldConfig": {"defaults": {"unit": "percent", "min": 0, "max": 100}, "overrides": []}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3, "type": "timeseries", "title": "Memory used % (all nodes)",
|
||||||
|
"gridPos": {"x": 0, "y": 8, "w": 12, "h": 8},
|
||||||
|
"targets": [{"expr": "100 * (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)", "legendFormat": "{{instance}}"}],
|
||||||
|
"fieldConfig": {"defaults": {"unit": "percent", "min": 0, "max": 100}, "overrides": []}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4, "type": "timeseries", "title": "Disk used % (root, all nodes)",
|
||||||
|
"gridPos": {"x": 12, "y": 8, "w": 12, "h": 8},
|
||||||
|
"targets": [{"expr": "100 * (1 - node_filesystem_avail_bytes{mountpoint=\"/\"} / node_filesystem_size_bytes{mountpoint=\"/\"})", "legendFormat": "{{instance}}"}],
|
||||||
|
"fieldConfig": {"defaults": {"unit": "percent", "min": 0, "max": 100}, "overrides": []}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5, "type": "timeseries", "title": "Network eth0: RX / TX",
|
||||||
|
"gridPos": {"x": 0, "y": 16, "w": 12, "h": 8},
|
||||||
|
"targets": [
|
||||||
|
{"expr": "sum by (instance) (rate(node_network_receive_bytes_total{device=\"eth0\"}[1m]))", "legendFormat": "rx {{instance}}"},
|
||||||
|
{"expr": "sum by (instance) (rate(node_network_transmit_bytes_total{device=\"eth0\"}[1m]))", "legendFormat": "tx {{instance}}"}
|
||||||
|
],
|
||||||
|
"fieldConfig": {"defaults": {"unit": "Bps"}, "overrides": []}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6, "type": "timeseries", "title": "SSD I/O: read / write",
|
||||||
|
"gridPos": {"x": 12, "y": 16, "w": 12, "h": 8},
|
||||||
|
"targets": [
|
||||||
|
{"expr": "sum by (instance) (rate(node_disk_read_bytes_total{device=~\"sda.*\"}[1m]))", "legendFormat": "read {{instance}}"},
|
||||||
|
{"expr": "sum by (instance) (rate(node_disk_written_bytes_total{device=~\"sda.*\"}[1m]))", "legendFormat": "write {{instance}}"}
|
||||||
|
],
|
||||||
|
"fieldConfig": {"defaults": {"unit": "Bps"}, "overrides": []}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7, "type": "timeseries", "title": "Load (1 min, all nodes)",
|
||||||
|
"gridPos": {"x": 0, "y": 24, "w": 24, "h": 7},
|
||||||
|
"targets": [{"expr": "node_load1", "legendFormat": "{{instance}}"}],
|
||||||
|
"fieldConfig": {"defaults": {"unit": "short"}, "overrides": []}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"schemaVersion": 39,
|
||||||
|
"version": 1
|
||||||
|
}
|
||||||
k6-step-load.json: |
|
k6-step-load.json: |
|
||||||
{
|
{
|
||||||
"title": "k6 Step Load",
|
"title": "k6 Step Load",
|
||||||
|
|||||||
@@ -51,16 +51,16 @@ data:
|
|||||||
- targets: ["localhost:9090"]
|
- targets: ["localhost:9090"]
|
||||||
- job_name: node-exporter
|
- job_name: node-exporter
|
||||||
kubernetes_sd_configs:
|
kubernetes_sd_configs:
|
||||||
- role: node
|
- role: pod
|
||||||
|
selectors:
|
||||||
|
- role: pod
|
||||||
|
label: "app=node-exporter"
|
||||||
relabel_configs:
|
relabel_configs:
|
||||||
- source_labels: [__meta_kubernetes_node_address_InternalIP]
|
- source_labels: [__meta_kubernetes_pod_node_name]
|
||||||
target_label: instance_ip
|
target_label: instance
|
||||||
- action: labelmap
|
- source_labels: [__meta_kubernetes_pod_container_port_number]
|
||||||
regex: __meta_kubernetes_node_label_(.+)
|
action: keep
|
||||||
metric_relabel_configs:
|
regex: "9100"
|
||||||
- source_labels: [__name__]
|
|
||||||
regex: go_.*
|
|
||||||
action: drop
|
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
|
|||||||
Reference in New Issue
Block a user