diff --git a/internal/extractor/plugins/sap/host_details.sql b/internal/extractor/plugins/sap/host_details.sql index 7227999bf..e96436728 100644 --- a/internal/extractor/plugins/sap/host_details.sql +++ b/internal/extractor/plugins/sap/host_details.sql @@ -4,11 +4,13 @@ WITH host_traits AS ( h.hypervisor_type, h.running_vms, h.state, + h.status, + h.service_disabled_reason, 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 + 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, @@ -33,13 +35,17 @@ 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.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 5d90f22fe..9b1ec2576 100644 --- a/internal/extractor/plugins/sap/host_details_test.go +++ b/internal/extractor/plugins/sap/host_details_test.go @@ -51,16 +51,22 @@ 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 - &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", ServiceDisabledReason: &exampleServiceDisabledReason}, + // Host with disabled trait + &nova.Hypervisor{ID: "uuid6", ServiceHost: "node004-bb03", HypervisorType: "test", RunningVMs: 2, State: "up", Status: "enabled", ServiceDisabledReason: &exampleServiceDisabledReason}, } if err := testDB.Insert(hypervisors...); err != nil { @@ -74,10 +80,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 +100,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(hostAvailabilityZones...); err != nil { @@ -117,15 +127,6 @@ 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" - expected := []HostDetails{ { ComputeHost: "nova-compute-bb01", @@ -135,7 +136,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorFamily: "vmware", WorkloadType: "hana", Enabled: false, - DisabledReason: &disabledReasonExternal, + DisabledReason: &[]string{"external customer"}[0], RunningVMs: 5, }, { @@ -146,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, }, { @@ -157,7 +158,7 @@ func TestHostDetailsExtractor_Extract(t *testing.T) { HypervisorType: "test", WorkloadType: "general-purpose", Enabled: false, - DisabledReason: &disabledReasonDecommissioning, + DisabledReason: &[]string{"decommissioning"}[0], RunningVMs: 2, }, { @@ -171,6 +172,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: &[]string{"[status: not enabled] " + exampleServiceDisabledReason}[0], + RunningVMs: 2, + }, + { + ComputeHost: "node004-bb03", + AvailabilityZone: "az2", + CPUArchitecture: "unknown", + HypervisorType: "test", + HypervisorFamily: "kvm", + WorkloadType: "general-purpose", + Enabled: false, + DisabledReason: &[]string{"[compute status disabled trait] " + exampleServiceDisabledReason}[0], + RunningVMs: 2, + }, } // Map the host details by compute host name for easier comparison diff --git a/plutono/provisioning/dashboards/cortex-capacity.json b/plutono/provisioning/dashboards/cortex-capacity.json index a85344471..3fd1ace05 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": 293, + "iteration": 1755610742618, "links": [], "panels": [ { @@ -27,27 +27,871 @@ "overrides": [] }, "gridPos": { - "h": 16, + "h": 34, "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", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "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": { + "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": 6, + "w": 10, + "x": 4, + "y": 8 + }, + "id": 170, + "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=\"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": "General Purpose / Cascade Lake", + "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": 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" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "yellow", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 10, + "x": 4, + "y": 14 + }, + "id": 201, + "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": "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", + "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=\"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": "", + "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=\"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": "", + "legendFormat": "Disk", + "refId": "C" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "General Purpose / Cascade Lake Predicted in 2 months", + "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": 3, + "w": 10, + "x": 14, + "y": 14 + }, + "id": 202, + "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": "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", + "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=\"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": "", + "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=\"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": "", + "legendFormat": "Disk", + "refId": "C" + } + ], + "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": {}, + "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": 17 + }, + "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": "Introduction", - "type": "text" + "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", @@ -79,16 +923,16 @@ "overrides": [] }, "gridPos": { - "h": 8, + "h": 6, "w": 10, "x": 4, - "y": 0 + "y": 25 }, - "id": 170, + "id": 179, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -100,11 +944,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "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=\"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", @@ -113,7 +957,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": "", @@ -122,7 +966,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": "", @@ -132,7 +976,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "General Purpose / Cascade Lake", + "title": "HANA / Cascade Lake", "type": "stat" }, { @@ -165,16 +1009,16 @@ "overrides": [] }, "gridPos": { - "h": 8, + "h": 6, "w": 10, "x": 14, - "y": 0 + "y": 25 }, - "id": 177, + "id": 178, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -186,11 +1030,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "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", + "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", @@ -199,7 +1043,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=\"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": "", @@ -208,7 +1052,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 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": "", @@ -218,7 +1062,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "General Purpose / Sapphire Rapids", + "title": "HANA / Sapphire Rapids", "type": "stat" }, { @@ -251,16 +1095,16 @@ "overrides": [] }, "gridPos": { - "h": 8, + "h": 3, "w": 10, "x": 4, - "y": 8 + "y": 31 }, - "id": 179, + "id": 203, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -272,11 +1116,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "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", + "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", @@ -285,7 +1129,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": "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": "", @@ -294,7 +1138,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": "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": "", @@ -304,7 +1148,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "HANA / Cascade Lake", + "title": "HANA / Cascade Lake Predicted in 2 months", "type": "stat" }, { @@ -337,16 +1181,16 @@ "overrides": [] }, "gridPos": { - "h": 8, + "h": 3, "w": 10, "x": 14, - "y": 8 + "y": 31 }, - "id": 178, + "id": 204, "options": { - "colorMode": "value", + "colorMode": "background", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -358,11 +1202,11 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "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", @@ -371,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": "", @@ -380,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": "", @@ -390,7 +1234,7 @@ ], "timeFrom": null, "timeShift": null, - "title": "HANA / Sapphire Rapids", + "title": "HANA / Sapphire Rapids Predicted in 2 months", "type": "stat" }, { @@ -400,7 +1244,7 @@ "h": 1, "w": 24, "x": 0, - "y": 16 + "y": 34 }, "id": 165, "panels": [], @@ -457,52 +1301,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": 0, - "y": 17 + "y": 35 }, "id": 168, "options": { "colorMode": "value", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -514,7 +1326,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -533,15 +1345,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=\"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", @@ -565,6 +1368,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": 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": { @@ -616,52 +1486,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": 8, - "y": 17 + "y": 35 }, "id": 180, "options": { "colorMode": "value", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -673,7 +1511,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -692,15 +1530,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=\"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", @@ -736,50 +1565,85 @@ "mode": "absolute", "steps": [ { - "color": "green", + "color": "red", "value": null + }, + { + "color": "#EAB839", + "value": 0.2 + }, + { + "color": "green", + "value": 0.3 } ] }, - "unit": "decgbytes" + "unit": "percentunit" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Capacity" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 2, + "x": 14, + "y": 35 + }, + "id": 207, + "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=\"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": "", + "queryType": "randomWalk", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "RAM Prediction (2 months)", + "type": "stat" + }, + { + "datasource": "prometheus-openstack", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "red", - "value": null - }, - { - "color": "#EAB839", - "value": 0.2 - }, - { - "color": "green", - "value": 0.3 - } - ] - } + "color": "green", + "value": null } ] }, + "unit": "decgbytes" + }, + "overrides": [ { "matcher": { "id": "byName", - "options": "Predicted Capacity (in 1d)" + "options": "Capacity" }, "properties": [ { @@ -812,15 +1676,15 @@ }, "gridPos": { "h": 7, - "w": 8, + "w": 6, "x": 16, - "y": 17 + "y": 35 }, "id": 181, "options": { "colorMode": "value", "graphMode": "none", - "justifyMode": "auto", + "justifyMode": "center", "orientation": "auto", "reduceOptions": { "calcs": [ @@ -832,7 +1696,7 @@ "text": {}, "textMode": "auto" }, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "targets": [ { "exemplar": true, @@ -851,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", @@ -883,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, @@ -899,7 +1821,7 @@ "h": 8, "w": 8, "x": 0, - "y": 24 + "y": 42 }, "hiddenSeries": false, "id": 183, @@ -919,11 +1841,23 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "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, @@ -1006,7 +1940,7 @@ "h": 8, "w": 8, "x": 8, - "y": 24 + "y": 42 }, "hiddenSeries": false, "id": 184, @@ -1026,11 +1960,23 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "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, @@ -1113,7 +2059,7 @@ "h": 8, "w": 8, "x": 16, - "y": 24 + "y": 42 }, "hiddenSeries": false, "id": 185, @@ -1133,11 +2079,23 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "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, @@ -1218,7 +2176,7 @@ "h": 8, "w": 8, "x": 0, - "y": 32 + "y": 50 }, "hiddenSeries": false, "id": 187, @@ -1238,7 +2196,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1329,7 +2287,7 @@ "h": 8, "w": 8, "x": 8, - "y": 32 + "y": 50 }, "hiddenSeries": false, "id": 188, @@ -1349,7 +2307,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1440,7 +2398,7 @@ "h": 8, "w": 8, "x": 16, - "y": 32 + "y": 50 }, "hiddenSeries": false, "id": 189, @@ -1460,7 +2418,7 @@ "alertThreshold": true }, "percentage": false, - "pluginVersion": "7.5.40", + "pluginVersion": "7.5.39", "pointradius": 2, "points": false, "renderer": "flot", @@ -1819,18 +2777,23 @@ "h": 28, "w": 24, "x": 0, - "y": 40 + "y": 58 }, "id": 163, "options": { "showHeader": true, - "sortBy": [] + "sortBy": [ + { + "desc": false, + "displayName": "Compute Host" + } + ] }, - "pluginVersion": "7.5.40", + "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": "", @@ -1840,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, @@ -1850,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, @@ -2082,7 +3045,7 @@ "h": 23, "w": 24, "x": 0, - "y": 68 + "y": 86 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2154,7 +3117,7 @@ "h": 23, "w": 24, "x": 0, - "y": 91 + "y": 109 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2226,7 +3189,7 @@ "h": 23, "w": 24, "x": 0, - "y": 114 + "y": 132 }, "heatmap": {}, "hideZeroBuckets": false, @@ -2275,7 +3238,7 @@ "yBucketSize": null } ], - "refresh": "1m", + "refresh": "5m", "schemaVersion": 27, "style": "dark", "tags": [], @@ -2284,13 +3247,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, availability_zone)", @@ -2389,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)", @@ -2494,12 +3449,12 @@ ] }, "time": { - "from": "now-6h", + "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