From f35185e7d7c659431c67b5d4aeb55b2dc8b0fe7e Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Wed, 13 Aug 2025 14:34:01 +0200 Subject: [PATCH 01/10] Added host details check for status disabled and trait COMPUTE_STATUS_DISABLED and fixed missing hosts if no resource provider can be found --- .../extractor/plugins/sap/host_details.sql | 7 ++- .../plugins/sap/host_details_test.go | 47 +++++++++++++++---- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/internal/extractor/plugins/sap/host_details.sql b/internal/extractor/plugins/sap/host_details.sql index 7227999bf..72f2e8041 100644 --- a/internal/extractor/plugins/sap/host_details.sql +++ b/internal/extractor/plugins/sap/host_details.sql @@ -4,9 +4,10 @@ WITH host_traits AS ( h.hypervisor_type, h.running_vms, h.state, + h.status, STRING_AGG(t.name, ',') AS traits FROM openstack_hypervisors h - JOIN openstack_resource_provider_traits t + LEFT JOIN openstack_resource_provider_traits t ON h.id = t.resource_provider_uuid GROUP BY h.service_host, h.hypervisor_type, h.running_vms, h.state ) @@ -33,12 +34,16 @@ SELECT CASE WHEN ht.traits LIKE '%CUSTOM_DECOMMISSIONING%' THEN false WHEN ht.traits LIKE '%CUSTOM_EXTERNAL_CUSTOMER_SUPPORTED%' THEN false + WHEN ht.traits LIKE '%COMPUTE_STATUS_DISABLED%' THEN false + WHEN ht.status != 'enabled' THEN false WHEN ht.state != 'up' THEN false ELSE true END AS enabled, CASE WHEN ht.traits LIKE '%CUSTOM_DECOMMISSIONING%' THEN 'decommissioning' WHEN ht.traits LIKE '%CUSTOM_EXTERNAL_CUSTOMER_SUPPORTED%' THEN 'external customer' + WHEN ht.traits LIKE '%COMPUTE_STATUS_DISABLED%' THEN 'disabled trait' + WHEN ht.status != 'enabled' THEN 'not enabled' WHEN ht.state != 'up' THEN 'not up' ELSE NULL END AS disabled_reason diff --git a/internal/extractor/plugins/sap/host_details_test.go b/internal/extractor/plugins/sap/host_details_test.go index 25e64a7dd..0444b0a75 100644 --- a/internal/extractor/plugins/sap/host_details_test.go +++ b/internal/extractor/plugins/sap/host_details_test.go @@ -54,13 +54,17 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { // Insert mock data into the hypervisors and traits tables hypervisors := []any{ // VMware host - &nova.Hypervisor{ID: "uuid1", ServiceHost: "nova-compute-bb01", HypervisorType: "vcenter", RunningVMs: 5, State: "up"}, + &nova.Hypervisor{ID: "uuid1", ServiceHost: "nova-compute-bb01", HypervisorType: "vcenter", RunningVMs: 5, State: "up", Status: "enabled"}, // KVM host - &nova.Hypervisor{ID: "uuid2", ServiceHost: "node001-bb02", HypervisorType: "qemu", RunningVMs: 3, State: "down"}, + &nova.Hypervisor{ID: "uuid2", ServiceHost: "node001-bb02", HypervisorType: "qemu", RunningVMs: 3, State: "down", Status: "enabled"}, // Ironic host (should be skipped) - &nova.Hypervisor{ID: "uuid3", ServiceHost: "ironic-host-01", HypervisorType: "ironic", RunningVMs: 0, State: "up"}, + &nova.Hypervisor{ID: "uuid3", ServiceHost: "ironic-host-01", HypervisorType: "ironic", RunningVMs: 0, State: "up", Status: "enabled"}, // Host with no special traits - &nova.Hypervisor{ID: "uuid4", ServiceHost: "node002-bb03", HypervisorType: "test", RunningVMs: 2, State: "up"}, + &nova.Hypervisor{ID: "uuid4", ServiceHost: "node002-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "enabled"}, + // Host with disabled status, no entry in the resource providers + &nova.Hypervisor{ID: "uuid5", ServiceHost: "node003-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "disabled"}, + // Host with disabled trait + &nova.Hypervisor{ID: "uuid6", ServiceHost: "node004-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "enabled"}, } if err := testDB.Insert(hypervisors...); err != nil { @@ -74,10 +78,12 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { &placement.Trait{ResourceProviderUUID: "uuid1", Name: "CUSTOM_EXTERNAL_CUSTOMER_SUPPORTED"}, // KVM host traits &placement.Trait{ResourceProviderUUID: "uuid2", Name: "CUSTOM_NUMASIZE_C48_M729"}, - // Ironic host traits (should be ignored) + // Ironic host traits &placement.Trait{ResourceProviderUUID: "uuid3", Name: "TRAIT_IGNORED"}, // Disabled KVM host &placement.Trait{ResourceProviderUUID: "uuid4", Name: "CUSTOM_DECOMMISSIONING"}, + // Host with disabled trait + &placement.Trait{ResourceProviderUUID: "uuid6", Name: "COMPUTE_STATUS_DISABLED"}, } if err := testDB.Insert(traits...); err != nil { @@ -92,6 +98,8 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { &shared.HostAZ{AvailabilityZone: nil, ComputeHost: "node001-bb02"}, &shared.HostAZ{AvailabilityZone: &availabilityZone2, ComputeHost: "node002-bb03"}, &shared.HostAZ{AvailabilityZone: &availabilityZone2, ComputeHost: "ironic-host-01"}, + &shared.HostAZ{AvailabilityZone: &availabilityZone2, ComputeHost: "node003-bb03"}, + &shared.HostAZ{AvailabilityZone: &availabilityZone2, ComputeHost: "node004-bb03"}, } if err := testDB.Insert(host_availability_zones...); err != nil { @@ -117,14 +125,11 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { t.Fatalf("expected no error from Extract, got %v", err) } - // Only non-ironic hosts should be present - if len(hostDetails) != 4 { - t.Fatalf("expected 4 host details, got %d", len(hostDetails)) - } - disabledReasonExternal := "external customer" disabledReasonDecommissioning := "decommissioning" disabledReasonStateNotUp := "not up" + disabledReasonStatusDisabled := "not enabled" + disabledReasonTraitDisabled := "disabled trait" expected := []HostDetails{ { @@ -171,6 +176,28 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { DisabledReason: nil, RunningVMs: 0, }, + { + ComputeHost: "node003-bb03", + AvailabilityZone: "az2", + CPUArchitecture: "unknown", + HypervisorType: "test", + HypervisorFamily: "kvm", + WorkloadType: "general-purpose", + Enabled: false, + DisabledReason: &disabledReasonStatusDisabled, + RunningVMs: 2, + }, + { + ComputeHost: "node004-bb03", + AvailabilityZone: "az2", + CPUArchitecture: "unknown", + HypervisorType: "test", + HypervisorFamily: "kvm", + WorkloadType: "general-purpose", + Enabled: false, + DisabledReason: &disabledReasonTraitDisabled, + RunningVMs: 2, + }, } // Map the host details by compute host name for easier comparison From cdfe93bedec6eafba1f582999e30963114a00954 Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Wed, 13 Aug 2025 15:43:08 +0200 Subject: [PATCH 02/10] Added capacity over time for sections at top --- .../dashboards/cortex-capacity.json | 574 ++++++++++++++++-- 1 file changed, 537 insertions(+), 37 deletions(-) diff --git a/plutono/provisioning/dashboards/cortex-capacity.json b/plutono/provisioning/dashboards/cortex-capacity.json index a85344471..5a43219f2 100644 --- a/plutono/provisioning/dashboards/cortex-capacity.json +++ b/plutono/provisioning/dashboards/cortex-capacity.json @@ -15,8 +15,8 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 4, - "iteration": 1754900095282, + "id": 521, + "iteration": 1755091955823, "links": [], "panels": [ { @@ -27,17 +27,17 @@ "overrides": [] }, "gridPos": { - "h": 16, + "h": 32, "w": 4, "x": 0, "y": 0 }, "id": 195, "options": { - "content": "# Capacity Overview by Workload Type & CPU Architecture\n\nThis section displays current resource utilization organized by **workload type** (General Purpose, HANA) and **CPU architecture** (Cascade Lake, Sapphire Rapids). The visualizations show available capacity percentages for CPU, RAM, and Disk resources across your infrastructure.\n\n**Note:** All capacity calculations are based on Cortex's knowledge database, which includes potential overcommit scenarios (e.g. vCPU overcommit) and considers all initial placement/scheduling constraints and objectives to provide realistic capacity estimates.\n\n## Current Filters Applied\nThe displayed data is filtered based on your current selections:\n- **Availability Zone**: Controls which zones are included in the analysis\n- **Hypervisor Family**: Filters by virtualization platform (KVM, VMware)\n- **Host Status**: Option to include or exclude disabled hosts from calculations\n\n## Understanding the Metrics\nEach panel shows the percentage of **available capacity** (not utilization) for the selected resource type. Higher percentages indicate more available resources for new workloads.\n\n---\n\nFor detailed breakdowns and historical trends, explore the **\"Total Over Current Selection\"** section below, where you can:\n- View aggregated totals across your current filter selection\n- Analyze capacity trends over time\n- Examine per-host capacity distribution\n- Apply additional filters for deeper analysis (specific hypervisors, workload types, CPU architectures)", + "content": "# Capacity Overview by Workload Type & CPU Architecture\n\nThis section displays current resource utilization organized by **workload type** (General Purpose, HANA) and **CPU architecture** (Cascade Lake, Sapphire Rapids). The visualizations show available capacity percentages for CPU, RAM, and Disk resources across your infrastructure.\n\n**Note:** All capacity calculations are based on Cortex's knowledge database, which includes potential overcommit scenarios (e.g. vCPU overcommit) and considers all initial placement/scheduling constraints and objectives to provide realistic capacity estimates.\n\n## Current Filters Applied\nThe displayed data is filtered based on your current selections:\n- **Availability Zone**: Controls which zones are included in the analysis\n- **Hypervisor Family**: Filters by virtualization platform (KVM, VMware)\n\n## Understanding the Metrics\nEach panel shows the percentage of **available capacity** (not utilization) for the selected resource type. Higher percentages indicate more available resources for new workloads.\n\n---\n\nFor detailed breakdowns and historical trends, explore the **\"Total Over Current Selection\"** section below, where you can:\n- View aggregated totals across your current filter selection\n- Analyze capacity trends over time\n- Examine per-host capacity distribution\n- Apply additional filters for deeper analysis (specific hypervisors, workload types, CPU architectures)", "mode": "markdown" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "queryType": "randomWalk", @@ -49,6 +49,256 @@ "title": "Introduction", "type": "text" }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "unit": "percentunit" + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 10, + "x": 4, + "y": 0 + }, + "hiddenSeries": false, + "id": 197, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.39", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "interval": "", + "legendFormat": "CPU Capacity", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "RAM Capacity", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "Disk Capacity", + "refId": "C" + } + ], + "thresholds": [ + { + "$$hashKey": "object:221", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 0.2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "General Purpose / Cascade Lake over time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:149", + "format": "percentunit", + "label": null, + "logBase": 1, + "max": "1", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:150", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "unit": "percentunit" + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 10, + "x": 14, + "y": 0 + }, + "hiddenSeries": false, + "id": 198, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.39", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "interval": "", + "legendFormat": "CPU Capacity", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "RAM Capacity", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "Disk Capacity", + "refId": "C" + } + ], + "thresholds": [ + { + "$$hashKey": "object:221", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 0.2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "General Purpose / Sapphire Rapids over time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:149", + "format": "percentunit", + "label": null, + "logBase": 1, + "max": "1", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:150", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, { "datasource": "prometheus-openstack", "fieldConfig": { @@ -82,7 +332,7 @@ "h": 8, "w": 10, "x": 4, - "y": 0 + "y": 8 }, "id": 170, "options": { @@ -100,7 +350,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -168,7 +418,7 @@ "h": 8, "w": 10, "x": 14, - "y": 0 + "y": 8 }, "id": 177, "options": { @@ -186,7 +436,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -221,6 +471,256 @@ "title": "General Purpose / Sapphire Rapids", "type": "stat" }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "unit": "percentunit" + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 10, + "x": 4, + "y": 16 + }, + "hiddenSeries": false, + "id": 200, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.39", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "interval": "", + "legendFormat": "CPU Capacity", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "RAM Capacity", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "Disk Capacity", + "refId": "C" + } + ], + "thresholds": [ + { + "$$hashKey": "object:221", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 0.2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "HANA / Cascade Lake over time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:149", + "format": "percentunit", + "label": null, + "logBase": 1, + "max": "1", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:150", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "unit": "percentunit" + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 10, + "x": 14, + "y": 16 + }, + "hiddenSeries": false, + "id": 199, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.39", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "interval": "", + "legendFormat": "CPU Capacity", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "RAM Capacity", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "Disk Capacity", + "refId": "C" + } + ], + "thresholds": [ + { + "$$hashKey": "object:221", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 0.2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "HANA / Sapphire Rapids over time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:149", + "format": "percentunit", + "label": null, + "logBase": 1, + "max": "1", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:150", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, { "datasource": "prometheus-openstack", "fieldConfig": { @@ -254,7 +754,7 @@ "h": 8, "w": 10, "x": 4, - "y": 8 + "y": 24 }, "id": 179, "options": { @@ -272,7 +772,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -340,7 +840,7 @@ "h": 8, "w": 10, "x": 14, - "y": 8 + "y": 24 }, "id": 178, "options": { @@ -358,7 +858,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -400,7 +900,7 @@ "h": 1, "w": 24, "x": 0, - "y": 16 + "y": 32 }, "id": 165, "panels": [], @@ -496,7 +996,7 @@ "h": 7, "w": 8, "x": 0, - "y": 17 + "y": 33 }, "id": 168, "options": { @@ -514,7 +1014,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -655,7 +1155,7 @@ "h": 7, "w": 8, "x": 8, - "y": 17 + "y": 33 }, "id": 180, "options": { @@ -673,7 +1173,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -814,7 +1314,7 @@ "h": 7, "w": 8, "x": 16, - "y": 17 + "y": 33 }, "id": 181, "options": { @@ -832,7 +1332,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -899,7 +1399,7 @@ "h": 8, "w": 8, "x": 0, - "y": 24 + "y": 40 }, "hiddenSeries": false, "id": 183, @@ -919,7 +1419,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1006,7 +1506,7 @@ "h": 8, "w": 8, "x": 8, - "y": 24 + "y": 40 }, "hiddenSeries": false, "id": 184, @@ -1026,7 +1526,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1113,7 +1613,7 @@ "h": 8, "w": 8, "x": 16, - "y": 24 + "y": 40 }, "hiddenSeries": false, "id": 185, @@ -1133,7 +1633,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1218,7 +1718,7 @@ "h": 8, "w": 8, "x": 0, - "y": 32 + "y": 48 }, "hiddenSeries": false, "id": 187, @@ -1238,7 +1738,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1329,7 +1829,7 @@ "h": 8, "w": 8, "x": 8, - "y": 32 + "y": 48 }, "hiddenSeries": false, "id": 188, @@ -1349,7 +1849,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1440,7 +1940,7 @@ "h": 8, "w": 8, "x": 16, - "y": 32 + "y": 48 }, "hiddenSeries": false, "id": 189, @@ -1460,7 +1960,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1819,14 +2319,14 @@ "h": 28, "w": 24, "x": 0, - "y": 40 + "y": 56 }, "id": 163, "options": { "showHeader": true, "sortBy": [] }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -2082,7 +2582,7 @@ "h": 23, "w": 24, "x": 0, - "y": 68 + "y": 84 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2154,7 +2654,7 @@ "h": 23, "w": 24, "x": 0, - "y": 91 + "y": 107 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2226,7 +2726,7 @@ "h": 23, "w": 24, "x": 0, - "y": 114 + "y": 130 }, "heatmap": {}, "hideZeroBuckets": false, From 04d1034f21aeff0d03c063d3d69839c8b955bd27 Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Wed, 13 Aug 2025 15:58:57 +0200 Subject: [PATCH 03/10] Fix SQL grouping to include host status in host_traits query --- internal/extractor/plugins/sap/host_details.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/extractor/plugins/sap/host_details.sql b/internal/extractor/plugins/sap/host_details.sql index 72f2e8041..00bca931b 100644 --- a/internal/extractor/plugins/sap/host_details.sql +++ b/internal/extractor/plugins/sap/host_details.sql @@ -9,7 +9,7 @@ WITH host_traits AS ( FROM openstack_hypervisors h LEFT JOIN openstack_resource_provider_traits t ON h.id = t.resource_provider_uuid - GROUP BY h.service_host, h.hypervisor_type, h.running_vms, h.state + GROUP BY h.service_host, h.hypervisor_type, h.running_vms, h.state, h.status ) SELECT ht.service_host AS compute_host, From 13e813a32bec7c61a357dcde586ee3475da57614 Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Thu, 14 Aug 2025 12:48:54 +0200 Subject: [PATCH 04/10] Added service_disabled_reason to the disabled_reason column for hypervisor state and status --- .../extractor/plugins/sap/host_details.sql | 9 ++++---- .../plugins/sap/host_details_test.go | 22 ++++++++----------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/internal/extractor/plugins/sap/host_details.sql b/internal/extractor/plugins/sap/host_details.sql index 00bca931b..8f8c01607 100644 --- a/internal/extractor/plugins/sap/host_details.sql +++ b/internal/extractor/plugins/sap/host_details.sql @@ -5,11 +5,12 @@ WITH host_traits AS ( h.running_vms, h.state, h.status, + h.service_disabled_reason, STRING_AGG(t.name, ',') AS traits FROM openstack_hypervisors h LEFT JOIN openstack_resource_provider_traits t ON h.id = t.resource_provider_uuid - GROUP BY h.service_host, h.hypervisor_type, h.running_vms, h.state, h.status + GROUP BY h.service_host, h.hypervisor_type, h.running_vms, h.state, h.status, h.service_disabled_reason ) SELECT ht.service_host AS compute_host, @@ -42,9 +43,9 @@ SELECT CASE WHEN ht.traits LIKE '%CUSTOM_DECOMMISSIONING%' THEN 'decommissioning' WHEN ht.traits LIKE '%CUSTOM_EXTERNAL_CUSTOMER_SUPPORTED%' THEN 'external customer' - WHEN ht.traits LIKE '%COMPUTE_STATUS_DISABLED%' THEN 'disabled trait' - WHEN ht.status != 'enabled' THEN 'not enabled' - WHEN ht.state != 'up' THEN 'not up' + WHEN ht.traits LIKE '%COMPUTE_STATUS_DISABLED%' THEN 'compute status disabled trait (' || COALESCE(ht.service_disabled_reason, '--') || ')' + WHEN ht.status != 'enabled' THEN 'status: not enabled (' || COALESCE(ht.service_disabled_reason, '--') || ')' + WHEN ht.state != 'up' THEN 'state: not up (' || COALESCE(ht.service_disabled_reason, '-') || ')' ELSE NULL END AS disabled_reason FROM host_traits ht diff --git a/internal/extractor/plugins/sap/host_details_test.go b/internal/extractor/plugins/sap/host_details_test.go index 0444b0a75..d0f342b72 100644 --- a/internal/extractor/plugins/sap/host_details_test.go +++ b/internal/extractor/plugins/sap/host_details_test.go @@ -51,6 +51,8 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { t.Fatalf("expected no error, got %v", err) } + exampleServiceDisabledReason := "example reason" + // Insert mock data into the hypervisors and traits tables hypervisors := []any{ // VMware host @@ -62,9 +64,9 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { // Host with no special traits &nova.Hypervisor{ID: "uuid4", ServiceHost: "node002-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "enabled"}, // Host with disabled status, no entry in the resource providers - &nova.Hypervisor{ID: "uuid5", ServiceHost: "node003-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "disabled"}, + &nova.Hypervisor{ID: "uuid5", ServiceHost: "node003-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "disabled", ServiceDisabledReason: &exampleServiceDisabledReason}, // Host with disabled trait - &nova.Hypervisor{ID: "uuid6", ServiceHost: "node004-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "enabled"}, + &nova.Hypervisor{ID: "uuid6", ServiceHost: "node004-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "enabled", ServiceDisabledReason: &exampleServiceDisabledReason}, } if err := testDB.Insert(hypervisors...); err != nil { @@ -125,12 +127,6 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { t.Fatalf("expected no error from Extract, got %v", err) } - disabledReasonExternal := "external customer" - disabledReasonDecommissioning := "decommissioning" - disabledReasonStateNotUp := "not up" - disabledReasonStatusDisabled := "not enabled" - disabledReasonTraitDisabled := "disabled trait" - expected := []HostDetails{ { ComputeHost: "nova-compute-bb01", @@ -140,7 +136,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "vmware", WorkloadType: "hana", Enabled: false, - DisabledReason: &disabledReasonExternal, + DisabledReason: &[]string{"external customer"}[0], RunningVMs: 5, }, { @@ -151,7 +147,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "kvm", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &disabledReasonStateNotUp, + DisabledReason: &[]string{"state: not up (--)"}[0], RunningVMs: 3, }, { @@ -162,7 +158,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorType: "test", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &disabledReasonDecommissioning, + DisabledReason: &[]string{"decommissioning"}[0], RunningVMs: 2, }, { @@ -184,7 +180,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "kvm", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &disabledReasonStatusDisabled, + DisabledReason: &[]string{"status: not enabled (" + exampleServiceDisabledReason + ")"}[0], RunningVMs: 2, }, { @@ -195,7 +191,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "kvm", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &disabledReasonTraitDisabled, + DisabledReason: &[]string{"compute status disabled trait (" + exampleServiceDisabledReason + ")"}[0], RunningVMs: 2, }, } From d6f3e5495c19f34796309d251f8bf7aa810a8fa2 Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Thu, 14 Aug 2025 12:52:52 +0200 Subject: [PATCH 05/10] Refactor disabled_reason formatting in host_details SQL and tests for clarity --- internal/extractor/plugins/sap/host_details.sql | 6 +++--- internal/extractor/plugins/sap/host_details_test.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/extractor/plugins/sap/host_details.sql b/internal/extractor/plugins/sap/host_details.sql index 8f8c01607..e96436728 100644 --- a/internal/extractor/plugins/sap/host_details.sql +++ b/internal/extractor/plugins/sap/host_details.sql @@ -43,9 +43,9 @@ SELECT CASE WHEN ht.traits LIKE '%CUSTOM_DECOMMISSIONING%' THEN 'decommissioning' WHEN ht.traits LIKE '%CUSTOM_EXTERNAL_CUSTOMER_SUPPORTED%' THEN 'external customer' - WHEN ht.traits LIKE '%COMPUTE_STATUS_DISABLED%' THEN 'compute status disabled trait (' || COALESCE(ht.service_disabled_reason, '--') || ')' - WHEN ht.status != 'enabled' THEN 'status: not enabled (' || COALESCE(ht.service_disabled_reason, '--') || ')' - WHEN ht.state != 'up' THEN 'state: not up (' || COALESCE(ht.service_disabled_reason, '-') || ')' + WHEN ht.traits LIKE '%COMPUTE_STATUS_DISABLED%' THEN '[compute status disabled trait] ' || COALESCE(ht.service_disabled_reason, '--') + WHEN ht.status != 'enabled' THEN '[status: not enabled] ' || COALESCE(ht.service_disabled_reason, '--') + WHEN ht.state != 'up' THEN '[state: not up] ' || COALESCE(ht.service_disabled_reason, '--') ELSE NULL END AS disabled_reason FROM host_traits ht diff --git a/internal/extractor/plugins/sap/host_details_test.go b/internal/extractor/plugins/sap/host_details_test.go index d0f342b72..bdb78dae5 100644 --- a/internal/extractor/plugins/sap/host_details_test.go +++ b/internal/extractor/plugins/sap/host_details_test.go @@ -147,7 +147,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "kvm", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &[]string{"state: not up (--)"}[0], + DisabledReason: &[]string{"[state: not up] --"}[0], RunningVMs: 3, }, { @@ -180,7 +180,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "kvm", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &[]string{"status: not enabled (" + exampleServiceDisabledReason + ")"}[0], + DisabledReason: &[]string{"[status: not enabled] " + exampleServiceDisabledReason}[0], RunningVMs: 2, }, { @@ -191,7 +191,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "kvm", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &[]string{"compute status disabled trait (" + exampleServiceDisabledReason + ")"}[0], + DisabledReason: &[]string{"[compute status disabled trait] " + exampleServiceDisabledReason}[0], RunningVMs: 2, }, } From f330bb6c0067653fe0a1ac157425b637f2d9f3ea Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Fri, 15 Aug 2025 08:26:25 +0200 Subject: [PATCH 06/10] Added own section for cpu_architecture / workload_type combinations --- .../dashboards/cortex-capacity.json | 597 ++++++++++++------ 1 file changed, 415 insertions(+), 182 deletions(-) diff --git a/plutono/provisioning/dashboards/cortex-capacity.json b/plutono/provisioning/dashboards/cortex-capacity.json index 5a43219f2..75e3ec201 100644 --- a/plutono/provisioning/dashboards/cortex-capacity.json +++ b/plutono/provisioning/dashboards/cortex-capacity.json @@ -15,8 +15,8 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 521, - "iteration": 1755091955823, + "id": 571, + "iteration": 1755170769414, "links": [], "panels": [ { @@ -27,8 +27,8 @@ "overrides": [] }, "gridPos": { - "h": 32, - "w": 4, + "h": 14, + "w": 24, "x": 0, "y": 0 }, @@ -37,7 +37,7 @@ "content": "# Capacity Overview by Workload Type & CPU Architecture\n\nThis section displays current resource utilization organized by **workload type** (General Purpose, HANA) and **CPU architecture** (Cascade Lake, Sapphire Rapids). The visualizations show available capacity percentages for CPU, RAM, and Disk resources across your infrastructure.\n\n**Note:** All capacity calculations are based on Cortex's knowledge database, which includes potential overcommit scenarios (e.g. vCPU overcommit) and considers all initial placement/scheduling constraints and objectives to provide realistic capacity estimates.\n\n## Current Filters Applied\nThe displayed data is filtered based on your current selections:\n- **Availability Zone**: Controls which zones are included in the analysis\n- **Hypervisor Family**: Filters by virtualization platform (KVM, VMware)\n\n## Understanding the Metrics\nEach panel shows the percentage of **available capacity** (not utilization) for the selected resource type. Higher percentages indicate more available resources for new workloads.\n\n---\n\nFor detailed breakdowns and historical trends, explore the **\"Total Over Current Selection\"** section below, where you can:\n- View aggregated totals across your current filter selection\n- Analyze capacity trends over time\n- Examine per-host capacity distribution\n- Apply additional filters for deeper analysis (specific hypervisors, workload types, CPU architectures)", "mode": "markdown" }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "queryType": "randomWalk", @@ -49,6 +49,20 @@ "title": "Introduction", "type": "text" }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 203, + "panels": [], + "title": "General Purpose / Cascade Lake", + "type": "row" + }, { "aliasColors": {}, "bars": false, @@ -64,10 +78,10 @@ "fill": 0, "fillGradient": 0, "gridPos": { - "h": 8, - "w": 10, - "x": 4, - "y": 0 + "h": 13, + "w": 12, + "x": 0, + "y": 15 }, "hiddenSeries": false, "id": 197, @@ -87,7 +101,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", @@ -100,7 +114,7 @@ "exemplar": true, "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "interval": "", - "legendFormat": "CPU Capacity", + "legendFormat": "CPU", "queryType": "randomWalk", "refId": "A" }, @@ -109,7 +123,7 @@ "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", - "legendFormat": "RAM Capacity", + "legendFormat": "RAM", "refId": "B" }, { @@ -117,7 +131,7 @@ "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", - "legendFormat": "Disk Capacity", + "legendFormat": "Disk", "refId": "C" } ], @@ -135,7 +149,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "General Purpose / Cascade Lake over time", + "title": "Capacity over time", "tooltip": { "shared": true, "sort": 0, @@ -174,6 +188,192 @@ "alignLevel": null } }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "yellow", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 15 + }, + "id": 170, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "7.5.40", + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "instant": true, + "interval": "", + "legendFormat": "CPU", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "RAM", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Disk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Current Capacity", + "type": "stat" + }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "yellow", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 23 + }, + "id": 201, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "7.5.40", + "targets": [ + { + "exemplar": true, + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "instant": true, + "interval": "", + "legendFormat": "CPU", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 483840) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "RAM", + "refId": "B" + }, + { + "exemplar": true, + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Disk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Predicted Capacity in 2 months", + "type": "stat" + }, + { + "collapsed": true, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 207, + "panels": [], + "title": "HANA / Cascade Lake", + "type": "row" + }, { "aliasColors": {}, "bars": false, @@ -189,13 +389,13 @@ "fill": 0, "fillGradient": 0, "gridPos": { - "h": 8, - "w": 10, - "x": 14, - "y": 0 + "h": 13, + "w": 12, + "x": 0, + "y": 29 }, "hiddenSeries": false, - "id": 198, + "id": 200, "legend": { "avg": false, "current": false, @@ -212,7 +412,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", @@ -223,7 +423,7 @@ "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "interval": "", "legendFormat": "CPU Capacity", "queryType": "randomWalk", @@ -231,7 +431,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", "legendFormat": "RAM Capacity", @@ -239,7 +439,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", "legendFormat": "Disk Capacity", @@ -260,7 +460,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "General Purpose / Sapphire Rapids over time", + "title": "Capacity over time", "tooltip": { "shared": true, "sort": 0, @@ -330,15 +530,15 @@ }, "gridPos": { "h": 8, - "w": 10, - "x": 4, - "y": 8 + "w": 12, + "x": 12, + "y": 29 }, - "id": 170, + "id": 179, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -350,11 +550,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "instant": true, "interval": "", "legendFormat": "CPU", @@ -363,7 +563,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "instant": true, "interval": "", @@ -372,7 +572,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "instant": true, "interval": "", @@ -382,7 +582,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "General Purpose / Cascade Lake", + "title": "Current Capacity", "type": "stat" }, { @@ -415,16 +615,16 @@ "overrides": [] }, "gridPos": { - "h": 8, - "w": 10, - "x": 14, - "y": 8 + "h": 5, + "w": 12, + "x": 12, + "y": 37 }, - "id": 177, + "id": 208, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -436,11 +636,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", "instant": true, "interval": "", "legendFormat": "CPU", @@ -449,7 +649,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -458,7 +658,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -468,7 +668,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "General Purpose / Sapphire Rapids", + "title": "Predicted Capacity in 2 months", "type": "stat" }, { @@ -488,11 +688,11 @@ "gridPos": { "h": 8, "w": 10, - "x": 4, - "y": 16 + "x": 14, + "y": 42 }, "hiddenSeries": false, - "id": 200, + "id": 198, "legend": { "avg": false, "current": false, @@ -509,7 +709,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", @@ -520,7 +720,7 @@ "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "interval": "", "legendFormat": "CPU Capacity", "queryType": "randomWalk", @@ -528,7 +728,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", "legendFormat": "RAM Capacity", @@ -536,7 +736,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", "legendFormat": "Disk Capacity", @@ -557,7 +757,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "HANA / Cascade Lake over time", + "title": "General Purpose / Sapphire Rapids over time", "tooltip": { "shared": true, "sort": 0, @@ -596,6 +796,92 @@ "alignLevel": null } }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "yellow", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 10, + "x": 14, + "y": 50 + }, + "id": 177, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "7.5.40", + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "instant": true, + "interval": "", + "legendFormat": "CPU", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "RAM", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Disk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "General Purpose / Sapphire Rapids", + "type": "stat" + }, { "aliasColors": {}, "bars": false, @@ -614,7 +900,7 @@ "h": 8, "w": 10, "x": 14, - "y": 16 + "y": 58 }, "hiddenSeries": false, "id": 199, @@ -634,7 +920,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", @@ -721,92 +1007,6 @@ "alignLevel": null } }, - { - "datasource": "prometheus-openstack", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "yellow", - "value": 0.2 - }, - { - "color": "green", - "value": 0.3 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 10, - "x": 4, - "y": 24 - }, - "id": 179, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.5.39", - "targets": [ - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", - "instant": true, - "interval": "", - "legendFormat": "CPU", - "queryType": "randomWalk", - "refId": "A" - }, - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "RAM", - "refId": "B" - }, - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Disk", - "refId": "C" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "HANA / Cascade Lake", - "type": "stat" - }, { "datasource": "prometheus-openstack", "fieldConfig": { @@ -840,13 +1040,13 @@ "h": 8, "w": 10, "x": 14, - "y": 24 + "y": 66 }, "id": 178, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -858,7 +1058,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "exemplar": true, @@ -900,7 +1100,7 @@ "h": 1, "w": 24, "x": 0, - "y": 32 + "y": 74 }, "id": 165, "panels": [], @@ -996,7 +1196,7 @@ "h": 7, "w": 8, "x": 0, - "y": 33 + "y": 75 }, "id": 168, "options": { @@ -1014,7 +1214,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "exemplar": true, @@ -1155,7 +1355,7 @@ "h": 7, "w": 8, "x": 8, - "y": 33 + "y": 75 }, "id": 180, "options": { @@ -1173,7 +1373,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "exemplar": true, @@ -1314,7 +1514,7 @@ "h": 7, "w": 8, "x": 16, - "y": 33 + "y": 75 }, "id": 181, "options": { @@ -1332,7 +1532,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "exemplar": true, @@ -1399,7 +1599,7 @@ "h": 8, "w": 8, "x": 0, - "y": 40 + "y": 82 }, "hiddenSeries": false, "id": 183, @@ -1419,11 +1619,23 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", - "seriesOverrides": [], + "seriesOverrides": [ + { + "$$hashKey": "object:357", + "alias": "Available", + "color": "#5794F2", + "fill": 10 + }, + { + "$$hashKey": "object:641", + "alias": "Total", + "color": "#C0D8FF" + } + ], "spaceLength": 10, "stack": false, "steppedLine": false, @@ -1506,7 +1718,7 @@ "h": 8, "w": 8, "x": 8, - "y": 40 + "y": 82 }, "hiddenSeries": false, "id": 184, @@ -1526,11 +1738,23 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", - "seriesOverrides": [], + "seriesOverrides": [ + { + "$$hashKey": "object:456", + "alias": "Available", + "color": "#5794F2", + "fill": 10 + }, + { + "$$hashKey": "object:830", + "alias": "Total", + "color": "#C0D8FF" + } + ], "spaceLength": 10, "stack": false, "steppedLine": false, @@ -1613,7 +1837,7 @@ "h": 8, "w": 8, "x": 16, - "y": 40 + "y": 82 }, "hiddenSeries": false, "id": 185, @@ -1633,11 +1857,23 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", - "seriesOverrides": [], + "seriesOverrides": [ + { + "$$hashKey": "object:544", + "alias": "Available", + "color": "#5794F2", + "fill": 10 + }, + { + "$$hashKey": "object:932", + "alias": "Total", + "color": "#C0D8FF" + } + ], "spaceLength": 10, "stack": false, "steppedLine": false, @@ -1718,7 +1954,7 @@ "h": 8, "w": 8, "x": 0, - "y": 48 + "y": 90 }, "hiddenSeries": false, "id": 187, @@ -1738,7 +1974,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", @@ -1829,7 +2065,7 @@ "h": 8, "w": 8, "x": 8, - "y": 48 + "y": 90 }, "hiddenSeries": false, "id": 188, @@ -1849,7 +2085,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", @@ -1940,7 +2176,7 @@ "h": 8, "w": 8, "x": 16, - "y": 48 + "y": 90 }, "hiddenSeries": false, "id": 189, @@ -1960,7 +2196,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "pointradius": 2, "points": false, "renderer": "flot", @@ -2319,14 +2555,14 @@ "h": 28, "w": 24, "x": 0, - "y": 56 + "y": 98 }, "id": 163, "options": { "showHeader": true, "sortBy": [] }, - "pluginVersion": "7.5.39", + "pluginVersion": "7.5.40", "targets": [ { "exemplar": true, @@ -2582,7 +2818,7 @@ "h": 23, "w": 24, "x": 0, - "y": 84 + "y": 126 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2654,7 +2890,7 @@ "h": 23, "w": 24, "x": 0, - "y": 107 + "y": 149 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2726,7 +2962,7 @@ "h": 23, "w": 24, "x": 0, - "y": 130 + "y": 172 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2785,12 +3021,8 @@ "allValue": null, "current": { "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] + "text": "eu-de-2a", + "value": "eu-de-2a" }, "datasource": "prometheus-openstack", "definition": "label_values(cortex_sap_host_utilization_per_host_pct, availability_zone)", @@ -2855,6 +3087,7 @@ "allValue": null, "current": { "selected": true, + "tags": [], "text": [ "All" ], @@ -2994,12 +3227,12 @@ ] }, "time": { - "from": "now-6h", + "from": "now-7d", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Cortex Host Capacity", "uid": "cortex-host-capacity", - "version": 1 + "version": 11 } \ No newline at end of file From 9fab6e76596468dec433ebdcefdd73a118649585 Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Fri, 15 Aug 2025 10:20:53 +0200 Subject: [PATCH 07/10] Fixed prediction section --- .../dashboards/cortex-capacity.json | 67 +++++++++---------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/plutono/provisioning/dashboards/cortex-capacity.json b/plutono/provisioning/dashboards/cortex-capacity.json index 75e3ec201..bb9e2b555 100644 --- a/plutono/provisioning/dashboards/cortex-capacity.json +++ b/plutono/provisioning/dashboards/cortex-capacity.json @@ -15,8 +15,8 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 571, - "iteration": 1755170769414, + "id": 1, + "iteration": 1755245876462, "links": [], "panels": [ { @@ -37,7 +37,7 @@ "content": "# Capacity Overview by Workload Type & CPU Architecture\n\nThis section displays current resource utilization organized by **workload type** (General Purpose, HANA) and **CPU architecture** (Cascade Lake, Sapphire Rapids). The visualizations show available capacity percentages for CPU, RAM, and Disk resources across your infrastructure.\n\n**Note:** All capacity calculations are based on Cortex's knowledge database, which includes potential overcommit scenarios (e.g. vCPU overcommit) and considers all initial placement/scheduling constraints and objectives to provide realistic capacity estimates.\n\n## Current Filters Applied\nThe displayed data is filtered based on your current selections:\n- **Availability Zone**: Controls which zones are included in the analysis\n- **Hypervisor Family**: Filters by virtualization platform (KVM, VMware)\n\n## Understanding the Metrics\nEach panel shows the percentage of **available capacity** (not utilization) for the selected resource type. Higher percentages indicate more available resources for new workloads.\n\n---\n\nFor detailed breakdowns and historical trends, explore the **\"Total Over Current Selection\"** section below, where you can:\n- View aggregated totals across your current filter selection\n- Analyze capacity trends over time\n- Examine per-host capacity distribution\n- Apply additional filters for deeper analysis (specific hypervisors, workload types, CPU architectures)", "mode": "markdown" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "queryType": "randomWalk", @@ -101,7 +101,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -239,7 +239,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -325,11 +325,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "instant": true, "interval": "", "legendFormat": "CPU", @@ -338,7 +338,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 483840) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 483840) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -347,7 +347,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -412,7 +412,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -550,7 +550,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -636,11 +636,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "instant": true, "interval": "", "legendFormat": "CPU", @@ -649,7 +649,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -658,7 +658,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=~\"$enabled\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -709,7 +709,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -847,7 +847,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -920,7 +920,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -1058,7 +1058,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -1214,7 +1214,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -1373,7 +1373,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -1532,7 +1532,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -1619,7 +1619,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -1738,7 +1738,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -1857,7 +1857,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -1974,7 +1974,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -2085,7 +2085,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -2196,7 +2196,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "pointradius": 2, "points": false, "renderer": "flot", @@ -2562,7 +2562,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.37", "targets": [ { "exemplar": true, @@ -3020,9 +3020,9 @@ { "allValue": null, "current": { - "selected": true, - "text": "eu-de-2a", - "value": "eu-de-2a" + "selected": false, + "text": "All", + "value": "$__all" }, "datasource": "prometheus-openstack", "definition": "label_values(cortex_sap_host_utilization_per_host_pct, availability_zone)", @@ -3087,7 +3087,6 @@ "allValue": null, "current": { "selected": true, - "tags": [], "text": [ "All" ], @@ -3234,5 +3233,5 @@ "timezone": "", "title": "Cortex Host Capacity", "uid": "cortex-host-capacity", - "version": 11 + "version": 1 } \ No newline at end of file From 3219695a55ed57141da7ae8985bd3125e6d12dd4 Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Mon, 18 Aug 2025 08:36:23 +0200 Subject: [PATCH 08/10] Example visualization for workload-type / cpu-architecture panels --- .../dashboards/cortex-capacity.json | 862 +++++++++++++++--- 1 file changed, 744 insertions(+), 118 deletions(-) diff --git a/plutono/provisioning/dashboards/cortex-capacity.json b/plutono/provisioning/dashboards/cortex-capacity.json index bb9e2b555..e5ae0550b 100644 --- a/plutono/provisioning/dashboards/cortex-capacity.json +++ b/plutono/provisioning/dashboards/cortex-capacity.json @@ -15,8 +15,8 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 1, - "iteration": 1755245876462, + "id": 3, + "iteration": 1755257539023, "links": [], "panels": [ { @@ -77,42 +77,697 @@ }, "fill": 0, "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 15 + }, + "hiddenSeries": false, + "id": 197, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.37", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "interval": "", + "legendFormat": "CPU", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "RAM", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "Disk", + "refId": "C" + } + ], + "thresholds": [ + { + "$$hashKey": "object:221", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 0.2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Capacity over time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:149", + "format": "percentunit", + "label": null, + "logBase": 1, + "max": "1", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:150", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": null, + "filterable": false + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Available CPUs (%)" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "gradient-gauge" + }, + { + "id": "unit", + "value": "percentunit" + }, + { + "id": "max", + "value": 1 + }, + { + "id": "min", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Available RAM (%)" + }, + "properties": [ + { + "id": "custom.displayMode", + "value": "gradient-gauge" + }, + { + "id": "unit", + "value": "percentunit" + }, + { + "id": "max", + "value": 1 + }, + { + "id": "min", + "value": 0 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Available Disk (%)" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + }, + { + "id": "min", + "value": 0 + }, + { + "id": "max", + "value": 1 + }, + { + "id": "custom.displayMode", + "value": "gradient-gauge" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Enabled" + }, + "properties": [ + { + "id": "mappings", + "value": [ + { + "from": "", + "id": 1, + "text": "✅", + "to": "", + "type": 1, + "value": "true" + }, + { + "from": "", + "id": 2, + "text": "❌", + "to": "", + "type": 1, + "value": "false" + } + ] + }, + { + "id": "custom.width", + "value": 71 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total RAM" + }, + "properties": [ + { + "id": "unit", + "value": "decmbytes" + }, + { + "id": "custom.width", + "value": 93 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total Disk" + }, + "properties": [ + { + "id": "unit", + "value": "decgbytes" + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Available RAM" + }, + "properties": [ + { + "id": "unit", + "value": "decmbytes" + }, + { + "id": "custom.width", + "value": 116 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Available Disk" + }, + "properties": [ + { + "id": "unit", + "value": "decgbytes" + }, + { + "id": "custom.width", + "value": 112 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Total CPUs" + }, + "properties": [ + { + "id": "custom.width", + "value": 92 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Available CPUs" + }, + "properties": [ + { + "id": "custom.width", + "value": 110 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Compute Host" + }, + "properties": [ + { + "id": "custom.width", + "value": 173 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Running VMs" + }, + "properties": [ + { + "id": "custom.width", + "value": 110 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Workload Type" + }, + "properties": [ + { + "id": "custom.width", + "value": 130 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU Architecture" + }, + "properties": [ + { + "id": "custom.width", + "value": 132 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Availability Zone" + }, + "properties": [ + { + "id": "custom.width", + "value": 118 + } + ] + } + ] + }, "gridPos": { "h": 13, "w": 12, + "x": 12, + "y": 15 + }, + "id": 163, + "options": { + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "7.5.37", + "targets": [ + { + "exemplar": true, + "expr": "max by (compute_host, running_vms, enabled, disabled_reason, availability_zone, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\"}) / 100", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "AvailableCPUQuery" + }, + { + "exemplar": true, + "expr": "max by (compute_host, running_vms, enabled, disabled_reason, availability_zone, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\"}) / 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "AvailableRAMQuery" + }, + { + "exemplar": true, + "expr": "max by (compute_host, running_vms, enabled, disabled_reason, availability_zone, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\"}) / 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "AvailableDiskQuery" + }, + { + "exemplar": true, + "expr": "sum by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) / \ncount by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" })", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "TotalCPUQuery" + }, + { + "exemplar": true, + "expr": "sum by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) / \ncount by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" })", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "TotalRAMQuery" + }, + { + "exemplar": true, + "expr": "sum by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) / \ncount by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" })", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "TotalDiskQuery" + }, + { + "exemplar": true, + "expr": "max by (compute_host) (cortex_sap_host_running_vms_per_host_pct{availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) ", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "RunningVMsQuery" + } + ], + "title": "Hosts", + "transformations": [ + { + "id": "seriesToColumns", + "options": { + "byField": "compute_host" + } + }, + { + "id": "calculateField", + "options": { + "alias": "Available CPUs", + "binary": { + "left": "Value #TotalCPUQuery", + "operator": "*", + "reducer": "sum", + "right": "Value #AvailableCPUQuery" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Available RAM", + "binary": { + "left": "Value #AvailableRAMQuery", + "operator": "*", + "reducer": "sum", + "right": "Value #TotalRAMQuery" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Available Disk", + "binary": { + "left": "Value #TotalDiskQuery", + "operator": "*", + "reducer": "sum", + "right": "Value #AvailableDiskQuery" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "availability_zone 1": false, + "availability_zone 2": true, + "availability_zone 3": true, + "cpu_architecture 1": false, + "cpu_architecture 2": true, + "cpu_architecture 3": true, + "disabled_reason 2": true, + "disabled_reason 3": true, + "enabled 2": true, + "enabled 3": true, + "hypervisor_family 1": true, + "hypervisor_family 2": true, + "hypervisor_family 3": true, + "running_vms 2": true, + "running_vms 3": true, + "total 1": true, + "total 2": true, + "total 3": true, + "workload_type 1": false, + "workload_type 2": true, + "workload_type 3": true + }, + "indexByName": { + "Available CPUs": 9, + "Available Disk": 15, + "Available RAM": 12, + "Time 1": 1, + "Time 2": 18, + "Time 3": 24, + "Time 4": 30, + "Time 5": 31, + "Time 6": 32, + "Time 7": 35, + "Value #AvailableCPUQuery": 11, + "Value #AvailableDiskQuery": 17, + "Value #AvailableRAMQuery": 14, + "Value #RunningVMsQuery": 5, + "Value #TotalCPUQuery": 10, + "Value #TotalDiskQuery": 16, + "Value #TotalRAMQuery": 13, + "availability_zone 1": 2, + "availability_zone 2": 19, + "availability_zone 3": 25, + "compute_host": 0, + "cpu_architecture 1": 3, + "cpu_architecture 2": 20, + "cpu_architecture 3": 26, + "disabled_reason 1": 7, + "disabled_reason 2": 33, + "disabled_reason 3": 34, + "enabled 1": 6, + "enabled 2": 21, + "enabled 3": 27, + "hypervisor_family 1": 8, + "hypervisor_family 2": 22, + "hypervisor_family 3": 28, + "workload_type 1": 4, + "workload_type 2": 23, + "workload_type 3": 29 + }, + "renameByName": { + "Available CPUs": "", + "Time 2": "", + "Time 4": "", + "Value #A": "Available CPUs (%)", + "Value #AvailableCPUQuery": "Available CPUs (%)", + "Value #AvailableDiskQuery": "Available Disk (%)", + "Value #AvailableRAMQuery": "Available RAM (%)", + "Value #B": "Available RAM (%)", + "Value #C": "Available Disk (%)", + "Value #D": "Total CPUs", + "Value #E": "Total RAM", + "Value #F": "Total Disk", + "Value #RunningVMsQuery": "Running VMs", + "Value #TotalCPUQuery": "Total CPUs", + "Value #TotalDiskQuery": "Total Disk", + "Value #TotalRAMQuery": "Total RAM", + "availability_zone 1": "Availability Zone", + "compute_host": "Compute Host", + "cpu_architecture 1": "CPU Architecture", + "disabled_reason": "Disabled Reason", + "disabled_reason 1": "Disabled Reason", + "disabled_reason 2": "", + "enabled 1": "Enabled", + "hypervisor_family 1": "Hypervisor Family", + "workload_type 1": "Workload Type" + } + } + } + ], + "type": "table" + }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "yellow", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, "x": 0, - "y": 15 - }, - "hiddenSeries": false, - "id": 197, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "y": 23 }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 170, "options": { - "alertThreshold": true + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" }, - "percentage": false, "pluginVersion": "7.5.37", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, "targets": [ { "exemplar": true, "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "instant": true, "interval": "", "legendFormat": "CPU", "queryType": "randomWalk", @@ -122,6 +777,7 @@ "exemplar": true, "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, + "instant": true, "interval": "", "legendFormat": "RAM", "refId": "B" @@ -130,63 +786,16 @@ "exemplar": true, "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, + "instant": true, "interval": "", "legendFormat": "Disk", "refId": "C" } ], - "thresholds": [ - { - "$$hashKey": "object:221", - "colorMode": "critical", - "fill": true, - "line": true, - "op": "lt", - "value": 0.2, - "yaxis": "left" - } - ], "timeFrom": null, - "timeRegions": [], "timeShift": null, - "title": "Capacity over time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:149", - "format": "percentunit", - "label": null, - "logBase": 1, - "max": "1", - "min": "0", - "show": true - }, - { - "$$hashKey": "object:150", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "Current Capacity", + "type": "stat" }, { "datasource": "prometheus-openstack", @@ -200,30 +809,47 @@ "mode": "absolute", "steps": [ { - "color": "red", + "color": "blue", "value": null - }, - { - "color": "yellow", - "value": 0.2 - }, - { - "color": "green", - "value": 0.3 } ] }, - "unit": "percentunit" + "unit": "none" }, - "overrides": [] + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "RAM" + }, + "properties": [ + { + "id": "unit", + "value": "decmbytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Disk" + }, + "properties": [ + { + "id": "unit", + "value": "decgbytes" + } + ] + } + ] }, "gridPos": { "h": 8, "w": 12, "x": 12, - "y": 15 + "y": 28 }, - "id": 170, + "id": 210, "options": { "colorMode": "background", "graphMode": "none", @@ -243,7 +869,7 @@ "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n } / 100\n )\n )\n )\n)", "instant": true, "interval": "", "legendFormat": "CPU", @@ -252,7 +878,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n } / 100\n )\n )\n )\n)", "hide": false, "instant": true, "interval": "", @@ -261,7 +887,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n } / 100\n )\n )\n )\n)", "hide": false, "instant": true, "interval": "", @@ -306,8 +932,8 @@ "gridPos": { "h": 5, "w": 12, - "x": 12, - "y": 23 + "x": 0, + "y": 31 }, "id": 201, "options": { @@ -367,7 +993,7 @@ "h": 1, "w": 24, "x": 0, - "y": 28 + "y": 36 }, "id": 207, "panels": [], @@ -392,7 +1018,7 @@ "h": 13, "w": 12, "x": 0, - "y": 29 + "y": 37 }, "hiddenSeries": false, "id": 200, @@ -532,7 +1158,7 @@ "h": 8, "w": 12, "x": 12, - "y": 29 + "y": 37 }, "id": 179, "options": { @@ -618,7 +1244,7 @@ "h": 5, "w": 12, "x": 12, - "y": 37 + "y": 45 }, "id": 208, "options": { @@ -689,7 +1315,7 @@ "h": 8, "w": 10, "x": 14, - "y": 42 + "y": 50 }, "hiddenSeries": false, "id": 198, @@ -829,7 +1455,7 @@ "h": 8, "w": 10, "x": 14, - "y": 50 + "y": 58 }, "id": 177, "options": { @@ -900,7 +1526,7 @@ "h": 8, "w": 10, "x": 14, - "y": 58 + "y": 66 }, "hiddenSeries": false, "id": 199, @@ -1040,7 +1666,7 @@ "h": 8, "w": 10, "x": 14, - "y": 66 + "y": 74 }, "id": 178, "options": { @@ -1100,7 +1726,7 @@ "h": 1, "w": 24, "x": 0, - "y": 74 + "y": 82 }, "id": 165, "panels": [], @@ -1196,7 +1822,7 @@ "h": 7, "w": 8, "x": 0, - "y": 75 + "y": 83 }, "id": 168, "options": { @@ -1355,7 +1981,7 @@ "h": 7, "w": 8, "x": 8, - "y": 75 + "y": 83 }, "id": 180, "options": { @@ -1514,7 +2140,7 @@ "h": 7, "w": 8, "x": 16, - "y": 75 + "y": 83 }, "id": 181, "options": { @@ -1599,7 +2225,7 @@ "h": 8, "w": 8, "x": 0, - "y": 82 + "y": 90 }, "hiddenSeries": false, "id": 183, @@ -1718,7 +2344,7 @@ "h": 8, "w": 8, "x": 8, - "y": 82 + "y": 90 }, "hiddenSeries": false, "id": 184, @@ -1837,7 +2463,7 @@ "h": 8, "w": 8, "x": 16, - "y": 82 + "y": 90 }, "hiddenSeries": false, "id": 185, @@ -1954,7 +2580,7 @@ "h": 8, "w": 8, "x": 0, - "y": 90 + "y": 98 }, "hiddenSeries": false, "id": 187, @@ -2065,7 +2691,7 @@ "h": 8, "w": 8, "x": 8, - "y": 90 + "y": 98 }, "hiddenSeries": false, "id": 188, @@ -2176,7 +2802,7 @@ "h": 8, "w": 8, "x": 16, - "y": 90 + "y": 98 }, "hiddenSeries": false, "id": 189, @@ -2555,9 +3181,9 @@ "h": 28, "w": 24, "x": 0, - "y": 98 + "y": 106 }, - "id": 163, + "id": 209, "options": { "showHeader": true, "sortBy": [] @@ -2818,7 +3444,7 @@ "h": 23, "w": 24, "x": 0, - "y": 126 + "y": 134 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2890,7 +3516,7 @@ "h": 23, "w": 24, "x": 0, - "y": 149 + "y": 157 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2962,7 +3588,7 @@ "h": 23, "w": 24, "x": 0, - "y": 172 + "y": 180 }, "heatmap": {}, "hideZeroBuckets": false, @@ -3226,7 +3852,7 @@ ] }, "time": { - "from": "now-7d", + "from": "now-24h", "to": "now" }, "timepicker": {}, From 6584a05eafd26aa6882b814b6a46626951d4689a Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Mon, 18 Aug 2025 08:50:11 +0200 Subject: [PATCH 09/10] Added sections for missing cpu architecture / workload type panels --- .../dashboards/cortex-capacity.json | 120 ++++++++++++------ 1 file changed, 80 insertions(+), 40 deletions(-) diff --git a/plutono/provisioning/dashboards/cortex-capacity.json b/plutono/provisioning/dashboards/cortex-capacity.json index e5ae0550b..916e694f1 100644 --- a/plutono/provisioning/dashboards/cortex-capacity.json +++ b/plutono/provisioning/dashboards/cortex-capacity.json @@ -15,10 +15,22 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 3, - "iteration": 1755257539023, + "id": 1, + "iteration": 1755499044047, "links": [], "panels": [ + { + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 216, + "title": "Introduction", + "type": "row" + }, { "datasource": null, "description": "", @@ -30,7 +42,7 @@ "h": 14, "w": 24, "x": 0, - "y": 0 + "y": 1 }, "id": 195, "options": { @@ -56,7 +68,7 @@ "h": 1, "w": 24, "x": 0, - "y": 14 + "y": 15 }, "id": 203, "panels": [], @@ -81,7 +93,7 @@ "h": 8, "w": 12, "x": 0, - "y": 15 + "y": 16 }, "hiddenSeries": false, "id": 197, @@ -472,7 +484,7 @@ "h": 13, "w": 12, "x": 12, - "y": 15 + "y": 16 }, "id": 163, "options": { @@ -744,7 +756,7 @@ "h": 8, "w": 12, "x": 0, - "y": 23 + "y": 24 }, "id": 170, "options": { @@ -847,7 +859,7 @@ "h": 8, "w": 12, "x": 12, - "y": 28 + "y": 29 }, "id": 210, "options": { @@ -933,7 +945,7 @@ "h": 5, "w": 12, "x": 0, - "y": 31 + "y": 32 }, "id": 201, "options": { @@ -987,13 +999,13 @@ "type": "stat" }, { - "collapsed": true, + "collapsed": false, "datasource": null, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 36 + "y": 37 }, "id": 207, "panels": [], @@ -1018,7 +1030,7 @@ "h": 13, "w": 12, "x": 0, - "y": 37 + "y": 38 }, "hiddenSeries": false, "id": 200, @@ -1158,7 +1170,7 @@ "h": 8, "w": 12, "x": 12, - "y": 37 + "y": 38 }, "id": 179, "options": { @@ -1244,7 +1256,7 @@ "h": 5, "w": 12, "x": 12, - "y": 45 + "y": 46 }, "id": 208, "options": { @@ -1297,6 +1309,20 @@ "title": "Predicted Capacity in 2 months", "type": "stat" }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 51 + }, + "id": 212, + "panels": [], + "title": "General Purpose / Sapphire Rapids", + "type": "row" + }, { "aliasColors": {}, "bars": false, @@ -1313,9 +1339,9 @@ "fillGradient": 0, "gridPos": { "h": 8, - "w": 10, - "x": 14, - "y": 50 + "w": 12, + "x": 0, + "y": 52 }, "hiddenSeries": false, "id": 198, @@ -1453,9 +1479,9 @@ }, "gridPos": { "h": 8, - "w": 10, - "x": 14, - "y": 58 + "w": 12, + "x": 12, + "y": 52 }, "id": 177, "options": { @@ -1508,6 +1534,20 @@ "title": "General Purpose / Sapphire Rapids", "type": "stat" }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 60 + }, + "id": 214, + "panels": [], + "title": "HANA / Sapphire Rapids", + "type": "row" + }, { "aliasColors": {}, "bars": false, @@ -1524,9 +1564,9 @@ "fillGradient": 0, "gridPos": { "h": 8, - "w": 10, - "x": 14, - "y": 66 + "w": 12, + "x": 0, + "y": 61 }, "hiddenSeries": false, "id": 199, @@ -1664,9 +1704,9 @@ }, "gridPos": { "h": 8, - "w": 10, - "x": 14, - "y": 74 + "w": 12, + "x": 12, + "y": 61 }, "id": 178, "options": { @@ -1726,7 +1766,7 @@ "h": 1, "w": 24, "x": 0, - "y": 82 + "y": 69 }, "id": 165, "panels": [], @@ -1822,7 +1862,7 @@ "h": 7, "w": 8, "x": 0, - "y": 83 + "y": 70 }, "id": 168, "options": { @@ -1981,7 +2021,7 @@ "h": 7, "w": 8, "x": 8, - "y": 83 + "y": 70 }, "id": 180, "options": { @@ -2140,7 +2180,7 @@ "h": 7, "w": 8, "x": 16, - "y": 83 + "y": 70 }, "id": 181, "options": { @@ -2225,7 +2265,7 @@ "h": 8, "w": 8, "x": 0, - "y": 90 + "y": 77 }, "hiddenSeries": false, "id": 183, @@ -2344,7 +2384,7 @@ "h": 8, "w": 8, "x": 8, - "y": 90 + "y": 77 }, "hiddenSeries": false, "id": 184, @@ -2463,7 +2503,7 @@ "h": 8, "w": 8, "x": 16, - "y": 90 + "y": 77 }, "hiddenSeries": false, "id": 185, @@ -2580,7 +2620,7 @@ "h": 8, "w": 8, "x": 0, - "y": 98 + "y": 85 }, "hiddenSeries": false, "id": 187, @@ -2691,7 +2731,7 @@ "h": 8, "w": 8, "x": 8, - "y": 98 + "y": 85 }, "hiddenSeries": false, "id": 188, @@ -2802,7 +2842,7 @@ "h": 8, "w": 8, "x": 16, - "y": 98 + "y": 85 }, "hiddenSeries": false, "id": 189, @@ -3181,7 +3221,7 @@ "h": 28, "w": 24, "x": 0, - "y": 106 + "y": 93 }, "id": 209, "options": { @@ -3444,7 +3484,7 @@ "h": 23, "w": 24, "x": 0, - "y": 134 + "y": 121 }, "heatmap": {}, "hideZeroBuckets": false, @@ -3516,7 +3556,7 @@ "h": 23, "w": 24, "x": 0, - "y": 157 + "y": 144 }, "heatmap": {}, "hideZeroBuckets": false, @@ -3588,7 +3628,7 @@ "h": 23, "w": 24, "x": 0, - "y": 180 + "y": 167 }, "heatmap": {}, "hideZeroBuckets": false, From 8396929df4420f6957c7a2c5afed3152ea2d0a34 Mon Sep 17 00:00:00 2001 From: Markus Wieland Date: Tue, 19 Aug 2025 15:40:00 +0200 Subject: [PATCH 10/10] Clean up dashboard --- .../dashboards/cortex-capacity.json | 1861 +++++++---------- 1 file changed, 709 insertions(+), 1152 deletions(-) diff --git a/plutono/provisioning/dashboards/cortex-capacity.json b/plutono/provisioning/dashboards/cortex-capacity.json index 916e694f1..3fd1ace05 100644 --- a/plutono/provisioning/dashboards/cortex-capacity.json +++ b/plutono/provisioning/dashboards/cortex-capacity.json @@ -15,22 +15,10 @@ "editable": true, "gnetId": null, "graphTooltip": 0, - "id": 1, - "iteration": 1755499044047, + "id": 293, + "iteration": 1755610742618, "links": [], "panels": [ - { - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 216, - "title": "Introduction", - "type": "row" - }, { "datasource": null, "description": "", @@ -39,17 +27,17 @@ "overrides": [] }, "gridPos": { - "h": 14, - "w": 24, + "h": 34, + "w": 4, "x": 0, - "y": 1 + "y": 0 }, "id": 195, "options": { "content": "# Capacity Overview by Workload Type & CPU Architecture\n\nThis section displays current resource utilization organized by **workload type** (General Purpose, HANA) and **CPU architecture** (Cascade Lake, Sapphire Rapids). The visualizations show available capacity percentages for CPU, RAM, and Disk resources across your infrastructure.\n\n**Note:** All capacity calculations are based on Cortex's knowledge database, which includes potential overcommit scenarios (e.g. vCPU overcommit) and considers all initial placement/scheduling constraints and objectives to provide realistic capacity estimates.\n\n## Current Filters Applied\nThe displayed data is filtered based on your current selections:\n- **Availability Zone**: Controls which zones are included in the analysis\n- **Hypervisor Family**: Filters by virtualization platform (KVM, VMware)\n\n## Understanding the Metrics\nEach panel shows the percentage of **available capacity** (not utilization) for the selected resource type. Higher percentages indicate more available resources for new workloads.\n\n---\n\nFor detailed breakdowns and historical trends, explore the **\"Total Over Current Selection\"** section below, where you can:\n- View aggregated totals across your current filter selection\n- Analyze capacity trends over time\n- Examine per-host capacity distribution\n- Apply additional filters for deeper analysis (specific hypervisors, workload types, CPU architectures)", "mode": "markdown" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "queryType": "randomWalk", @@ -61,20 +49,6 @@ "title": "Introduction", "type": "text" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 15 - }, - "id": 203, - "panels": [], - "title": "General Purpose / Cascade Lake", - "type": "row" - }, { "aliasColors": {}, "bars": false, @@ -91,9 +65,9 @@ "fillGradient": 0, "gridPos": { "h": 8, - "w": 12, - "x": 0, - "y": 16 + "w": 10, + "x": 4, + "y": 0 }, "hiddenSeries": false, "id": 197, @@ -113,7 +87,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -126,7 +100,7 @@ "exemplar": true, "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "interval": "", - "legendFormat": "CPU", + "legendFormat": "CPU Capacity", "queryType": "randomWalk", "refId": "A" }, @@ -135,7 +109,7 @@ "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", - "legendFormat": "RAM", + "legendFormat": "RAM Capacity", "refId": "B" }, { @@ -143,7 +117,7 @@ "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", - "legendFormat": "Disk", + "legendFormat": "Disk Capacity", "refId": "C" } ], @@ -161,7 +135,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Capacity over time", + "title": "General Purpose / Cascade Lake over time", "tooltip": { "shared": true, "sort": 0, @@ -201,527 +175,129 @@ } }, { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, "datasource": "prometheus-openstack", "fieldConfig": { "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": null, - "filterable": false - }, - "mappings": [], - "max": 100, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } + "unit": "percentunit" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Available CPUs (%)" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "gradient-gauge" - }, - { - "id": "unit", - "value": "percentunit" - }, - { - "id": "max", - "value": 1 - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Available RAM (%)" - }, - "properties": [ - { - "id": "custom.displayMode", - "value": "gradient-gauge" - }, - { - "id": "unit", - "value": "percentunit" - }, - { - "id": "max", - "value": 1 - }, - { - "id": "min", - "value": 0 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Available Disk (%)" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - }, - { - "id": "min", - "value": 0 - }, - { - "id": "max", - "value": 1 - }, - { - "id": "custom.displayMode", - "value": "gradient-gauge" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Enabled" - }, - "properties": [ - { - "id": "mappings", - "value": [ - { - "from": "", - "id": 1, - "text": "✅", - "to": "", - "type": 1, - "value": "true" - }, - { - "from": "", - "id": 2, - "text": "❌", - "to": "", - "type": 1, - "value": "false" - } - ] - }, - { - "id": "custom.width", - "value": 71 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total RAM" - }, - "properties": [ - { - "id": "unit", - "value": "decmbytes" - }, - { - "id": "custom.width", - "value": 93 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total Disk" - }, - "properties": [ - { - "id": "unit", - "value": "decgbytes" - }, - { - "id": "custom.width", - "value": 90 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Available RAM" - }, - "properties": [ - { - "id": "unit", - "value": "decmbytes" - }, - { - "id": "custom.width", - "value": 116 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Available Disk" - }, - "properties": [ - { - "id": "unit", - "value": "decgbytes" - }, - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Total CPUs" - }, - "properties": [ - { - "id": "custom.width", - "value": 92 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Available CPUs" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Compute Host" - }, - "properties": [ - { - "id": "custom.width", - "value": 173 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Running VMs" - }, - "properties": [ - { - "id": "custom.width", - "value": 110 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Workload Type" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU Architecture" - }, - "properties": [ - { - "id": "custom.width", - "value": 132 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Availability Zone" - }, - "properties": [ - { - "id": "custom.width", - "value": 118 - } - ] - } - ] + "overrides": [] }, + "fill": 0, + "fillGradient": 0, "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 16 + "h": 8, + "w": 10, + "x": 14, + "y": 0 }, - "id": 163, + "hiddenSeries": false, + "id": 198, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", "options": { - "showHeader": true, - "sortBy": [] + "alertThreshold": true }, - "pluginVersion": "7.5.37", + "percentage": false, + "pluginVersion": "7.5.39", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, "targets": [ { "exemplar": true, - "expr": "max by (compute_host, running_vms, enabled, disabled_reason, availability_zone, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\"}) / 100", - "format": "table", - "instant": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "interval": "", - "legendFormat": "", + "legendFormat": "CPU Capacity", "queryType": "randomWalk", - "refId": "AvailableCPUQuery" - }, - { - "exemplar": true, - "expr": "max by (compute_host, running_vms, enabled, disabled_reason, availability_zone, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\"}) / 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "AvailableRAMQuery" - }, - { - "exemplar": true, - "expr": "max by (compute_host, running_vms, enabled, disabled_reason, availability_zone, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\"}) / 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "AvailableDiskQuery" - }, - { - "exemplar": true, - "expr": "sum by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) / \ncount by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" })", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "TotalCPUQuery" - }, - { - "exemplar": true, - "expr": "sum by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) / \ncount by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" })", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "TotalRAMQuery" + "refId": "A" }, { "exemplar": true, - "expr": "sum by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) / \ncount by (compute_host) (cortex_sap_total_capacity_per_host{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" })", - "format": "table", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, - "instant": true, "interval": "", - "legendFormat": "", - "refId": "TotalDiskQuery" + "legendFormat": "RAM Capacity", + "refId": "B" }, { "exemplar": true, - "expr": "max by (compute_host) (cortex_sap_host_running_vms_per_host_pct{availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=\"general-purpose\", enabled=~\"$enabled\", cpu_architecture=\"cascade-lake\" }) ", - "format": "table", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, - "instant": true, "interval": "", - "legendFormat": "", - "refId": "RunningVMsQuery" + "legendFormat": "Disk Capacity", + "refId": "C" } ], - "title": "Hosts", - "transformations": [ - { - "id": "seriesToColumns", - "options": { - "byField": "compute_host" - } - }, - { - "id": "calculateField", - "options": { - "alias": "Available CPUs", - "binary": { - "left": "Value #TotalCPUQuery", - "operator": "*", - "reducer": "sum", - "right": "Value #AvailableCPUQuery" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, - { - "id": "calculateField", - "options": { - "alias": "Available RAM", - "binary": { - "left": "Value #AvailableRAMQuery", - "operator": "*", - "reducer": "sum", - "right": "Value #TotalRAMQuery" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, + "thresholds": [ { - "id": "calculateField", - "options": { - "alias": "Available Disk", - "binary": { - "left": "Value #TotalDiskQuery", - "operator": "*", - "reducer": "sum", - "right": "Value #AvailableDiskQuery" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } - }, + "$$hashKey": "object:221", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 0.2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "General Purpose / Sapphire Rapids over time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ { - "id": "organize", - "options": { - "excludeByName": { - "Time 1": true, - "Time 2": true, - "Time 3": true, - "Time 4": true, - "Time 5": true, - "Time 6": true, - "Time 7": true, - "availability_zone 1": false, - "availability_zone 2": true, - "availability_zone 3": true, - "cpu_architecture 1": false, - "cpu_architecture 2": true, - "cpu_architecture 3": true, - "disabled_reason 2": true, - "disabled_reason 3": true, - "enabled 2": true, - "enabled 3": true, - "hypervisor_family 1": true, - "hypervisor_family 2": true, - "hypervisor_family 3": true, - "running_vms 2": true, - "running_vms 3": true, - "total 1": true, - "total 2": true, - "total 3": true, - "workload_type 1": false, - "workload_type 2": true, - "workload_type 3": true - }, - "indexByName": { - "Available CPUs": 9, - "Available Disk": 15, - "Available RAM": 12, - "Time 1": 1, - "Time 2": 18, - "Time 3": 24, - "Time 4": 30, - "Time 5": 31, - "Time 6": 32, - "Time 7": 35, - "Value #AvailableCPUQuery": 11, - "Value #AvailableDiskQuery": 17, - "Value #AvailableRAMQuery": 14, - "Value #RunningVMsQuery": 5, - "Value #TotalCPUQuery": 10, - "Value #TotalDiskQuery": 16, - "Value #TotalRAMQuery": 13, - "availability_zone 1": 2, - "availability_zone 2": 19, - "availability_zone 3": 25, - "compute_host": 0, - "cpu_architecture 1": 3, - "cpu_architecture 2": 20, - "cpu_architecture 3": 26, - "disabled_reason 1": 7, - "disabled_reason 2": 33, - "disabled_reason 3": 34, - "enabled 1": 6, - "enabled 2": 21, - "enabled 3": 27, - "hypervisor_family 1": 8, - "hypervisor_family 2": 22, - "hypervisor_family 3": 28, - "workload_type 1": 4, - "workload_type 2": 23, - "workload_type 3": 29 - }, - "renameByName": { - "Available CPUs": "", - "Time 2": "", - "Time 4": "", - "Value #A": "Available CPUs (%)", - "Value #AvailableCPUQuery": "Available CPUs (%)", - "Value #AvailableDiskQuery": "Available Disk (%)", - "Value #AvailableRAMQuery": "Available RAM (%)", - "Value #B": "Available RAM (%)", - "Value #C": "Available Disk (%)", - "Value #D": "Total CPUs", - "Value #E": "Total RAM", - "Value #F": "Total Disk", - "Value #RunningVMsQuery": "Running VMs", - "Value #TotalCPUQuery": "Total CPUs", - "Value #TotalDiskQuery": "Total Disk", - "Value #TotalRAMQuery": "Total RAM", - "availability_zone 1": "Availability Zone", - "compute_host": "Compute Host", - "cpu_architecture 1": "CPU Architecture", - "disabled_reason": "Disabled Reason", - "disabled_reason 1": "Disabled Reason", - "disabled_reason 2": "", - "enabled 1": "Enabled", - "hypervisor_family 1": "Hypervisor Family", - "workload_type 1": "Workload Type" - } - } + "$$hashKey": "object:149", + "format": "percentunit", + "label": null, + "logBase": 1, + "max": "1", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:150", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true } ], - "type": "table" + "yaxis": { + "align": false, + "alignLevel": null + } }, { "datasource": "prometheus-openstack", @@ -753,10 +329,10 @@ "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 24 + "h": 6, + "w": 10, + "x": 4, + "y": 8 }, "id": 170, "options": { @@ -774,7 +350,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -806,7 +382,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "Current Capacity", + "title": "General Purpose / Cascade Lake", "type": "stat" }, { @@ -821,47 +397,116 @@ "mode": "absolute", "steps": [ { - "color": "blue", + "color": "red", "value": null + }, + { + "color": "yellow", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 } ] }, - "unit": "none" + "unit": "percentunit" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "RAM" - }, - "properties": [ - { - "id": "unit", - "value": "decmbytes" - } - ] + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 10, + "x": 14, + "y": 8 + }, + "id": 177, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "7.5.39", + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "instant": true, + "interval": "", + "legendFormat": "CPU", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "RAM", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Disk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "General Purpose / Sapphire Rapids", + "type": "stat" + }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - { - "matcher": { - "id": "byName", - "options": "Disk" - }, - "properties": [ + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ { - "id": "unit", - "value": "decgbytes" + "color": "red", + "value": null + }, + { + "color": "yellow", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 } ] - } - ] + }, + "unit": "percentunit" + }, + "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 29 + "h": 3, + "w": 10, + "x": 4, + "y": 14 }, - "id": 210, + "id": 201, "options": { "colorMode": "background", "graphMode": "none", @@ -877,11 +522,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n } / 100\n )\n )\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "instant": true, "interval": "", "legendFormat": "CPU", @@ -890,7 +535,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n } / 100\n )\n )\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -899,7 +544,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=\"true\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n } / 100\n )\n )\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -909,7 +554,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "Current Capacity", + "title": "General Purpose / Cascade Lake Predicted in 2 months", "type": "stat" }, { @@ -942,12 +587,12 @@ "overrides": [] }, "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 32 + "h": 3, + "w": 10, + "x": 14, + "y": 14 }, - "id": 201, + "id": 202, "options": { "colorMode": "background", "graphMode": "none", @@ -963,11 +608,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)", "instant": true, "interval": "", "legendFormat": "CPU", @@ -976,7 +621,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 483840) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -985,7 +630,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -993,24 +638,135 @@ "refId": "C" } ], - "timeFrom": null, - "timeShift": null, - "title": "Predicted Capacity in 2 months", - "type": "stat" - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 37 - }, - "id": 207, - "panels": [], - "title": "HANA / Cascade Lake", - "type": "row" + "timeFrom": null, + "timeShift": null, + "title": "General Purpose / Sapphire Rapids Predicted in 2 months", + "type": "stat" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "unit": "percentunit" + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 10, + "x": 4, + "y": 17 + }, + "hiddenSeries": false, + "id": 200, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.39", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "interval": "", + "legendFormat": "CPU Capacity", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "RAM Capacity", + "refId": "B" + }, + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "hide": false, + "interval": "", + "legendFormat": "Disk Capacity", + "refId": "C" + } + ], + "thresholds": [ + { + "$$hashKey": "object:221", + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 0.2, + "yaxis": "left" + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "HANA / Cascade Lake over time", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:149", + "format": "percentunit", + "label": null, + "logBase": 1, + "max": "1", + "min": "0", + "show": true + }, + { + "$$hashKey": "object:150", + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } }, { "aliasColors": {}, @@ -1027,13 +783,13 @@ "fill": 0, "fillGradient": 0, "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 38 + "h": 8, + "w": 10, + "x": 14, + "y": 17 }, "hiddenSeries": false, - "id": 200, + "id": 199, "legend": { "avg": false, "current": false, @@ -1050,7 +806,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1061,7 +817,7 @@ "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "interval": "", "legendFormat": "CPU Capacity", "queryType": "randomWalk", @@ -1069,7 +825,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", "legendFormat": "RAM Capacity", @@ -1077,7 +833,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "interval": "", "legendFormat": "Disk Capacity", @@ -1098,7 +854,7 @@ "timeFrom": null, "timeRegions": [], "timeShift": null, - "title": "Capacity over time", + "title": "HANA / Sapphire Rapids over time", "tooltip": { "shared": true, "sort": 0, @@ -1167,10 +923,10 @@ "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 38 + "h": 6, + "w": 10, + "x": 4, + "y": 25 }, "id": 179, "options": { @@ -1188,7 +944,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -1220,7 +976,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "Current Capacity", + "title": "HANA / Cascade Lake", "type": "stat" }, { @@ -1253,12 +1009,12 @@ "overrides": [] }, "gridPos": { - "h": 5, - "w": 12, - "x": 12, - "y": 46 + "h": 6, + "w": 10, + "x": 14, + "y": 25 }, - "id": 208, + "id": 178, "options": { "colorMode": "background", "graphMode": "none", @@ -1274,11 +1030,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "instant": true, "interval": "", "legendFormat": "CPU", @@ -1287,7 +1043,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "instant": true, "interval": "", @@ -1296,7 +1052,7 @@ }, { "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", "hide": false, "instant": true, "interval": "", @@ -1306,148 +1062,9 @@ ], "timeFrom": null, "timeShift": null, - "title": "Predicted Capacity in 2 months", + "title": "HANA / Sapphire Rapids", "type": "stat" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 51 - }, - "id": 212, - "panels": [], - "title": "General Purpose / Sapphire Rapids", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus-openstack", - "fieldConfig": { - "defaults": { - "unit": "percentunit" - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 52 - }, - "hiddenSeries": false, - "id": 198, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.37", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", - "interval": "", - "legendFormat": "CPU Capacity", - "queryType": "randomWalk", - "refId": "A" - }, - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", - "hide": false, - "interval": "", - "legendFormat": "RAM Capacity", - "refId": "B" - }, - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", - "hide": false, - "interval": "", - "legendFormat": "Disk Capacity", - "refId": "C" - } - ], - "thresholds": [ - { - "$$hashKey": "object:221", - "colorMode": "critical", - "fill": true, - "line": true, - "op": "lt", - "value": 0.2, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "General Purpose / Sapphire Rapids over time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:149", - "format": "percentunit", - "label": null, - "logBase": 1, - "max": "1", - "min": "0", - "show": true - }, - { - "$$hashKey": "object:150", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, { "datasource": "prometheus-openstack", "fieldConfig": { @@ -1472,206 +1089,67 @@ "value": 0.3 } ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 52 - }, - "id": 177, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "7.5.37", - "targets": [ - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", - "instant": true, - "interval": "", - "legendFormat": "CPU", - "queryType": "randomWalk", - "refId": "A" - }, - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "RAM", - "refId": "B" - }, - { - "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"general-purpose\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Disk", - "refId": "C" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "General Purpose / Sapphire Rapids", - "type": "stat" - }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 60 - }, - "id": 214, - "panels": [], - "title": "HANA / Sapphire Rapids", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "prometheus-openstack", - "fieldConfig": { - "defaults": { + }, "unit": "percentunit" }, "overrides": [] }, - "fill": 0, - "fillGradient": 0, "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 61 - }, - "hiddenSeries": false, - "id": 199, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false + "h": 3, + "w": 10, + "x": 4, + "y": 31 }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", + "id": 203, "options": { - "alertThreshold": true + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" }, - "percentage": false, - "pluginVersion": "7.5.37", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", + "instant": true, "interval": "", - "legendFormat": "CPU Capacity", + "legendFormat": "CPU", "queryType": "randomWalk", "refId": "A" }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, + "instant": true, "interval": "", - "legendFormat": "RAM Capacity", + "legendFormat": "RAM", "refId": "B" }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"cascade-lake\",\n enabled=\"true\"\n }\n )\n)", "hide": false, + "instant": true, "interval": "", - "legendFormat": "Disk Capacity", + "legendFormat": "Disk", "refId": "C" } ], - "thresholds": [ - { - "$$hashKey": "object:221", - "colorMode": "critical", - "fill": true, - "line": true, - "op": "lt", - "value": 0.2, - "yaxis": "left" - } - ], "timeFrom": null, - "timeRegions": [], "timeShift": null, - "title": "HANA / Sapphire Rapids over time", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:149", - "format": "percentunit", - "label": null, - "logBase": 1, - "max": "1", - "min": "0", - "show": true - }, - { - "$$hashKey": "object:150", - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "title": "HANA / Cascade Lake Predicted in 2 months", + "type": "stat" }, { "datasource": "prometheus-openstack", @@ -1703,12 +1181,12 @@ "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 61 + "h": 3, + "w": 10, + "x": 14, + "y": 31 }, - "id": 178, + "id": 204, "options": { "colorMode": "background", "graphMode": "none", @@ -1724,11 +1202,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)", "instant": true, "interval": "", "legendFormat": "CPU", @@ -1737,7 +1215,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -1746,7 +1224,7 @@ }, { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n) / sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)\n", + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=\"hana\",\n cpu_architecture=\"sapphire-rapids\",\n enabled=\"true\"\n }\n )\n)", "hide": false, "instant": true, "interval": "", @@ -1756,7 +1234,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "HANA / Sapphire Rapids", + "title": "HANA / Sapphire Rapids Predicted in 2 months", "type": "stat" }, { @@ -1766,7 +1244,7 @@ "h": 1, "w": 24, "x": 0, - "y": 69 + "y": 34 }, "id": 165, "panels": [], @@ -1823,11 +1301,164 @@ } } ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 6, + "x": 0, + "y": 35 + }, + "id": 168, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "7.5.39", + "targets": [ + { + "exemplar": true, + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=~\"$enabled\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)", + "instant": true, + "interval": "", + "legendFormat": "Available", + "queryType": "randomWalk", + "refId": "A" + }, + { + "exemplar": true, + "expr": "sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)\n", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Total", + "refId": "B" + } + ], + "title": "CPUs", + "transformations": [ + { + "id": "calculateField", + "options": { + "alias": "Capacity", + "binary": { + "left": "Available", + "operator": "/", + "reducer": "sum", + "right": "Total" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + } + ], + "type": "stat" + }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "#EAB839", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 2, + "x": 6, + "y": 35 + }, + "id": 206, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "7.5.39", + "targets": [ + { + "exemplar": true, + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)", + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "CPU Prediction (2 months)", + "type": "stat" + }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] }, + "unit": "decmbytes" + }, + "overrides": [ { "matcher": { "id": "byName", - "options": "Predicted Capacity (in 1d)" + "options": "Capacity" }, "properties": [ { @@ -1860,15 +1491,15 @@ }, "gridPos": { "h": 7, - "w": 8, - "x": 0, - "y": 70 + "w": 6, + "x": 8, + "y": 35 }, - "id": 168, + "id": 180, "options": { "colorMode": "value", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -1880,11 +1511,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=~\"$enabled\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)", + "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=~\"$enabled\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)", "instant": true, "interval": "", "legendFormat": "Available", @@ -1893,24 +1524,15 @@ }, { "exemplar": true, - "expr": "sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)\n", + "expr": "sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)\n", "hide": false, "instant": true, "interval": "", "legendFormat": "Total", "refId": "B" - }, - { - "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[1d:]\n, 86400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"cpu\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Predicted Capacity (in 1d)", - "refId": "C" } ], - "title": "CPUs", + "title": "RAM", "transformations": [ { "id": "calculateField", @@ -1943,89 +1565,32 @@ "mode": "absolute", "steps": [ { - "color": "green", + "color": "red", "value": null - } - ] - }, - "unit": "decmbytes" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Capacity" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" }, { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "#EAB839", - "value": 0.2 - }, - { - "color": "green", - "value": 0.3 - } - ] - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Predicted Capacity (in 1d)" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" + "color": "#EAB839", + "value": 0.2 }, { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "#EAB839", - "value": 0.2 - }, - { - "color": "green", - "value": 0.3 - } - ] - } + "color": "green", + "value": 0.3 } ] - } - ] + }, + "unit": "percentunit" + }, + "overrides": [] }, "gridPos": { "h": 7, - "w": 8, - "x": 8, - "y": 70 + "w": 2, + "x": 14, + "y": 35 }, - "id": 180, + "id": 207, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", "justifyMode": "auto", "orientation": "auto", @@ -2039,55 +1604,20 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n enabled=~\"$enabled\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)", - "instant": true, + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)", "interval": "", - "legendFormat": "Available", + "legendFormat": "", "queryType": "randomWalk", "refId": "A" - }, - { - "exemplar": true, - "expr": "sum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)\n", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Total", - "refId": "B" - }, - { - "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[1d:]\n, 86400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"ram\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Predicted Capacity (in 1d)", - "refId": "C" - } - ], - "title": "RAM", - "transformations": [ - { - "id": "calculateField", - "options": { - "alias": "Capacity", - "binary": { - "left": "Available", - "operator": "/", - "reducer": "sum", - "right": "Total" - }, - "mode": "binary", - "reduce": { - "reducer": "sum" - } - } } ], + "timeFrom": null, + "timeShift": null, + "title": "RAM Prediction (2 months)", "type": "stat" }, { @@ -2141,52 +1671,20 @@ } } ] - }, - { - "matcher": { - "id": "byName", - "options": "Predicted Capacity (in 1d)" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "#EAB839", - "value": 0.2 - }, - { - "color": "green", - "value": 0.3 - } - ] - } - } - ] } ] }, "gridPos": { "h": 7, - "w": 8, + "w": 6, "x": 16, - "y": 70 + "y": 35 }, "id": 181, "options": { "colorMode": "value", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -2198,7 +1696,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -2217,15 +1715,6 @@ "interval": "", "legendFormat": "Total", "refId": "B" - }, - { - "exemplar": true, - "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[1d:]\n, 86400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Predicted Capacity (in 1d)", - "refId": "C" } ], "title": "Disk", @@ -2249,6 +1738,73 @@ ], "type": "stat" }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "#EAB839", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 2, + "x": 22, + "y": 35 + }, + "id": 208, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "7.5.39", + "targets": [ + { + "exemplar": true, + "expr": "predict_linear(\n sum(\n (\n max by (compute_host, resource, availability_zone) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n *\n on(compute_host, resource, availability_zone)\n (\n 1 - max by (compute_host, resource, availability_zone) (\n cortex_sap_host_utilization_per_host_pct{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n } / 100\n )\n )\n )\n)[56d:]\n, 4838400) / \nsum(\n max by (compute_host) (\n cortex_sap_total_capacity_per_host{\n resource=\"disk\",\n availability_zone=~\"$availability_zone\",\n compute_host=~\"$compute_host\",\n hypervisor_family=~\"$hypervisor_family\",\n workload_type=~\"$workload_type\",\n cpu_architecture=~\"$cpu_architecture\",\n enabled=~\"$enabled\"\n }\n )\n)", + "interval": "", + "legendFormat": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Disk Prediction (2 months)", + "type": "stat" + }, { "aliasColors": {}, "bars": false, @@ -2265,7 +1821,7 @@ "h": 8, "w": 8, "x": 0, - "y": 77 + "y": 42 }, "hiddenSeries": false, "id": 183, @@ -2285,7 +1841,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -2384,7 +1940,7 @@ "h": 8, "w": 8, "x": 8, - "y": 77 + "y": 42 }, "hiddenSeries": false, "id": 184, @@ -2404,7 +1960,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -2503,7 +2059,7 @@ "h": 8, "w": 8, "x": 16, - "y": 77 + "y": 42 }, "hiddenSeries": false, "id": 185, @@ -2523,7 +2079,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -2620,7 +2176,7 @@ "h": 8, "w": 8, "x": 0, - "y": 85 + "y": 50 }, "hiddenSeries": false, "id": 187, @@ -2640,7 +2196,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -2731,7 +2287,7 @@ "h": 8, "w": 8, "x": 8, - "y": 85 + "y": 50 }, "hiddenSeries": false, "id": 188, @@ -2751,7 +2307,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -2842,7 +2398,7 @@ "h": 8, "w": 8, "x": 16, - "y": 85 + "y": 50 }, "hiddenSeries": false, "id": 189, @@ -2862,7 +2418,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -3221,18 +2777,23 @@ "h": 28, "w": 24, "x": 0, - "y": 93 + "y": 58 }, - "id": 209, + "id": 163, "options": { "showHeader": true, - "sortBy": [] + "sortBy": [ + { + "desc": false, + "displayName": "Compute Host" + } + ] }, - "pluginVersion": "7.5.37", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, - "expr": "max by (compute_host, total, running_vms, enabled, disabled_reason, workload_type, availability_zone, cpu_architecture, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=~\"$workload_type\", enabled=~\"$enabled\", cpu_architecture=~\"$cpu_architecture\"}) / 100", + "expr": "max by (compute_host, running_vms, enabled, disabled_reason, workload_type, availability_zone, cpu_architecture, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"cpu\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=~\"$workload_type\", enabled=~\"$enabled\", cpu_architecture=~\"$cpu_architecture\"}) / 100", "format": "table", "instant": true, "interval": "", @@ -3242,7 +2803,7 @@ }, { "exemplar": true, - "expr": "max by (compute_host, total, running_vms, enabled, disabled_reason, workload_type, availability_zone, cpu_architecture, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=~\"$workload_type\", enabled=~\"$enabled\", cpu_architecture=~\"$cpu_architecture\"}) / 100", + "expr": "max by (compute_host, running_vms, enabled, disabled_reason, workload_type, availability_zone, cpu_architecture, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"ram\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=~\"$workload_type\", enabled=~\"$enabled\", cpu_architecture=~\"$cpu_architecture\"}) / 100", "format": "table", "hide": false, "instant": true, @@ -3252,7 +2813,7 @@ }, { "exemplar": true, - "expr": "max by (compute_host, total, running_vms, enabled, disabled_reason, workload_type, availability_zone, cpu_architecture, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=~\"$workload_type\", enabled=~\"$enabled\", cpu_architecture=~\"$cpu_architecture\"}) / 100", + "expr": "max by (compute_host, running_vms, enabled, disabled_reason, workload_type, availability_zone, cpu_architecture, hypervisor_family) (100-cortex_sap_host_utilization_per_host_pct{resource=\"disk\", availability_zone=~\"$availability_zone\", compute_host=~\"$compute_host\", hypervisor_family=~\"$hypervisor_family\", workload_type=~\"$workload_type\", enabled=~\"$enabled\", cpu_architecture=~\"$cpu_architecture\"}) / 100", "format": "table", "hide": false, "instant": true, @@ -3484,7 +3045,7 @@ "h": 23, "w": 24, "x": 0, - "y": 121 + "y": 86 }, "heatmap": {}, "hideZeroBuckets": false, @@ -3556,7 +3117,7 @@ "h": 23, "w": 24, "x": 0, - "y": 144 + "y": 109 }, "heatmap": {}, "hideZeroBuckets": false, @@ -3628,7 +3189,7 @@ "h": 23, "w": 24, "x": 0, - "y": 167 + "y": 132 }, "heatmap": {}, "hideZeroBuckets": false, @@ -3677,7 +3238,7 @@ "yBucketSize": null } ], - "refresh": "1m", + "refresh": "5m", "schemaVersion": 27, "style": "dark", "tags": [], @@ -3787,13 +3348,9 @@ { "allValue": null, "current": { - "selected": true, - "text": [ - "All" - ], - "value": [ - "$__all" - ] + "selected": false, + "text": "All", + "value": "$__all" }, "datasource": "prometheus-openstack", "definition": "label_values(cortex_sap_host_utilization_per_host_pct, enabled)", @@ -3892,12 +3449,12 @@ ] }, "time": { - "from": "now-24h", + "from": "now-7d", "to": "now" }, "timepicker": {}, "timezone": "", "title": "Cortex Host Capacity", "uid": "cortex-host-capacity", - "version": 1 + "version": 20 } \ No newline at end of file