atlas pods: plurality table v11 (deterministic top node)

This commit is contained in:
Brad Stein 2025-12-13 17:19:03 -03:00
parent 7f67793ee5
commit 3e0a84b074
3 changed files with 31 additions and 8 deletions

View File

@ -1184,17 +1184,24 @@ def build_pods_dashboard():
'(sum by (namespace,node) (kube_pod_info{pod=~".+"}) ' '(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) 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( panels.append(
table_panel( table_panel(
10, 10,
"Namespace Plurality by Node v10", "Namespace Plurality by Node v11",
f"{share_expr} * on(namespace,node) (" (
f"{share_expr} == bool on(namespace) group_left() (max by (namespace) ({share_expr}))" f"topk by (namespace) (1, {score_expr}) "
")", f"* on(namespace,node) group_left() ({share_expr})"
),
{"h": 8, "w": 24, "x": 0, "y": 42}, {"h": 8, "w": 24, "x": 0, "y": 42},
unit="percent", unit="percent",
transformations=[ transformations=[
{"id": "labelsToFields", "options": {}}, {"id": "labelsToFields", "options": {}},
{"id": "organize", "options": {"excludeByName": {"Time": True}}},
{"id": "filterByValue", "options": {"match": "Value", "operator": "gt", "value": 0}}, {"id": "filterByValue", "options": {"match": "Value", "operator": "gt", "value": 0}},
{"id": "sortBy", "options": {"fields": ["node", "Value"], "order": "asc"}}, {"id": "sortBy", "options": {"fields": ["node", "Value"], "order": "asc"}},
], ],

View File

@ -495,7 +495,7 @@
{ {
"id": 10, "id": 10,
"type": "table", "type": "table",
"title": "Namespace Plurality by Node v10", "title": "Namespace Plurality by Node v11",
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "atlas-vm" "uid": "atlas-vm"
@ -508,7 +508,7 @@
}, },
"targets": [ "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", "refId": "A",
"instant": true "instant": true
} }
@ -527,6 +527,14 @@
"id": "labelsToFields", "id": "labelsToFields",
"options": {} "options": {}
}, },
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
}
}
},
{ {
"id": "filterByValue", "id": "filterByValue",
"options": { "options": {

View File

@ -504,7 +504,7 @@ data:
{ {
"id": 10, "id": 10,
"type": "table", "type": "table",
"title": "Namespace Plurality by Node v10", "title": "Namespace Plurality by Node v11",
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "atlas-vm" "uid": "atlas-vm"
@ -517,7 +517,7 @@ data:
}, },
"targets": [ "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", "refId": "A",
"instant": true "instant": true
} }
@ -536,6 +536,14 @@ data:
"id": "labelsToFields", "id": "labelsToFields",
"options": {} "options": {}
}, },
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
}
}
},
{ {
"id": "filterByValue", "id": "filterByValue",
"options": { "options": {