diff --git a/scripts/dashboards_render_atlas.py b/scripts/dashboards_render_atlas.py index d058522..5d557a8 100644 --- a/scripts/dashboards_render_atlas.py +++ b/scripts/dashboards_render_atlas.py @@ -1180,18 +1180,22 @@ def build_pods_dashboard(): ) ) + share_expr = ( + '(sum by (namespace,node) (kube_pod_info{pod=~".+"}) ' + '/ on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod=~".+"}), 1) * 100)' + ) panels.append( table_panel( 10, - "Namespace Plurality by Node", - '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)' - ')', + "Namespace Plurality by Node v10", + f"{share_expr} * on(namespace,node) (" + f"{share_expr} == bool on(namespace) group_left() (max by (namespace) ({share_expr}))" + ")", {"h": 8, "w": 24, "x": 0, "y": 42}, unit="percent", transformations=[ {"id": "labelsToFields", "options": {}}, + {"id": "filterByValue", "options": {"match": "Value", "operator": "gt", "value": 0}}, {"id": "sortBy", "options": {"fields": ["node", "Value"], "order": "asc"}}, ], instant=True, diff --git a/services/monitoring/dashboards/atlas-pods.json b/services/monitoring/dashboards/atlas-pods.json index ac4e771..d46729c 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", + "title": "Namespace Plurality by Node v10", "datasource": { "type": "prometheus", "uid": "atlas-vm" @@ -508,7 +508,7 @@ }, "targets": [ { - "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))", + "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))))", "refId": "A", "instant": true } @@ -527,6 +527,14 @@ "id": "labelsToFields", "options": {} }, + { + "id": "filterByValue", + "options": { + "match": "Value", + "operator": "gt", + "value": 0 + } + }, { "id": "sortBy", "options": { diff --git a/services/monitoring/grafana-dashboard-pods.yaml b/services/monitoring/grafana-dashboard-pods.yaml index 392a03a..6461c79 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", + "title": "Namespace Plurality by Node v10", "datasource": { "type": "prometheus", "uid": "atlas-vm" @@ -517,7 +517,7 @@ data: }, "targets": [ { - "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))", + "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))))", "refId": "A", "instant": true } @@ -536,6 +536,14 @@ data: "id": "labelsToFields", "options": {} }, + { + "id": "filterByValue", + "options": { + "match": "Value", + "operator": "gt", + "value": 0 + } + }, { "id": "sortBy", "options": {