From 0f403e338f6ae16607fa0c450853e95e77020ac0 Mon Sep 17 00:00:00 2001 From: Pavel Tishkov Date: Tue, 7 Apr 2026 14:57:22 +0300 Subject: [PATCH] fix(module): fix virtualization overview dashboard duplicate series issue --- .../virtualization/cluster-overview.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/monitoring/grafana-dashboards/virtualization/cluster-overview.json b/monitoring/grafana-dashboards/virtualization/cluster-overview.json index 039d7afc4a..e81cb2f46a 100644 --- a/monitoring/grafana-dashboards/virtualization/cluster-overview.json +++ b/monitoring/grafana-dashboards/virtualization/cluster-overview.json @@ -235,7 +235,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg (\n sum by (pod) (\n (\n (\n d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"} \n * \n d8_virtualization_virtualmachine_cpu_core_fraction\n )\n # Stopped VM do not use CPU\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n ) / 100\n )\n) ", + "expr": "avg (\n sum by (pod) (\n (\n (\n d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"} \n * \n d8_virtualization_virtualmachine_cpu_core_fraction\n )\n # Stopped VM do not use CPU\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n ) / 100\n )\n) ", "format": "time_series", "instant": true, "legendFormat": "__auto", @@ -303,7 +303,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg (\n sum by(pod) (\n (\n d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"}\n +\n d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes\n )\n # VM during migration eats x2 RAM\n *\n on(namespace, pod, name)\n (\n 1 + (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"})\n )\n # Stopped VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n )\n)\n", + "expr": "avg (\n sum by(pod) (\n (\n d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"}\n +\n d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes\n )\n # VM during migration eats x2 RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 + max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"})\n )\n # Stopped VM do not eats RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n )\n)\n", "format": "time_series", "instant": true, "legendFormat": "__auto", @@ -654,7 +654,7 @@ "uid": "${ds_prometheus}" }, "editorMode": "code", - "expr": "avg by (namespace) (\n sum by (namespace,pod) (\n (\n (\n d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"} \n * \n d8_virtualization_virtualmachine_cpu_core_fraction\n )\n # Stopped VM do not use CPU\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n ) / 100\n )\n) ", + "expr": "avg by (namespace) (\n sum by (namespace,pod) (\n (\n (\n d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"} \n * \n d8_virtualization_virtualmachine_cpu_core_fraction\n )\n # Stopped VM do not use CPU\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n ) / 100\n )\n) ", "format": "table", "hide": false, "instant": true, @@ -670,7 +670,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg by(namespace) (\n sum by(namespace, pod) (\n (\n d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"}\n +\n d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes\n )\n # VM during migration eats x2 RAM\n *\n on(namespace, pod, name)\n (\n 1 + (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"})\n )\n # Stopped VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n )\n)\n", + "expr": "avg by(namespace) (\n sum by(namespace, pod) (\n (\n d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"}\n +\n d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes\n )\n # VM during migration eats x2 RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 + max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"})\n )\n # Stopped VM do not eats RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name) group_left()\n (\n 1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n )\n)\n", "format": "table", "hide": false, "instant": true, @@ -1623,7 +1623,7 @@ "uid": "${ds_prometheus}" }, "editorMode": "code", - "expr": "avg by (namespace) (\n sum by (namespace,pod) (\n (\n (\n d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"} \n * \n d8_virtualization_virtualmachine_cpu_core_fraction\n )\n # Stopped VM do not use CPU\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n ) / 100\n )\n) ", + "expr": "avg by (namespace) (\n sum by (namespace, pod) (\n (\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"})\n *\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_cpu_core_fraction{namespace=~\"$namespace\"})\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"}))\n ) / 100\n )\n)", "hide": false, "instant": false, "legendFormat": "{{namespace}}", @@ -1636,7 +1636,7 @@ "uid": "${ds_prometheus}" }, "editorMode": "code", - "expr": "avg (\n sum by (pod) (\n (\n (\n d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"} \n * \n d8_virtualization_virtualmachine_cpu_core_fraction\n )\n # Stopped VM do not use CPU\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n ) / 100\n )\n) ", + "expr": "avg (\n sum by (pod) (\n (\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"})\n *\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_cpu_core_fraction{namespace=~\"$namespace\"})\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"}))\n ) / 100\n )\n)", "hide": false, "instant": false, "legendFormat": "Total", @@ -1746,7 +1746,7 @@ "uid": "${ds_prometheus}" }, "editorMode": "code", - "expr": "(\n sum by (namespace) (\n rate(d8_virtualization_virtualmachine_cpu_usage_seconds_total{namespace=~\"$namespace\"}[$__rate_interval])\n ) \n / 1000\n)\n/\n(avg by (namespace) (\n sum by (namespace,pod) (\n (\n (\n d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"} \n * \n d8_virtualization_virtualmachine_cpu_core_fraction\n )\n # Stopped VM do not eats CPU\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats CPU\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n ) / 100\n )\n) / 100)", + "expr": "(\n sum by (namespace) (\n rate(d8_virtualization_virtualmachine_cpu_usage_seconds_total{namespace=~\"$namespace\"}[$__rate_interval])\n ) / 1000\n)\n/\n(\n avg by (namespace) (\n sum by (namespace, pod) (\n (\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_cpu_cores{namespace=~\"$namespace\"})\n *\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_cpu_core_fraction{namespace=~\"$namespace\"})\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"}))\n ) / 100\n )\n ) / 100\n)", "hide": false, "instant": false, "legendFormat": "{{namespace}}", @@ -2020,7 +2020,7 @@ "uid": "${ds_prometheus}" }, "editorMode": "code", - "expr": "avg by(namespace) (\n sum by(namespace, pod) (\n (\n d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"}\n +\n d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes\n )\n # VM during migration eats x2 RAM\n *\n on(namespace, pod, name)\n (\n 1 + (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"})\n )\n # Stopped VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n )\n)\n", + "expr": "avg by(namespace) (\n sum by(namespace, pod) (\n (\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"})\n +\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes{namespace=~\"$namespace\"})\n )\n *\n (1 + max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"}))\n )\n)", "hide": false, "instant": false, "legendFormat": "__auto", @@ -2033,7 +2033,7 @@ "uid": "${ds_prometheus}" }, "editorMode": "code", - "expr": "avg (\n sum by(pod) (\n (\n d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"}\n +\n d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes\n )\n # VM during migration eats x2 RAM\n *\n on(namespace, pod, name)\n (\n 1 + (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"})\n )\n # Stopped VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n )\n)\n", + "expr": "avg (\n sum by(pod) (\n (\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"})\n +\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_configuration_memory_runtime_overhead_bytes{namespace=~\"$namespace\"})\n )\n *\n (1 + max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"}))\n )\n)", "hide": false, "instant": false, "legendFormat": "Total", @@ -2139,7 +2139,7 @@ "uid": "${ds_prometheus}" }, "editorMode": "code", - "expr": "sum by (namespace) (\n d8_virtualization_virtualmachine_os_memory_total_bytes{namespace=~\"$namespace\"} \n - \n d8_virtualization_virtualmachine_os_memory_free_bytes\n)\n/\n(\n avg by (namespace) (\n sum by (pod, namespace) (\n d8_virtualization_virtualmachine_configuration_memory_size_bytes\n # VM during migration eats x2 RAM\n *\n on(namespace, pod, name)\n (\n 1 + (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"})\n )\n # Stopped VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"})\n )\n # Pending VM do not eats RAM\n *\n on(namespace, pod, name)\n (\n 1 - (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"})\n )\n )\n ) / 100\n)", + "expr": "sum by (namespace) (\n d8_virtualization_virtualmachine_os_memory_total_bytes{namespace=~\"$namespace\"}\n -\n d8_virtualization_virtualmachine_os_memory_free_bytes{namespace=~\"$namespace\"}\n)\n/\n(\n avg by (namespace) (\n sum by (pod, namespace) (\n max by(namespace, pod, name) (d8_virtualization_virtualmachine_configuration_memory_size_bytes{namespace=~\"$namespace\"})\n *\n (1 + max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Migrating\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Stopped\"}))\n *\n (1 - max by(namespace, pod, name) (d8_virtualization_virtualmachine_status_phase{phase=\"Pending\"}))\n )\n ) / 100\n)", "hide": false, "instant": false, "legendFormat": "{{namespace}}",