From e0ddf169bb65836bb574d5993f470921e22f809c Mon Sep 17 00:00:00 2001 From: Shirly Radco Date: Mon, 24 Feb 2025 20:38:09 +0200 Subject: [PATCH] Update the CNV time in status dashboard Update the CNV time in status dashboard. Added disk size and last migration date. Signed-off-by: Shirly Radco --- .../base/config/metrics_allowlist.yaml | 1 + ...cm-virtual-machines-by-time-in-status.yaml | 420 +++++++++++++++--- .../grafana/virtualization/scrape-config.yaml | 1 + 3 files changed, 360 insertions(+), 62 deletions(-) diff --git a/operators/multiclusterobservability/manifests/base/config/metrics_allowlist.yaml b/operators/multiclusterobservability/manifests/base/config/metrics_allowlist.yaml index 812d6d8f80..06acbd0fdf 100644 --- a/operators/multiclusterobservability/manifests/base/config/metrics_allowlist.yaml +++ b/operators/multiclusterobservability/manifests/base/config/metrics_allowlist.yaml @@ -163,6 +163,7 @@ data: - kubevirt_vmi_storage_iops_read_total - kubevirt_vmi_storage_iops_write_total - kubevirt_vm_resource_requests + - kubevirt_vm_disk_allocated_size_bytes matches: diff --git a/operators/multiclusterobservability/manifests/base/grafana/virtualization/dash-acm-virtual-machines-by-time-in-status.yaml b/operators/multiclusterobservability/manifests/base/grafana/virtualization/dash-acm-virtual-machines-by-time-in-status.yaml index adb5c9f35d..19553a97b2 100644 --- a/operators/multiclusterobservability/manifests/base/grafana/virtualization/dash-acm-virtual-machines-by-time-in-status.yaml +++ b/operators/multiclusterobservability/manifests/base/grafana/virtualization/dash-acm-virtual-machines-by-time-in-status.yaml @@ -29,6 +29,198 @@ data: "iteration": 1726219957608, "links": [], "panels": [ + { + "datasource": null, + "description": "The total CPUs of the VMs that are listed in the dashboard", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "text", + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 0 + }, + "id": 8, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.5.20", + "targets": [ + { + "exemplar": true, + "expr": "sum (\n(\n sum by (cluster, namespace, name) (\n kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"cores\", source=~\"default|domain\"}\n * ignoring (unit)(kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"sockets\", source=~\"default|domain\"})\n * ignoring (unit)(kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"threads\", source=~\"default|domain\"})\n ) or\n sum by (cluster, namespace, name) (\n kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"cores\", source=~\"default|domain\"}\n * ignoring (unit)(kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"sockets\", source=~\"default|domain\"})\n )\n or\n sum by (cluster, namespace, name) (\n kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"cores\", source=~\"default|domain\"})\n)\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}\n) ", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Total Allocated CPU", + "type": "stat" + }, + { + "datasource": null, + "description": "The total Memory of the VMs that are listed in the dashboard", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "text", + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 0 + }, + "id": 9, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.5.20", + "targets": [ + { + "exemplar": true, + "expr": "sum (\n (kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"memory\"})\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}\n) ", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Total Allocated Memory", + "type": "stat" + }, + { + "datasource": null, + "description": "The total disk size of the VMs that are listed in the dashboard", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "text", + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 8, + "x": 16, + "y": 0 + }, + "id": 7, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "text": {}, + "textMode": "auto" + }, + "pluginVersion": "8.5.20", + "targets": [ + { + "exemplar": true, + "expr": "sum (\n (kubevirt_vm_disk_allocated_size_bytes{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"})\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}\n) ", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "Total Allocated Disk", + "type": "stat" + }, { "datasource": null, "description": "", @@ -84,7 +276,7 @@ data: { "matcher": { "id": "byName", - "options": "Value" + "options": "Time in Status" }, "properties": [ { @@ -120,6 +312,54 @@ data: "value": true } ] + }, + { + "matcher": { + "id": "byName", + "options": "Allocated Disk" + }, + "properties": [ + { + "id": "unit", + "value": "bytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Time Since Last Migration" + }, + "properties": [ + { + "id": "unit", + "value": "dateTimeFromNow" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Last Migration" + }, + "properties": [ + { + "id": "unit", + "value": "dateTimeAsIso" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Allocated Memory" + }, + "properties": [ + { + "id": "unit", + "value": "bytes" + } + ] } ] }, @@ -127,25 +367,20 @@ data: "h": 16, "w": 24, "x": 0, - "y": 0 + "y": 3 }, "id": 5, "options": { "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Value" - } - ] + "sortBy": [] }, "pluginVersion": "8.5.20", "targets": [ { "exemplar": true, - "expr": "topk($top_results,\n(time() - (label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"}>0 ,\"status\",\"starting\",\"\",\"\"))> $days_in_status_gt*24*60*60) + on(cluster, name, namespace) group_left()(0*(sum by (cluster, namespace, name)($status>0))) or\n(time() - (label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"}>0,\"status\",\"running\",\"\",\"\"))> $days_in_status_gt*24*60*60) + on(cluster, name, namespace) group_left()(0*(sum by (cluster, namespace, name)($status>0))) or\n(time() - (label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"}>0,\"status\",\"stopped\",\"\",\"\"))> $days_in_status_gt*24*60*60) + on(cluster, name, namespace) group_left()(0*(sum by (cluster, namespace, name)($status>0))) or\n(time() - (label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"}>0,\"status\",\"error\",\"\",\"\"))> $days_in_status_gt*24*60*60) + on(cluster, name, namespace) group_left()(0*(sum by (cluster, namespace, name)($status>0))) or\n(time() - (label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"}>0,\"status\",\"migrating\",\"\",\"\"))> $days_in_status_gt*24*60*60) + on(cluster, name, namespace) group_left()(0*(sum by (cluster, namespace, name)($status>0)))\n)", + "expr": "sum by (cluster, namespace, name, status)(\n (kubevirt_vm_disk_allocated_size_bytes{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"})\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}\n)\n", "format": "table", - "hide": true, + "hide": false, "instant": true, "interval": "", "legendFormat": "", @@ -153,23 +388,70 @@ data: }, { "exemplar": true, - "expr": "topk($top_results,\n (\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) + on(cluster, name, namespace) group_left() (0 * (sum by (cluster, namespace, name)($status > 0)))\n or\n (\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) + on(cluster, name, namespace) group_left() (0 * (sum by (cluster, namespace, name)($status > 0)))\n or\n (\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) + on(cluster, name, namespace) group_left() (0 * (sum by (cluster, namespace, name)($status > 0)))\n or\n (\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) + on(cluster, name, namespace) group_left() (0 * (sum by (cluster, namespace, name)($status > 0)))\n or\n (\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) + on(cluster, name, namespace) group_left() (0 * (sum by (cluster, namespace, name)($status > 0)))\n)\n", + "expr": " (\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) +${status:raw}\n or\n (\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) +${status:raw}\n or\n (\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) +${status:raw}\n or\n (\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n ) +${status:raw}\n or\n (\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\")) > $days_in_status_gt * 24 * 60 * 60\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\")) < $days_in_status_lt * 24 * 60 * 60\n )\n +${status:raw}\n)\n", "format": "table", "hide": false, "instant": true, "interval": "", "legendFormat": "", "refId": "B" + }, + { + "exemplar": true, + "expr": "sum by (cluster, namespace, name, status)(\n (kubevirt_vmi_migration_end_time_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"}*1000)\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}\n)\n", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "exemplar": true, + "expr": "sum by (cluster, namespace, name, status)(\n (kubevirt_vmi_migration_end_time_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"}*1000)\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}\n)\n", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "exemplar": true, + "expr": "sum by (cluster, namespace, name, status)(\n (kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"memory\"})\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}\n)\n", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "exemplar": true, + "expr": "(\n sum by (cluster, namespace, name) (\n kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"cores\", source=~\"default|domain\"}\n * ignoring (unit)(kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"sockets\", source=~\"default|domain\"})\n * ignoring (unit)(kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"threads\", source=~\"default|domain\"})\n ) or\n sum by (cluster, namespace, name) (\n kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"cores\", source=~\"default|domain\"}\n * ignoring (unit)(kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"sockets\", source=~\"default|domain\"})\n )\n or\n sum by (cluster, namespace, name) (\n kubevirt_vm_resource_requests{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\", resource=\"cpu\", unit=\"cores\", source=~\"default|domain\"})\n)\n + on(cluster, name, namespace) group_left(status)\n 0*(\n (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_starting_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"starting\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"running\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_non_running_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"stopped\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_error_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"error\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n or\n (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n > ($days_in_status_gt * 24 * 60 * 60)\n ) and (\n (time() - label_replace(kubevirt_vm_migrating_status_last_transition_timestamp_seconds{cluster=~\"$cluster\", name=~\"$name\", namespace=~\"$namespace\"} > 0, \"status\", \"migrating\", \"\", \"\"))\n < ($days_in_status_lt * 24 * 60 * 60)\n )\n )\n +${status:raw}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" } ], "title": "Virtual Machines List by Time In Status", "transformations": [ + { + "id": "merge", + "options": {} + }, { "id": "organize", "options": { "excludeByName": { "Time": true, + "Value #B": false, + "Value #D": true, "clusterID": true, + "clusterType": true, "container": true, "endpoint": true, "instance": true, @@ -179,9 +461,38 @@ data: "service": true, "tenant_id": true }, - "indexByName": {}, + "indexByName": { + "Time": 0, + "Value #A": 17, + "Value #B": 20, + "Value #C": 18, + "Value #D": 19, + "Value #E": 16, + "Value #F": 15, + "cluster": 1, + "clusterID": 2, + "clusterType": 14, + "container": 3, + "endpoint": 4, + "instance": 5, + "job": 6, + "name": 8, + "namespace": 7, + "pod": 9, + "receive": 10, + "service": 11, + "status": 12, + "tenant_id": 13 + }, "renameByName": { - "Value": "Time in Status" + "Value": "Time in Status", + "Value #A": "Allocated Disk", + "Value #B": "Time in Status", + "Value #C": "Time Since Last Migration", + "Value #D": "Last Migration", + "Value #E": "Allocated Memory", + "Value #F": "Allocated CPU", + "clusterType": "" } } } @@ -194,8 +505,8 @@ data: "style": "dark", "tags": [ "Virtualization", - "ACM", "OpenShift", + "ACM", "KubeVirt" ], "templating": { @@ -243,17 +554,17 @@ data: ] }, "datasource": null, - "definition": "label_values(kubevirt_vmi_info, name)", - "description": "Filter the Virtual Machine by its name", + "definition": "label_values(kubevirt_vmi_info, namespace)", + "description": "Filter the Virtual Machine by its Namespace", "error": null, "hide": 0, "includeAll": true, - "label": "VM Name", + "label": "Namespace", "multi": true, - "name": "name", + "name": "namespace", "options": [], "query": { - "query": "label_values(kubevirt_vmi_info, name)", + "query": "label_values(kubevirt_vmi_info, namespace)", "refId": "StandardVariableQuery" }, "refresh": 2, @@ -274,17 +585,17 @@ data: ] }, "datasource": null, - "definition": "label_values(kubevirt_vmi_info, namespace)", - "description": "Filter the Virtual Machine by its Namespace", + "definition": "label_values(kubevirt_vmi_info, name)", + "description": "Filter the Virtual Machine by its name", "error": null, "hide": 0, "includeAll": true, - "label": "Namespace", + "label": "VM Name", "multi": true, - "name": "namespace", + "name": "name", "options": [], "query": { - "query": "label_values(kubevirt_vmi_info, namespace)", + "query": "label_values(kubevirt_vmi_info, name)", "refId": "StandardVariableQuery" }, "refresh": 2, @@ -297,44 +608,49 @@ data: "allValue": null, "current": { "selected": true, - "text": "stopped", - "value": "kubevirt_vm_non_running_status_last_transition_timestamp_seconds" + "text": "All", + "value": "0" }, "description": null, "error": null, "hide": 0, - "includeAll": false, + "includeAll": true, "label": "Status", "multi": false, "name": "status", "options": [ { "selected": true, + "text": "All", + "value": "0" + }, + { + "selected": false, "text": "stopped", - "value": "kubevirt_vm_non_running_status_last_transition_timestamp_seconds" + "value": "on(cluster,name,namespace) group_left()(0*(sum by(cluster,namespace,name)(kubevirt_vm_non_running_status_last_transition_timestamp_seconds>0)))" }, { "selected": false, "text": "starting", - "value": "kubevirt_vm_starting_status_last_transition_timestamp_seconds" + "value": "on(cluster,name,namespace) group_left()(0*(sum by(cluster, namespace,name)(kubevirt_vm_starting_status_last_transition_timestamp_seconds>0)))" }, { "selected": false, "text": "migrating", - "value": "kubevirt_vm_migrating_status_last_transition_timestamp_seconds" + "value": "on(cluster,name,namespace) group_left()(0*(sum by(cluster, namespace,name)(kubevirt_vm_migrating_status_last_transition_timestamp_seconds>0)))" }, { "selected": false, "text": "error", - "value": "kubevirt_vm_error_status_last_transition_timestamp_seconds" + "value": "on(cluster,name,namespace) group_left()(0*(sum by(cluster,namespace,name)(kubevirt_vm_error_status_last_transition_timestamp_seconds>0)))" }, { "selected": false, "text": "running", - "value": "kubevirt_vm_running_status_last_transition_timestamp_seconds" + "value": "on(cluster,name,namespace) group_left()(0*(sum by(cluster,namespace,name)(kubevirt_vm_running_status_last_transition_timestamp_seconds>0)))" } ], - "query": "stopped : kubevirt_vm_non_running_status_last_transition_timestamp_seconds, starting : kubevirt_vm_starting_status_last_transition_timestamp_seconds, migrating : kubevirt_vm_migrating_status_last_transition_timestamp_seconds, error : kubevirt_vm_error_status_last_transition_timestamp_seconds, running : kubevirt_vm_running_status_last_transition_timestamp_seconds", + "query": "All=0, stopped:on(cluster,name,namespace) group_left()(0*(sum by(cluster,namespace,name)(kubevirt_vm_non_running_status_last_transition_timestamp_seconds>0))), starting:on(cluster,name,namespace) group_left()(0*(sum by(cluster,namespace,name)(kubevirt_vm_starting_status_last_transition_timestamp_seconds > 0))), migrating:on(cluster, name, namespace) group_left() (0*(sum by (cluster, namespace, name)(kubevirt_vm_migrating_status_last_transition_timestamp_seconds>0))), error:on(cluster,name,namespace) group_left()(0*(sum by(cluster,namespace,name)(kubevirt_vm_error_status_last_transition_timestamp_seconds>0))), running:on(cluster,name,namespace) group_left()(0*(sum by(cluster,namespace,name)(kubevirt_vm_running_status_last_transition_timestamp_seconds>0)))", "queryValue": "", "skipUrlSync": false, "type": "custom" @@ -342,8 +658,8 @@ data: { "current": { "selected": false, - "text": "90", - "value": "90" + "text": "0", + "value": "0" }, "description": "Filter the Virtual Machines that are in the specific status for more then the selected number of days", "error": null, @@ -353,17 +669,17 @@ data: "options": [ { "selected": true, - "text": "90", - "value": "90" + "text": "0", + "value": "0" } ], - "query": "90", + "query": "0", "skipUrlSync": false, "type": "textbox" }, { "current": { - "selected": false, + "selected": true, "text": "1000", "value": "1000" }, @@ -382,28 +698,6 @@ data: "query": "1000", "skipUrlSync": false, "type": "textbox" - }, - { - "current": { - "selected": true, - "text": "10", - "value": "10" - }, - "description": null, - "error": null, - "hide": 0, - "label": "Number of Results", - "name": "top_results", - "options": [ - { - "selected": true, - "text": "10", - "value": "10" - } - ], - "query": "10", - "skipUrlSync": false, - "type": "textbox" } ] }, @@ -411,7 +705,9 @@ data: "from": "now-6h", "to": "now" }, - "timepicker": {}, + "timepicker": { + "hidden": false + }, "timezone": "", "title": "Service Level dashboards / Virtual Machines by Time in Status", "uid": "lMD6V93Sz", diff --git a/operators/multiclusterobservability/manifests/base/grafana/virtualization/scrape-config.yaml b/operators/multiclusterobservability/manifests/base/grafana/virtualization/scrape-config.yaml index f90652bd66..6fbf6646fa 100644 --- a/operators/multiclusterobservability/manifests/base/grafana/virtualization/scrape-config.yaml +++ b/operators/multiclusterobservability/manifests/base/grafana/virtualization/scrape-config.yaml @@ -35,6 +35,7 @@ spec: - '{__name__="kubevirt_vmi_phase_count"}' - '{__name__="kubevirt_vmi_storage_iops_read_total"}' - '{__name__="kubevirt_vmi_storage_iops_write_total"}' + - '{__name__="kubevirt_vm_disk_allocated_size_bytes"}' metricRelabelings: - action: labeldrop regex: prometheus_replica|managed_cluster|id