diff --git a/contrib/mixin/dashboards/disk.libsonnet b/contrib/mixin/dashboards/disk.libsonnet index 417da5df..47024d76 100644 --- a/contrib/mixin/dashboards/disk.libsonnet +++ b/contrib/mixin/dashboards/disk.libsonnet @@ -293,11 +293,11 @@ b.tab( ]), b.panel.new(43, 'Disk queue length', 'timeseries') - + b.panel.withDescription('Average number of read and write requests queued for the volume. Reads are drawn below the axis. A queue that stays high while latency rises indicates a disk bottleneck. The avg_*_requests_queued metrics grow like counters, so the panel takes their rate.') + + b.panel.withDescription('Average number of read and write requests queued for the volume. Reads are drawn below the axis. A queue that stays high while latency rises indicates a disk bottleneck.') + b.panel.withQueries([ - b.query.new('rate(windows_logical_disk_avg_write_requests_queued{job=~"$job", instance="$instance", volume=~"$volume"}[$__rate_interval])', 'A') + b.query.new('rate(windows_logical_disk_write_seconds_total{job=~"$job", instance="$instance", volume=~"$volume"}[$__rate_interval])', 'A') + b.query.withLegendFormat('{{volume}} write'), - b.query.new('rate(windows_logical_disk_avg_read_requests_queued{job=~"$job", instance="$instance", volume=~"$volume"}[$__rate_interval])', 'B') + b.query.new('rate(windows_logical_disk_read_seconds_total{job=~"$job", instance="$instance", volume=~"$volume"}[$__rate_interval])', 'B') + b.query.withLegendFormat('{{volume}} read'), ]) + b.panel.withDefaults({ diff --git a/contrib/mixin/dashboards/hyper_v.libsonnet b/contrib/mixin/dashboards/hyper_v.libsonnet index 6dc4e71c..d2b8048f 100644 --- a/contrib/mixin/dashboards/hyper_v.libsonnet +++ b/contrib/mixin/dashboards/hyper_v.libsonnet @@ -278,9 +278,9 @@ b.tab( ]), b.panel.new(78, 'Virtual disk latency and errors', 'timeseries') - + b.panel.withDescription('Average I/O latency of each virtual disk. windows_hyperv_virtual_storage_device_latency_seconds holds the raw, growing counter in 100 ns ticks, so the panel divides its rate by the rate of I/O operations. Errors use the right axis.') + + b.panel.withDescription('Average I/O latency of each virtual disk. Errors use the right axis.') + b.panel.withQueries([ - b.query.new('rate(windows_hyperv_virtual_storage_device_latency_seconds{job=~"$job", instance="$instance"}[$__rate_interval]) / (rate(windows_hyperv_virtual_storage_device_operations_read_total{job=~"$job", instance="$instance"}[$__rate_interval]) + rate(windows_hyperv_virtual_storage_device_operations_written_total{job=~"$job", instance="$instance"}[$__rate_interval])) / 1e7', 'A') + b.query.new('rate(windows_hyperv_virtual_storage_device_io_latency_seconds_total{job=~"$job", instance="$instance"}[$__rate_interval]) / rate(windows_hyperv_virtual_storage_device_throughput_total{job=~"$job", instance="$instance"}[$__rate_interval])', 'A') + b.query.withLegendFormat('{{device}} latency'), b.query.new('rate(windows_hyperv_virtual_storage_device_error_count_total{job=~"$job", instance="$instance"}[$__rate_interval]) > 0', 'B') + b.query.withLegendFormat('{{device}} errors'), diff --git a/dashboard/windows-exporter-dashboard.json b/dashboard/windows-exporter-dashboard.json index 5b06c7c7..aaabca85 100644 --- a/dashboard/windows-exporter-dashboard.json +++ b/dashboard/windows-exporter-dashboard.json @@ -9237,7 +9237,7 @@ "kind": "DataQuery", "spec": { "editorMode": "code", - "expr": "rate(windows_logical_disk_avg_write_requests_queued{job=~\"$job\", instance=\"$instance\", volume=~\"$volume\"}[$__rate_interval])", + "expr": "rate(windows_logical_disk_write_seconds_total{job=~\"$job\", instance=\"$instance\", volume=~\"$volume\"}[$__rate_interval])", "instant": false, "legendFormat": "{{volume}} write", "range": true @@ -9259,7 +9259,7 @@ "kind": "DataQuery", "spec": { "editorMode": "code", - "expr": "rate(windows_logical_disk_avg_read_requests_queued{job=~\"$job\", instance=\"$instance\", volume=~\"$volume\"}[$__rate_interval])", + "expr": "rate(windows_logical_disk_read_seconds_total{job=~\"$job\", instance=\"$instance\", volume=~\"$volume\"}[$__rate_interval])", "instant": false, "legendFormat": "{{volume}} read", "range": true @@ -9274,7 +9274,7 @@ "transformations": [] } }, - "description": "Average number of read and write requests queued for the volume. Reads are drawn below the axis. A queue that stays high while latency rises indicates a disk bottleneck. The avg_*_requests_queued metrics grow like counters, so the panel takes their rate.", + "description": "Average number of read and write requests queued for the volume. Reads are drawn below the axis. A queue that stays high while latency rises indicates a disk bottleneck.", "id": 43, "links": [], "title": "Disk queue length", @@ -13291,7 +13291,7 @@ "kind": "DataQuery", "spec": { "editorMode": "code", - "expr": "rate(windows_hyperv_virtual_storage_device_latency_seconds{job=~\"$job\", instance=\"$instance\"}[$__rate_interval]) / (rate(windows_hyperv_virtual_storage_device_operations_read_total{job=~\"$job\", instance=\"$instance\"}[$__rate_interval]) + rate(windows_hyperv_virtual_storage_device_operations_written_total{job=~\"$job\", instance=\"$instance\"}[$__rate_interval])) / 1e7", + "expr": "rate(windows_hyperv_virtual_storage_device_io_latency_seconds_total{job=~\"$job\", instance=\"$instance\"}[$__rate_interval]) / rate(windows_hyperv_virtual_storage_device_throughput_total{job=~\"$job\", instance=\"$instance\"}[$__rate_interval])", "instant": false, "legendFormat": "{{device}} latency", "range": true @@ -13328,7 +13328,7 @@ "transformations": [] } }, - "description": "Average I/O latency of each virtual disk. windows_hyperv_virtual_storage_device_latency_seconds holds the raw, growing counter in 100 ns ticks, so the panel divides its rate by the rate of I/O operations. Errors use the right axis.", + "description": "Average I/O latency of each virtual disk. Errors use the right axis.", "id": 78, "links": [], "title": "Virtual disk latency and errors",