Implement different ways to calculate hypervisor disk total
Depends on ceph enabled or not we have different ways to calculate
total hypervisor disk stats.
Related-PROD: PROD-18535
Change-Id: I5d76ddef20c8b5cb7936d3068a088bc739d427e3
diff --git a/nova/files/grafana_dashboards/nova_prometheus.json b/nova/files/grafana_dashboards/nova_prometheus.json
index 932f451..8ec0841 100644
--- a/nova/files/grafana_dashboards/nova_prometheus.json
+++ b/nova/files/grafana_dashboards/nova_prometheus.json
@@ -3381,7 +3381,13 @@
"tableColumn": "",
"targets": [
{
+ {%- endraw %}
+ {%- if parameters is defined and parameters.get('nova_compute_ceph_ephemeral', False) == True %}
+ "expr": "max(avg(openstack_nova_used_disk) by (instance))",
+ {%- else %}
"expr": "max(sum(openstack_nova_used_disk) by (instance))",
+ {%- endif %}
+ {%- raw %}
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3615,7 +3621,13 @@
"tableColumn": "",
"targets": [
{
+ {%- endraw %}
+ {%- if parameters is defined and parameters.get('nova_compute_ceph_ephemeral', False) == True %}
+ "expr": "max(avg(openstack_nova_disk_available) by (instance))",
+ {%- else %}
"expr": "max(sum(openstack_nova_disk - openstack_nova_used_disk) by (instance))",
+ {%- endif %}
+ {%- raw %}
"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 7479452..978f951 100644
--- a/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
+++ b/nova/files/grafana_dashboards/nova_prometheus_fluentd.json
@@ -3205,7 +3205,13 @@
"tableColumn": "",
"targets": [
{
+ {%- endraw %}
+ {%- if parameters is defined and parameters.get('nova_compute_ceph_ephemeral', False) == True %}
+ "expr": "max(avg(openstack_nova_used_disk) by (instance))",
+ {%- else %}
"expr": "max(sum(openstack_nova_used_disk) by (instance))",
+ {%- endif %}
+ {%- raw %}
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
@@ -3439,7 +3445,13 @@
"tableColumn": "",
"targets": [
{
+ {%- endraw %}
+ {%- if parameters is defined and parameters.get('nova_compute_ceph_ephemeral', False) == True %}
+ "expr": "max(avg(openstack_nova_disk_available) by (instance))",
+ {%- else %}
"expr": "max(sum(openstack_nova_disk - openstack_nova_used_disk) by (instance))",
+ {%- endif %}
+ {%- raw %}
"format": "time_series",
"intervalFactor": 2,
"legendFormat": "",
diff --git a/nova/meta/grafana.yml b/nova/meta/grafana.yml
index 7ebae7c..1276f54 100644
--- a/nova/meta/grafana.yml
+++ b/nova/meta/grafana.yml
@@ -1,3 +1,8 @@
+{%- from "nova/map.jinja" import compute with context %}
+parameters:
+ {%- if compute is defined and compute.get('enabled', False) and compute.get('ceph', {}).get('ephemeral', False) %}
+ nova_compute_ceph_ephemeral: True
+ {%- endif %}
dashboard:
{%- if pillar.get('fluentd', {}).get('agent', {}).get('enabled', False) %}
nova_prometheus: