Initial commit: Ced's K3s HomeLab

This commit is contained in:
2025-12-06 22:22:42 -06:00
commit 188651954e
20 changed files with 1078 additions and 0 deletions
@@ -0,0 +1,139 @@
{
"id": null,
"uid": "ced-cluster-overview",
"title": "Ced's K3s Cluster Overview",
"tags": [
"k3s",
"cluster",
"ced-noc"
],
"timezone": "browser",
"schemaVersion": 38,
"version": 1,
"refresh": "30s",
"panels": [
{
"type": "stat",
"title": "Total Nodes",
"id": 1,
"gridPos": {
"h": 4,
"w": 4,
"x": 0,
"y": 0
},
"targets": [
{
"expr": "count(kube_node_info)",
"refId": "A"
}
]
},
{
"type": "stat",
"title": "Ready Nodes",
"id": 2,
"gridPos": {
"h": 4,
"w": 4,
"x": 4,
"y": 0
},
"targets": [
{
"expr": "count(kube_node_status_condition{condition=\"Ready\",status=\"true\"})",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "Node CPU Usage (%)",
"id": 3,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 4
},
"targets": [
{
"expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)",
"legendFormat": "{{instance}}",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "Node Memory Usage (%)",
"id": 4,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 4
},
"targets": [
{
"expr": "(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100",
"legendFormat": "{{instance}}",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "Pods per Namespace",
"id": 5,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 12
},
"targets": [
{
"expr": "count(kube_pod_info) by (namespace)",
"legendFormat": "{{namespace}}",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "API Server Request Rate",
"id": 6,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 12
},
"targets": [
{
"expr": "sum(rate(apiserver_request_total[5m])) by (verb)",
"legendFormat": "{{verb}}",
"refId": "A"
}
]
}
],
"templating": {
"list": [
{
"name": "namespace",
"type": "query",
"datasource": "Prometheus",
"query": "label_values(kube_pod_info, namespace)",
"current": {
"text": "All",
"value": ".*"
},
"includeAll": true,
"multi": true,
"regex": ""
}
]
}
}
@@ -0,0 +1,70 @@
{
"id": null,
"uid": "ced-ingress",
"title": "Ced's Ingress & MetalLB",
"tags": [
"ingress",
"metallb",
"ced-noc"
],
"timezone": "browser",
"schemaVersion": 38,
"version": 1,
"refresh": "30s",
"panels": [
{
"type": "graph",
"title": "NGINX Ingress HTTP Requests",
"id": 1,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"targets": [
{
"expr": "sum(rate(nginx_ingress_controller_requests[5m])) by (ingress)",
"legendFormat": "{{ingress}}",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "NGINX Ingress 5xx Rate",
"id": 2,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"targets": [
{
"expr": "sum(rate(nginx_ingress_controller_requests{status=~\"5..\"}[5m])) by (ingress)",
"legendFormat": "{{ingress}}",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "MetalLB Announced IPs",
"id": 3,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"targets": [
{
"expr": "sum(metallb_speaker_announced)",
"legendFormat": "announced",
"refId": "A"
}
]
}
]
}
@@ -0,0 +1,98 @@
{
"id": null,
"uid": "ced-node-detail",
"title": "Ced's K3s Nodes Detail",
"tags": [
"k3s",
"nodes",
"ced-noc"
],
"timezone": "browser",
"schemaVersion": 38,
"version": 1,
"refresh": "30s",
"templating": {
"list": [
{
"name": "node",
"type": "query",
"datasource": "Prometheus",
"query": "label_values(kube_node_info, node)",
"multi": false,
"includeAll": false
}
]
},
"panels": [
{
"type": "stat",
"title": "Node CPU Usage (%)",
"id": 1,
"gridPos": {
"h": 4,
"w": 6,
"x": 0,
"y": 0
},
"targets": [
{
"expr": "100 - (avg(irate(node_cpu_seconds_total{mode=\"idle\",instance=~\"$node\"}[5m])) * 100)",
"refId": "A"
}
]
},
{
"type": "stat",
"title": "Node Memory Usage (%)",
"id": 2,
"gridPos": {
"h": 4,
"w": 6,
"x": 6,
"y": 0
},
"targets": [
{
"expr": "(1 - (node_memory_MemAvailable_bytes{instance=~\"$node\"} / node_memory_MemTotal_bytes{instance=~\"$node\"})) * 100",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "Disk Usage (root fs)",
"id": 3,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 4
},
"targets": [
{
"expr": "1 - (node_filesystem_avail_bytes{mountpoint=\"/\",instance=~\"$node\"} / node_filesystem_size_bytes{mountpoint=\"/\",instance=~\"$node\"})",
"legendFormat": "rootfs",
"refId": "A"
}
]
},
{
"type": "graph",
"title": "Kubelet Pod Count",
"id": 4,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 4
},
"targets": [
{
"expr": "kubelet_running_pod_count{instance=~\"$node\"}",
"legendFormat": "{{instance}}",
"refId": "A"
}
]
}
]
}