From d478dd6012e200e6fafcad23b1638e4d75400cb7 Mon Sep 17 00:00:00 2001 From: Ludovic Cleroux Date: Fri, 1 Dec 2023 16:17:52 +0100 Subject: [PATCH] ROX-21228: Capacity planning dashboard --- ...cluster-resource-adjustment-configmap.yaml | 4805 ++++++++++++++--- ...cluster-resource-adjustment-dashboard.yaml | 4805 ++++++++++++++--- .../rhacs-cluster-resource-adjustment.json | 4805 ++++++++++++++--- 3 files changed, 11724 insertions(+), 2691 deletions(-) diff --git a/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-configmap.yaml b/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-configmap.yaml index 4a545acb..cb0e1ba5 100644 --- a/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-configmap.yaml +++ b/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-configmap.yaml @@ -35,7 +35,7 @@ data: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 25, + "id": 23, "links": [], "liveNow": false, "panels": [ @@ -47,11 +47,2025 @@ data: "x": 0, "y": 0 }, - "id": 2, + "id": 72, "panels": [], - "title": "Question 1: How big are tenant containers?", + "title": "Overview", "type": "row" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 76, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

Overview

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 9, + "x": 2, + "y": 4 + }, + "id": 48, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

acscs-worker

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 9, + "x": 13, + "y": 4 + }, + "id": 78, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

acscs-infra

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "nodes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 9, + "x": 2, + "y": 7 + }, + "id": 50, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(acscs_worker_nodes)", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "nodes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 9, + "x": 13, + "y": 7 + }, + "id": 60, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(kube_node_role{role=\"acscs-infra\"})", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 9 + }, + "id": 92, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

Memory

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 12 + }, + "id": 100, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 12 + }, + "id": 9, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes)", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "fixed" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 12 + }, + "id": 15, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 8, + "y": 12 + }, + "id": 96, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 9, + "y": 12 + }, + "id": 51, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 12 + }, + "id": 102, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 12 + }, + "id": 66, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 12 + }, + "id": 109, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 19, + "y": 12 + }, + "id": 97, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 12 + }, + "id": 65, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 14 + }, + "id": 101, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 14 + }, + "id": 104, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 14 + }, + "id": 108, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 14 + }, + "id": 103, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 14 + }, + "id": 106, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 14 + }, + "id": 110, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "memory %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "memory abs" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 4, + "w": 9, + "x": 2, + "y": 16 + }, + "id": 63, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory %", + "range": true, + "refId": "memory %" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) \n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory abs", + "range": true, + "refId": "memory absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "memory %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "memory abs" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 4, + "w": 9, + "x": 13, + "y": 16 + }, + "id": 64, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory %", + "range": true, + "refId": "memory %" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) \n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory abs", + "range": true, + "refId": "memory absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 20 + }, + "id": 93, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

CPU

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 23 + }, + "id": 111, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 23 + }, + "id": 10, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 23 + }, + "id": 16, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 8, + "y": 23 + }, + "id": 98, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 9, + "y": 23 + }, + "id": 3, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 23 + }, + "id": 113, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 23 + }, + "id": 69, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 23 + }, + "id": 70, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 19, + "y": 23 + }, + "id": 99, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 23 + }, + "id": 68, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 25 + }, + "id": 112, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, { "datasource": { "type": "prometheus", @@ -61,38 +2075,7 @@ data: "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -108,82 +2091,290 @@ data: } ] }, - "unit": "cpu" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 1 + "h": 2, + "w": 2, + "x": 4, + "y": 25 }, - "id": 4, + "id": 114, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "repeat": "TenantContainers", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "legendFormat": "100%ile", - "range": true, - "refId": "A" + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 25 + }, + "id": 115, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.95, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 25 + }, + "id": 116, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "core" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 25 + }, + "id": 117, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 25 + }, + "id": 118, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" } ], - "title": "Tenant $TenantContainers Container CPU Usage", - "type": "timeseries" + "type": "stat" }, { "datasource": { @@ -197,6 +2388,7 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -210,12 +2402,12 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -241,96 +2433,94 @@ data: } ] }, - "unit": "bytes" + "unit": "percentunit" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "cpu absolute" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "cores" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "cpu %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + } + ] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 1 + "h": 4, + "w": 9, + "x": 2, + "y": 27 }, - "id": 5, + "id": 52, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "right", - "showLegend": true + "placement": "bottom", + "showLegend": false }, "tooltip": { - "mode": "single", + "mode": "multi", "sort": "none" } }, - "repeat": "TenantContainers", - "repeatDirection": "v", + "pluginVersion": "9.4.7", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(1, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "legendFormat": "100%ile", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "expr": "quantile(0.95, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "expr": "quantile(0.5, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", "hide": false, - "legendFormat": "50%ile", + "instant": false, + "interval": "", + "legendFormat": "cpu %", "range": true, - "refId": "C" + "refId": "cpu %" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.1, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)\n", "hide": false, - "legendFormat": "10%ile", + "legendFormat": "cpu absolute", "range": true, - "refId": "D" + "refId": "cpu absolute" } ], - "title": "Tenant $TenantContainers Container Memory Usage", "type": "timeseries" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 17, - "panels": [], - "title": "Question 2: How big are tenant namespaces?", - "type": "row" - }, { "datasource": { "type": "prometheus", @@ -343,6 +2533,7 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -356,12 +2547,12 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -386,134 +2577,224 @@ data: "value": 80 } ] - } + }, + "unit": "percentunit" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "cpu absolute" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "cores" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "cpu %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + } + ] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 34 + "h": 4, + "w": 9, + "x": 13, + "y": 27 }, - "id": 28, + "id": 71, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "right", - "showLegend": true + "placement": "bottom", + "showLegend": false }, "tooltip": { - "mode": "single", + "mode": "multi", "sort": "none" } }, "pluginVersion": "9.4.7", - "repeatDirection": "v", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "quantile(1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", "format": "time_series", - "legendFormat": "100%ile", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "cpu %", "range": true, - "refId": "A" + "refId": "cpu %" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(.95, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", + "editorMode": "code", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"})\n", "hide": false, - "legendFormat": "95%ile", + "legendFormat": "cpu absolute", "range": true, - "refId": "B" + "refId": "cpu absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 31 + }, + "id": 85, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "content": "", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "shades" }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.50, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" + "decimals": 0, + "mappings": [], + "max": 8, + "min": 6, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "GB/core" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 7, + "x": 2, + "y": 34 + }, + "id": 21, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" } ], - "title": "Tenant Namespace CPU Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 9, + "y": 34 + }, + "id": 79, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "How many GB per CPU do nodes have?\n\nThis corresponds to either memory-optimized, cpu-optimized or general purpose GB/CPU ratios.", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, + "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -528,147 +2809,60 @@ data: } ] }, - "unit": "bytes" + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, + "h": 4, + "w": 7, + "x": 15, "y": 34 }, - "id": 29, + "id": 62, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "quantile(1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "legendFormat": "100%ile", - "range": true, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"}) / 1024 / 1024 / 1024", + "instant": true, + "legendFormat": "__auto", + "range": false, "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.95, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.5, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" } ], - "title": "Tenant Namespace Memory Usage", - "transformations": [], - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 42 - }, - "id": 31, - "panels": [], - "title": "Question 3: Which tenants are in the \"big head\" and need XL overrides?", - "type": "row" + "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, + "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -682,91 +2876,83 @@ data: "value": 80 } ] - } + }, + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 43 + "h": 4, + "w": 7, + "x": 2, + "y": 38 }, - "id": 46, + "id": 22, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "topk(5, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", + "instant": true, "legendFormat": "__auto", - "range": true, + "range": false, "refId": "A" } ], - "title": "Tenant Namespace CPU Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "gridPos": { + "h": 4, + "w": 6, + "x": 9, + "y": 38 + }, + "id": 80, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "How many GB / CPU are actually used\n\nThis can help to choose a more appropriate node type, either memory-optimized, cpu-optimized or general-purpose", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -782,31 +2968,32 @@ data: } ] }, - "unit": "bytes" + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 43 + "h": 4, + "w": 7, + "x": 15, + "y": 38 }, - "id": 47, + "id": 61, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { @@ -815,30 +3002,38 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "topk(5, sum by(namespace) (avg_over_time(container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}[6h])))", - "format": "time_series", + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / 1024 / 1024 / 1024", "instant": true, "legendFormat": "__auto", - "range": true, + "range": false, "refId": "A" } ], - "title": "Tenant Namespace Memory Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" }, { - "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 51 + "h": 3, + "w": 20, + "x": 2, + "y": 42 }, - "id": 37, - "panels": [], - "title": "Question 4: What is our overall worker node CPU to Memory Profile? (Pick a worker node type)", - "type": "row" + "id": 125, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -847,21 +3042,21 @@ data: }, "gridPos": { "h": 3, - "w": 5, - "x": 0, - "y": 52 + "w": 20, + "x": 2, + "y": 45 }, - "id": 48, + "id": 128, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", + "content": "# Fine-Grained Adjustments\n\nFind workloads that are over or under-provisioned", "mode": "markdown" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -874,6 +3069,13 @@ data: "color": { "mode": "thresholds" }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -888,32 +3090,85 @@ data: } ] }, - "unit": "nodes" + "unit": "decbytes" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "CPU Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Usage" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Requests" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 2, - "x": 5, - "y": 52 + "h": 13, + "w": 10, + "x": 2, + "y": 48 }, - "id": 5, + "id": 127, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "cellHeight": "sm", + "footer": { + "countRows": false, "fields": "", - "values": false + "reducer": [ + "sum" + ], + "show": false }, - "textMode": "auto" + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Memory Usage / Request" + } + ] }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { @@ -921,14 +3176,137 @@ data: "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "expr": "sum(acscs_worker_nodes)", - "legendFormat": "__auto", - "range": true, + "exemplar": false, + "expr": "sum(container_memory_usage_bytes{container!=\"\",container!=\"POD\",job=\"kubelet\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "instant": true, + "legendFormat": "{{workload}}", + "range": false, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "D" } ], - "title": "Worker nodes", - "type": "stat" + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "workload", + "mode": "inner" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true + }, + "indexByName": {}, + "renameByName": { + "Time 1": "", + "Time 2": "", + "Value #A": "Memory Requests", + "Value #B": "Memory Usage", + "Value #C": "CPU Usage", + "Value #D": "CPU Requests" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Memory Usage / Request", + "binary": { + "left": "Memory Usage", + "operator": "/", + "right": "Memory Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "CPU Usage / Request", + "binary": { + "left": "CPU Usage", + "operator": "/", + "right": "CPU Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "CPU Requests": 5, + "CPU Usage": 4, + "CPU Usage / Request": 6, + "Memory Requests": 2, + "Memory Usage": 1, + "Memory Usage / Request": 3, + "workload": 0 + }, + "renameByName": {} + } + } + ], + "type": "table" }, { "datasource": { @@ -940,6 +3318,13 @@ data: "color": { "mode": "thresholds" }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -954,33 +3339,101 @@ data: } ] }, - "unit": "GB/core" + "unit": "decbytes" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "CPU Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Usage" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Requests" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 3, - "x": 7, - "y": 52 + "h": 13, + "w": 10, + "x": 12, + "y": 48 }, - "id": 22, + "id": 129, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "cellHeight": "sm", + "footer": { + "countRows": false, "fields": "", - "values": false + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Memory Usage" + } + ] + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(container_memory_usage_bytes{container!=\"\",container!=\"POD\",job=\"kubelet\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "B" }, - "textMode": "auto" - }, - "pluginVersion": "9.4.7", - "targets": [ { "datasource": { "type": "prometheus", @@ -988,93 +3441,159 @@ data: }, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", - "instant": false, - "legendFormat": "__auto", - "range": true, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "instant": true, + "legendFormat": "{{workload}}", + "range": false, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "D" } ], - "title": "Used GB/CPU ratio", - "type": "stat" + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "workload", + "mode": "inner" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true + }, + "indexByName": {}, + "renameByName": { + "Time 1": "", + "Time 2": "", + "Value #A": "Memory Requests", + "Value #B": "Memory Usage", + "Value #C": "CPU Usage", + "Value #D": "CPU Requests" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Memory Usage / Request", + "binary": { + "left": "Memory Usage", + "operator": "/", + "right": "Memory Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "CPU Usage / Request", + "binary": { + "left": "CPU Usage", + "operator": "/", + "right": "CPU Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "CPU Requests": 5, + "CPU Usage": 4, + "CPU Usage / Request": 6, + "Memory Requests": 2, + "Memory Usage": 1, + "Memory Usage / Request": 3, + "workload": 0 + }, + "renameByName": {} + } + } + ], + "type": "table" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "GB/core" - }, - "overrides": [] - }, "gridPos": { "h": 3, - "w": 3, - "x": 10, - "y": 52 + "w": 20, + "x": 2, + "y": 61 }, - "id": 21, + "id": 126, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "", + "mode": "html" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Nodes GB/CPU ratio", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 55 + "y": 64 }, - "id": 39, + "id": 2, "panels": [], - "title": "Question 5: What is our overall cluster worker node utilization? (Scale node count up/down)", + "repeat": "TenantContainers", + "repeatDirection": "h", + "title": "How big is ${TenantContainers}", "type": "row" }, { @@ -1083,22 +3602,22 @@ data: "uid": "PBFA97CFB590B2093" }, "gridPos": { - "h": 3, - "w": 5, - "x": 0, - "y": 56 + "h": 8, + "w": 2, + "x": 4, + "y": 65 }, - "id": 20, + "id": 136, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", - "mode": "markdown" + "content": "\n \n
\n average ${TenantContainers}\n
", + "mode": "html" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -1106,144 +3625,48 @@ data: "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, "gridPos": { - "h": 3, + "h": 4, "w": 2, - "x": 5, - "y": 56 + "x": 6, + "y": 65 }, - "id": 2, + "id": 165, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/^memory$/", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "\n \n
\n memory\n
", + "mode": "markdown" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory", - "range": true, - "refId": "memory" - } - ], - "title": "Total Memory", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 7, - "y": 56 + "x": 8, + "y": 65 }, - "id": 9, + "id": 166, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/^memory$/", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "
used
", + "mode": "markdown" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory", - "range": true, - "refId": "memory" - } - ], - "title": "Used Memory", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -1270,17 +3693,17 @@ data: } ] }, - "unit": "percentunit" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 9, - "y": 56 + "x": 10, + "y": 65 }, - "id": 15, + "id": 149, "options": { "colorMode": "none", "graphMode": "none", @@ -1288,33 +3711,36 @@ data: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^memory$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "expr": "quantile(0.5, node_namespace_pod_container:container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", "legendFormat": "memory", - "range": true, - "refId": "memory" + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Used Memory", "type": "stat" }, { @@ -1329,6 +3755,7 @@ data: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -1342,11 +3769,13 @@ data: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "type": "linear" + "log": 2, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -1372,62 +3801,29 @@ data: } ] }, - "unit": "percentunit" + "unit": "bytes" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "memory %" - }, - "properties": [ - { - "id": "custom.scaleDistribution", - "value": { - "log": 2, - "type": "log" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "memory abs" - }, - "properties": [ - { - "id": "custom.axisPlacement", - "value": "right" - }, - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] + "overrides": [] }, "gridPos": { - "h": 8, - "w": 11, - "x": 0, - "y": 59 + "h": 4, + "w": 8, + "x": 12, + "y": 65 }, - "id": 18, + "id": 5, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom", - "showLegend": false + "placement": "right", + "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "9.4.7", "targets": [ { "datasource": { @@ -1435,34 +3831,61 @@ data: "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", - "format": "time_series", + "expr": "quantile(1, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "legendFormat": "p100", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "quantile(0.95, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory %", + "includeNullMetadata": true, + "legendFormat": "p95", "range": true, - "refId": "memory %" + "refId": "B", + "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) \n ", - "format": "time_series", + "expr": "quantile(0.5, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory abs", + "includeNullMetadata": true, + "legendFormat": "p50", "range": true, - "refId": "memory absolute" + "refId": "C", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "quantile(0.10, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "legendFormat": "p10", + "range": true, + "refId": "D", + "useBackend": false } ], - "title": "Used Memory", + "title": "Tenant $TenantContainers Container Memory Usage", "type": "timeseries" }, { @@ -1471,22 +3894,22 @@ data: "uid": "PBFA97CFB590B2093" }, "gridPos": { - "h": 3, - "w": 5, - "x": 0, + "h": 2, + "w": 2, + "x": 8, "y": 67 }, - "id": 49, + "id": 167, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", + "content": "
requested
", "mode": "markdown" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -1514,17 +3937,17 @@ data: } ] }, - "unit": "cores" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 5, + "x": 10, "y": 67 }, - "id": 3, + "id": 168, "options": { "colorMode": "none", "graphMode": "none", @@ -1532,35 +3955,86 @@ data: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], - "fields": "/^cpu$/", + "fields": "/^memory$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "expr": "quantile(0.5, kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", - "legendFormat": "cpu", - "range": true, - "refId": "cpu" + "legendFormat": "memory", + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Total CPU", "type": "stat" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 69 + }, + "id": 196, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n cpu\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 8, + "y": 69 + }, + "id": 197, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "
used
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, { "datasource": { "type": "prometheus", @@ -1586,17 +4060,17 @@ data: } ] }, - "unit": "cores" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 7, - "y": 67 + "x": 10, + "y": 69 }, - "id": 10, + "id": 198, "options": { "colorMode": "none", "graphMode": "none", @@ -1604,34 +4078,198 @@ data: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^cpu$/", "values": false }, - "textMode": "auto" - }, - "pluginVersion": "9.4.7", - "targets": [ + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "exemplar": false, + "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "memory", + "useBackend": false + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cpu" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 8, + "x": 12, + "y": 69 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "legendFormat": "p100", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(0.95, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "hide": false, + "legendFormat": "p95", + "range": true, + "refId": "B" + }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)", - "format": "time_series", + "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cpu", + "includeNullMetadata": true, + "legendFormat": "p50", "range": true, - "refId": "cpu" + "refId": "C", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(0.1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "hide": false, + "legendFormat": "p10", + "range": true, + "refId": "D" } ], - "title": "Used CPU", - "type": "stat" + "title": "Tenant $TenantContainers Container CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 8, + "y": 71 + }, + "id": 235, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "
requested
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -1658,17 +4296,17 @@ data: } ] }, - "unit": "percentunit" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 9, - "y": 67 + "x": 10, + "y": 71 }, - "id": 16, + "id": 236, "options": { "colorMode": "none", "graphMode": "none", @@ -1676,184 +4314,557 @@ data: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^cpu$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "expr": "quantile(0.5, kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", "legendFormat": "cpu", - "range": true, - "refId": "cpu" + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Used CPU", "type": "stat" }, { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 100 }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" + "id": 17, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 4, + "y": 6 + }, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true }, - "thresholdsStyle": { - "mode": "off" + "tooltip": { + "mode": "single", + "sort": "none" } }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "cpu absolute" + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "100%ile", + "range": true, + "refId": "A" }, - "properties": [ - { - "id": "custom.axisPlacement", - "value": "right" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "id": "unit", - "value": "cores" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "cpu %" + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(.95, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "95%ile", + "range": true, + "refId": "B" }, - "properties": [ - { - "id": "custom.scaleDistribution", - "value": { + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.50, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "50%ile", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "10%ile", + "range": true, + "refId": "D" + } + ], + "title": "Tenant Namespace CPU Usage", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { "log": 2, "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } - } - ] - } - ] - }, + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 12, + "y": 6 + }, + "id": 29, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "100%ile", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.95, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "95%ile", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.5, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "50%ile", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "10%ile", + "range": true, + "refId": "D" + } + ], + "title": "Tenant Namespace Memory Usage", + "transformations": [], + "type": "timeseries" + } + ], + "title": "Question 2: How big are tenant namespaces?", + "type": "row" + }, + { + "collapsed": true, "gridPos": { - "h": 8, - "w": 11, + "h": 1, + "w": 24, "x": 0, - "y": 70 + "y": 101 }, - "id": 17, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ + "id": 31, + "panels": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cpu %", - "range": true, - "refId": "cpu %" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 4, + "y": 7 + }, + "id": 46, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "topk(5, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Tenant Namespace CPU Usage", + "transformations": [], + "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "code", - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)\n", - "hide": false, - "legendFormat": "cpu absolute", - "range": true, - "refId": "cpu absolute" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 12, + "y": 7 + }, + "id": 47, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "topk(5, sum by(namespace) (avg_over_time(container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}[6h])))", + "format": "time_series", + "instant": true, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Tenant Namespace Memory Usage", + "transformations": [], + "type": "timeseries" } ], - "title": "Used CPU", - "type": "timeseries" + "title": "Question 3: Which tenants are in the \"big head\" and need XL overrides?", + "type": "row" } ], "refresh": "", "revision": 1, "schemaVersion": 38, - "style": "dark", "tags": [], "templating": { "list": [ diff --git a/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-dashboard.yaml b/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-dashboard.yaml index 48584e77..bbbe165a 100644 --- a/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-dashboard.yaml +++ b/resources/grafana/generated/dashboards/rhacs-cluster-resource-adjustment-dashboard.yaml @@ -35,7 +35,7 @@ spec: "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 25, + "id": 23, "links": [], "liveNow": false, "panels": [ @@ -47,11 +47,2025 @@ spec: "x": 0, "y": 0 }, - "id": 2, + "id": 72, "panels": [], - "title": "Question 1: How big are tenant containers?", + "title": "Overview", "type": "row" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 76, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

Overview

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 9, + "x": 2, + "y": 4 + }, + "id": 48, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

acscs-worker

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 9, + "x": 13, + "y": 4 + }, + "id": 78, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

acscs-infra

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "nodes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 9, + "x": 2, + "y": 7 + }, + "id": 50, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(acscs_worker_nodes)", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "nodes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 9, + "x": 13, + "y": 7 + }, + "id": 60, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(kube_node_role{role=\"acscs-infra\"})", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 9 + }, + "id": 92, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

Memory

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 12 + }, + "id": 100, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 12 + }, + "id": 9, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes)", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "fixed" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 12 + }, + "id": 15, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 8, + "y": 12 + }, + "id": 96, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 9, + "y": 12 + }, + "id": 51, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 12 + }, + "id": 102, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 12 + }, + "id": 66, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 12 + }, + "id": 109, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 19, + "y": 12 + }, + "id": 97, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 12 + }, + "id": 65, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 14 + }, + "id": 101, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 14 + }, + "id": 104, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 14 + }, + "id": 108, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 14 + }, + "id": 103, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 14 + }, + "id": 106, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 14 + }, + "id": 110, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "memory %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "memory abs" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 4, + "w": 9, + "x": 2, + "y": 16 + }, + "id": 63, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory %", + "range": true, + "refId": "memory %" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) \n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory abs", + "range": true, + "refId": "memory absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "memory %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "memory abs" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 4, + "w": 9, + "x": 13, + "y": 16 + }, + "id": 64, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory %", + "range": true, + "refId": "memory %" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) \n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory abs", + "range": true, + "refId": "memory absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 20 + }, + "id": 93, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

CPU

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 23 + }, + "id": 111, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 23 + }, + "id": 10, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 23 + }, + "id": 16, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 8, + "y": 23 + }, + "id": 98, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 9, + "y": 23 + }, + "id": 3, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 23 + }, + "id": 113, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 23 + }, + "id": 69, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 23 + }, + "id": 70, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 19, + "y": 23 + }, + "id": 99, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 23 + }, + "id": 68, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 25 + }, + "id": 112, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, { "datasource": { "type": "prometheus", @@ -61,38 +2075,7 @@ spec: "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -108,82 +2091,290 @@ spec: } ] }, - "unit": "cpu" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 1 + "h": 2, + "w": 2, + "x": 4, + "y": 25 }, - "id": 4, + "id": 114, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "repeat": "TenantContainers", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "legendFormat": "100%ile", - "range": true, - "refId": "A" + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 25 + }, + "id": 115, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.95, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 25 + }, + "id": 116, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "core" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 25 + }, + "id": 117, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 25 + }, + "id": 118, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" } ], - "title": "Tenant $TenantContainers Container CPU Usage", - "type": "timeseries" + "type": "stat" }, { "datasource": { @@ -197,6 +2388,7 @@ spec: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -210,12 +2402,12 @@ spec: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -241,96 +2433,94 @@ spec: } ] }, - "unit": "bytes" + "unit": "percentunit" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "cpu absolute" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "cores" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "cpu %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + } + ] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 1 + "h": 4, + "w": 9, + "x": 2, + "y": 27 }, - "id": 5, + "id": 52, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "right", - "showLegend": true + "placement": "bottom", + "showLegend": false }, "tooltip": { - "mode": "single", + "mode": "multi", "sort": "none" } }, - "repeat": "TenantContainers", - "repeatDirection": "v", + "pluginVersion": "9.4.7", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(1, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "legendFormat": "100%ile", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "expr": "quantile(0.95, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "expr": "quantile(0.5, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", "hide": false, - "legendFormat": "50%ile", + "instant": false, + "interval": "", + "legendFormat": "cpu %", "range": true, - "refId": "C" + "refId": "cpu %" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.1, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)\n", "hide": false, - "legendFormat": "10%ile", + "legendFormat": "cpu absolute", "range": true, - "refId": "D" + "refId": "cpu absolute" } ], - "title": "Tenant $TenantContainers Container Memory Usage", "type": "timeseries" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 17, - "panels": [], - "title": "Question 2: How big are tenant namespaces?", - "type": "row" - }, { "datasource": { "type": "prometheus", @@ -343,6 +2533,7 @@ spec: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -356,12 +2547,12 @@ spec: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -386,134 +2577,224 @@ spec: "value": 80 } ] - } + }, + "unit": "percentunit" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "cpu absolute" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "cores" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "cpu %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + } + ] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 34 + "h": 4, + "w": 9, + "x": 13, + "y": 27 }, - "id": 28, + "id": 71, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "right", - "showLegend": true + "placement": "bottom", + "showLegend": false }, "tooltip": { - "mode": "single", + "mode": "multi", "sort": "none" } }, "pluginVersion": "9.4.7", - "repeatDirection": "v", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "quantile(1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", "format": "time_series", - "legendFormat": "100%ile", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "cpu %", "range": true, - "refId": "A" + "refId": "cpu %" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(.95, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", + "editorMode": "code", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"})\n", "hide": false, - "legendFormat": "95%ile", + "legendFormat": "cpu absolute", "range": true, - "refId": "B" + "refId": "cpu absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 31 + }, + "id": 85, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "content": "", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "shades" }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.50, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" + "decimals": 0, + "mappings": [], + "max": 8, + "min": 6, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "GB/core" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 7, + "x": 2, + "y": 34 + }, + "id": 21, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" } ], - "title": "Tenant Namespace CPU Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 9, + "y": 34 + }, + "id": 79, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "How many GB per CPU do nodes have?\n\nThis corresponds to either memory-optimized, cpu-optimized or general purpose GB/CPU ratios.", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, + "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -528,147 +2809,60 @@ spec: } ] }, - "unit": "bytes" + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, + "h": 4, + "w": 7, + "x": 15, "y": 34 }, - "id": 29, + "id": 62, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "quantile(1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "legendFormat": "100%ile", - "range": true, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"}) / 1024 / 1024 / 1024", + "instant": true, + "legendFormat": "__auto", + "range": false, "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.95, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.5, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" } ], - "title": "Tenant Namespace Memory Usage", - "transformations": [], - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 42 - }, - "id": 31, - "panels": [], - "title": "Question 3: Which tenants are in the \"big head\" and need XL overrides?", - "type": "row" + "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, + "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -682,91 +2876,83 @@ spec: "value": 80 } ] - } + }, + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 43 + "h": 4, + "w": 7, + "x": 2, + "y": 38 }, - "id": 46, + "id": 22, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "topk(5, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", + "instant": true, "legendFormat": "__auto", - "range": true, + "range": false, "refId": "A" } ], - "title": "Tenant Namespace CPU Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "gridPos": { + "h": 4, + "w": 6, + "x": 9, + "y": 38 + }, + "id": 80, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "How many GB / CPU are actually used\n\nThis can help to choose a more appropriate node type, either memory-optimized, cpu-optimized or general-purpose", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -782,31 +2968,32 @@ spec: } ] }, - "unit": "bytes" + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 43 + "h": 4, + "w": 7, + "x": 15, + "y": 38 }, - "id": 47, + "id": 61, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { @@ -815,30 +3002,38 @@ spec: }, "editorMode": "code", "exemplar": false, - "expr": "topk(5, sum by(namespace) (avg_over_time(container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}[6h])))", - "format": "time_series", + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / 1024 / 1024 / 1024", "instant": true, "legendFormat": "__auto", - "range": true, + "range": false, "refId": "A" } ], - "title": "Tenant Namespace Memory Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" }, { - "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 51 + "h": 3, + "w": 20, + "x": 2, + "y": 42 }, - "id": 37, - "panels": [], - "title": "Question 4: What is our overall worker node CPU to Memory Profile? (Pick a worker node type)", - "type": "row" + "id": 125, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -847,21 +3042,21 @@ spec: }, "gridPos": { "h": 3, - "w": 5, - "x": 0, - "y": 52 + "w": 20, + "x": 2, + "y": 45 }, - "id": 48, + "id": 128, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", + "content": "# Fine-Grained Adjustments\n\nFind workloads that are over or under-provisioned", "mode": "markdown" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -874,6 +3069,13 @@ spec: "color": { "mode": "thresholds" }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -888,32 +3090,85 @@ spec: } ] }, - "unit": "nodes" + "unit": "decbytes" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "CPU Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Usage" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Requests" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 2, - "x": 5, - "y": 52 + "h": 13, + "w": 10, + "x": 2, + "y": 48 }, - "id": 5, + "id": 127, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "cellHeight": "sm", + "footer": { + "countRows": false, "fields": "", - "values": false + "reducer": [ + "sum" + ], + "show": false }, - "textMode": "auto" + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Memory Usage / Request" + } + ] }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { @@ -921,14 +3176,137 @@ spec: "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "expr": "sum(acscs_worker_nodes)", - "legendFormat": "__auto", - "range": true, + "exemplar": false, + "expr": "sum(container_memory_usage_bytes{container!=\"\",container!=\"POD\",job=\"kubelet\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "instant": true, + "legendFormat": "{{workload}}", + "range": false, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "D" } ], - "title": "Worker nodes", - "type": "stat" + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "workload", + "mode": "inner" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true + }, + "indexByName": {}, + "renameByName": { + "Time 1": "", + "Time 2": "", + "Value #A": "Memory Requests", + "Value #B": "Memory Usage", + "Value #C": "CPU Usage", + "Value #D": "CPU Requests" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Memory Usage / Request", + "binary": { + "left": "Memory Usage", + "operator": "/", + "right": "Memory Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "CPU Usage / Request", + "binary": { + "left": "CPU Usage", + "operator": "/", + "right": "CPU Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "CPU Requests": 5, + "CPU Usage": 4, + "CPU Usage / Request": 6, + "Memory Requests": 2, + "Memory Usage": 1, + "Memory Usage / Request": 3, + "workload": 0 + }, + "renameByName": {} + } + } + ], + "type": "table" }, { "datasource": { @@ -940,6 +3318,13 @@ spec: "color": { "mode": "thresholds" }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -954,33 +3339,101 @@ spec: } ] }, - "unit": "GB/core" + "unit": "decbytes" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "CPU Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Usage" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Requests" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 3, - "x": 7, - "y": 52 + "h": 13, + "w": 10, + "x": 12, + "y": 48 }, - "id": 22, + "id": 129, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "cellHeight": "sm", + "footer": { + "countRows": false, "fields": "", - "values": false + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Memory Usage" + } + ] + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(container_memory_usage_bytes{container!=\"\",container!=\"POD\",job=\"kubelet\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "B" }, - "textMode": "auto" - }, - "pluginVersion": "9.4.7", - "targets": [ { "datasource": { "type": "prometheus", @@ -988,93 +3441,159 @@ spec: }, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", - "instant": false, - "legendFormat": "__auto", - "range": true, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "instant": true, + "legendFormat": "{{workload}}", + "range": false, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "D" } ], - "title": "Used GB/CPU ratio", - "type": "stat" + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "workload", + "mode": "inner" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true + }, + "indexByName": {}, + "renameByName": { + "Time 1": "", + "Time 2": "", + "Value #A": "Memory Requests", + "Value #B": "Memory Usage", + "Value #C": "CPU Usage", + "Value #D": "CPU Requests" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Memory Usage / Request", + "binary": { + "left": "Memory Usage", + "operator": "/", + "right": "Memory Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "CPU Usage / Request", + "binary": { + "left": "CPU Usage", + "operator": "/", + "right": "CPU Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "CPU Requests": 5, + "CPU Usage": 4, + "CPU Usage / Request": 6, + "Memory Requests": 2, + "Memory Usage": 1, + "Memory Usage / Request": 3, + "workload": 0 + }, + "renameByName": {} + } + } + ], + "type": "table" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "GB/core" - }, - "overrides": [] - }, "gridPos": { "h": 3, - "w": 3, - "x": 10, - "y": 52 + "w": 20, + "x": 2, + "y": 61 }, - "id": 21, + "id": 126, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "", + "mode": "html" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Nodes GB/CPU ratio", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 55 + "y": 64 }, - "id": 39, + "id": 2, "panels": [], - "title": "Question 5: What is our overall cluster worker node utilization? (Scale node count up/down)", + "repeat": "TenantContainers", + "repeatDirection": "h", + "title": "How big is ${TenantContainers}", "type": "row" }, { @@ -1083,22 +3602,22 @@ spec: "uid": "PBFA97CFB590B2093" }, "gridPos": { - "h": 3, - "w": 5, - "x": 0, - "y": 56 + "h": 8, + "w": 2, + "x": 4, + "y": 65 }, - "id": 20, + "id": 136, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", - "mode": "markdown" + "content": "\n \n
\n average ${TenantContainers}\n
", + "mode": "html" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -1106,144 +3625,48 @@ spec: "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, "gridPos": { - "h": 3, + "h": 4, "w": 2, - "x": 5, - "y": 56 + "x": 6, + "y": 65 }, - "id": 2, + "id": 165, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/^memory$/", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "\n \n
\n memory\n
", + "mode": "markdown" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory", - "range": true, - "refId": "memory" - } - ], - "title": "Total Memory", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 7, - "y": 56 + "x": 8, + "y": 65 }, - "id": 9, + "id": 166, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/^memory$/", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "
used
", + "mode": "markdown" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory", - "range": true, - "refId": "memory" - } - ], - "title": "Used Memory", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -1270,17 +3693,17 @@ spec: } ] }, - "unit": "percentunit" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 9, - "y": 56 + "x": 10, + "y": 65 }, - "id": 15, + "id": 149, "options": { "colorMode": "none", "graphMode": "none", @@ -1288,33 +3711,36 @@ spec: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^memory$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "expr": "quantile(0.5, node_namespace_pod_container:container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", "legendFormat": "memory", - "range": true, - "refId": "memory" + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Used Memory", "type": "stat" }, { @@ -1329,6 +3755,7 @@ spec: "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -1342,11 +3769,13 @@ spec: "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "type": "linear" + "log": 2, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -1372,62 +3801,29 @@ spec: } ] }, - "unit": "percentunit" + "unit": "bytes" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "memory %" - }, - "properties": [ - { - "id": "custom.scaleDistribution", - "value": { - "log": 2, - "type": "log" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "memory abs" - }, - "properties": [ - { - "id": "custom.axisPlacement", - "value": "right" - }, - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] + "overrides": [] }, "gridPos": { - "h": 8, - "w": 11, - "x": 0, - "y": 59 + "h": 4, + "w": 8, + "x": 12, + "y": 65 }, - "id": 18, + "id": 5, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom", - "showLegend": false + "placement": "right", + "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "9.4.7", "targets": [ { "datasource": { @@ -1435,34 +3831,61 @@ spec: "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", - "format": "time_series", + "expr": "quantile(1, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "legendFormat": "p100", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "quantile(0.95, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory %", + "includeNullMetadata": true, + "legendFormat": "p95", "range": true, - "refId": "memory %" + "refId": "B", + "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) \n ", - "format": "time_series", + "expr": "quantile(0.5, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory abs", + "includeNullMetadata": true, + "legendFormat": "p50", "range": true, - "refId": "memory absolute" + "refId": "C", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "quantile(0.10, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "legendFormat": "p10", + "range": true, + "refId": "D", + "useBackend": false } ], - "title": "Used Memory", + "title": "Tenant $TenantContainers Container Memory Usage", "type": "timeseries" }, { @@ -1471,22 +3894,22 @@ spec: "uid": "PBFA97CFB590B2093" }, "gridPos": { - "h": 3, - "w": 5, - "x": 0, + "h": 2, + "w": 2, + "x": 8, "y": 67 }, - "id": 49, + "id": 167, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", + "content": "
requested
", "mode": "markdown" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -1514,17 +3937,17 @@ spec: } ] }, - "unit": "cores" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 5, + "x": 10, "y": 67 }, - "id": 3, + "id": 168, "options": { "colorMode": "none", "graphMode": "none", @@ -1532,35 +3955,86 @@ spec: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], - "fields": "/^cpu$/", + "fields": "/^memory$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "expr": "quantile(0.5, kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", - "legendFormat": "cpu", - "range": true, - "refId": "cpu" + "legendFormat": "memory", + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Total CPU", "type": "stat" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 69 + }, + "id": 196, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n cpu\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 8, + "y": 69 + }, + "id": 197, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "
used
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, { "datasource": { "type": "prometheus", @@ -1586,17 +4060,17 @@ spec: } ] }, - "unit": "cores" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 7, - "y": 67 + "x": 10, + "y": 69 }, - "id": 10, + "id": 198, "options": { "colorMode": "none", "graphMode": "none", @@ -1604,34 +4078,198 @@ spec: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^cpu$/", "values": false }, - "textMode": "auto" - }, - "pluginVersion": "9.4.7", - "targets": [ + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "exemplar": false, + "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "memory", + "useBackend": false + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cpu" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 8, + "x": 12, + "y": 69 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "legendFormat": "p100", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(0.95, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "hide": false, + "legendFormat": "p95", + "range": true, + "refId": "B" + }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)", - "format": "time_series", + "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cpu", + "includeNullMetadata": true, + "legendFormat": "p50", "range": true, - "refId": "cpu" + "refId": "C", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(0.1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "hide": false, + "legendFormat": "p10", + "range": true, + "refId": "D" } ], - "title": "Used CPU", - "type": "stat" + "title": "Tenant $TenantContainers Container CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 8, + "y": 71 + }, + "id": 235, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "
requested
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -1658,17 +4296,17 @@ spec: } ] }, - "unit": "percentunit" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 9, - "y": 67 + "x": 10, + "y": 71 }, - "id": 16, + "id": 236, "options": { "colorMode": "none", "graphMode": "none", @@ -1676,184 +4314,557 @@ spec: "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^cpu$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "expr": "quantile(0.5, kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", "legendFormat": "cpu", - "range": true, - "refId": "cpu" + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Used CPU", "type": "stat" }, { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 100 }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" + "id": 17, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 4, + "y": 6 + }, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true }, - "thresholdsStyle": { - "mode": "off" + "tooltip": { + "mode": "single", + "sort": "none" } }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "cpu absolute" + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "100%ile", + "range": true, + "refId": "A" }, - "properties": [ - { - "id": "custom.axisPlacement", - "value": "right" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "id": "unit", - "value": "cores" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "cpu %" + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(.95, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "95%ile", + "range": true, + "refId": "B" }, - "properties": [ - { - "id": "custom.scaleDistribution", - "value": { + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.50, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "50%ile", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "10%ile", + "range": true, + "refId": "D" + } + ], + "title": "Tenant Namespace CPU Usage", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { "log": 2, "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } - } - ] - } - ] - }, + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 12, + "y": 6 + }, + "id": 29, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "100%ile", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.95, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "95%ile", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.5, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "50%ile", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "10%ile", + "range": true, + "refId": "D" + } + ], + "title": "Tenant Namespace Memory Usage", + "transformations": [], + "type": "timeseries" + } + ], + "title": "Question 2: How big are tenant namespaces?", + "type": "row" + }, + { + "collapsed": true, "gridPos": { - "h": 8, - "w": 11, + "h": 1, + "w": 24, "x": 0, - "y": 70 + "y": 101 }, - "id": 17, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ + "id": 31, + "panels": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cpu %", - "range": true, - "refId": "cpu %" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 4, + "y": 7 + }, + "id": 46, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "topk(5, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Tenant Namespace CPU Usage", + "transformations": [], + "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "code", - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)\n", - "hide": false, - "legendFormat": "cpu absolute", - "range": true, - "refId": "cpu absolute" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 12, + "y": 7 + }, + "id": 47, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "topk(5, sum by(namespace) (avg_over_time(container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}[6h])))", + "format": "time_series", + "instant": true, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Tenant Namespace Memory Usage", + "transformations": [], + "type": "timeseries" } ], - "title": "Used CPU", - "type": "timeseries" + "title": "Question 3: Which tenants are in the \"big head\" and need XL overrides?", + "type": "row" } ], "refresh": "", "revision": 1, "schemaVersion": 38, - "style": "dark", "tags": [], "templating": { "list": [ diff --git a/resources/grafana/sources/rhacs-cluster-resource-adjustment.json b/resources/grafana/sources/rhacs-cluster-resource-adjustment.json index ebc6efac..8751dabf 100644 --- a/resources/grafana/sources/rhacs-cluster-resource-adjustment.json +++ b/resources/grafana/sources/rhacs-cluster-resource-adjustment.json @@ -24,7 +24,7 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 25, + "id": 23, "links": [], "liveNow": false, "panels": [ @@ -36,11 +36,2025 @@ "x": 0, "y": 0 }, - "id": 2, + "id": 72, "panels": [], - "title": "Question 1: How big are tenant containers?", + "title": "Overview", "type": "row" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 24, + "x": 0, + "y": 1 + }, + "id": 76, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

Overview

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 9, + "x": 2, + "y": 4 + }, + "id": 48, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

acscs-worker

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 9, + "x": 13, + "y": 4 + }, + "id": 78, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

acscs-infra

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "nodes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 9, + "x": 2, + "y": 7 + }, + "id": 50, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(acscs_worker_nodes)", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "nodes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 9, + "x": 13, + "y": 7 + }, + "id": 60, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "sum(kube_node_role{role=\"acscs-infra\"})", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 9 + }, + "id": 92, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

Memory

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 12 + }, + "id": 100, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 12 + }, + "id": 9, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes)", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "fixed" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 12 + }, + "id": 15, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 8, + "y": 12 + }, + "id": 96, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 9, + "y": 12 + }, + "id": 51, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 12 + }, + "id": 102, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 12 + }, + "id": 66, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 12 + }, + "id": 109, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 19, + "y": 12 + }, + "id": 97, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 12 + }, + "id": 65, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 14 + }, + "id": 101, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 14 + }, + "id": 104, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 14 + }, + "id": 108, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 14 + }, + "id": 103, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 14 + }, + "id": 106, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "dark-red", + "value": null + }, + { + "color": "dark-orange", + "value": 40 + }, + { + "color": "yellow", + "value": 50 + }, + { + "color": "dark-green", + "value": 60 + }, + { + "color": "dark-yellow", + "value": 70 + }, + { + "color": "dark-orange", + "value": 80 + }, + { + "color": "dark-red", + "value": 90 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 14 + }, + "id": 110, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "/^memory$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "memory %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "memory abs" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 4, + "w": 9, + "x": 2, + "y": 16 + }, + "id": 63, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory %", + "range": true, + "refId": "memory %" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) \n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory abs", + "range": true, + "refId": "memory absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "memory %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "memory abs" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "decbytes" + } + ] + } + ] + }, + "gridPos": { + "h": 4, + "w": 9, + "x": 13, + "y": 16 + }, + "id": 64, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory %", + "range": true, + "refId": "memory %" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) \n ", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "memory abs", + "range": true, + "refId": "memory absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 20 + }, + "id": 93, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

CPU

", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 23 + }, + "id": 111, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 4, + "y": 23 + }, + "id": 10, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 23 + }, + "id": 16, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 8, + "y": 23 + }, + "id": 98, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 9, + "y": 23 + }, + "id": 3, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 23 + }, + "id": 113, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

used

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 23 + }, + "id": 69, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 23 + }, + "id": 70, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 1, + "x": 19, + "y": 23 + }, + "id": 99, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n of\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 20, + "y": 23 + }, + "id": 68, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false + }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 2, + "y": 25 + }, + "id": 112, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, { "datasource": { "type": "prometheus", @@ -50,38 +2064,7 @@ "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -97,82 +2080,290 @@ } ] }, - "unit": "cpu" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 1 + "h": 2, + "w": 2, + "x": 4, + "y": 25 }, - "id": 4, + "id": 114, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "repeat": "TenantContainers", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "legendFormat": "100%ile", - "range": true, - "refId": "A" + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"})", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 6, + "y": 25 + }, + "id": 115, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.95, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 13, + "y": 25 + }, + "id": 116, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "

requested

", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "core" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 15, + "y": 25 + }, + "id": 117, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^memory$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"})", + "format": "time_series", "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" + "instant": true, + "interval": "", + "legendFormat": "memory", + "range": false, + "refId": "memory" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 0, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 17, + "y": 25 + }, + "id": 118, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^cpu$/", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", + "format": "time_series", "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "cpu" } ], - "title": "Tenant $TenantContainers Container CPU Usage", - "type": "timeseries" + "type": "stat" }, { "datasource": { @@ -186,6 +2377,7 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -199,12 +2391,12 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -230,96 +2422,94 @@ } ] }, - "unit": "bytes" + "unit": "percentunit" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "cpu absolute" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "cores" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "cpu %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + } + ] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 1 + "h": 4, + "w": 9, + "x": 2, + "y": 27 }, - "id": 5, + "id": 52, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "right", - "showLegend": true + "placement": "bottom", + "showLegend": false }, "tooltip": { - "mode": "single", + "mode": "multi", "sort": "none" } }, - "repeat": "TenantContainers", - "repeatDirection": "v", + "pluginVersion": "9.4.7", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(1, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "legendFormat": "100%ile", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "expr": "quantile(0.95, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", - "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "expr": "quantile(0.5, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "format": "time_series", "hide": false, - "legendFormat": "50%ile", + "instant": false, + "interval": "", + "legendFormat": "cpu %", "range": true, - "refId": "C" + "refId": "cpu %" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "expr": "quantile(0.1, container_memory_working_set_bytes{container=\"$TenantContainers\", namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\"})", + "editorMode": "code", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)\n", "hide": false, - "legendFormat": "10%ile", + "legendFormat": "cpu absolute", "range": true, - "refId": "D" + "refId": "cpu absolute" } ], - "title": "Tenant $TenantContainers Container Memory Usage", "type": "timeseries" }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 33 - }, - "id": 17, - "panels": [], - "title": "Question 2: How big are tenant namespaces?", - "type": "row" - }, { "datasource": { "type": "prometheus", @@ -332,6 +2522,7 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -345,12 +2536,12 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "log": 2, - "type": "log" + "type": "linear" }, "showPoints": "auto", "spanNulls": false, @@ -375,134 +2566,224 @@ "value": 80 } ] - } + }, + "unit": "percentunit" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "cpu absolute" + }, + "properties": [ + { + "id": "custom.axisPlacement", + "value": "right" + }, + { + "id": "unit", + "value": "cores" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "cpu %" + }, + "properties": [ + { + "id": "custom.scaleDistribution", + "value": { + "log": 2, + "type": "log" + } + } + ] + } + ] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 34 + "h": 4, + "w": 9, + "x": 13, + "y": 27 }, - "id": 28, + "id": 71, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "right", - "showLegend": true + "placement": "bottom", + "showLegend": false }, "tooltip": { - "mode": "single", + "mode": "multi", "sort": "none" } }, "pluginVersion": "9.4.7", - "repeatDirection": "v", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "quantile(1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"})\n", "format": "time_series", - "legendFormat": "100%ile", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "cpu %", "range": true, - "refId": "A" + "refId": "cpu %" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(.95, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", + "editorMode": "code", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"})\n", "hide": false, - "legendFormat": "95%ile", + "legendFormat": "cpu absolute", "range": true, - "refId": "B" + "refId": "cpu absolute" + } + ], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 3, + "w": 20, + "x": 2, + "y": 31 + }, + "id": 85, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "content": "", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "shades" }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.50, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" + "decimals": 0, + "mappings": [], + "max": 8, + "min": 6, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "GB/core" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 7, + "x": 2, + "y": 34 + }, + "id": 21, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", + "instant": true, + "legendFormat": "__auto", + "range": false, + "refId": "A" } ], - "title": "Tenant Namespace CPU Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 6, + "x": 9, + "y": 34 + }, + "id": 79, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "How many GB per CPU do nodes have?\n\nThis corresponds to either memory-optimized, cpu-optimized or general purpose GB/CPU ratios.", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, + "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -517,147 +2798,60 @@ } ] }, - "unit": "bytes" + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, + "h": 4, + "w": 7, + "x": 15, "y": 34 }, - "id": 29, + "id": 62, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "quantile(1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "legendFormat": "100%ile", - "range": true, + "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() kube_node_role{role=\"acscs-infra\"}) / 1024 / 1024 / 1024", + "instant": true, + "legendFormat": "__auto", + "range": false, "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.95, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "95%ile", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.5, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "50%ile", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "builder", - "exemplar": false, - "expr": "quantile(0.1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", - "hide": false, - "legendFormat": "10%ile", - "range": true, - "refId": "D" } ], - "title": "Tenant Namespace Memory Usage", - "transformations": [], - "type": "timeseries" - }, - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 42 - }, - "id": 31, - "panels": [], - "title": "Question 3: Which tenants are in the \"big head\" and need XL overrides?", - "type": "row" + "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", "fieldConfig": { "defaults": { "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "mode": "thresholds" }, + "decimals": 0, "mappings": [], "thresholds": { "mode": "absolute", @@ -671,91 +2865,83 @@ "value": 80 } ] - } + }, + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 0, - "y": 43 + "h": 4, + "w": 7, + "x": 2, + "y": 38 }, - "id": 46, + "id": 22, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "builder", + "editorMode": "code", "exemplar": false, - "expr": "topk(5, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", - "format": "time_series", + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", + "instant": true, "legendFormat": "__auto", - "range": true, + "range": false, "refId": "A" } ], - "title": "Tenant Namespace CPU Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "log": 2, - "type": "log" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } + "gridPos": { + "h": 4, + "w": 6, + "x": 9, + "y": 38 + }, + "id": 80, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "How many GB / CPU are actually used\n\nThis can help to choose a more appropriate node type, either memory-optimized, cpu-optimized or general-purpose", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, "mappings": [], "thresholds": { @@ -771,31 +2957,32 @@ } ] }, - "unit": "bytes" + "unit": "GB/core" }, "overrides": [] }, "gridPos": { - "h": 8, - "w": 8, - "x": 8, - "y": 43 + "h": 4, + "w": 7, + "x": 15, + "y": 38 }, - "id": 47, + "id": 61, "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right", - "showLegend": true + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "textMode": "value" }, - "pluginVersion": "9.4.7", - "repeatDirection": "v", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { @@ -804,30 +2991,38 @@ }, "editorMode": "code", "exemplar": false, - "expr": "topk(5, sum by(namespace) (avg_over_time(container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}[6h])))", - "format": "time_series", + "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() kube_node_role{role=\"acscs-infra\"}) / 1024 / 1024 / 1024", "instant": true, "legendFormat": "__auto", - "range": true, + "range": false, "refId": "A" } ], - "title": "Tenant Namespace Memory Usage", - "transformations": [], - "type": "timeseries" + "type": "stat" }, { - "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 51 + "h": 3, + "w": 20, + "x": 2, + "y": 42 }, - "id": 37, - "panels": [], - "title": "Question 4: What is our overall worker node CPU to Memory Profile? (Pick a worker node type)", - "type": "row" + "id": 125, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "", + "mode": "html" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -836,21 +3031,21 @@ }, "gridPos": { "h": 3, - "w": 5, - "x": 0, - "y": 52 + "w": 20, + "x": 2, + "y": 45 }, - "id": 48, + "id": 128, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", + "content": "# Fine-Grained Adjustments\n\nFind workloads that are over or under-provisioned", "mode": "markdown" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -863,6 +3058,13 @@ "color": { "mode": "thresholds" }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -877,32 +3079,85 @@ } ] }, - "unit": "nodes" + "unit": "decbytes" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "CPU Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Usage" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Requests" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 2, - "x": 5, - "y": 52 + "h": 13, + "w": 10, + "x": 2, + "y": 48 }, - "id": 5, + "id": 127, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "cellHeight": "sm", + "footer": { + "countRows": false, "fields": "", - "values": false + "reducer": [ + "sum" + ], + "show": false }, - "textMode": "auto" + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Memory Usage / Request" + } + ] }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { @@ -910,14 +3165,137 @@ "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "expr": "sum(acscs_worker_nodes)", - "legendFormat": "__auto", - "range": true, + "exemplar": false, + "expr": "sum(container_memory_usage_bytes{container!=\"\",container!=\"POD\",job=\"kubelet\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "instant": true, + "legendFormat": "{{workload}}", + "range": false, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!~\"|POD\"} * on (node) group_left() kube_node_role{role=\"acscs-worker\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "D" } ], - "title": "Worker nodes", - "type": "stat" + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "workload", + "mode": "inner" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true + }, + "indexByName": {}, + "renameByName": { + "Time 1": "", + "Time 2": "", + "Value #A": "Memory Requests", + "Value #B": "Memory Usage", + "Value #C": "CPU Usage", + "Value #D": "CPU Requests" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Memory Usage / Request", + "binary": { + "left": "Memory Usage", + "operator": "/", + "right": "Memory Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "CPU Usage / Request", + "binary": { + "left": "CPU Usage", + "operator": "/", + "right": "CPU Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "CPU Requests": 5, + "CPU Usage": 4, + "CPU Usage / Request": 6, + "Memory Requests": 2, + "Memory Usage": 1, + "Memory Usage / Request": 3, + "workload": 0 + }, + "renameByName": {} + } + } + ], + "type": "table" }, { "datasource": { @@ -929,6 +3307,13 @@ "color": { "mode": "thresholds" }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "inspect": false + }, "mappings": [], "thresholds": { "mode": "absolute", @@ -943,33 +3328,101 @@ } ] }, - "unit": "GB/core" + "unit": "decbytes" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "CPU Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Usage / Request" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Usage" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Requests" + }, + "properties": [ + { + "id": "unit", + "value": "core" + } + ] + } + ] }, "gridPos": { - "h": 3, - "w": 3, - "x": 7, - "y": 52 + "h": 13, + "w": 10, + "x": 12, + "y": 48 }, - "id": 22, + "id": 129, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], + "cellHeight": "sm", + "footer": { + "countRows": false, "fields": "", - "values": false + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": "Memory Usage" + } + ] + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(container_memory_usage_bytes{container!=\"\",container!=\"POD\",job=\"kubelet\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "B" }, - "textMode": "auto" - }, - "pluginVersion": "9.4.7", - "targets": [ { "datasource": { "type": "prometheus", @@ -977,93 +3430,159 @@ }, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", - "instant": false, - "legendFormat": "__auto", - "range": true, + "expr": "sum(kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "instant": true, + "legendFormat": "{{workload}}", + "range": false, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "sum(kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container!=\"POD\",container!=\"\"} * on (node) group_left() kube_node_role{role=\"acscs-infra\"} * on (namespace, pod) group_left(workload) namespace_workload_pod:kube_pod_owner:relabel) by (workload)", + "format": "table", + "hide": false, + "instant": true, + "legendFormat": "{{workload}}", + "range": false, + "refId": "D" } ], - "title": "Used GB/CPU ratio", - "type": "stat" + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "workload", + "mode": "inner" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true + }, + "indexByName": {}, + "renameByName": { + "Time 1": "", + "Time 2": "", + "Value #A": "Memory Requests", + "Value #B": "Memory Usage", + "Value #C": "CPU Usage", + "Value #D": "CPU Requests" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Memory Usage / Request", + "binary": { + "left": "Memory Usage", + "operator": "/", + "right": "Memory Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "CPU Usage / Request", + "binary": { + "left": "CPU Usage", + "operator": "/", + "right": "CPU Requests" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": { + "CPU Requests": 5, + "CPU Usage": 4, + "CPU Usage / Request": 6, + "Memory Requests": 2, + "Memory Usage": 1, + "Memory Usage / Request": 3, + "workload": 0 + }, + "renameByName": {} + } + } + ], + "type": "table" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "GB/core" - }, - "overrides": [] - }, "gridPos": { "h": 3, - "w": 3, - "x": 10, - "y": 52 + "w": 20, + "x": 2, + "y": 61 }, - "id": 21, + "id": 126, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "", + "mode": "html" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes) / 1024 / 1024 / 1024", - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Nodes GB/CPU ratio", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 55 + "y": 64 }, - "id": 39, + "id": 2, "panels": [], - "title": "Question 5: What is our overall cluster worker node utilization? (Scale node count up/down)", + "repeat": "TenantContainers", + "repeatDirection": "h", + "title": "How big is ${TenantContainers}", "type": "row" }, { @@ -1072,22 +3591,22 @@ "uid": "PBFA97CFB590B2093" }, "gridPos": { - "h": 3, - "w": 5, - "x": 0, - "y": 56 + "h": 8, + "w": 2, + "x": 4, + "y": 65 }, - "id": 20, + "id": 136, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", - "mode": "markdown" + "content": "\n \n
\n average ${TenantContainers}\n
", + "mode": "html" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -1095,144 +3614,48 @@ "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, "gridPos": { - "h": 3, + "h": 4, "w": 2, - "x": 5, - "y": 56 + "x": 6, + "y": 65 }, - "id": 2, + "id": 165, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/^memory$/", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "\n \n
\n memory\n
", + "mode": "markdown" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory", - "range": true, - "refId": "memory" - } - ], - "title": "Total Memory", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 7, - "y": 56 + "x": 8, + "y": 65 }, - "id": 9, + "id": 166, "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "/^memory$/", - "values": false + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false }, - "textMode": "auto" + "content": "
used
", + "mode": "markdown" }, - "pluginVersion": "9.4.7", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes)", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory", - "range": true, - "refId": "memory" - } - ], - "title": "Used Memory", - "type": "stat" + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -1259,17 +3682,17 @@ } ] }, - "unit": "percentunit" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 9, - "y": 56 + "x": 10, + "y": 65 }, - "id": 15, + "id": 149, "options": { "colorMode": "none", "graphMode": "none", @@ -1277,33 +3700,36 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^memory$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", + "expr": "quantile(0.5, node_namespace_pod_container:container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", "legendFormat": "memory", - "range": true, - "refId": "memory" + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Used Memory", "type": "stat" }, { @@ -1318,6 +3744,7 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -1331,11 +3758,13 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { - "type": "linear" + "log": 2, + "type": "log" }, "showPoints": "auto", "spanNulls": false, @@ -1361,62 +3790,29 @@ } ] }, - "unit": "percentunit" + "unit": "bytes" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "memory %" - }, - "properties": [ - { - "id": "custom.scaleDistribution", - "value": { - "log": 2, - "type": "log" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "memory abs" - }, - "properties": [ - { - "id": "custom.axisPlacement", - "value": "right" - }, - { - "id": "unit", - "value": "decbytes" - } - ] - } - ] + "overrides": [] }, "gridPos": { - "h": 8, - "w": 11, - "x": 0, - "y": 59 + "h": 4, + "w": 8, + "x": 12, + "y": 65 }, - "id": 18, + "id": 5, "options": { "legend": { "calcs": [], "displayMode": "list", - "placement": "bottom", - "showLegend": false + "placement": "right", + "showLegend": true }, "tooltip": { - "mode": "single", - "sort": "none" + "mode": "multi", + "sort": "desc" } }, - "pluginVersion": "9.4.7", "targets": [ { "datasource": { @@ -1424,34 +3820,61 @@ "uid": "PBFA97CFB590B2093" }, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) / \nsum(kube_node_status_capacity{resource=\"memory\", unit=\"byte\"} * on(node) group_left() acscs_worker_nodes)\n ", - "format": "time_series", + "expr": "quantile(1, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "legendFormat": "p100", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "quantile(0.95, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory %", + "includeNullMetadata": true, + "legendFormat": "p95", "range": true, - "refId": "memory %" + "refId": "B", + "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_memory_working_set_bytes{container!=\"\"} * on (node) group_left() acscs_worker_nodes) \n ", - "format": "time_series", + "expr": "quantile(0.5, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "memory abs", + "includeNullMetadata": true, + "legendFormat": "p50", "range": true, - "refId": "memory absolute" + "refId": "C", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "quantile(0.10, container_memory_working_set_bytes{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "legendFormat": "p10", + "range": true, + "refId": "D", + "useBackend": false } ], - "title": "Used Memory", + "title": "Tenant $TenantContainers Container Memory Usage", "type": "timeseries" }, { @@ -1460,22 +3883,22 @@ "uid": "PBFA97CFB590B2093" }, "gridPos": { - "h": 3, - "w": 5, - "x": 0, + "h": 2, + "w": 2, + "x": 8, "y": 67 }, - "id": 49, + "id": 167, "options": { "code": { "language": "plaintext", "showLineNumbers": false, "showMiniMap": false }, - "content": "# Worker Nodes Resources\n\nThis dashboard shows the resource consumption exclusively for **worker nodes**", + "content": "
requested
", "mode": "markdown" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "type": "text" }, { @@ -1503,17 +3926,17 @@ } ] }, - "unit": "cores" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 5, + "x": 10, "y": 67 }, - "id": 3, + "id": 168, "options": { "colorMode": "none", "graphMode": "none", @@ -1521,35 +3944,86 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], - "fields": "/^cpu$/", + "fields": "/^memory$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "expr": "quantile(0.5, kube_pod_container_resource_requests{resource=\"memory\",unit=\"byte\",container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", - "legendFormat": "cpu", - "range": true, - "refId": "cpu" + "legendFormat": "memory", + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Total CPU", "type": "stat" }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 6, + "y": 69 + }, + "id": 196, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "\n \n
\n cpu\n
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 8, + "y": 69 + }, + "id": 197, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "
used
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" + }, { "datasource": { "type": "prometheus", @@ -1575,17 +4049,17 @@ } ] }, - "unit": "cores" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 7, - "y": 67 + "x": 10, + "y": 69 }, - "id": 10, + "id": 198, "options": { "colorMode": "none", "graphMode": "none", @@ -1593,34 +4067,198 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^cpu$/", "values": false }, - "textMode": "auto" - }, - "pluginVersion": "9.4.7", - "targets": [ + "textMode": "value" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "disableTextWrap": false, + "editorMode": "code", + "exemplar": false, + "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "interval": "", + "legendFormat": "cpu", + "range": false, + "refId": "memory", + "useBackend": false + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cpu" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 8, + "x": 12, + "y": 69 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "legendFormat": "p100", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(0.95, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "hide": false, + "legendFormat": "p95", + "range": true, + "refId": "B" + }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)", - "format": "time_series", + "expr": "quantile(0.5, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "fullMetaSearch": false, "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cpu", + "includeNullMetadata": true, + "legendFormat": "p50", "range": true, - "refId": "cpu" + "refId": "C", + "useBackend": false + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "expr": "quantile(0.1, node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", + "hide": false, + "legendFormat": "p10", + "range": true, + "refId": "D" } ], - "title": "Used CPU", - "type": "stat" + "title": "Tenant $TenantContainers Container CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "gridPos": { + "h": 2, + "w": 2, + "x": 8, + "y": 71 + }, + "id": 235, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "
requested
", + "mode": "markdown" + }, + "pluginVersion": "10.2.0", + "type": "text" }, { "datasource": { @@ -1647,17 +4285,17 @@ } ] }, - "unit": "percentunit" + "unit": "core" }, "overrides": [] }, "gridPos": { - "h": 3, + "h": 2, "w": 2, - "x": 9, - "y": 67 + "x": 10, + "y": 71 }, - "id": 16, + "id": 236, "options": { "colorMode": "none", "graphMode": "none", @@ -1665,184 +4303,557 @@ "orientation": "auto", "reduceOptions": { "calcs": [ - "mean" + "last" ], "fields": "/^cpu$/", "values": false }, - "textMode": "auto" + "textMode": "value" }, - "pluginVersion": "9.4.7", + "pluginVersion": "10.2.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, + "disableTextWrap": false, "editorMode": "code", "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", + "expr": "quantile(0.5, kube_pod_container_resource_requests{resource=\"cpu\",unit=\"core\",container=\"$TenantContainers\",namespace=~\"rhacs-.{20}\"})", "format": "time_series", + "fullMetaSearch": false, "hide": false, - "instant": false, + "includeNullMetadata": true, + "instant": true, "interval": "", "legendFormat": "cpu", - "range": true, - "refId": "cpu" + "range": false, + "refId": "memory", + "useBackend": false } ], - "title": "Used CPU", "type": "stat" }, { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" + "collapsed": true, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 100 }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" + "id": 17, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 4, + "y": 6 + }, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true }, - "thresholdsStyle": { - "mode": "off" + "tooltip": { + "mode": "single", + "sort": "none" } }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "cpu absolute" + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "100%ile", + "range": true, + "refId": "A" }, - "properties": [ - { - "id": "custom.axisPlacement", - "value": "right" + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" }, - { - "id": "unit", - "value": "cores" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "cpu %" + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(.95, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "95%ile", + "range": true, + "refId": "B" }, - "properties": [ - { - "id": "custom.scaleDistribution", - "value": { + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.50, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "50%ile", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.1, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "10%ile", + "range": true, + "refId": "D" + } + ], + "title": "Tenant Namespace CPU Usage", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { "log": 2, "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } - } - ] - } - ] - }, + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 12, + "y": 6 + }, + "id": 29, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "100%ile", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.95, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "95%ile", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.5, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "50%ile", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "quantile(0.1, sum by(namespace) (container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "hide": false, + "legendFormat": "10%ile", + "range": true, + "refId": "D" + } + ], + "title": "Tenant Namespace Memory Usage", + "transformations": [], + "type": "timeseries" + } + ], + "title": "Question 2: How big are tenant namespaces?", + "type": "row" + }, + { + "collapsed": true, "gridPos": { - "h": 8, - "w": 11, + "h": 1, + "w": 24, "x": 0, - "y": 70 + "y": 101 }, - "id": 17, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "9.4.7", - "targets": [ + "id": 31, + "panels": [ { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "code", - "exemplar": false, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes) / sum(kube_node_status_capacity{resource=\"cpu\", unit=\"core\"} * on(node) group_left() acscs_worker_nodes)\n", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "cpu %", - "range": true, - "refId": "cpu %" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 4, + "y": 7 + }, + "id": 46, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "builder", + "exemplar": false, + "expr": "topk(5, sum by(namespace) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}))", + "format": "time_series", + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Tenant Namespace CPU Usage", + "transformations": [], + "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "PBFA97CFB590B2093" }, - "editorMode": "code", - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate * on (node) group_left() acscs_worker_nodes)\n", - "hide": false, - "legendFormat": "cpu absolute", - "range": true, - "refId": "cpu absolute" + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "log": 2, + "type": "log" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 12, + "y": 7 + }, + "id": 47, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "9.4.7", + "repeatDirection": "v", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "editorMode": "code", + "exemplar": false, + "expr": "topk(5, sum by(namespace) (avg_over_time(container_memory_working_set_bytes{namespace=~\"rhacs-.*\", namespace!~\"rhacs-(audit-logs|cloudwatch|observability|probe|secured-cluster)\", container!~\"POD|\"}[6h])))", + "format": "time_series", + "instant": true, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Tenant Namespace Memory Usage", + "transformations": [], + "type": "timeseries" } ], - "title": "Used CPU", - "type": "timeseries" + "title": "Question 3: Which tenants are in the \"big head\" and need XL overrides?", + "type": "row" } ], "refresh": "", "revision": 1, "schemaVersion": 38, - "style": "dark", "tags": [], "templating": { "list": [