From 4ea3ab9538ce29a14e2142bdc251af796b8658dc Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Wed, 14 Jul 2021 17:58:49 -0400 Subject: [PATCH] add disk iops graphs --- salt/grafana/defaults.yaml | 27 ++- .../panels/disk_io_bytes_graph.json.jinja | 202 ++++++++++++++++++ .../panels/disk_io_requests_graph.json.jinja | 202 ++++++++++++++++++ salt/grafana/panels/disk_io_time.json.jinja | 202 ++++++++++++++++++ salt/grafana/panels/row_disk.json.jinja | 15 -- salt/grafana/panels/row_disk_iops.json.jinja | 22 ++ salt/grafana/panels/row_disk_usage.json.jinja | 15 ++ salt/grafana/templates/disk.json | 11 + 8 files changed, 680 insertions(+), 16 deletions(-) create mode 100644 salt/grafana/panels/disk_io_bytes_graph.json.jinja create mode 100644 salt/grafana/panels/disk_io_requests_graph.json.jinja create mode 100644 salt/grafana/panels/disk_io_time.json.jinja delete mode 100644 salt/grafana/panels/row_disk.json.jinja create mode 100644 salt/grafana/panels/row_disk_iops.json.jinja create mode 100644 salt/grafana/panels/row_disk_usage.json.jinja diff --git a/salt/grafana/defaults.yaml b/salt/grafana/defaults.yaml index 7db52ea3c..d7e4d9cd8 100644 --- a/salt/grafana/defaults.yaml +++ b/salt/grafana/defaults.yaml @@ -227,7 +227,7 @@ grafana: h: 8 w: 12 - row_disk: + row_disk_usage: gridPos: x: 0 y: 77 @@ -245,3 +245,28 @@ grafana: y: 78 h: 8 w: 12 + + row_disk_iops: + gridPos: + x: 0 + y: 86 + h: 1 + w: 24 + disk_io_requests_graph: + gridPos: + x: 0 + y: 87 + h: 8 + w: 8 + disk_io_bytes_graph: + gridPos: + x: 8 + y: 87 + h: 8 + w: 8 + disk_io_time_graph: + gridPos: + x: 16 + y: 87 + h: 8 + w: 8 diff --git a/salt/grafana/panels/disk_io_bytes_graph.json.jinja b/salt/grafana/panels/disk_io_bytes_graph.json.jinja new file mode 100644 index 000000000..3a9ec9171 --- /dev/null +++ b/salt/grafana/panels/disk_io_bytes_graph.json.jinja @@ -0,0 +1,202 @@ +{ + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "x": {{ PANELS.disk_io_bytes_graph.gridPos.x }}, + "y": {{ PANELS.disk_io_bytes_graph.gridPos.y }}, + "w": {{ PANELS.disk_io_bytes_graph.gridPos.w }}, + "h": {{ PANELS.disk_io_bytes_graph.gridPos.h }} + }, + "hiddenSeries": false, + "id": 60200, + "interval": "$inter", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 6, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.4", + "pointradius": 5, + "points": false, + "renderer": "flot", + "repeat": null, + "scopedVars": { + "disk": { + "selected": false, + "text": "sda", + "value": "sda" + } + }, + "seriesOverrides": [{ + "alias": "/.*write$/", + "transform": "negative-Y" + }], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [{ + "alias": "$tag_host: $tag_name: $col", + "dsType": "influxdb", + "function": "mean", + "groupBy": [{ + "interval": "auto", + "params": [ + "auto" + ], + "type": "time" + }, + { + "key": "host", + "params": [ + "tag" + ], + "type": "tag" + }, + { + "key": "path", + "params": [ + "tag" + ], + "type": "tag" + } + ], + "measurement": "io_reads", + "policy": "default", + "query": "SELECT non_negative_derivative(mean(read_bytes),1s) as \"read\" FROM \"diskio\" WHERE \"host\" =~ /$servername$/ AND \"name\" =~ /$disk$/ AND $timeFilter GROUP BY time($__interval), *", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [{ + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + }, + { + "alias": "$tag_host: $tag_name: $col", + "dsType": "influxdb", + "function": "mean", + "groupBy": [{ + "interval": "auto", + "params": [ + "auto" + ], + "type": "time" + }, + { + "key": "host", + "params": [ + "tag" + ], + "type": "tag" + }, + { + "key": "path", + "params": [ + "tag" + ], + "type": "tag" + } + ], + "measurement": "io_reads", + "policy": "default", + "query": "SELECT non_negative_derivative(mean(write_bytes),1s) as \"write\" FROM \"diskio\" WHERE \"host\" =~ /$servername$/ AND \"name\" =~ /$disk$/ AND $timeFilter GROUP BY time($__interval), *", + "rawQuery": true, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [{ + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Disk I/O bytes for /dev/$disk", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [{ + "format": "bytes", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } +} diff --git a/salt/grafana/panels/disk_io_requests_graph.json.jinja b/salt/grafana/panels/disk_io_requests_graph.json.jinja new file mode 100644 index 000000000..9fe96cb03 --- /dev/null +++ b/salt/grafana/panels/disk_io_requests_graph.json.jinja @@ -0,0 +1,202 @@ +{ + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "x": {{ PANELS.disk_io_requests_graph.gridPos.x }}, + "y": {{ PANELS.disk_io_requests_graph.gridPos.y }}, + "w": {{ PANELS.disk_io_requests_graph.gridPos.w }}, + "h": {{ PANELS.disk_io_requests_graph.gridPos.h }} + }, + "hiddenSeries": false, + "id": 13782, + "interval": "$inter", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 6, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.4", + "pointradius": 5, + "points": false, + "renderer": "flot", + "repeat": null, + "scopedVars": { + "disk": { + "selected": false, + "text": "sda", + "value": "sda" + } + }, + "seriesOverrides": [{ + "alias": "/.*write$/", + "transform": "negative-Y" + }], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [{ + "alias": "$tag_host: $tag_name: $col", + "dsType": "influxdb", + "function": "mean", + "groupBy": [{ + "interval": "auto", + "params": [ + "auto" + ], + "type": "time" + }, + { + "key": "host", + "params": [ + "tag" + ], + "type": "tag" + }, + { + "key": "path", + "params": [ + "tag" + ], + "type": "tag" + } + ], + "measurement": "io_reads", + "policy": "default", + "query": "SELECT non_negative_derivative(mean(reads),1s) as \"read\" FROM \"diskio\" WHERE \"host\" =~ /$servername$/ AND \"name\" =~ /$disk$/ AND $timeFilter GROUP BY time($__interval), *", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [{ + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + }, + { + "alias": "$tag_host: $tag_name: $col", + "dsType": "influxdb", + "function": "mean", + "groupBy": [{ + "interval": "auto", + "params": [ + "auto" + ], + "type": "time" + }, + { + "key": "host", + "params": [ + "tag" + ], + "type": "tag" + }, + { + "key": "path", + "params": [ + "tag" + ], + "type": "tag" + } + ], + "measurement": "io_reads", + "policy": "default", + "query": "SELECT non_negative_derivative(mean(writes),1s) as \"write\" FROM \"diskio\" WHERE \"host\" =~ /$servername$/ AND \"name\" =~ /$disk$/ AND $timeFilter GROUP BY time($__interval), *", + "rawQuery": true, + "refId": "C", + "resultFormat": "time_series", + "select": [ + [{ + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Disk I/O requests for /dev/$disk", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [{ + "format": "iops", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } +} diff --git a/salt/grafana/panels/disk_io_time.json.jinja b/salt/grafana/panels/disk_io_time.json.jinja new file mode 100644 index 000000000..fc7353302 --- /dev/null +++ b/salt/grafana/panels/disk_io_time.json.jinja @@ -0,0 +1,202 @@ +{ + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "InfluxDB", + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "x": {{ PANELS.disk_io_time_graph.gridPos.x }}, + "y": {{ PANELS.disk_io_time_graph.gridPos.y }}, + "w": {{ PANELS.disk_io_time_graph.gridPos.w }}, + "h": {{ PANELS.disk_io_time_graph.gridPos.h }} + }, + "hiddenSeries": false, + "id": 56720, + "interval": "$inter", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "maxPerRow": 6, + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.4", + "pointradius": 5, + "points": false, + "renderer": "flot", + "repeat": null, + "scopedVars": { + "disk": { + "selected": false, + "text": "sda", + "value": "sda" + } + }, + "seriesOverrides": [{ + "alias": "/.*write$/", + "transform": "negative-Y" + }], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [{ + "alias": "$tag_host: $tag_name: $col", + "dsType": "influxdb", + "function": "mean", + "groupBy": [{ + "interval": "auto", + "params": [ + "auto" + ], + "type": "time" + }, + { + "key": "host", + "params": [ + "tag" + ], + "type": "tag" + }, + { + "key": "path", + "params": [ + "tag" + ], + "type": "tag" + } + ], + "measurement": "io_reads", + "policy": "default", + "query": "SELECT non_negative_derivative(mean(read_time),1s) as \"read\" FROM \"diskio\" WHERE \"host\" =~ /$servername$/ AND \"name\" =~ /$disk$/ AND $timeFilter GROUP BY time($__interval), *", + "rawQuery": true, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [{ + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + }, + { + "alias": "$tag_host: $tag_name: $col", + "dsType": "influxdb", + "function": "mean", + "groupBy": [{ + "interval": "auto", + "params": [ + "auto" + ], + "type": "time" + }, + { + "key": "host", + "params": [ + "tag" + ], + "type": "tag" + }, + { + "key": "path", + "params": [ + "tag" + ], + "type": "tag" + } + ], + "measurement": "io_reads", + "policy": "default", + "query": "SELECT non_negative_derivative(mean(write_time),1s) as \"write\" FROM \"diskio\" WHERE \"host\" =~ /$servername$/ AND \"name\" =~ /$disk$/ AND $timeFilter GROUP BY time($__interval), *", + "rawQuery": true, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [{ + "params": [ + "value" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Disk I/O time for /dev/$disk", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [{ + "format": "ms", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } +} diff --git a/salt/grafana/panels/row_disk.json.jinja b/salt/grafana/panels/row_disk.json.jinja deleted file mode 100644 index 881b6747f..000000000 --- a/salt/grafana/panels/row_disk.json.jinja +++ /dev/null @@ -1,15 +0,0 @@ -{ - "collapsed": false, - "datasource": null, - "gridPos": { - "x": {{ PANELS.row_disk.gridPos.x }}, - "y": {{ PANELS.row_disk.gridPos.y }}, - "w": {{ PANELS.row_disk.gridPos.w }}, - "h": {{ PANELS.row_disk.gridPos.h }} - }, - "id": 3333, - "panels": [], - "repeat": null, - "title": "Disk", - "type": "row" - } diff --git a/salt/grafana/panels/row_disk_iops.json.jinja b/salt/grafana/panels/row_disk_iops.json.jinja new file mode 100644 index 000000000..1d9db6fd6 --- /dev/null +++ b/salt/grafana/panels/row_disk_iops.json.jinja @@ -0,0 +1,22 @@ +{ + "collapsed": false, + "datasource": null, + "gridPos": { + "x": {{ PANELS.row_disk.gridPos.x }}, + "y": {{ PANELS.row_disk.gridPos.y }}, + "w": {{ PANELS.row_disk.gridPos.w }}, + "h": {{ PANELS.row_disk.gridPos.h }} + }, + "id": 62055, + "panels": [], + "repeat": "disk", + "scopedVars": { + "disk": { + "selected": false, + "text": "sda", + "value": "sda" + } + }, + "title": "Disk IOPS for /dev/$disk", + "type": "row" +} diff --git a/salt/grafana/panels/row_disk_usage.json.jinja b/salt/grafana/panels/row_disk_usage.json.jinja new file mode 100644 index 000000000..2cfac7cb4 --- /dev/null +++ b/salt/grafana/panels/row_disk_usage.json.jinja @@ -0,0 +1,15 @@ +{ + "collapsed": false, + "datasource": null, + "gridPos": { + "x": {{ PANELS.row_disk_usage.gridPos.x }}, + "y": {{ PANELS.row_disk_usage.gridPos.y }}, + "w": {{ PANELS.row_disk_usage.gridPos.w }}, + "h": {{ PANELS.row_disk_usage.gridPos.h }} + }, + "id": 3333, + "panels": [], + "repeat": null, + "title": "Disk Usage", + "type": "row" + } diff --git a/salt/grafana/templates/disk.json b/salt/grafana/templates/disk.json index 473f52da4..91b0e5b17 100644 --- a/salt/grafana/templates/disk.json +++ b/salt/grafana/templates/disk.json @@ -26,3 +26,14 @@ "type": "query", "useTags": false } + + + + + + + + + + +