From 3e0a84b07451d341f73691844a008cdbd8930757 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Sat, 13 Dec 2025 17:19:03 -0300 Subject: [PATCH] atlas pods: plurality table v11 (deterministic top node) --- scripts/dashboards_render_atlas.py | 15 +++++++++++---- services/monitoring/dashboards/atlas-pods.json | 12 ++++++++++-- services/monitoring/grafana-dashboard-pods.yaml | 12 ++++++++++-- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index 5d557a8..db45eff 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -1184,17 +1184,24 @@ def build_pods_dashboard(): '(sum by (namespace,node) (kube_pod_info{pod=~".+"}) ' '/ on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~".+"}), 1) * 100)' ) + rank_expr = " + ".join( + f"(sum by (node) (kube_node_info{{node=\"{node}\"}}) * {idx})" + for idx, node in enumerate(CONTROL_ALL + WORKER_NODES, start=1) + ) + score_expr = f"(({share_expr}) * 1000) + on(node) group_left() ({rank_expr})" panels.append( table_panel( 10, - "Namespace Plurality by Node v10", - f"{share_expr} * on(namespace,node) (" - f"{share_expr} == bool on(namespace) group_left() (max by (namespace) ({share_expr}))" - ")", + "Namespace Plurality by Node v11", + ( + f"topk by (namespace) (1, {score_expr}) " + f"* on(namespace,node) group_left() ({share_expr})" + ), {"h": 8, "w": 24, "x": 0, "y": 42}, unit="percent", transformations=[ {"id": "labelsToFields", "options": {}}, + {"id": "organize", "options": {"excludeByName": {"Time": True}}}, {"id": "filterByValue", "options": {"match": "Value", "operator": "gt", "value": 0}}, {"id": "sortBy", "options": {"fields": ["node", "Value"], "order": "asc"}}, ], diff --git a/services/monitoring/dashboards/atlas-pods.json b/services/monitoring/dashboards/atlas-pods.json index d46729c..08452fb 100644 --- a/services/monitoring/dashboards/atlas-pods.json +++ b/services/monitoring/dashboards/atlas-pods.json @@ -495,7 +495,7 @@ { "id": 10, "type": "table", - "title": "Namespace Plurality by Node v10", + "title": "Namespace Plurality by Node v11", "datasource": { "type": "prometheus", "uid": "atlas-vm" @@ -508,7 +508,7 @@ }, "targets": [ { - "expr": "(sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100) * on(namespace,node) ((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100) == bool on(namespace) group_left() (max by (namespace) ((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100))))", + "expr": "topk by (namespace) (1, (((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100)) * 1000) + on(node) group_left() ((sum by (node) (kube_node_info{node=\"titan-0a\"}) * 1) + (sum by (node) (kube_node_info{node=\"titan-0b\"}) * 2) + (sum by (node) (kube_node_info{node=\"titan-0c\"}) * 3) + (sum by (node) (kube_node_info{node=\"titan-db\"}) * 4) + (sum by (node) (kube_node_info{node=\"titan-04\"}) * 5) + (sum by (node) (kube_node_info{node=\"titan-05\"}) * 6) + (sum by (node) (kube_node_info{node=\"titan-06\"}) * 7) + (sum by (node) (kube_node_info{node=\"titan-07\"}) * 8) + (sum by (node) (kube_node_info{node=\"titan-08\"}) * 9) + (sum by (node) (kube_node_info{node=\"titan-09\"}) * 10) + (sum by (node) (kube_node_info{node=\"titan-10\"}) * 11) + (sum by (node) (kube_node_info{node=\"titan-11\"}) * 12) + (sum by (node) (kube_node_info{node=\"titan-12\"}) * 13) + (sum by (node) (kube_node_info{node=\"titan-13\"}) * 14) + (sum by (node) (kube_node_info{node=\"titan-14\"}) * 15) + (sum by (node) (kube_node_info{node=\"titan-15\"}) * 16) + (sum by (node) (kube_node_info{node=\"titan-16\"}) * 17) + (sum by (node) (kube_node_info{node=\"titan-17\"}) * 18) + (sum by (node) (kube_node_info{node=\"titan-18\"}) * 19) + (sum by (node) (kube_node_info{node=\"titan-19\"}) * 20) + (sum by (node) (kube_node_info{node=\"titan-22\"}) * 21) + (sum by (node) (kube_node_info{node=\"titan-24\"}) * 22))) * on(namespace,node) group_left() ((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100))", "refId": "A", "instant": true } @@ -527,6 +527,14 @@ "id": "labelsToFields", "options": {} }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + } + } + }, { "id": "filterByValue", "options": { diff --git a/services/monitoring/grafana-dashboard-pods.yaml b/services/monitoring/grafana-dashboard-pods.yaml index 6461c79..2063e77 100644 --- a/services/monitoring/grafana-dashboard-pods.yaml +++ b/services/monitoring/grafana-dashboard-pods.yaml @@ -504,7 +504,7 @@ data: { "id": 10, "type": "table", - "title": "Namespace Plurality by Node v10", + "title": "Namespace Plurality by Node v11", "datasource": { "type": "prometheus", "uid": "atlas-vm" @@ -517,7 +517,7 @@ data: }, "targets": [ { - "expr": "(sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100) * on(namespace,node) ((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100) == bool on(namespace) group_left() (max by (namespace) ((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100))))", + "expr": "topk by (namespace) (1, (((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100)) * 1000) + on(node) group_left() ((sum by (node) (kube_node_info{node=\"titan-0a\"}) * 1) + (sum by (node) (kube_node_info{node=\"titan-0b\"}) * 2) + (sum by (node) (kube_node_info{node=\"titan-0c\"}) * 3) + (sum by (node) (kube_node_info{node=\"titan-db\"}) * 4) + (sum by (node) (kube_node_info{node=\"titan-04\"}) * 5) + (sum by (node) (kube_node_info{node=\"titan-05\"}) * 6) + (sum by (node) (kube_node_info{node=\"titan-06\"}) * 7) + (sum by (node) (kube_node_info{node=\"titan-07\"}) * 8) + (sum by (node) (kube_node_info{node=\"titan-08\"}) * 9) + (sum by (node) (kube_node_info{node=\"titan-09\"}) * 10) + (sum by (node) (kube_node_info{node=\"titan-10\"}) * 11) + (sum by (node) (kube_node_info{node=\"titan-11\"}) * 12) + (sum by (node) (kube_node_info{node=\"titan-12\"}) * 13) + (sum by (node) (kube_node_info{node=\"titan-13\"}) * 14) + (sum by (node) (kube_node_info{node=\"titan-14\"}) * 15) + (sum by (node) (kube_node_info{node=\"titan-15\"}) * 16) + (sum by (node) (kube_node_info{node=\"titan-16\"}) * 17) + (sum by (node) (kube_node_info{node=\"titan-17\"}) * 18) + (sum by (node) (kube_node_info{node=\"titan-18\"}) * 19) + (sum by (node) (kube_node_info{node=\"titan-19\"}) * 20) + (sum by (node) (kube_node_info{node=\"titan-22\"}) * 21) + (sum by (node) (kube_node_info{node=\"titan-24\"}) * 22))) * on(namespace,node) group_left() ((sum by (namespace,node) (kube_pod_info{pod=~\".+\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~\".+\"}), 1) * 100))", "refId": "A", "instant": true } @@ -536,6 +536,14 @@ data: "id": "labelsToFields", "options": {} }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true + } + } + }, { "id": "filterByValue", "options": {