atlas pods: per-namespace top node via topk
This commit is contained in:
parent
6ac01e5879
commit
e87d54f19d
@ -219,6 +219,12 @@ CONTROL_READY_FRACTION_EXPR = (
|
||||
UPTIME_AVAIL_EXPR = (
|
||||
f"min(({CONTROL_READY_FRACTION_EXPR}), ({TRAEFIK_READY_EXPR}))"
|
||||
)
|
||||
|
||||
# Tie-breaker to deterministically pick one node per namespace when shares tie.
|
||||
NODE_TIEBREAKER = " + ".join(
|
||||
f"({node_filter(node)}) * 1e-6 * {idx}"
|
||||
for idx, node in enumerate(CONTROL_ALL + WORKER_NODES, start=1)
|
||||
)
|
||||
UPTIME_AVG_EXPR = f"avg_over_time(({UPTIME_AVAIL_EXPR})[{UPTIME_WINDOW}:5m])"
|
||||
UPTIME_PERCENT_EXPR = UPTIME_AVG_EXPR
|
||||
UPTIME_NINES_EXPR = f"-log10(1 - clamp_max({UPTIME_AVG_EXPR}, 0.999999999))"
|
||||
@ -1173,23 +1179,15 @@ def build_pods_dashboard():
|
||||
instant=True,
|
||||
)
|
||||
)
|
||||
|
||||
panels.append(
|
||||
table_panel(
|
||||
10,
|
||||
"Namespace Plurality by Node",
|
||||
(
|
||||
"max by (namespace,node) ("
|
||||
" {share}"
|
||||
" * on(namespace) group_left(node) ("
|
||||
" {share} == bool on(namespace) group_left() (max by (namespace) ({share}))"
|
||||
" )"
|
||||
")"
|
||||
).format(
|
||||
share=(
|
||||
"(sum by (namespace,node) (kube_pod_info{pod!=\"\"}) "
|
||||
"/ on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod!=\"\"}), 1) * 100)"
|
||||
)
|
||||
),
|
||||
'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)'
|
||||
')',
|
||||
{"h": 8, "w": 24, "x": 0, "y": 42},
|
||||
unit="percent",
|
||||
transformations=[
|
||||
@ -1199,6 +1197,7 @@ def build_pods_dashboard():
|
||||
instant=True,
|
||||
)
|
||||
)
|
||||
|
||||
return {
|
||||
"uid": "atlas-pods",
|
||||
"title": "Atlas Pods",
|
||||
|
||||
@ -508,7 +508,7 @@
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max by (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) * on(namespace) group_left(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))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
|
||||
@ -517,7 +517,7 @@ data:
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"expr": "max by (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) * on(namespace) group_left(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))",
|
||||
"refId": "A",
|
||||
"instant": true
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user