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 = (
|
UPTIME_AVAIL_EXPR = (
|
||||||
f"min(({CONTROL_READY_FRACTION_EXPR}), ({TRAEFIK_READY_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_AVG_EXPR = f"avg_over_time(({UPTIME_AVAIL_EXPR})[{UPTIME_WINDOW}:5m])"
|
||||||
UPTIME_PERCENT_EXPR = UPTIME_AVG_EXPR
|
UPTIME_PERCENT_EXPR = UPTIME_AVG_EXPR
|
||||||
UPTIME_NINES_EXPR = f"-log10(1 - clamp_max({UPTIME_AVG_EXPR}, 0.999999999))"
|
UPTIME_NINES_EXPR = f"-log10(1 - clamp_max({UPTIME_AVG_EXPR}, 0.999999999))"
|
||||||
@ -1173,23 +1179,15 @@ def build_pods_dashboard():
|
|||||||
instant=True,
|
instant=True,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
panels.append(
|
panels.append(
|
||||||
table_panel(
|
table_panel(
|
||||||
10,
|
10,
|
||||||
"Namespace Plurality by Node",
|
"Namespace Plurality by Node",
|
||||||
(
|
'topk by (namespace) (1, '
|
||||||
"max by (namespace,node) ("
|
'(sum by (namespace,node) (kube_pod_info{pod!=""}) '
|
||||||
" {share}"
|
'/ on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod!=""}), 1) * 100)'
|
||||||
" * 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)"
|
|
||||||
)
|
|
||||||
),
|
|
||||||
{"h": 8, "w": 24, "x": 0, "y": 42},
|
{"h": 8, "w": 24, "x": 0, "y": 42},
|
||||||
unit="percent",
|
unit="percent",
|
||||||
transformations=[
|
transformations=[
|
||||||
@ -1199,6 +1197,7 @@ def build_pods_dashboard():
|
|||||||
instant=True,
|
instant=True,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"uid": "atlas-pods",
|
"uid": "atlas-pods",
|
||||||
"title": "Atlas Pods",
|
"title": "Atlas Pods",
|
||||||
|
|||||||
@ -508,7 +508,7 @@
|
|||||||
},
|
},
|
||||||
"targets": [
|
"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",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
|
|||||||
@ -517,7 +517,7 @@ data:
|
|||||||
},
|
},
|
||||||
"targets": [
|
"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",
|
"refId": "A",
|
||||||
"instant": true
|
"instant": true
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user