Rework hypervisor utilization monitoring
- change the base metrics for the dashboard panels
- remove useless alerts
- add real CPU usage monitoring
Change-Id: I8d22f749fc7224dc097856d36d600290ce5f7f7f
Related-PROD: PROD-20451
Related-PROD: PROD-18535
diff --git a/nova/files/grafana_dashboards/nova_prometheus.json b/nova/files/grafana_dashboards/nova_prometheus.json
index e866b9f..932f451 100644
--- a/nova/files/grafana_dashboards/nova_prometheus.json
+++ b/nova/files/grafana_dashboards/nova_prometheus.json
@@ -3303,7 +3303,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_used_vcpus)",
+ "expr": "sum(system_load15 and on (host) label_replace(openstack_nova_vcpus, \"host\", \"$1\", \"hostname\", \"(.*)\"))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3381,7 +3381,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_used_disk)",
+ "expr": "max(sum(openstack_nova_used_disk) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3459,7 +3459,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_used_ram)",
+ "expr": "max(sum(openstack_nova_used_ram) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3537,7 +3537,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_free_vcpus)",
+ "expr": "sum(label_replace(openstack_nova_vcpus, \"host\", \"$1\", \"hostname\", \"(.*)\") - on (host) system_load15)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3615,7 +3615,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_free_disk)",
+ "expr": "max(sum(openstack_nova_disk - openstack_nova_used_disk) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3693,7 +3693,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_free_ram)",
+ "expr": "max(sum(openstack_nova_ram - openstack_nova_used_ram) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
diff --git a/nova/files/grafana_dashboards/nova_prometheus_fluentd.json b/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
index 6f9dea0..7479452 100644
--- a/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
+++ b/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
@@ -3127,7 +3127,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_used_vcpus)",
+ "expr": "sum(system_load15 and on (host) label_replace(openstack_nova_vcpus, \"host\", \"$1\", \"hostname\", \"(.*)\"))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3205,7 +3205,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_used_disk)",
+ "expr": "max(sum(openstack_nova_used_disk) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3283,7 +3283,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_used_ram)",
+ "expr": "max(sum(openstack_nova_used_ram) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3361,7 +3361,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_free_vcpus)",
+ "expr": "sum(label_replace(openstack_nova_vcpus, \"host\", \"$1\", \"hostname\", \"(.*)\") - on (host) system_load15)",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3439,7 +3439,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_free_disk)",
+ "expr": "max(sum(openstack_nova_disk - openstack_nova_used_disk) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3517,7 +3517,7 @@
"tableColumn": "",
"targets": [
{
- "expr": "max(openstack_nova_total_free_ram)",
+ "expr": "max(sum(openstack_nova_ram - openstack_nova_used_ram) by (instance))",
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
diff --git a/nova/map.jinja b/nova/map.jinja
index e9282b7..1ab5e4c 100644
--- a/nova/map.jinja
+++ b/nova/map.jinja
@@ -193,12 +193,8 @@
'services_failed_critical_threshold_percent': 0.6,
'computes_failed_warning_threshold_percent': 0.25,
'computes_failed_critical_threshold_percent': 0.5,
- 'allocated_vcpus_minor_threshold': 0.9,
- 'allocated_vcpus_major_threshold': 0.97,
- 'allocated_ram_minor_threshold': 0.9,
- 'allocated_ram_major_threshold': 0.97,
- 'allocated_disk_minor_threshold': 0.9,
- 'allocated_disk_major_threshold': 0.97,
+ 'cpu_minor_threshold': 0.85,
+ 'cpu_major_threshold': 0.95,
'ram_major_threshold': 0.85,
'ram_critical_threshold': 0.95,
'disk_major_threshold': 0.85,
diff --git a/nova/meta/prometheus.yml b/nova/meta/prometheus.yml
index f701acd..532b3d5 100644
--- a/nova/meta/prometheus.yml
+++ b/nova/meta/prometheus.yml
@@ -153,76 +153,31 @@
All {{ $labels.binary }} services are down.
{%- endraw -%}
-{%- set cpu_ratio = controller.get('cpu_allocation_ratio', 16.0) %}
-{%- set ram_ratio = controller.get('ram_allocation_ratio', 1.5) %}
-{%- set disk_ratio = controller.get('disk_allocation_ratio', 1.0) -%}
-
-{%- set alloc_cpu_minor_threshold = monitoring.allocated_vcpus_minor_threshold|float %}
-{%- set alloc_cpu_major_threshold = monitoring.allocated_vcpus_major_threshold|float %}
-{%- set alloc_ram_minor_threshold = monitoring.allocated_ram_minor_threshold|float %}
-{%- set alloc_ram_major_threshold = monitoring.allocated_ram_major_threshold|float %}
-{%- set alloc_disk_minor_threshold = monitoring.allocated_disk_minor_threshold|float %}
-{%- set alloc_disk_major_threshold = monitoring.allocated_disk_major_threshold|float -%}
-
+{%- set cpu_minor_threshold = monitoring.cpu_minor_threshold|float %}
+{%- set cpu_major_threshold = monitoring.cpu_major_threshold|float %}
{%- set ram_major_threshold = monitoring.ram_major_threshold|float %}
{%- set ram_critical_threshold = monitoring.ram_critical_threshold|float %}
{%- set disk_major_threshold = monitoring.disk_major_threshold|float %}
{%- set disk_critical_threshold = monitoring.disk_critical_threshold|float -%}
- NovaHypervisorAllocatedVCPUsFullMinor:
+ NovaHypervisorVCPUsFullMinor:
if: >-
- openstack_nova_used_vcpus >= openstack_nova_vcpus * {{ cpu_ratio }} * {{ alloc_cpu_minor_threshold }}
+ label_replace(system_load15, "hostname", "$1", "host", "(.*)") >= on (hostname) openstack_nova_vcpus * {{ cpu_minor_threshold }}
labels:
severity: minor
service: nova
annotations:
- summary: "{{ alloc_cpu_minor_threshold * 100 }}% of hypervisor VCPUs were allocated"
- description: "{% raw %}{{ $value }} VCPUs on the {{ $labels.hostname }}{% endraw %} node were allocated (at least {{ alloc_cpu_minor_threshold * 100 }}%)."
- NovaHypervisorAllocatedVCPUsFullMajor:
+ summary: "{{ cpu_minor_threshold * 100 }}% of hypervisor VCPUs were used"
+ description: "{% raw %}{{ $value }} VCPUs on the {{ $labels.hostname }}{% endraw %} node were used (at least {{ cpu_minor_threshold * 100 }}%)."
+ NovaHypervisorVCPUsFullMajor:
if: >-
- openstack_nova_used_vcpus >= openstack_nova_vcpus * {{ cpu_ratio }} * {{ alloc_cpu_major_threshold }}
+ label_replace(system_load15, "hostname", "$1", "host", "(.*)") >= on (hostname) openstack_nova_vcpus * {{ cpu_major_threshold }}
labels:
severity: major
service: nova
annotations:
- summary: "{{ alloc_cpu_major_threshold * 100 }}% of hypervisor VCPUs were allocated"
- description: "{% raw %}{{ $value }} VCPUs on the {{ $labels.hostname }}{% endraw %} node were allocated (at least {{ alloc_cpu_major_threshold * 100 }}%)."
- NovaHypervisorAllocatedVCPUsFullCritical:
- if: >-
- openstack_nova_used_vcpus >= openstack_nova_vcpus * {{ cpu_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No VCPUs available for allocation"
- description: "All available VCPUs on the {% raw %}{{ $labels.hostname }}{% endraw %} node were allocated."
- NovaHypervisorAllocatedMemoryFullMinor:
- if: >-
- openstack_nova_ram - openstack_nova_free_ram >= openstack_nova_ram * {{ ram_ratio }} * {{ alloc_ram_minor_threshold }}
- labels:
- severity: minor
- service: nova
- annotations:
- summary: "{{ alloc_ram_minor_threshold * 100 }}% of hypervisor RAM was allocated"
- description: "{% raw %}{{ $value }}MB of RAM on the {{ $labels.hostname }}{% endraw %} node was allocated (at least {{ alloc_ram_minor_threshold * 100 }}%)."
- NovaHypervisorAllocatedMemoryFullMajor:
- if: >-
- openstack_nova_ram - openstack_nova_free_ram >= openstack_nova_ram * {{ ram_ratio }} * {{ alloc_ram_major_threshold }}
- labels:
- severity: major
- service: nova
- annotations:
- summary: "{{ alloc_ram_major_threshold * 100 }}% of hypervisor RAM was allocated"
- description: "{% raw %}{{ $value }}MB of RAM on the {{ $labels.hostname }}{% endraw %} node was allocated (at least {{ alloc_ram_major_threshold * 100 }}%)."
- NovaHypervisorAllocatedMemoryFullCritical:
- if: >-
- openstack_nova_ram - openstack_nova_free_ram >= openstack_nova_ram * {{ ram_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No RAM available for allocation"
- description: "All available RAM on the {% raw %}{{ $labels.hostname }}{% endraw %} node was allocated."
+ summary: "{{ cpu_major_threshold * 100 }}% of hypervisor VCPUs were used"
+ description: "{% raw %}{{ $value }} VCPUs on the {{ $labels.hostname }}{% endraw %} node were used (at least {{ cpu_major_threshold * 100 }}%)."
NovaHypervisorMemoryFullMajor:
if: >-
openstack_nova_used_ram >= openstack_nova_ram * {{ ram_major_threshold }}
@@ -241,33 +196,6 @@
annotations:
summary: "{{ ram_critical_threshold * 100 }}% of hypervisor RAM was used"
description: "{% raw %}{{ $value }}MB of RAM on the {{ $labels.hostname }}{% endraw %} node was used (at least {{ ram_critical_threshold * 100 }}%)."
- NovaHypervisorAllocatedDiskFullMinor:
- if: >-
- openstack_nova_disk - openstack_nova_free_disk >= openstack_nova_disk * {{ disk_ratio }} * {{ alloc_disk_minor_threshold }}
- labels:
- severity: minor
- service: nova
- annotations:
- summary: "{{ alloc_disk_minor_threshold * 100 }}% of hypervisor disk space was allocated"
- description: "{% raw %}{{ $value }}GB of disk space on the {{ $labels.hostname }}{% endraw %} node was allocated (at least {{ alloc_disk_minor_threshold * 100 }}%)."
- NovaHypervisorAllocatedDiskFullMajor:
- if: >-
- openstack_nova_disk - openstack_nova_free_disk >= openstack_nova_disk * {{ disk_ratio }} * {{ alloc_disk_major_threshold }}
- labels:
- severity: major
- service: nova
- annotations:
- summary: "{{ alloc_disk_major_threshold * 100 }}% of hypervisor disk space was allocated"
- description: "{% raw %}{{ $value }}GB of disk space on the {{ $labels.hostname }}{% endraw %} node was allocated (at least {{ alloc_disk_major_threshold * 100 }}%)."
- NovaHypervisorAllocatedDiskFullCritical:
- if: >-
- openstack_nova_disk - openstack_nova_free_disk >= openstack_nova_disk * {{ disk_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No disk space available for allocation"
- description: "All available disk space on the {% raw %}{{ $labels.hostname }}{% endraw %} node was allocated."
NovaHypervisorDiskFullMajor:
if: >-
openstack_nova_used_disk >= openstack_nova_disk * {{ disk_major_threshold }}
@@ -286,60 +214,6 @@
annotations:
summary: "{{ disk_critical_threshold * 100 }}% of hypervisor disk space was used"
description: "{% raw %}{{ $value }}GB of disk space on the {{ $labels.hostname }}{% endraw %} node was used (at least {{ disk_critical_threshold * 100 }}%)."
- NovaAggregateAllocatedVCPUsFullMinor:
- if: >-
- openstack_nova_aggregate_used_vcpus >= openstack_nova_aggregate_vcpus * {{ cpu_ratio }} * {{ alloc_cpu_minor_threshold }}
- labels:
- severity: minor
- service: nova
- annotations:
- summary: "{{ alloc_cpu_minor_threshold * 100 }}% of aggregate VCPUs were allocated"
- description: "{% raw %}{{ $value }} VCPUs on the {{ $labels.aggregate }}{% endraw %} aggregate were allocated (at least {{ alloc_cpu_minor_threshold * 100 }}%)."
- NovaAggregateAllocatedVCPUsFullMajor:
- if: >-
- openstack_nova_aggregate_used_vcpus >= openstack_nova_aggregate_vcpus * {{ cpu_ratio }} * {{ alloc_cpu_major_threshold }}
- labels:
- severity: major
- service: nova
- annotations:
- summary: "{{ alloc_cpu_major_threshold * 100 }}% of aggregate VCPUs were allocated"
- description: "{% raw %}{{ $value }} VCPUs on the {{ $labels.aggregate }}{% endraw %} aggregate were allocated (at least {{ alloc_cpu_major_threshold * 100 }}%)."
- NovaAggregateAllocatedVCPUsFullCritical:
- if: >-
- openstack_nova_aggregate_used_vcpus >= openstack_nova_aggregate_vcpus * {{ cpu_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No VCPUs available for allocation"
- description: "All available VCPUs on the {% raw %}{{ $labels.aggregate }}{% endraw %} aggregate were allocated."
- NovaAggregateAllocatedMemoryFullMinor:
- if: >-
- openstack_nova_aggregate_ram - openstack_nova_aggregate_free_ram >= openstack_nova_aggregate_ram * {{ ram_ratio }} * {{ alloc_ram_minor_threshold }}
- labels:
- severity: minor
- service: nova
- annotations:
- summary: "{{ alloc_ram_minor_threshold * 100 }}% of aggregate RAM was allocated"
- description: "{% raw %}{{ $value }}MB of RAM on the {{ $labels.aggregate }}{% endraw %} aggregate was allocated (at least {{ alloc_ram_minor_threshold * 100 }}%)."
- NovaAggregateAllocatedMemoryFullMajor:
- if: >-
- openstack_nova_aggregate_ram - openstack_nova_aggregate_free_ram >= openstack_nova_aggregate_ram * {{ ram_ratio }} * {{ alloc_ram_major_threshold }}
- labels:
- severity: major
- service: nova
- annotations:
- summary: "{{ alloc_ram_major_threshold * 100 }}% of aggregate RAM was allocated"
- description: "{% raw %}{{ $value }}MB of RAM on the {{ $labels.aggregate }}{% endraw %} aggregate was allocated (at least {{ alloc_ram_major_threshold * 100 }}%)."
- NovaAggregateAllocatedMemoryFullCritical:
- if: >-
- openstack_nova_aggregate_ram - openstack_nova_aggregate_free_ram >= openstack_nova_aggregate_ram * {{ ram_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No RAM available for allocation"
- description: "All available RAM on the {% raw %}{{ $labels.aggregate }}{% endraw %} aggregate was allocated."
NovaAggregateMemoryFullMajor:
if: >-
openstack_nova_aggregate_used_ram >= openstack_nova_aggregate_ram * {{ ram_major_threshold }}
@@ -358,33 +232,6 @@
annotations:
summary: "{{ ram_critical_threshold * 100 }}% of aggregate RAM was used"
description: "{% raw %}{{ $value }}MB of RAM on the {{ $labels.aggregate }}{% endraw %} aggregate was used (at least {{ ram_critical_threshold * 100 }}%)."
- NovaAggregateAllocatedDiskFullMinor:
- if: >-
- openstack_nova_aggregate_disk - openstack_nova_aggregate_free_disk >= openstack_nova_aggregate_disk * {{ disk_ratio }} * {{ alloc_disk_minor_threshold }}
- labels:
- severity: minor
- service: nova
- annotations:
- summary: "{{ alloc_disk_minor_threshold * 100 }}% of aggregate disk space was allocated"
- description: "{% raw %}{{ $value }}GB of disk space on the {{ $labels.aggregate }}{% endraw %} aggregate was allocated (at least {{ alloc_disk_minor_threshold * 100 }}%)."
- NovaAggregateAllocatedDiskFullMajor:
- if: >-
- openstack_nova_aggregate_disk - openstack_nova_aggregate_free_disk >= openstack_nova_aggregate_disk * {{ disk_ratio }} * {{ alloc_disk_major_threshold }}
- labels:
- severity: major
- service: nova
- annotations:
- summary: "{{ alloc_disk_major_threshold * 100 }}% of aggregate disk space was allocated"
- description: "{% raw %}{{ $value }}GB of disk space on the {{ $labels.aggregate }}{% endraw %} aggregate was allocated (at least {{ alloc_disk_major_threshold * 100 }}%)."
- NovaAggregateAllocatedDiskFullCritical:
- if: >-
- openstack_nova_aggregate_disk - openstack_nova_aggregate_free_disk >= openstack_nova_aggregate_disk * {{ disk_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No disk space available for allocation"
- description: "All available disk space on the {% raw %}{{ $labels.aggregate }}{% endraw %} aggregate was allocated."
NovaAggregateDiskFullMajor:
if: >-
openstack_nova_aggregate_used_disk >= openstack_nova_aggregate_disk * {{ disk_major_threshold }}
@@ -403,60 +250,24 @@
annotations:
summary: "{{ disk_critical_threshold * 100 }}% of aggregate disk space was used"
description: "{% raw %}{{ $value }}GB of disk space on the {{ $labels.aggregate }}{% endraw %} aggregate was used (at least {{ disk_critical_threshold * 100 }}%)."
- NovaTotalAllocatedVCPUsFullMinor:
+ NovaTotalVCPUsFullMinor:
if: >-
- openstack_nova_total_used_vcpus >= openstack_nova_total_vcpus * {{ cpu_ratio }} * {{ alloc_cpu_minor_threshold }}
+ sum(label_replace(system_load15, "hostname", "$1", "host", "(.*)") and on (hostname) openstack_nova_vcpus) >= max(sum(openstack_nova_vcpus) by (instance)) * {{ cpu_minor_threshold }}
labels:
severity: minor
service: nova
annotations:
- summary: "{{ alloc_cpu_minor_threshold * 100 }}% of cloud VCPUs were allocated"
- description: "{% raw %}{{ $value }}{% endraw %} VCPUs in the cloud were allocated (at least {{ alloc_cpu_minor_threshold * 100 }}%)."
- NovaTotalAllocatedVCPUsFullMajor:
+ summary: "{{ cpu_minor_threshold * 100 }}% of cloud VCPUs were used"
+ description: "{% raw %}{{ $value }}{% endraw %} VCPUs in the cloud were used (at least {{ cpu_minor_threshold * 100 }}%)."
+ NovaTotalVCPUsFullMajor:
if: >-
- openstack_nova_total_used_vcpus >= openstack_nova_total_vcpus * {{ cpu_ratio }} * {{ alloc_cpu_major_threshold }}
+ sum(label_replace(system_load15, "hostname", "$1", "host", "(.*)") and on (hostname) openstack_nova_vcpus) >= max(sum(openstack_nova_vcpus) by (instance)) * {{ cpu_major_threshold }}
labels:
severity: major
service: nova
annotations:
- summary: "{{ alloc_cpu_major_threshold * 100 }}% of cloud VCPUs were allocated"
- description: "{% raw %}{{ $value }}{% endraw %} VCPUs in the cloud were allocated (at least {{ alloc_cpu_major_threshold * 100 }}%)."
- NovaTotalAllocatedVCPUsFullCritical:
- if: >-
- openstack_nova_total_used_vcpus >= openstack_nova_total_vcpus * {{ cpu_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No VCPUs available for allocation"
- description: "All available VCPUs in the cloud were allocated."
- NovaTotalAllocatedMemoryFullMinor:
- if: >-
- openstack_nova_total_ram - openstack_nova_total_free_ram >= openstack_nova_total_ram * {{ ram_ratio }} * {{ alloc_ram_minor_threshold }}
- labels:
- severity: minor
- service: nova
- annotations:
- summary: "{{ alloc_ram_minor_threshold * 100 }}% of cloud RAM was allocated"
- description: "{% raw %}{{ $value }}MB{% endraw %} of RAM in the cloud was allocated (at least {{ alloc_ram_minor_threshold * 100 }}%)."
- NovaTotalAllocatedMemoryFullMajor:
- if: >-
- openstack_nova_total_ram - openstack_nova_total_free_ram >= openstack_nova_total_ram * {{ ram_ratio }} * {{ alloc_ram_major_threshold }}
- labels:
- severity: major
- service: nova
- annotations:
- summary: "{{ alloc_ram_major_threshold * 100 }}% of cloud RAM was allocated"
- description: "{% raw %}{{ $value }}MB{% endraw %} of RAM in the cloud was allocated (at least {{ alloc_ram_major_threshold * 100 }}%)."
- NovaTotalAllocatedMemoryFullCritical:
- if: >-
- openstack_nova_total_ram - openstack_nova_total_free_ram >= openstack_nova_total_ram * {{ ram_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No RAM available for allocation"
- description: "All available RAM in the cloud was allocated."
+ summary: "{{ cpu_major_threshold * 100 }}% of cloud VCPUs were used"
+ description: "{% raw %}{{ $value }}{% endraw %} VCPUs in the cloud were used (at least {{ cpu_major_threshold * 100 }}%)."
NovaTotalMemoryFullMajor:
if: >-
openstack_nova_total_used_ram >= openstack_nova_total_ram * {{ ram_major_threshold }}
@@ -475,33 +286,6 @@
annotations:
summary: "{{ ram_critical_threshold * 100 }}% of cloud RAM was used"
description: "{% raw %}{{ $value }}MB{% endraw %} of RAM in the cloud was used (at least {{ ram_critical_threshold * 100 }}%)."
- NovaTotalAllocatedDiskFullMinor:
- if: >-
- openstack_nova_total_disk - openstack_nova_total_free_disk >= openstack_nova_total_disk * {{ disk_ratio }} * {{ alloc_disk_minor_threshold }}
- labels:
- severity: minor
- service: nova
- annotations:
- summary: "{{ alloc_disk_minor_threshold * 100 }}% of cloud disk space was allocated"
- description: "{% raw %}{{ $value }}GB{% endraw %} of disk space in the cloud was allocated (at least {{ alloc_disk_minor_threshold * 100 }}%)."
- NovaTotalAllocatedDiskFullMajor:
- if: >-
- openstack_nova_total_disk - openstack_nova_total_free_disk >= openstack_nova_total_disk * {{ disk_ratio }} * {{ alloc_disk_major_threshold }}
- labels:
- severity: major
- service: nova
- annotations:
- summary: "{{ alloc_disk_major_threshold * 100 }}% of cloud disk space was allocated"
- description: "{% raw %}{{ $value }}GB{% endraw %} of disk space in the cloud was allocated (at least {{ alloc_disk_major_threshold * 100 }}%)."
- NovaTotalAllocatedDiskFullCritical:
- if: >-
- openstack_nova_total_disk - openstack_nova_total_free_disk >= openstack_nova_total_disk * {{ disk_ratio }}
- labels:
- severity: critical
- service: nova
- annotations:
- summary: "No disk space available for allocation"
- description: "All available disk space in the cloud was allocated."
NovaTotalDiskFullMajor:
if: >-
openstack_nova_total_used_disk >= openstack_nova_total_disk * {{ disk_major_threshold }}