From 9b565ead55b31f3a948835318c13fc55fcd643cf Mon Sep 17 00:00:00 2001 From: gbanyan Date: Mon, 16 Feb 2026 16:37:27 +0800 Subject: [PATCH] Fix GBarmUB dashboards for live metrics and no-data panels --- GBarmUB/docker-container-metrics.json | 4 ++-- GBarmUB/gbarmub-node-exporter.json | 4 ++-- GBarmUB/traefik-log-review-dashboard.json | 14 +++++++------- HomeLab/unbound-resolver-overview.json | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/GBarmUB/docker-container-metrics.json b/GBarmUB/docker-container-metrics.json index f68e261..98a2678 100644 --- a/GBarmUB/docker-container-metrics.json +++ b/GBarmUB/docker-container-metrics.json @@ -53,7 +53,7 @@ }, "targets": [ { - "expr": "count(rate(container_last_seen{name=~\"$container|.*\",name!=\"\"}[5m]))", + "expr": "count((time() - container_last_seen{name=~\"$container|.*\",name!=\"\"}) < 120)", "refId": "A" } ], @@ -409,7 +409,7 @@ }, "targets": [ { - "expr": "(container_memory_usage_bytes{name=~\"$container|.*\",name!=\"\"} / container_spec_memory_limit_bytes{name=~\"$container|.*\",name!=\"\"}) * 100", + "expr": "100 * (container_memory_usage_bytes{name=~\"$container|.*\",name!=\"\"} / container_spec_memory_limit_bytes{name=~\"$container|.*\",name!=\"\"}) and on(name) (container_spec_memory_limit_bytes{name=~\"$container|.*\",name!=\"\"} > 0)", "legendFormat": "{{name}}", "refId": "A" } diff --git a/GBarmUB/gbarmub-node-exporter.json b/GBarmUB/gbarmub-node-exporter.json index b28d6fb..9a4c58f 100644 --- a/GBarmUB/gbarmub-node-exporter.json +++ b/GBarmUB/gbarmub-node-exporter.json @@ -169,7 +169,7 @@ { "editorMode": "code", "exemplar": false, - "expr": "irate(node_pressure_irq_stalled_seconds_total{instance=\"$node\",job=\"$job\"}[$__rate_interval])", + "expr": "irate(node_pressure_irq_stalled_seconds_total{instance=\"$node\",job=\"$job\"}[$__rate_interval]) or vector(0)", "format": "time_series", "instant": true, "legendFormat": "Irq", @@ -3392,7 +3392,7 @@ }, { "editorMode": "code", - "expr": "rate(node_pressure_irq_stalled_seconds_total{instance=\"$node\",job=\"$job\"}[$__rate_interval])", + "expr": "rate(node_pressure_irq_stalled_seconds_total{instance=\"$node\",job=\"$job\"}[$__rate_interval]) or vector(0)", "format": "time_series", "legendFormat": "IRQ - Full", "range": true, diff --git a/GBarmUB/traefik-log-review-dashboard.json b/GBarmUB/traefik-log-review-dashboard.json index 9965ec8..3101521 100644 --- a/GBarmUB/traefik-log-review-dashboard.json +++ b/GBarmUB/traefik-log-review-dashboard.json @@ -185,7 +185,7 @@ "type": "loki", "uid": "ef1qnibjxb5z4a" }, - "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 2\\d{2} ` [5m]))", + "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 2\\d{2} ` [5m])) or vector(0)", "legendFormat": "2xx 成功", "refId": "A" }, @@ -194,7 +194,7 @@ "type": "loki", "uid": "ef1qnibjxb5z4a" }, - "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 3\\d{2} ` [5m]))", + "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 3\\d{2} ` [5m])) or vector(0)", "legendFormat": "3xx 重定向", "refId": "B" }, @@ -203,7 +203,7 @@ "type": "loki", "uid": "ef1qnibjxb5z4a" }, - "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 4\\d{2} ` [5m]))", + "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 4\\d{2} ` [5m])) or vector(0)", "legendFormat": "4xx 用戶端錯誤", "refId": "C" }, @@ -212,7 +212,7 @@ "type": "loki", "uid": "ef1qnibjxb5z4a" }, - "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 5\\d{2} ` [5m]))", + "expr": "sum(rate({service_name=\"proxy/traefik-access\"} |~ ` 5\\d{2} ` [5m])) or vector(0)", "legendFormat": "5xx 伺服器錯誤", "refId": "D" } @@ -282,7 +282,7 @@ "type": "loki", "uid": "ef1qnibjxb5z4a" }, - "expr": "(sum(rate({service_name=\"proxy/traefik-access\"} |~ ` [45]\\d{2} ` [5m])) / sum(rate({service_name=\"proxy/traefik-access\"} [5m]))) * 100", + "expr": "(sum(rate({service_name=\"proxy/traefik-access\"} |~ ` [45]\\d{2} ` [5m])) / clamp_min(sum(rate({service_name=\"proxy/traefik-access\"} [5m])), 1e-9)) * 100", "refId": "A" } ], @@ -414,11 +414,11 @@ "type": "loki", "uid": "ef1qnibjxb5z4a" }, - "expr": "{service_name=\"proxy/traefik-access\"} |~ ` [45]\\d{2} `", + "expr": "{service_name=\"proxy/traefik-access\"}", "refId": "A" } ], - "title": "🔝 錯誤請求 (4xx/5xx)", + "title": "🔝 最近請求 (Traefik Access)", "type": "logs" }, { diff --git a/HomeLab/unbound-resolver-overview.json b/HomeLab/unbound-resolver-overview.json index 7179305..52cd9f7 100644 --- a/HomeLab/unbound-resolver-overview.json +++ b/HomeLab/unbound-resolver-overview.json @@ -1001,7 +1001,7 @@ { "direction": "backward", "editorMode": "code", - "expr": "topk(10, sum by (domain) (count_over_time({job=\"unbound\"} [5m])))", + "expr": "topk(10, sum by (domain) (count_over_time({job=\"unbound\"} | pattern \"<_> <_> reply: <_> <_> <_> <_> <_> <_> <_>\" [5m])))", "queryType": "instant", "refId": "A" }