From 89460b989621c77b9bb1d5bfddc9b58a8a57d342 Mon Sep 17 00:00:00 2001 From: JaromirK Date: Mon, 23 Oct 2023 09:01:29 +0200 Subject: [PATCH 1/2] dash fixes --- .../Dashboards/AzSHCI-Hyper-V_Metrics.json | 8619 +++++++++-------- .../Dashboards/AzSHCI-Storage_Dashboard.json | 7542 +++++++++------ Scenarios/AzSHCI and Grafana/Scenario.ps1 | 2 +- 3 files changed, 8957 insertions(+), 7206 deletions(-) diff --git a/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Hyper-V_Metrics.json b/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Hyper-V_Metrics.json index 0528dc31..2f2fe602 100644 --- a/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Hyper-V_Metrics.json +++ b/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Hyper-V_Metrics.json @@ -1,4607 +1,4828 @@ { - "annotations": { - "list": [ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": 2618, + "graphTooltip": 0, + "id": 4, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 24, + "panels": [], + "targets": [ { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "refId": "A" } - ] + ], + "title": "Overview", + "type": "row" }, - "editable": true, - "gnetId": 2618, - "graphTooltip": 0, - "id": 3, - "iteration": 1593465208679, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 24, - "panels": [], - "repeat": null, - "title": "Overview", - "type": "row" + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "datasource": "InfluxDB", - "decimals": 2, - "format": "percent", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 6, - "w": 2, - "x": 0, - "y": 1 - }, - "id": 16, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": true - }, - "tableColumn": "", - "targets": [ - { - "alias": "%", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "auto" - ], - "type": "time" + "decimals": 2, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null }, { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "hyperv_host_processor", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Percent_Total_Run_Time" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ + "color": "rgba(237, 129, 40, 0.89)", + "value": 60 + }, { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "rgba(245, 54, 54, 0.9)", + "value": 80 } ] - } - ], - "thresholds": "60,80", - "title": "CPU Usage", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "datasource": "InfluxDB", - "decimals": 2, - "format": "decbytes", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": true, - "thresholdLabels": false, - "thresholdMarkers": true + }, + "unit": "percent" }, - "gridPos": { - "h": 6, - "w": 2, - "x": 2, - "y": 1 + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 2, + "x": 0, + "y": 1 + }, + "id": 16, + "links": [], + "maxDataPoints": 100, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false }, - "id": 17, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 + "showThresholdLabels": false, + "showThresholdMarkers": true + }, + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "%", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "alias": "", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "hyperv_host_processor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Percent_Total_Run_Time" ], - "type": "time" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" + "params": [], + "type": "mean" } - ], - "measurement": "win_mem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Available_Bytes" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "title": "CPU Usage", + "type": "gauge" + }, + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 2, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" } - ] - ], - "tags": [ + }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(245, 54, 54, 0.9)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 10 + }, { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "rgba(50, 172, 45, 0.97)", + "value": 30 } ] - } - ], - "thresholds": "10,30", - "title": "Free Memory", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "decimals": 0, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 10, - "x": 4, - "y": 1 - }, - "hiddenSeries": false, - "id": 20, - "interval": "10s", - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true + }, + "unit": "decbytes" }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 2, + "x": 2, + "y": 1 + }, + "id": 17, + "links": [], + "maxDataPoints": 100, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: vCPUs", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "showThresholdLabels": false, + "showThresholdMarkers": true + }, + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "win_mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Available_Bytes" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" + "params": [], + "type": "sum" } - ], - "measurement": "hyperv_hypervisor", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Logical_Processors" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "title": "Free Memory", + "type": "gauge" + }, + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "red", + "value": 80 } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Virtual Processors Running", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "decimals": 0, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 10, - "x": 14, - "y": 1 + "unit": "short" }, - "hiddenSeries": false, - "id": 19, - "interval": "", + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 10, + "x": 4, + "y": 1 + }, + "id": 20, + "interval": "10s", + "links": [], + "options": { "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: Virtual Machines", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "$tag_host: vCPUs", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_hypervisor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Logical_Processors" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_hypervisor", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Partitions" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "last" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Virtual Machines Running", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } + ], + "title": "Virtual Processors Running", + "type": "timeseries" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 7 - }, - "height": "350", - "hiddenSeries": false, - "id": 35, - "legend": { - "alignAsTable": false, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + "decimals": 0, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $col", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "auto" - ], - "type": "time" - }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 10, + "x": 14, + "y": 1 + }, + "hiddenSeries": false, + "id": 19, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Virtual Machines", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_hypervisor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Partitions" ], - "type": "tag" + "type": "field" }, { - "params": [ - "linear" - ], - "type": "fill" - } - ], - "measurement": "hyperv_host_processor", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Percent_User_Time\") AS \"% User Time\" FROM \"win_cpu\" WHERE \"host\" =~ /^$hostname$/ AND $timeFilter GROUP BY time($__interval) fill(linear)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Percent_Guest_Run_Time" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - "% Guest Run Time" - ], - "type": "alias" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "last" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 60, - "yaxis": "left" - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 80, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Hypervisor Host CPU Usage", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "label": null, - "logBase": 1, - "max": "100", - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } + ], + "thresholds": [], + "timeRegions": [], + "title": "Virtual Machines Running", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 16 - }, - "id": 25, - "panels": [], - "repeat": null, - "title": "Hypervisor Health", - "type": "row" + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 5, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 17 - }, - "height": "350", - "hiddenSeries": false, - "id": 5, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "total": false, - "values": true + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $col", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 7 + }, + "height": "350", + "hiddenSeries": false, + "id": 35, + "legend": { + "alignAsTable": false, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $col", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "hyperv_host_processor", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Percent_User_Time\") AS \"% User Time\" FROM \"win_cpu\" WHERE \"host\" =~ /^$hostname$/ AND $timeFilter GROUP BY time($__interval) fill(linear)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "auto" + "Percent_Guest_Run_Time" ], - "type": "time" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" + "params": [], + "type": "mean" }, { "params": [ - "linear" + "% Guest Run Time" ], - "type": "fill" - } - ], - "measurement": "win_cpu", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Percent_User_Time\") AS \"% User Time\" FROM \"win_cpu\" WHERE \"host\" =~ /^$hostname$/ AND $timeFilter GROUP BY time($__interval) fill(linear)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Percent_Privileged_Time" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - "% Priviledged Time" - ], - "type": "alias" - } - ], - [ - { - "params": [ - "Percent_User_Time" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - "% User Time" - ], - "type": "alias" - } - ], - [ - { - "params": [ - "Percent_Interrupt_Time" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - }, - { - "params": [ - "% Interrupt Time" - ], - "type": "alias" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "alias" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 60 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 80 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Hypervisor CPU Usage", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 60, + "yaxis": "left" }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 80, + "yaxis": "left" + } + ], + "timeRegions": [], + "title": "Hypervisor Host CPU Usage", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "max": "100", + "min": "0", + "show": true }, - "yaxes": [ - { - "format": "percent", - "label": null, - "logBase": 1, - "max": "100", - "min": "0", - "show": true + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 25, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "refId": "A" } + ], + "title": "Hypervisor Health", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 17 + "fieldConfig": { + "defaults": { + "links": [] }, - "height": "350", - "hiddenSeries": false, - "id": 6, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: Free Memory", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 5, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 17 + }, + "height": "350", + "hiddenSeries": false, + "id": 5, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $col", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "win_cpu", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Percent_User_Time\") AS \"% User Time\" FROM \"win_cpu\" WHERE \"host\" =~ /^$hostname$/ AND $timeFilter GROUP BY time($__interval) fill(linear)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$interval" + "Percent_Privileged_Time" ], - "type": "time" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" + "params": [], + "type": "mean" }, { "params": [ - "none" + "% Priviledged Time" ], - "type": "fill" + "type": "alias" } ], - "measurement": "win_mem", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Available_Bytes\") as \"Available Bytes\" FROM \"win_mem\" WHERE host =~ /$hostname$/ AND $timeFilter GROUP BY time($interval), host fill(linear) ORDER BY asc", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Available_Bytes" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - }, - { - "alias": "$tag_host: Swap Used", - "dsType": "influxdb", - "groupBy": [ + [ { "params": [ - "$interval" + "Percent_User_Time" ], - "type": "time" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" + "params": [], + "type": "mean" }, { "params": [ - "none" + "% User Time" ], - "type": "fill" + "type": "alias" } ], - "measurement": "win_swap", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Available_Bytes\") as \"Available Bytes\" FROM \"win_mem\" WHERE host =~ /$hostname$/ AND $timeFilter GROUP BY time($interval), host fill(linear) ORDER BY asc", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Percent_Usage" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": true, - "line": true, - "op": "lt", - "value": 40 - }, - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "lt", - "value": 5 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Hypervisor Available Memory", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 17 - }, - "hiddenSeries": false, - "id": 4, - "interval": ">10s", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance in", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + [ { "params": [ - "instance" + "Percent_Interrupt_Time" ], - "type": "tag" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" + "params": [], + "type": "mean" }, { "params": [ - "null" + "% Interrupt Time" ], - "type": "fill" - } - ], - "measurement": "hyperv_vswitch", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Bytes_Received_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - }, - { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$virtual_switch$/" + "type": "alias" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 60 + }, + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 80 + } + ], + "timeRegions": [], + "title": "Hypervisor CPU Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "max": "100", + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 17 + }, + "height": "350", + "hiddenSeries": false, + "id": 6, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Free Memory", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_host: $tag_instance out", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "win_mem", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Available_Bytes\") as \"Available Bytes\" FROM \"win_mem\" WHERE host =~ /$hostname$/ AND $timeFilter GROUP BY time($interval), host fill(linear) ORDER BY asc", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Available_Bytes" ], - "type": "tag" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: Swap Used", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "win_swap", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Available_Bytes\") as \"Available Bytes\" FROM \"win_mem\" WHERE host =~ /$hostname$/ AND $timeFilter GROUP BY time($interval), host fill(linear) ORDER BY asc", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "null" + "Percent_Usage" ], - "type": "fill" - } - ], - "measurement": "hyperv_vswitch", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Bytes_Sent_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$virtual_switch$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Virtual Switch Throughput", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": true, + "line": true, + "op": "lt", + "value": 40 }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 5 } + ], + "timeRegions": [], + "title": "Hypervisor Available Memory", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 26 - }, - "id": 26, - "panels": [], - "repeat": null, - "title": "Network", - "type": "row" + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "decimals": 0, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 10, - "x": 0, - "y": 27 - }, - "hiddenSeries": false, - "id": 32, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true + "yaxes": [ + { + "format": "decbytes", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: Missed heartbeats", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 17 + }, + "hiddenSeries": false, + "id": 4, + "interval": ">10s", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "hyperv_vswitch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Bytes_Received_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$virtual_switch$/" + } + ] + }, + { + "alias": "$tag_host: $tag_instance out", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "hyperv_vswitch", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Bytes_Sent_persec" ], - "type": "fill" - } - ], - "measurement": "Missing_Cluster_heartbeats", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Missing_heartbeats" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ + "type": "field" + }, { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Missed cluster heartbeats", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$virtual_switch$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Virtual Switch Throughput", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 26 + }, + "id": 26, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "refId": "A" } + ], + "title": "Network", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 10, - "y": 27 - }, - "hiddenSeries": false, - "id": 31, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "max", - "sortDesc": true, - "total": false, - "values": true + "decimals": 0, + "fieldConfig": { + "defaults": { + "links": [] }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance in", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 10, + "x": 0, + "y": 27 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Missed heartbeats", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "missing_cluster_heartbeats", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Missing_heartbeats" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "rdma_activity", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "RDMA_Inbound_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "last" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Missed cluster heartbeats", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - { - "alias": "$tag_host: $tag_instance out", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "host" - ], - "type": "tag" + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "rdma_activity", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Bytes_Sent_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "RDMA_Outbound_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "red", + "value": 80 } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RDMA Network Throughput", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "decimals": 0, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 5, - "x": 18, - "y": 27 + "unit": "decbytes" }, - "hiddenSeries": false, - "id": 33, - "interval": "", + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 10, + "y": 27 + }, + "id": 31, + "interval": "", + "links": [], + "options": { "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + "calcs": [ + "mean", + "max", + "min" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: Active connections", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "RDMA_Inbound_Bytes_persec" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "rdma_activity", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "RDMA_Active_Connections" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: $tag_instance out", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_host: Failed connection attempts", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Sent_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "RDMA_Outbound_Bytes_persec" ], - "type": "tag" + "type": "field" }, { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "rdma_activity", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "RDMA_Failed_Connection_Attempts" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "RDMA Connections", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "none", - "label": null, - "logBase": 1, - "max": "50", - "min": null, - "show": true - }, - { - "format": "none", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } + ], + "title": "RDMA Network Throughput", + "type": "timeseries" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 36 + "decimals": 0, + "fieldConfig": { + "defaults": { + "links": [] }, - "id": 27, - "panels": [], - "repeat": null, - "title": "Storage", - "type": "row" + "overrides": [] }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 37 - }, - "hiddenSeries": false, - "id": 8, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance read", - "dsType": "influxdb", - "groupBy": [ + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 5, + "x": 18, + "y": 27 + }, + "hiddenSeries": false, + "id": 33, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Active connections", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "RDMA_Active_Connections" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Redirected_Read_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - }, - { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "last" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: Failed connection attempts", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_instance write", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "RDMA_Failed_Connection_Attempts" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Redirected_Write_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "last" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Shared FS Performance", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "RDMA Connections", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "logBase": 1, + "max": "50", + "show": true }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + { + "format": "none", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 36 + }, + "id": 27, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "refId": "A" } + ], + "title": "Storage", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 37 + "fieldConfig": { + "defaults": { + "links": [] }, - "hiddenSeries": false, - "id": 9, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance reads/s", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 8, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance read", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Redirected_Read_Bytes_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "$tag_instance write", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Redirected_Write_Bytes_persec" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Reads_persec\") FROM \"cluster_csv_filesystem\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$csv_volume$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Cluster Shared FS Performance", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 37 + }, + "hiddenSeries": false, + "id": 9, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance reads/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_instance writes/s", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Reads_persec\") FROM \"cluster_csv_filesystem\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$csv_volume$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Reads_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "$tag_instance writes/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Writes_persec" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "Writes", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "Writes", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "0" + ], + "type": "fill" + } + ], + "hide": true, + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "0" + "Writes_persec" ], - "type": "fill" - } - ], - "hide": true, - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "C", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "sum" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "Reads", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "Reads", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "0" + ], + "type": "fill" + } + ], + "hide": true, + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "0" + "Reads_persec" ], - "type": "fill" - } - ], - "hide": true, - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "D", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "sum" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Shared FS IOPS", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Cluster Shared FS IOPS", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "iops", + "logBase": 1, + "show": true }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "columns": [ + { + "text": "Current", + "value": "current" }, - "yaxes": [ - { - "format": "iops", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + { + "text": "Min", + "value": "min" + }, + { + "text": "Max", + "value": "max" + }, + { + "text": "Avg", + "value": "avg" } + ], + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "columns": [ - { - "text": "Current", - "value": "current" - }, - { - "text": "Min", - "value": "min" - }, - { - "text": "Max", - "value": "max" + "fontSize": "100%", + "gridPos": { + "h": 9, + "w": 6, + "x": 0, + "y": 45 + }, + "id": 18, + "links": [], + "scroll": true, + "showHeader": true, + "sort": { + "col": 4, + "desc": true + }, + "styles": [ + { + "alias": "", + "align": "auto", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 3, + "pattern": "/.*/", + "thresholds": [ + "0.015", + "0.025" + ], + "type": "number", + "unit": "s" + } + ], + "targets": [ + { + "alias": "$tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "text": "Avg", - "value": "avg" - } - ], - "datasource": "InfluxDB", - "fontSize": "100%", - "gridPos": { - "h": 9, - "w": 6, - "x": 0, - "y": 45 - }, - "id": 18, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 4, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": "cell", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 3, - "pattern": "/.*/", - "thresholds": [ - "0.015", - "0.025" - ], - "type": "number", - "unit": "s" - } - ], - "targets": [ - { - "alias": "$tag_instance", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Write_Latency" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "title": "Storage Write Latency", + "transform": "timeseries_aggregations", + "type": "table-old" + }, + { + "columns": [ + { + "text": "Current", + "value": "current" + }, + { + "text": "Min", + "value": "min" + }, + { + "text": "Max", + "value": "max" + }, + { + "text": "Avg", + "value": "avg" + } + ], + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fontSize": "100%", + "gridPos": { + "h": 9, + "w": 6, + "x": 6, + "y": 45 + }, + "id": 23, + "links": [], + "scroll": true, + "showHeader": true, + "sort": { + "col": 4, + "desc": true + }, + "styles": [ + { + "alias": "", + "align": "auto", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 3, + "pattern": "/.*/", + "thresholds": [ + "0.015", + "0.025" + ], + "type": "number", + "unit": "s" + } + ], + "targets": [ + { + "alias": "$tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Read_Latency" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Write_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] - } - ], - "title": "Storage Write Latency", - "transform": "timeseries_aggregations", - "type": "table" + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "title": "Storage Read Latency", + "transform": "timeseries_aggregations", + "type": "table-old" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "columns": [ - { - "text": "Current", - "value": "current" - }, - { - "text": "Min", - "value": "min" - }, - { - "text": "Max", - "value": "max" - }, - { - "text": "Avg", - "value": "avg" - } - ], - "datasource": "InfluxDB", - "fontSize": "100%", - "gridPos": { - "h": 9, - "w": 6, - "x": 6, - "y": 45 + "fieldConfig": { + "defaults": { + "links": [] }, - "id": 23, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 4, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": "cell", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 3, - "pattern": "/.*/", - "thresholds": [ - "0.015", - "0.025" - ], - "type": "number", - "unit": "s" - } - ], - "targets": [ - { - "alias": "$tag_instance", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 45 + }, + "hiddenSeries": false, + "id": 7, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance read", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Read_Latency" ], - "type": "time" + "type": "field" }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "$tag_instance write", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Write_Latency" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Read_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - }, - { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] - } - ], - "title": "Storage Read Latency", - "transform": "timeseries_aggregations", - "type": "table" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 45 + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 0.015 }, - "hiddenSeries": false, - "id": 7, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 0.025 + } + ], + "timeRegions": [], + "title": "Cluster Shared FS Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance read", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 54 + }, + "hiddenSeries": false, + "id": 34, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "Storage_Spaces_Drt", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Dirty_Bytes" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Storage Spaces Direct Dirty Bytes", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 63 + }, + "id": 28, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "refId": "A" + } + ], + "title": "VM Disk Health", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 8, + "x": 0, + "y": 64 + }, + "hiddenSeries": false, + "id": 21, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Latency" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Read_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 0.015 + }, + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 0.025 + } + ], + "timeRegions": [], + "title": "VM Disk Latency", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 8, + "x": 8, + "y": 64 + }, + "hiddenSeries": false, + "id": 22, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance reads/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_instance write", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Operations_persec\") FROM \"hyperv_storage\" WHERE (\"instance\" =~ /^$vm_disk/) AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Read_Operations_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + }, + { + "alias": "$tag_instance writes/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Write_Operations_persec" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Write_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Shared FS Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Disk IOPS", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 54 - }, - "hiddenSeries": false, - "id": 34, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "max", - "sortDesc": true, - "total": false, - "values": true + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "format": "iops", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance in", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 8, + "x": 16, + "y": 64 + }, + "hiddenSeries": false, + "id": 1, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance reads/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Read_Bytes_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + }, + { + "alias": "$tag_instance writes/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Write_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Write_Bytes_persec" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "Storage_Spaces_Drt", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Dirty_Bytes" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Storage Spaces Direct Dirty Bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Disk Throughput", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 74 + }, + "id": 29, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "refId": "A" } + ], + "title": "VM Health", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 63 + "fieldConfig": { + "defaults": { + "links": [] }, - "id": 28, - "panels": [], - "repeat": null, - "title": "VM Disk Health", - "type": "row" + "overrides": [] }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 64 - }, - "hiddenSeries": false, - "id": 21, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 75 + }, + "hiddenSeries": false, + "id": 10, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_processor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Percent_Total_Run_Time" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_storage", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$vm_disk$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM Disk Latency", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ - "total" + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } ] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM CPU Usage", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 64 - }, - "hiddenSeries": false, - "id": 22, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "dataLinks": [] + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance reads/s", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 75 + }, + "hiddenSeries": false, + "id": 3, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_vid", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Physical_Pages_Allocated" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_storage", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Read_Operations_persec\") FROM \"hyperv_storage\" WHERE (\"instance\" =~ /^$vm_disk/) AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Read_Operations_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$vm_disk$/" + "params": [], + "type": "mean" } ] - }, - { - "alias": "$tag_instance writes/s", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "none" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "hyperv_storage", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Write_Operations_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$vm_disk$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM Disk IOPS", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ - "total" + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$virtual_machine$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } ] - }, - "yaxes": [ - { - "format": "iops", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Memory Used on Hypervisor", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 64 - }, - "hiddenSeries": false, - "id": 1, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "deckbytes", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "connected", - "options": { - "dataLinks": [] + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance reads/s", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 75 + }, + "hiddenSeries": false, + "id": 2, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "hyperv_vmnet", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Bytes_Received_persec" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_storage", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Read_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$vm_disk$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: $tag_instance out", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_instance writes/s", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "hyperv_vmnet", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Sent_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Bytes_Sent_persec" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_storage", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Write_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Write_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$vm_disk$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM Disk Throughput", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [ - "total" + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } ] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Network Throughput", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" }, - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 74 - }, - "id": 29, - "panels": [], - "repeat": null, - "title": "VM Health", - "type": "row" + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 75 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "host" - ], - "type": "tag" - }, - { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_processor", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Percent_Total_Run_Time" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/$virtual_machine/" - }, - { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM CPU Usage", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true }, - "yaxes": [ - { - "format": "percent", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 84 + }, + "id": 30, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "refId": "A" } + ], + "title": "VM Dynamic Memory", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 75 + "fieldConfig": { + "defaults": { + "links": [] }, - "hiddenSeries": false, - "id": 3, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "host" - ], - "type": "tag" - }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 85 + }, + "hiddenSeries": false, + "id": 11, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_dynamic_memory", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Current_Pressure" ], - "type": "fill" - } - ], - "measurement": "hyperv_vid", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Physical_Pages_Allocated" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$virtual_machine$/" + "type": "field" }, { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM Memory Used on Hypervisor", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "deckbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 80, + "yaxis": "left" } + ], + "timeRegions": [], + "title": "VM Dynamic Memory Pressure", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 75 - }, - "hiddenSeries": false, - "id": 2, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "max", - "sortDesc": true, - "total": false, - "values": true + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance in", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "host" - ], - "type": "tag" - }, - { - "params": [ - "none" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "hyperv_vmnet", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Bytes_Received_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/$virtual_machine/" - }, - { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 85 + }, + "hiddenSeries": false, + "id": 12, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_host: $tag_instance out", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "host" - ], - "type": "tag" - }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_dynamic_memory", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Guest_Visible_Physical_Memory" ], - "type": "fill" - } - ], - "hide": false, - "measurement": "hyperv_vmnet", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Bytes_Sent_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Bytes_Sent_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/$virtual_machine/" + "type": "field" }, { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM Network Throughput", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Guest Visible Memory", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] }, + "yaxes": [ + { + "format": "decmbytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + } + ], + "refresh": "10s", + "schemaVersion": 38, + "style": "dark", + "tags": [ + "windows", + "hyper-v", + "vm", + "telegraf" + ], + "templating": { + "list": [ { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 84 + "current": { + "selected": false, + "text": "All", + "value": "$__all" }, - "id": 30, - "panels": [], - "repeat": null, - "title": "VM Dynamic Memory", - "type": "row" + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Cluster", + "options": [], + "query": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 85 - }, - "hiddenSeries": false, - "id": 11, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true + "current": { + "selected": false, + "text": "All", + "value": "$__all" }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "host" - ], - "type": "tag" - }, - { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_dynamic_memory", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Current_Pressure" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/$virtual_machine/" - }, - { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": 80, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM Dynamic Memory Pressure", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" + "definition": "SHOW TAG VALUES FROM \"hyperv_hypervisor\" WITH KEY = \"host\"", + "hide": 0, + "includeAll": true, + "label": "Hypervisor", + "multi": true, + "name": "hostname", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_hypervisor\" WITH KEY = \"host\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "yaxes": [ - { - "format": "percent", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Virtual Machine", + "multi": true, + "name": "virtual_machine", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_vid\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false }, { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 85 + "current": { + "selected": false, + "text": "All", + "value": "$__all" }, - "hiddenSeries": false, - "id": 12, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] + "definition": "", + "hide": 0, + "includeAll": true, + "label": "VM Disk", + "multi": true, + "name": "vm_disk", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_storage\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", + "refresh": 1, + "regex": "/\\.vhd.?/i", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, - { - "params": [ - "host" - ], - "type": "tag" - }, - { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "hyperv_dynamic_memory", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Guest_Visible_Physical_Memory" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/$virtual_machine/" - }, - { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "VM Guest Visible Memory", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Virtual Switch", + "multi": true, + "name": "virtual_switch", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_vswitch\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": false, + "text": "All", + "value": "$__all" }, - "yaxes": [ - { - "format": "decmbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Cluster Volume", + "multi": true, + "name": "csv_volume", + "options": [], + "query": "SHOW TAG VALUES FROM \"cluster_csv_filesystem\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" ], - "refresh": "10s", - "schemaVersion": 22, - "style": "dark", - "tags": [ - "windows", - "hyper-v", - "vm", - "telegraf" - ], - "templating": { - "list": [ - { - "allValue": null, - "current": { - "text": "S2D-Cluster", - "value": "S2D-Cluster" - }, - "datasource": "InfluxDB", - "definition": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", - "hide": 0, - "includeAll": true, - "index": -1, - "label": null, - "multi": true, - "name": "Cluster", - "options": [], - "query": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "InfluxDB", - "definition": "SHOW TAG VALUES FROM \"hyperv_hypervisor\" WITH KEY = \"host\"", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Hypervisor", - "multi": true, - "name": "hostname", - "options": [], - "query": "SHOW TAG VALUES FROM \"hyperv_hypervisor\" WITH KEY = \"host\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Virtual Machine", - "multi": true, - "name": "virtual_machine", - "options": [], - "query": "SHOW TAG VALUES FROM \"hyperv_vid\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "VM Disk", - "multi": true, - "name": "vm_disk", - "options": [], - "query": "SHOW TAG VALUES FROM \"hyperv_storage\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", - "refresh": 1, - "regex": "/\\.vhd.?/i", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Virtual Switch", - "multi": true, - "name": "virtual_switch", - "options": [], - "query": "SHOW TAG VALUES FROM \"hyperv_vswitch\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": "", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Cluster Volume", - "multi": true, - "name": "csv_volume", - "options": [], - "query": "SHOW TAG VALUES FROM \"cluster_csv_filesystem\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "browser", - "title": "AzSHCI - Hyper-V Metrics", - "uid": "mz7DgR_ik", - "variables": { - "list": [] - }, - "version": 4 - } \ No newline at end of file + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "AzSHCI - Hyper-V Metrics", + "uid": "mz7DgR_ik", + "version": 5, + "weekStart": "" +} \ No newline at end of file diff --git a/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Storage_Dashboard.json b/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Storage_Dashboard.json index 79c9213f..2f2fe602 100644 --- a/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Storage_Dashboard.json +++ b/Scenarios/AzSHCI and Grafana/Dashboards/AzSHCI-Storage_Dashboard.json @@ -1,3298 +1,4828 @@ { - "annotations": { - "list": [ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": 2618, + "graphTooltip": 0, + "id": 4, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 24, + "panels": [], + "targets": [ { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "refId": "A" } - ] + ], + "title": "Overview", + "type": "row" }, - "editable": true, - "gnetId": 2618, - "graphTooltip": 0, - "id": 7, - "iteration": 1593464607401, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": null, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 27, - "panels": [], - "repeat": null, - "title": "Storage", - "type": "row" + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 1 - }, - "hiddenSeries": false, - "id": 8, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance read", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 2, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ { - "params": [ - "instance" - ], - "type": "tag" + "color": "rgba(50, 172, 45, 0.97)", + "value": null }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Redirected_Read_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "rgba(237, 129, 40, 0.89)", + "value": 60 }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "color": "rgba(245, 54, 54, 0.9)", + "value": 80 } ] }, - { - "alias": "$tag_instance write", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 2, + "x": 0, + "y": 1 + }, + "id": 16, + "links": [], + "maxDataPoints": 100, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true + }, + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "%", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "hyperv_host_processor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Percent_Total_Run_Time" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Redirected_Write_Bytes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Shared FS Performance", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } + ], + "title": "CPU Usage", + "type": "gauge" + }, + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 1 - }, - "hiddenSeries": false, - "id": 9, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance reads/s", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "decimals": 2, + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } }, + "type": "special" + } + ], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ { - "params": [ - "instance" - ], - "type": "tag" + "color": "rgba(245, 54, 54, 0.9)", + "value": null }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"Reads_persec\") FROM \"cluster_csv_filesystem\" WHERE (\"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$csv_volume$/) AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "rgba(237, 129, 40, 0.89)", + "value": 10 }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "color": "rgba(50, 172, 45, 0.97)", + "value": 30 } ] }, - { - "alias": "$tag_instance writes/s", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 2, + "x": 2, + "y": 1 + }, + "id": 17, + "links": [], + "maxDataPoints": 100, + "options": { + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "mean" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true + }, + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "win_mem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Available_Bytes" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "sum" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "title": "Free Memory", + "type": "gauge" + }, + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - { - "alias": "Writes", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "0" - ], - "type": "fill" - } - ], - "hide": true, - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "C", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "green", + "value": null }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "color": "red", + "value": 80 } ] }, - { - "alias": "Reads", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 10, + "x": 4, + "y": 1 + }, + "id": 20, + "interval": "10s", + "links": [], + "options": { + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "$tag_host: vCPUs", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_hypervisor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "0" + "Logical_Processors" ], - "type": "fill" - } - ], - "hide": true, - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "D", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "last" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Shared FS IOPS", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "iops", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } + ], + "title": "Virtual Processors Running", + "type": "timeseries" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 9 - }, - "hiddenSeries": false, - "id": 45, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance - Reads", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "10s" - ], - "type": "time" - }, + "decimals": 0, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 10, + "x": 14, + "y": 1 + }, + "hiddenSeries": false, + "id": 19, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Virtual Machines", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_hypervisor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Partitions" ], - "type": "tag" - } - ], - "hide": false, - "measurement": "cluster_csv_fs", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"Reads_persec\") FROM \"cluster_csv_fs\" WHERE (\"instance\" =~ /^$csv_volume$/ AND \"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY \"instance\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "type": "field" }, { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "last" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Virtual Machines Running", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 7 + }, + "height": "350", + "hiddenSeries": false, + "id": 35, + "legend": { + "alignAsTable": false, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $col", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_instance - Writes", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "hyperv_host_processor", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Percent_User_Time\") AS \"% User Time\" FROM \"win_cpu\" WHERE \"host\" =~ /^$hostname$/ AND $timeFilter GROUP BY time($__interval) fill(linear)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "10s" + "Percent_Guest_Run_Time" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - } - ], - "hide": false, - "measurement": "cluster_csv_fs", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT \"Reads_persec\", \"Writes_persec\" AS \"Writes\" FROM \"cluster_csv_fs\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY \"instance\", \"host\"", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" }, { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [ + "% Guest Run Time" + ], + "type": "alias" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015, - "yaxis": "left" - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025, - "yaxis": "left" - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CSVFS IOPS", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 60, + "yaxis": "left" + }, + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 80, + "yaxis": "left" + } + ], + "timeRegions": [], + "title": "Hypervisor Host CPU Usage", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "max": "100", + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 25, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "refId": "A" } + ], + "title": "Hypervisor Health", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 16 - }, - "hiddenSeries": false, - "id": 48, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance - Reads", - "dsType": "influxdb", - "groupBy": [ + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 5, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 17 + }, + "height": "350", + "hiddenSeries": false, + "id": 5, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $col", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "auto" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "linear" + ], + "type": "fill" + } + ], + "measurement": "win_cpu", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Percent_User_Time\") AS \"% User Time\" FROM \"win_cpu\" WHERE \"host\" =~ /^$hostname$/ AND $timeFilter GROUP BY time($__interval) fill(linear)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "10s" + "Percent_Privileged_Time" ], - "type": "time" + "type": "field" + }, + { + "params": [], + "type": "mean" }, { "params": [ - "instance" + "% Priviledged Time" ], - "type": "tag" + "type": "alias" } ], - "hide": true, - "measurement": "cluster_csv_fs", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"Reads_persec\") FROM \"cluster_csv_fs\" WHERE (\"instance\" =~ /^$csv_volume$/ AND \"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY \"instance\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" - }, - { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - }, - { - "alias": "$tag_instance - Writes", - "dsType": "influxdb", - "groupBy": [ + [ { "params": [ - "10s" + "Percent_User_Time" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - } - ], - "hide": true, - "measurement": "cluster_csv_fs", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT \"Reads_persec\", \"Writes_persec\" AS \"Writes\" FROM \"cluster_csv_fs\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY \"instance\", \"host\"", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" }, - { - "condition": "AND", - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - }, - { - "groupBy": [ { "params": [ - "10s" + "% User Time" ], - "type": "time" + "type": "alias" } ], - "measurement": "cluster_csv_fs", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"Reads_persec\"), sum(\"Writes_persec\") FROM \"cluster_csv_fs\" WHERE $timeFilter GROUP BY time(10s)", - "rawQuery": false, - "refId": "C", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - "Reads" - ], - "type": "alias" - } - ], - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - }, - { - "params": [ - "Writes" - ], - "type": "alias" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CSVFS IOPS Total", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 23 - }, - "hiddenSeries": false, - "id": 41, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host - DiskID: $tag_instance", - "dsType": "influxdb", - "groupBy": [ + [ { "params": [ - "10s" + "Percent_Interrupt_Time" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" + "params": [], + "type": "mean" }, { "params": [ - "host" + "% Interrupt Time" ], - "type": "tag" - } - ], - "hide": false, - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"Disk_Transfers_persec\") FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY time(10s), \"instance\", \"host\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Disk_Transfers_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - } - ] - }, - { - "alias": "", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "10s" - ], - "type": "time" - } - ], - "hide": true, - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"Disk_Transfers_persec\") FROM \"win_diskio\" WHERE $timeFilter GROUP BY time(10s)", - "rawQuery": false, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Disk_Transfers_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "alias" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Physical Disk IOPS", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 60 + }, + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 80 } + ], + "timeRegions": [], + "title": "Hypervisor CPU Usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 30 - }, - "hiddenSeries": false, - "id": 47, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host - DiskID: $tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "10s" - ], - "type": "time" - }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "max": "100", + "min": "0", + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 17 + }, + "height": "350", + "hiddenSeries": false, + "id": 6, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Free Memory", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "win_mem", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Available_Bytes\") as \"Available Bytes\" FROM \"win_mem\" WHERE host =~ /$hostname$/ AND $timeFilter GROUP BY time($interval), host fill(linear) ORDER BY asc", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Available_Bytes" ], - "type": "tag" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" - } - ], - "hide": true, - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"Disk_Transfers_persec\") FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY time(10s), \"instance\", \"host\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Disk_Transfers_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: Swap Used", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$hostname Total IOPS", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "win_swap", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Available_Bytes\") as \"Available Bytes\" FROM \"win_mem\" WHERE host =~ /$hostname$/ AND $timeFilter GROUP BY time($interval), host fill(linear) ORDER BY asc", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "10s" + "Percent_Usage" ], - "type": "time" - } - ], - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT sum(\"Disk_Transfers_persec\") FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY time(10s)", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Disk_Transfers_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "sum" - } - ] - ], - "tags": [ + "type": "field" + }, { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Physical Disk IOPS Total", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": true, + "line": true, + "op": "lt", + "value": 40 + }, + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "lt", + "value": 5 } + ], + "timeRegions": [], + "title": "Hypervisor Available Memory", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 36 - }, - "hiddenSeries": false, - "id": 46, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host - DiskID: $tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "10s" - ], - "type": "time" - }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 17 + }, + "hiddenSeries": false, + "id": 4, + "interval": ">10s", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "hyperv_vswitch", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Bytes_Received_persec" ], - "type": "tag" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" - } - ], - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"Avg._Disk_sec/Transfer\") FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/ AND \"instance\" =~ /^27|28|29|30|31|32/) AND $timeFilter GROUP BY time(10s), \"instance\", \"host\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Avg._Disk_sec/Transfer" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$virtual_switch$/" + } + ] + }, + { + "alias": "$tag_host: $tag_instance out", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_host - DiskID: $tag_instance", - "dsType": "influxdb", - "groupBy": [ - { - "params": [ - "10s" - ], - "type": "time" - }, - { - "params": [ - "instance" - ], - "type": "tag" - }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "hyperv_vswitch", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Bytes_Sent_persec" ], - "type": "tag" - } - ], - "hide": true, - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT max(\"Avg._Disk_sec/Transfer\") FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/ AND \"instance\" =~ /^27|28|29|30|31|32/) AND $timeFilter GROUP BY time(10s), \"instance\", \"host\"", - "rawQuery": true, - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Avg._Disk_sec/Transfer" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "!=", - "value": "26" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Physical Disk Latency", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$virtual_switch$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Virtual Switch Throughput", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 26 + }, + "id": 26, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "refId": "A" } + ], + "title": "Network", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 12, - "x": 0, - "y": 43 - }, - "hiddenSeries": false, - "id": 43, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": false + "decimals": 0, + "fieldConfig": { + "defaults": { + "links": [] }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host - DiskID: $tag_instance", - "dsType": "influxdb", - "groupBy": [ + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 10, + "x": 0, + "y": 27 + }, + "hiddenSeries": false, + "id": 32, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Missed heartbeats", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "missing_cluster_heartbeats", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "Missing_heartbeats" ], - "type": "tag" + "type": "field" }, { - "params": [ - "host" - ], - "type": "tag" - } - ], - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT \"Disk_Transfers_persec\" FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/ AND \"instance\" > '2') AND $timeFilter GROUP BY \"instance\", \"host\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Disk_Read_Bytes_persec" - ], - "type": "field" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "last" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Physical Throughput Reads", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } + ], + "thresholds": [], + "timeRegions": [], + "title": "Missed cluster heartbeats", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 12, - "x": 12, - "y": 43 - }, - "hiddenSeries": false, - "id": 44, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": false + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host - DiskID: $tag_instance", - "dsType": "influxdb", - "groupBy": [ + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ { - "params": [ - "instance" - ], - "type": "tag" + "color": "green", + "value": null }, { - "params": [ - "host" - ], - "type": "tag" - } - ], - "measurement": "win_diskio", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT \"Disk_Transfers_persec\" FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/ AND \"instance\" > '2') AND $timeFilter GROUP BY \"instance\", \"host\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Disk_Write_Bytes_persec" - ], - "type": "field" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "color": "red", + "value": 80 } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Physical Throughput Writes", + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 10, + "y": 27 + }, + "id": 31, + "interval": "", + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "max", + "min" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "Bps", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "mode": "multi", + "sort": "none" } }, - { - "columns": [ - { - "text": "Current", - "value": "current" - }, - { - "text": "Min", - "value": "min" - }, - { - "text": "Max", - "value": "max" + "pluginVersion": "10.1.5", + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "text": "Avg", - "value": "avg" - } - ], - "datasource": "InfluxDB", - "fontSize": "100%", - "gridPos": { - "h": 9, - "w": 6, - "x": 0, - "y": 48 - }, - "id": 18, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 4, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": "cell", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 3, - "pattern": "/.*/", - "thresholds": [ - "0.015", - "0.025" - ], - "type": "number", - "unit": "s" - } - ], - "targets": [ - { - "alias": "$tag_instance", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "RDMA_Inbound_Bytes_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: $tag_instance out", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Sent_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "RDMA_Outbound_Bytes_persec" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Write_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] - } - ], - "title": "Storage Write Latency", - "transform": "timeseries_aggregations", - "type": "table" + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "title": "RDMA Network Throughput", + "type": "timeseries" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "columns": [ - { - "text": "Current", - "value": "current" - }, - { - "text": "Min", - "value": "min" - }, - { - "text": "Max", - "value": "max" + "decimals": 0, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 5, + "x": 18, + "y": 27 + }, + "hiddenSeries": false, + "id": 33, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: Active connections", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "text": "Avg", - "value": "avg" - } - ], - "datasource": "InfluxDB", - "fontSize": "100%", - "gridPos": { - "h": 9, - "w": 6, - "x": 6, - "y": 48 - }, - "id": 23, - "links": [], - "pageSize": null, - "scroll": true, - "showHeader": true, - "sort": { - "col": 4, - "desc": true - }, - "styles": [ - { - "alias": "", - "align": "auto", - "colorMode": "cell", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 3, - "pattern": "/.*/", - "thresholds": [ - "0.015", - "0.025" - ], - "type": "number", - "unit": "s" - } - ], - "targets": [ - { - "alias": "$tag_instance", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "RDMA_Active_Connections" ], - "type": "time" + "type": "field" }, + { + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: Failed connection attempts", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "null" + ], + "type": "fill" + } + ], + "measurement": "rdma_activity", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "instance" + "RDMA_Failed_Connection_Attempts" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Read_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" - }, - { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "last" } ] - } - ], - "title": "Storage Read Latency", - "transform": "timeseries_aggregations", - "type": "table" + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "RDMA Connections", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 48 - }, - "hiddenSeries": false, - "id": 7, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance read", - "dsType": "influxdb", - "groupBy": [ + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "logBase": 1, + "max": "50", + "show": true + }, + { + "format": "none", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 36 + }, + "id": 27, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "refId": "A" + } + ], + "title": "Storage", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 8, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance read", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Redirected_Read_Bytes_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "$tag_instance write", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Redirected_Write_Bytes_persec" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Read_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Cluster Shared FS Performance", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 37 + }, + "hiddenSeries": false, + "id": 9, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance reads/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "alias": "$tag_instance write", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Reads_persec\") FROM \"cluster_csv_filesystem\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$csv_volume$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Reads_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "$tag_instance writes/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Writes_persec" ], - "type": "fill" - } - ], - "measurement": "cluster_csv_filesystem", - "orderByTime": "ASC", - "policy": "default", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Write_Latency" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "type": "field" }, { - "condition": "AND", - "key": "instance", - "operator": "=~", - "value": "/^$csv_volume$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Cluster Shared FS Latency", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "Writes", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 0, - "y": 57 - }, - "hiddenSeries": false, - "id": 40, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "0" + ], + "type": "fill" + } + ], + "hide": true, + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "C", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "10s" + "Writes_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - } - ], - "measurement": "cluster_csv_fs", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT mean(\"Reads_persec\") FROM \"cluster_csv_fs\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY time(10s), \"instance\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Reads_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "sum" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CSV Reads /sec", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "Reads", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 12, - "x": 12, - "y": 57 - }, - "hiddenSeries": false, - "id": 42, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_instance", - "dsType": "influxdb", - "groupBy": [ + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "0" + ], + "type": "fill" + } + ], + "hide": true, + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "D", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "10s" + "Reads_persec" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - } - ], - "measurement": "cluster_csv_fs", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT \"Disk_Transfers_persec\" FROM \"win_diskio\" WHERE (\"host\" =~ /^$hostname$/ AND \"instance\" > '2') AND $timeFilter GROUP BY \"instance\", \"host\"", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Writes_persec" - ], - "type": "field" - }, - { - "params": [], - "type": "max" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "sum" } ] - } - ], - "thresholds": [ - { - "colorMode": "warning", - "fill": false, - "line": true, - "op": "gt", - "value": 0.015 - }, - { - "colorMode": "critical", - "fill": false, - "line": true, - "op": "gt", - "value": 0.025 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CSV Writes /sec", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] } + ], + "thresholds": [], + "timeRegions": [], + "title": "Cluster Shared FS IOPS", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 64 - }, - "hiddenSeries": false, - "id": 34, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "max", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance in", - "dsType": "influxdb", - "groupBy": [ + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "iops", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "columns": [ + { + "text": "Current", + "value": "current" + }, + { + "text": "Min", + "value": "min" + }, + { + "text": "Max", + "value": "max" + }, + { + "text": "Avg", + "value": "avg" + } + ], + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fontSize": "100%", + "gridPos": { + "h": 9, + "w": 6, + "x": 0, + "y": 45 + }, + "id": 18, + "links": [], + "scroll": true, + "showHeader": true, + "sort": { + "col": 4, + "desc": true + }, + "styles": [ + { + "alias": "", + "align": "auto", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 3, + "pattern": "/.*/", + "thresholds": [ + "0.015", + "0.025" + ], + "type": "number", + "unit": "s" + } + ], + "targets": [ + { + "alias": "$tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Write_Latency" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "title": "Storage Write Latency", + "transform": "timeseries_aggregations", + "type": "table-old" + }, + { + "columns": [ + { + "text": "Current", + "value": "current" + }, + { + "text": "Min", + "value": "min" + }, + { + "text": "Max", + "value": "max" + }, + { + "text": "Avg", + "value": "avg" + } + ], + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fontSize": "100%", + "gridPos": { + "h": 9, + "w": 6, + "x": 6, + "y": 45 + }, + "id": 23, + "links": [], + "scroll": true, + "showHeader": true, + "sort": { + "col": 4, + "desc": true + }, + "styles": [ + { + "alias": "", + "align": "auto", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 3, + "pattern": "/.*/", + "thresholds": [ + "0.015", + "0.025" + ], + "type": "number", + "unit": "s" + } + ], + "targets": [ + { + "alias": "$tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Read_Latency" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "Storage_Spaces_Drt", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT last(\"Dirty_Bytes\") FROM \"Storage_Spaces_Drt\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY time($__interval), \"instance\", \"host\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Dirty_Bytes" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "DRT Dirty Bytes", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "decbytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] } + ], + "title": "Storage Read Latency", + "transform": "timeseries_aggregations", + "type": "table-old" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 64 - }, - "hiddenSeries": false, - "id": 35, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "max", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance in", - "dsType": "influxdb", - "groupBy": [ + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 45 + }, + "hiddenSeries": false, + "id": 7, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance read", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Read_Latency" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" - ], - "type": "tag" - }, + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + }, + { + "alias": "$tag_instance write", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "cluster_csv_filesystem", + "orderByTime": "ASC", + "policy": "default", + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Write_Latency" ], - "type": "tag" + "type": "field" }, { - "params": [ - "none" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "Storage_Spaces_Drt", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT last(\"Dirty_Bytes\") FROM \"Storage_Spaces_Drt\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY time($__interval), \"instance\", \"host\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Limit" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ - { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "DRT Limit", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + }, + { + "condition": "AND", + "key": "instance", + "operator": "=~", + "value": "/^$csv_volume$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 0.015 + }, + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 0.025 } + ], + "timeRegions": [], + "title": "Cluster Shared FS Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "InfluxDB", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 64 - }, - "hiddenSeries": false, - "id": 36, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "max": true, - "min": true, - "show": true, - "sort": "max", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "alias": "$tag_host: $tag_instance in", - "dsType": "influxdb", - "groupBy": [ + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 54 + }, + "hiddenSeries": false, + "id": 34, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "Storage_Spaces_Drt", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "$__interval" + "Dirty_Bytes" ], - "type": "time" + "type": "field" }, { - "params": [ - "instance" + "params": [], + "type": "last" + } + ] + ], + "tags": [ + { + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Storage Spaces Direct Dirty Bytes", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decbytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 63 + }, + "id": 28, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "refId": "A" + } + ], + "title": "VM Disk Health", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 8, + "x": 0, + "y": 64 + }, + "hiddenSeries": false, + "id": 21, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Latency" ], - "type": "tag" + "type": "field" }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "warning", + "fill": false, + "line": true, + "op": "gt", + "value": 0.015 + }, + { + "colorMode": "critical", + "fill": false, + "line": true, + "op": "gt", + "value": 0.025 + } + ], + "timeRegions": [], + "title": "VM Disk Latency", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 8, + "x": 8, + "y": 64 + }, + "hiddenSeries": false, + "id": 22, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance reads/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Operations_persec\") FROM \"hyperv_storage\" WHERE (\"instance\" =~ /^$vm_disk/) AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "host" + "Read_Operations_persec" ], - "type": "tag" + "type": "field" }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + }, + { + "alias": "$tag_instance writes/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ { "params": [ - "none" + "Write_Operations_persec" ], - "type": "fill" + "type": "field" + }, + { + "params": [], + "type": "mean" } - ], - "hide": false, - "measurement": "Storage_Spaces_Drt", - "orderByTime": "ASC", - "policy": "default", - "query": "SELECT last(\"Dirty_Bytes\") FROM \"Storage_Spaces_Drt\" WHERE (\"host\" =~ /^$hostname$/) AND $timeFilter GROUP BY time($__interval), \"instance\", \"host\" fill(none)", - "rawQuery": false, - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "Synchronizing_Count" - ], - "type": "field" - }, - { - "params": [], - "type": "last" - } - ] - ], - "tags": [ + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Disk IOPS", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "format": "iops", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 10, + "w": 8, + "x": 16, + "y": 64 + }, + "hiddenSeries": false, + "id": 1, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_instance reads/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Read_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ { - "key": "host", - "operator": "=~", - "value": "/^$hostname$/" + "params": [ + "Read_Bytes_persec" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" } ] - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "DRT Synchronizing Count", - "tooltip": { - "shared": false, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] + }, + { + "alias": "$tag_instance writes/s", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_storage", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Write_Bytes_persec\") FROM \"hyperv_storage\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /^$vm_disk$/ AND $timeFilter GROUP BY time($__interval), instance fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Write_Bytes_persec" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$vm_disk$/" + } + ] } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Disk Throughput", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false } - ], - "refresh": "10s", - "schemaVersion": 22, - "style": "dark", - "tags": [ - "windows", - "hyper-v", - "vm", - "telegraf" - ], - "templating": { - "list": [ + }, + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 74 + }, + "id": 29, + "panels": [], + "targets": [ { - "allValue": null, - "current": { - "text": "S2D-Cluster", - "value": "S2D-Cluster" + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "datasource": "InfluxDB", - "definition": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", - "hide": 0, - "includeAll": true, - "index": -1, - "label": null, - "multi": true, - "name": "Cluster", - "options": [], - "query": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": "InfluxDB", - "definition": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"host\"", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Host", - "multi": true, - "name": "hostname", - "options": [], - "query": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"host\"", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": "", - "current": { - "selected": false, - "text": "All", - "value": "$__all" + "refId": "A" + } + ], + "title": "VM Health", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 75 + }, + "hiddenSeries": false, + "id": 10, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Cluster Volume", - "multi": true, - "name": "csv_volume", - "options": [], - "query": "SHOW TAG VALUES FROM \"cluster_csv_filesystem\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_processor", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Percent_Total_Run_Time" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM CPU Usage", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 75 + }, + "hiddenSeries": false, + "id": 3, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Virtual Machine", - "multi": true, - "name": "virtual_machine", - "options": [], - "query": "SHOW TAG VALUES FROM \"hyperv_vid\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "selected": false, - "text": "All", - "value": "$__all" + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_vid", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Physical_Pages_Allocated" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/^$virtual_machine$/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Memory Used on Hypervisor", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "deckbytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 75 + }, + "hiddenSeries": false, + "id": 2, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance in", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "VM Disk", - "multi": true, - "name": "vm_disk", - "options": [], - "query": "SHOW TAG VALUES FROM \"hyperv_storage\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", - "refresh": 1, - "regex": "/\\.vhd.?/i", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "hyperv_vmnet", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Received_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Bytes_Received_persec" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + }, + { + "alias": "$tag_host: $tag_instance out", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" }, - "datasource": "InfluxDB", - "definition": "", - "hide": 0, - "includeAll": true, - "index": -1, - "label": "Virtual Switch", - "multi": true, - "name": "virtual_switch", - "options": [], - "query": "SHOW TAG VALUES FROM \"hyperv_vswitch\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 1, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "hide": false, + "measurement": "hyperv_vmnet", + "orderByTime": "ASC", + "policy": "default", + "query": "SELECT mean(\"Bytes_Sent_persec\") FROM \"hyperv_vmnet\" WHERE \"host\" =~ /^$hostname$/ AND \"instance\" =~ /_Network Adapter_/ AND \"instance\" =~ /^$vm_nic$/ AND $timeFilter GROUP BY time($__interval), \"instance\" fill(none)", + "rawQuery": false, + "refId": "B", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Bytes_Sent_persec" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] } - ] - }, - "time": { - "from": "now-1h", - "to": "now" + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Network Throughput", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "Bps", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" + { + "collapsed": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 84 + }, + "id": 30, + "panels": [], + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "refId": "A" + } ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] + "title": "VM Dynamic Memory", + "type": "row" }, - "timezone": "browser", - "title": "AzSHCI - Storage Dashboard", - "uid": "au1rXHXmz", - "variables": { - "list": [] + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 85 + }, + "hiddenSeries": false, + "id": 11, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_dynamic_memory", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Current_Pressure" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [ + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 80, + "yaxis": "left" + } + ], + "timeRegions": [], + "title": "VM Dynamic Memory Pressure", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } }, - "version": 3 - } \ No newline at end of file + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 85 + }, + "hiddenSeries": false, + "id": 12, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "max": true, + "min": true, + "show": true, + "sort": "avg", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.1.5", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "alias": "$tag_host: $tag_instance", + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "dsType": "influxdb", + "groupBy": [ + { + "params": [ + "$__interval" + ], + "type": "time" + }, + { + "params": [ + "instance" + ], + "type": "tag" + }, + { + "params": [ + "host" + ], + "type": "tag" + }, + { + "params": [ + "none" + ], + "type": "fill" + } + ], + "measurement": "hyperv_dynamic_memory", + "orderByTime": "ASC", + "policy": "default", + "refId": "A", + "resultFormat": "time_series", + "select": [ + [ + { + "params": [ + "Guest_Visible_Physical_Memory" + ], + "type": "field" + }, + { + "params": [], + "type": "mean" + } + ] + ], + "tags": [ + { + "key": "instance", + "operator": "=~", + "value": "/$virtual_machine/" + }, + { + "condition": "AND", + "key": "host", + "operator": "=~", + "value": "/^$hostname$/" + } + ] + } + ], + "thresholds": [], + "timeRegions": [], + "title": "VM Guest Visible Memory", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "decmbytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + } + ], + "refresh": "10s", + "schemaVersion": 38, + "style": "dark", + "tags": [ + "windows", + "hyper-v", + "vm", + "telegraf" + ], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Cluster", + "options": [], + "query": "SHOW TAG VALUES FROM \"win_system\" WITH KEY = \"clustername\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "SHOW TAG VALUES FROM \"hyperv_hypervisor\" WITH KEY = \"host\"", + "hide": 0, + "includeAll": true, + "label": "Hypervisor", + "multi": true, + "name": "hostname", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_hypervisor\" WITH KEY = \"host\"", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Virtual Machine", + "multi": true, + "name": "virtual_machine", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_vid\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "VM Disk", + "multi": true, + "name": "vm_disk", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_storage\" WITH KEY = \"instance\" WHERE \"host\" =~ /^$hostname$/", + "refresh": 1, + "regex": "/\\.vhd.?/i", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Virtual Switch", + "multi": true, + "name": "virtual_switch", + "options": [], + "query": "SHOW TAG VALUES FROM \"hyperv_vswitch\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "influxdb", + "uid": "a2613eea-c25c-4bf7-b405-9aebb64b9694" + }, + "definition": "", + "hide": 0, + "includeAll": true, + "label": "Cluster Volume", + "multi": true, + "name": "csv_volume", + "options": [], + "query": "SHOW TAG VALUES FROM \"cluster_csv_filesystem\" WITH KEY = \"instance\" WHERE host =~ /$hostname/", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "AzSHCI - Hyper-V Metrics", + "uid": "mz7DgR_ik", + "version": 5, + "weekStart": "" +} \ No newline at end of file diff --git a/Scenarios/AzSHCI and Grafana/Scenario.ps1 b/Scenarios/AzSHCI and Grafana/Scenario.ps1 index eadb06ec..85b3e2ce 100644 --- a/Scenarios/AzSHCI and Grafana/Scenario.ps1 +++ b/Scenarios/AzSHCI and Grafana/Scenario.ps1 @@ -2,7 +2,7 @@ #grafana and influxdb variables $GrafanaServerName="Grafana" $InfluxDBServerName="InfluxDB" - $InfluxDBPath="E:\InfluxDB" #path for Database. In lab is E drive, that is not initialized and will be formatted + $InfluxDBPath="E:\InfluxDB\" #path for Database. In lab is E drive, that is not initialized and will be formatted $InfluxDBConfigPath=$InfluxDBPath+"influxdb.conf" #Certification Authority From decd67fd59c885fadc6bf91aa1f6bcd4d3f7f363 Mon Sep 17 00:00:00 2001 From: JaromirK Date: Wed, 15 Nov 2023 20:18:30 +0100 Subject: [PATCH 2/2] new scenario --- .../LabConfig.ps1 | 8 +- .../Scenario.ps1 | 594 ++++++++++++++++++ .../readme.md | 2 +- .../AzSHCI and Deployment tool/Scenario.ps1 | 378 ----------- 4 files changed, 599 insertions(+), 383 deletions(-) rename Scenarios/{AzSHCI and Deployment tool => AzSHCI and Cloud Based Deployment}/LabConfig.ps1 (77%) create mode 100644 Scenarios/AzSHCI and Cloud Based Deployment/Scenario.ps1 rename Scenarios/{AzSHCI and Deployment tool => AzSHCI and Cloud Based Deployment}/readme.md (65%) delete mode 100644 Scenarios/AzSHCI and Deployment tool/Scenario.ps1 diff --git a/Scenarios/AzSHCI and Deployment tool/LabConfig.ps1 b/Scenarios/AzSHCI and Cloud Based Deployment/LabConfig.ps1 similarity index 77% rename from Scenarios/AzSHCI and Deployment tool/LabConfig.ps1 rename to Scenarios/AzSHCI and Cloud Based Deployment/LabConfig.ps1 index 0a9721b4..6ae2ed9e 100644 --- a/Scenarios/AzSHCI and Deployment tool/LabConfig.ps1 +++ b/Scenarios/AzSHCI and Cloud Based Deployment/LabConfig.ps1 @@ -1,10 +1,10 @@ $LabConfig=@{AllowedVLANs="1-10,711-719" ; DomainAdminName='LabAdmin'; AdminPassword='LS1setup!' ; DCEdition='4'; Internet=$true; TelemetryLevel='Full' ; TelemetryNickname='' ; AdditionalNetworksConfig=@(); VMs=@()} -#Azure Stack HCI 22H2 +#Azure Stack HCI 23H2 #labconfig will not domain join VMs, will add "Tools disk" and will also execute powershell command to make this tools disk online. -1..4 | ForEach-Object {$LABConfig.VMs += @{ VMName = "ASNode$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI23H2_G2.vhdx' ; HDDNumber = 4 ; HDDSize= 2TB ; MemoryStartupBytes= 1GB; VMProcessorCount=4 ; vTPM=$true ; Unattend="NoDjoin" }} -#labconfig for nested virtualization (eith enough RAM to create ARC RB). You can decrease number of nodes to two - or even 1. -#1..4 | ForEach-Object {$LABConfig.VMs += @{ VMName = "ASNode$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI23H2_G2.vhdx' ; HDDNumber = 4 ; HDDSize= 2TB ; MemoryStartupBytes= 20GB; VMProcessorCount=4 ; vTPM=$true ; Unattend="NoDjoin" ; NestedVirt=$true }} +1..2 | ForEach-Object {$LABConfig.VMs += @{ VMName = "ASNode$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI23H2_G2.vhdx' ; HDDNumber = 4 ; HDDSize= 2TB ; MemoryStartupBytes= 1GB; VMProcessorCount=4 ; vTPM=$true ; Unattend="NoDjoin" }} +#labconfig for nested virtualization (eith enough RAM to create ARC RB). +#1..2 | ForEach-Object {$LABConfig.VMs += @{ VMName = "ASNode$_" ; Configuration = 'S2D' ; ParentVHD = 'AzSHCI23H2_G2.vhdx' ; HDDNumber = 4 ; HDDSize= 2TB ; MemoryStartupBytes= 20GB; VMProcessorCount=16 ; vTPM=$true ; Unattend="NoDjoin" ; NestedVirt=$true }} #Windows Admin Center in GW mode $LabConfig.VMs += @{ VMName = 'WACGW' ; ParentVHD = 'Win2022Core_G2.vhdx'; MGMTNICs=1} diff --git a/Scenarios/AzSHCI and Cloud Based Deployment/Scenario.ps1 b/Scenarios/AzSHCI and Cloud Based Deployment/Scenario.ps1 new file mode 100644 index 00000000..879af2e3 --- /dev/null +++ b/Scenarios/AzSHCI and Cloud Based Deployment/Scenario.ps1 @@ -0,0 +1,594 @@ +#region Prepare Active Directory + $AsHCIOUName="OU=ASClus01,DC=Corp,DC=contoso,DC=com" + $Servers="ASNode1","ASNode2" + $DomainFQDN=$env:USERDNSDOMAIN + $ClusterName="ASClus01" + $Prefix="ASClus01" + $UserName="ASClus01-DeployUser" + $Password="LS1setup!LS1setup!" + $SecuredPassword = ConvertTo-SecureString $password -AsPlainText -Force + $Credentials= New-Object System.Management.Automation.PSCredential ($UserName,$SecuredPassword) + + #install posh module for prestaging Active Directory + Install-PackageProvider -Name NuGet -Force + Install-Module AsHciADArtifactsPreCreationTool -Repository PSGallery -Force + + #add KDS Root Key + if (-not (Get-KdsRootKey)){ + Add-KdsRootKey -EffectiveTime ((Get-Date).addhours(-10)) + } + + #make sure active directory module and GPMC is installed + Install-WindowsFeature -Name RSAT-AD-PowerShell,GPMC + + #populate objects + New-HciAdObjectsPreCreation -Deploy -AzureStackLCMUserCredential $Credentials -AsHciOUName $AsHCIOUName -AsHciPhysicalNodeList $Servers -DomainFQDN $DomainFQDN -AsHciClusterName $ClusterName -AsHciDeploymentPrefix $Prefix + + #install management features to explore cluster,settings... + Install-WindowsFeature -Name "RSAT-ADDS","RSAT-Clustering" +#endregion + +#region prepare azure prerequisites + #variables + #$StorageAccountName="asclus01$(Get-Random -Minimum 100000 -Maximum 999999)" + #$KeyVaultName=$StorageAccountName + #$ServicePrincipal=$True #or false if you want to use MFA (and skip SP creation) + #$ServicePrincipalName="Azure-Stack-Registration" + $ResourceGroupName="ASClus01-RG" + $Location="eastus" #make sure location is lowercase as in 2308 was not able to deploy with "EastUS" + + #login to azure + #download Azure module + if (!(Get-InstalledModule -Name az.accounts -ErrorAction Ignore)){ + Install-Module -Name Az.Accounts -Force + } + if (-not (Get-AzContext)){ + Connect-AzAccount -UseDeviceAuthentication + } + + #select subscription if more available (will wait for subscription ID - not using Out-GridView in case you run this on one of the nodes) + $subscriptions=Get-AzSubscription + #list subscriptions + $subscriptions + if (($subscriptions).count -gt 1){ + $SubscriptionID=Read-Host "Please give me subscription ID" + $Subscriptions | WHere-Object ID -eq $SubscriptionID | Select-AzSubscription + }else{ + $SubscriptionID=$subscriptions.id + } + + #install az resources module + if (!(Get-InstalledModule -Name "az.resources" -ErrorAction Ignore)){ + Install-Module -Name "az.resources" -Force + } + + #create resource group + if (-not(Get-AzResourceGroup -Name $ResourceGroupName -ErrorAction Ignore)){ + New-AzResourceGroup -Name $ResourceGroupName -Location $location + } + + #make sure resource providers are registered (most likely not needed) + <# + $Providers="Microsoft.ResourceConnector","Microsoft.Authorization","Microsoft.AzureStackHCI","Microsoft.HybridCompute","Microsoft.GuestConfiguration" + foreach ($Provider in $Providers){ + Register-AzResourceProvider -ProviderNamespace $Provider + #wait for provider to finish registration + do { + $Status=Get-AzResourceProvider -ProviderNamespace $Provider + Write-Output "Registration Status - $Provider : $(($status.RegistrationState -match 'Registered').Count)/$($Status.Count)" + Start-Sleep 1 + } while (($status.RegistrationState -match "Registered").Count -ne ($Status.Count)) + } + #> + + #Create Storage Account for witness if deploying using ARM template + <# + if (!(Get-InstalledModule -Name "az.storage"-ErrorAction Ignore)){ + Install-Module -Name "az.storage" -Force + } + + #create Storage Account + If (-not(Get-AzStorageAccountKey -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -ErrorAction Ignore)){ + New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -SkuName Standard_LRS -Location $location -Kind StorageV2 -AccessTier Cool + } + $StorageAccountAccessKey=(Get-AzStorageAccountKey -Name $StorageAccountName -ResourceGroupName $ResourceGroupName | Select-Object -First 1).Value + #> + + #Create key vault if deploying using ARM template + <# + if (!(Get-InstalledModule -Name "az.keyvault"-ErrorAction Ignore)){ + Install-Module -Name "az.keyvault" -Force + } + If (-not(Get-AzStorageAccountKey -Name $KeyVaultName -ResourceGroupName $ResourceGroupName -ErrorAction Ignore)){ + New-AzKeyVault -Name $KeyVaultName -ResourceGroupName $ResourceGroupName -Location $location + } + #> + + #create service principal if deploying using ARM template + <# + if ($ServicePrincipal){ + #Create Azure Stack HCI registration role https://learn.microsoft.com/en-us/azure-stack/hci/deploy/register-with-azure#assign-permissions-from-azure-portal + #https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#azure-connected-machine-onboarding + if (-not (Get-AzRoleDefinition -Name "Azure Stack HCI registration role - Custom" -ErrorAction Ignore)){ + $Content=@" +{ + "Name": "Azure Stack HCI registration role - Custom", + "Id": null, + "IsCustom": true, + "Description": "Custom Azure role to allow subscription-level access to register Azure Stack HCI", + "Actions": [ + "Microsoft.Resources/subscriptions/resourceGroups/read", + "Microsoft.Resources/subscriptions/resourceGroups/write", + "Microsoft.Resources/subscriptions/resourceGroups/delete", + "Microsoft.AzureStackHCI/register/action", + "Microsoft.AzureStackHCI/Unregister/Action", + "Microsoft.AzureStackHCI/clusters/*", + "Microsoft.Authorization/roleAssignments/write", + "Microsoft.Authorization/roleAssignments/read", + "Microsoft.HybridCompute/register/action", + "Microsoft.GuestConfiguration/register/action", + "Microsoft.HybridConnectivity/register/action", + "Microsoft.HybridCompute/machines/extensions/write", + "Microsoft.HybridCompute/machines/extensions/read", + "Microsoft.HybridCompute/machines/read", + "Microsoft.HybridCompute/machines/write", + "Microsoft.HybridCompute/privateLinkScopes/read", + "Microsoft.GuestConfiguration/guestConfigurationAssignments/read", + "Microsoft.ResourceConnector/register/action", + "Microsoft.Kubernetes/register/action", + "Microsoft.KubernetesConfiguration/register/action", + "Microsoft.ExtendedLocation/register/action", + "Microsoft.HybridContainerService/register/action", + "Microsoft.ResourceConnector/appliances/write", + "Microsoft.ResourceConnector/appliances/delete, + "Microsoft.ResourceConnector/appliances/listClusterUserCredential/action", + "Microsoft.ResourceConnector/appliances/read", + "Microsoft.ExtendedLocation/customLocations/read", + "Microsoft.ExtendedLocation/customLocations/write", + "Microsoft.KubernetesConfiguration/extensions/read", + "Microsoft.KubernetesConfiguration/extensions/write", + "Microsoft.KubernetesConfiguration/extensions/operations/read" + ], + "NotActions": [ + ], + "AssignableScopes": [ + "/subscriptions/$SubscriptionID" + ] + } +"@ + $Content | Out-File "$env:USERPROFILE\Downloads\customHCIRole.json" + New-AzRoleDefinition -InputFile "$env:USERPROFILE\Downloads\customHCIRole.json" + } + + #Create AzADServicePrincipal for Azure Stack HCI registration (if it does not exist) + $SP=Get-AZADServicePrincipal -DisplayName $ServicePrincipalName + if (-not $SP){ + $SP=New-AzADServicePrincipal -DisplayName $ServicePrincipalName -Role "Azure Stack HCI registration role - Custom" + #remove default cred + Remove-AzADAppCredential -ApplicationId $SP.AppId + } + + #Create new SPN password + $credential = New-Object -TypeName "Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential" -Property @{ + "KeyID" = (new-guid).Guid ; + "EndDateTime" = [DateTime]::UtcNow.AddYears(1) + } + $Creds=New-AzADAppCredential -PasswordCredentials $credential -ApplicationID $SP.AppID + $SPNSecret=$Creds.SecretText + $SPAppID=$SP.AppID + } +#> + #Disconnect-AzAccount + + #output variables + Write-Host -ForegroundColor Cyan @" + #Variables to copy + `$SubscriptionID=`"$SubscriptionID`" + `$SPAppID=`"$SPAppID`" + `$SPNSecret=`"$SPNSecret`" + `$ResourceGroupName=`"$ResourceGroupName`" + `$StorageAccountName=`"$StorageAccountName`" + `$KeyVaultName=`"$KeyVaultName`" + `$StorageAccountAccessKey=`"$StorageAccountAccessKey`" + `$Location=`"$Location`" +"@ + + +#endregion + +#region install ARC agent with extensions on nodes + $ResourceGroupName="ASClus01-RG" + $TenantID=(Get-AzContext).Tenant.ID + $SubscriptionID=(Get-AzContext).Subscription.ID + $Location="EastUS" + $Cloud="AzureCloud" + $ServicePrincipalName="Azure Stack HCI ARC Onboarding" + + #Since machines are not domain joined, let's do some preparation + $UserName="Administrator" + $Password="LS1setup!" + $SecuredPassword = ConvertTo-SecureString $password -AsPlainText -Force + $Credentials= New-Object System.Management.Automation.PSCredential ($UserName,$SecuredPassword) + + #configure trusted hosts to be able to communicate with servers (not secure) + $TrustedHosts=@() + $TrustedHosts+=$Servers + Set-Item WSMan:\localhost\Client\TrustedHosts -Value $($TrustedHosts -join ',') -Force + + #make sure Hyper-V and FailoverClustering is installed (FC will allow discovery using icmp -allows all clustering fw rules) + Invoke-Command -ComputerName $servers -ScriptBlock { + Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V -Online -NoRestart + Install-WindowsFeature -Name Failover-Clustering + } -Credential $Credentials + + #region update all servers + Invoke-Command -ComputerName $servers -ScriptBlock { + New-PSSessionConfigurationFile -RunAsVirtualAccount -Path $env:TEMP\VirtualAccount.pssc + Register-PSSessionConfiguration -Name 'VirtualAccount' -Path $env:TEMP\VirtualAccount.pssc -Force + } -ErrorAction Ignore -Credential $Credentials + #sleep a bit + Start-Sleep 2 + # Run Windows Update via ComObject. + Invoke-Command -ComputerName $servers -ConfigurationName 'VirtualAccount' -ScriptBlock { + $Searcher = New-Object -ComObject Microsoft.Update.Searcher + $SearchCriteriaAllUpdates = "IsInstalled=0 and DeploymentAction='Installation' or + IsInstalled=0 and DeploymentAction='OptionalInstallation' or + IsPresent=1 and DeploymentAction='Uninstallation' or + IsInstalled=1 and DeploymentAction='Installation' and RebootRequired=1 or + IsInstalled=0 and DeploymentAction='Uninstallation' and RebootRequired=1" + $SearchResult = $Searcher.Search($SearchCriteriaAllUpdates).Updates + if ($SearchResult.Count -gt 0){ + $Session = New-Object -ComObject Microsoft.Update.Session + $Downloader = $Session.CreateUpdateDownloader() + $Downloader.Updates = $SearchResult + $Downloader.Download() + $Installer = New-Object -ComObject Microsoft.Update.Installer + $Installer.Updates = $SearchResult + $Result = $Installer.Install() + $Result + } + } -Credential $Credentials + #remove temporary PSsession config + Invoke-Command -ComputerName $servers -ScriptBlock { + Unregister-PSSessionConfiguration -Name 'VirtualAccount' + Remove-Item -Path $env:TEMP\VirtualAccount.pssc + } -Credential $Credentials + #endregion + + #restart servers to finish Installation + Restart-Computer -ComputerName $Servers -Credential $Credentials -WsmanAuthentication Negotiate -Wait -For PowerShell + Start-Sleep 20 #Failsafe as Hyper-V needs 2 reboots and sometimes it happens, that during the first reboot the restart-computer evaluates the machine is up + #make sure computers are restarted + Foreach ($Server in $Servers){ + do{$Test= Test-NetConnection -ComputerName $Server -CommonTCPPort WINRM}while ($test.TcpTestSucceeded -eq $False) + } + + #region install arc agents with azshci.arcinstaller + #make sure nuget is installed on nodes + Invoke-Command -ComputerName $Servers -ScriptBlock { + Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force + } -Credential $Credentials + + #make sure azshci.arcinstaller is installed on nodes + Invoke-Command -ComputerName $Servers -ScriptBlock { + Install-Module -Name azshci.arcinstaller -Force + } -Credential $Credentials + + #make sure Az.Resources module is installed on nodes + Invoke-Command -ComputerName $Servers -ScriptBlock { + Install-Module -Name Az.Resources -Force + } -Credential $Credentials + + #make sure az.accounts module is installed on nodes + Invoke-Command -ComputerName $Servers -ScriptBlock { + Install-Module -Name az.accounts -Force + } -Credential $Credentials + + #region Create AzADServicePrincipal for Arc Onboarding with custom permissions (jaromirk note: "Microsoft.Authorization/roleAssignments/write" needs to go away, however this is something that will as it's preview) + #Create Azure Stack HCI ARC Onboarding role https://learn.microsoft.com/en-us/azure-stack/hci/deploy/register-with-azure#assign-permissions-from-azure-portal + #https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#azure-connected-machine-onboarding + if (-not (Get-AzRoleDefinition -Name "Azure Stack HCI ARC Onboarding - Custom" -ErrorAction Ignore)){ + $Content=@" +{ + "Name": "Azure Stack HCI ARC Onboarding - Custom", + "Id": null, + "IsCustom": true, + "Description": "Custom Azure role to allow onboard Azure Stack HCI with azshci.arcinstaller", + "Actions": [ + "Microsoft.HybridCompute/machines/read", + "Microsoft.HybridCompute/machines/write", + "Microsoft.HybridCompute/privateLinkScopes/read", + "Microsoft.GuestConfiguration/guestConfigurationAssignments/read", + "Microsoft.HybridCompute/machines/extensions/write", + "Microsoft.Authorization/roleAssignments/write" + ], + "NotActions": [ + ], + "AssignableScopes": [ + "/subscriptions/$SubscriptionID" + ] + } +"@ + $Content | Out-File "$env:USERPROFILE\Downloads\customHCIRole.json" + New-AzRoleDefinition -InputFile "$env:USERPROFILE\Downloads\customHCIRole.json" + } + + #Create AzADServicePrincipal for Azure Stack HCI registration (if it does not exist) + $SP=Get-AZADServicePrincipal -DisplayName $ServicePrincipalName + if (-not $SP){ + $SP=New-AzADServicePrincipal -DisplayName $ServicePrincipalName -Role "Azure Stack HCI ARC Onboarding - Custom" + #remove default cred + Remove-AzADAppCredential -ApplicationId $SP.AppId + } + + #Create new SPN password + $credential = New-Object -TypeName "Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential" -Property @{ + "KeyID" = (new-guid).Guid ; + "EndDateTime" = [DateTime]::UtcNow.AddYears(1) + } + $Creds=New-AzADAppCredential -PasswordCredentials $credential -ApplicationID $SP.AppID + $SPNSecret=$Creds.SecretText + $SPAppID=$SP.AppID + $SecuredPassword = ConvertTo-SecureString $SPNSecret -AsPlainText -Force + $SPNCredentials= New-Object System.Management.Automation.PSCredential ($SPAppID,$SecuredPassword) + #endregion + + #deploy ARC Agent (It's failing, cant figure out why) + Invoke-Command -ComputerName $Servers -ScriptBlock { + Invoke-AzStackHciArcInitialization -SubscriptionID $using:SubscriptionID -ResourceGroup $using:ResourceGroupName -TenantID $using:TenantID -Cloud $using:Cloud -Region $Using:Location -SpnCredential $Using:SPNCredentials + } -Credential $Credentials + + #let's onboard ARC agent "manually" + Invoke-Command -ComputerName $Servers -ScriptBlock { + $machineName = [System.Net.Dns]::GetHostName() + $SPNCredentials=$using:SPNCredentials + $SPNpassword=$SPNCredentials.GetNetworkCredential().Password + & "$env:ProgramW6432\AzureConnectedMachineAgent\azcmagent.exe" connect --service-principal-id $using:SpnCredentials.UserName --service-principal-secret $SPNpassword --resource-group $using:ResourceGroupName --resource-name "$machineName" --tenant-id $using:TenantID --location $Using:Location --subscription-id $using:SubscriptionID --cloud $using:Cloud + } -Credential $Credentials + + #and let's run deployment again + Invoke-Command -ComputerName $Servers -ScriptBlock { + Invoke-AzStackHciArcInitialization -SubscriptionID $using:SubscriptionID -ResourceGroup $using:ResourceGroupName -TenantID $using:TenantID -Cloud $using:Cloud -Region $Using:Location -SpnCredential $Using:SPNCredentials + } -Credential $Credentials + + #endregion + + #region install arc agents with manually - I keep it here just for education purposes as I spent some time with troubleshooting azshci.arcinstaller + <# + $ServicePrincipalName="Arc-for-servers" + # Download ARC agent installation package + Start-BitsTransfer -Source https://aka.ms/AzureConnectedMachineAgent -Destination "$env:UserProfile\Downloads\AzureConnectedMachineAgent.msi" + + #Copy ARC agent to nodes + #increase max evenlope size first + Invoke-Command -ComputerName $servers -ScriptBlock {Set-Item -Path WSMan:\localhost\MaxEnvelopeSizekb -Value 4096} -Credential $Credentials + + #create temp folder + Invoke-Command -ComputerName $servers -ScriptBlock {New-Item -Name Temp -Path C:\ -ItemType Directory -ErrorAction Ignore} -Credential $Credentials + + #create sessions + $sessions=New-PSSession -ComputerName $servers -Credential $Credentials -Authentication Negotiate + #copy ARC agent + foreach ($session in $sessions){ + Copy-Item -Path "$env:USERPROFILE\Downloads\AzureConnectedMachineAgent.msi" -Destination "c:\temp\" -tosession $session -force + } + + #install package + Invoke-Command -ComputerName $Servers -ScriptBlock { + Start-Process -FilePath "msiexec.exe" -ArgumentList "/i c:\temp\AzureConnectedMachineAgent.msi /l*v c:\temp\ACMinstallationlog.txt /qn" -Wait + } -Credential $Credentials + + #make sure Resource Providers are registered + Register-AzResourceProvider -ProviderNamespace "Microsoft.HybridCompute" + Register-AzResourceProvider -ProviderNamespace "Microsoft.GuestConfiguration" + Register-AzResourceProvider -ProviderNamespace "Microsoft.HybridConnectivity" + Register-AzResourceProvider -ProviderNamespace "Microsoft.AzureStackHCI" + + #Create AzADServicePrincipal for Arc Onboarding + $SP=Get-AZADServicePrincipal -DisplayName $ServicePrincipalName + if (-not $SP){ + $SP=New-AzADServicePrincipal -DisplayName $ServicePrincipalName -Role "Azure Connected Machine Onboarding" + #remove default cred + Remove-AzADAppCredential -ApplicationId $SP.AppId + } + + #Create new SPN password + $credential = New-Object -TypeName "Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential" -Property @{ + "KeyID" = (new-guid).Guid ; + "EndDateTime" = [DateTime]::UtcNow.AddYears(1) + } + $Creds=New-AzADAppCredential -PasswordCredentials $credential -ApplicationID $SP.AppID + $SPNSecret=$Creds.SecretText + $SPAppID=$SP.AppID + + #sleep for 1m just to let SPNSecret to propagate + Start-Sleep 60 + + #configure Azure ARC agent on servers + Invoke-Command -ComputerName $Servers -ScriptBlock { + Start-Process -FilePath "$env:ProgramFiles\AzureConnectedMachineAgent\azcmagent.exe" -ArgumentList "connect --service-principal-id $using:SPAppID --service-principal-secret $using:SPNSecret --resource-group $using:ResourceGroupName --tenant-id $using:TenantID --location $($using:Location) --cloud $using:Cloud --subscription-id $using:SubscriptionID" -Wait + } -Credential $Credentials + + #check if ARC Agent is connected + $Output=Invoke-Command -ComputerName $Servers -ScriptBlock { + & "C:\Program Files\AzureConnectedMachineAgent\azcmagent.exe" show -j | ConvertFrom-Json + } -Credential $Credentials + $Output | Select-Object Status,PSComputerName + + #add extensions + #make sure nuget is installed on nodes (AzureEdgeLifecycleManager was failing for me) + Invoke-Command -ComputerName $Servers -ScriptBlock { + Install-PackageProvider -Name NuGet -Force + } -Credential $Credentials + + if (!(Get-InstalledModule -Name "Az.ConnectedMachine"-ErrorAction Ignore)){ + Install-Module -Name "Az.ConnectedMachine" -Force + } + + $Settings = @{ "CloudName" = $Cloud; "RegionName" = $Location; "DeviceType" = "AzureEdge" } + foreach ($Server in $Servers){ + New-AzConnectedMachineExtension -Name "TelemetryAndDiagnostics" -ResourceGroupName $ResourceGroupName -MachineName $Server -Location $Location -Publisher "Microsoft.AzureStack.Observability" -Settings $Settings -ExtensionType "TelemetryAndDiagnostics" -NoWait + New-AzConnectedMachineExtension -Name "AzureEdgeDeviceManagement" -ResourceGroupName $ResourceGroupName -MachineName $Server -Location $Location -Publisher "Microsoft.Edge" -ExtensionType "DeviceManagementExtension" -NoWait + New-AzConnectedMachineExtension -Name "AzureEdgeLifecycleManager" -ResourceGroupName $ResourceGroupName -MachineName $Server -Location $Location -Publisher "Microsoft.AzureStack.Orchestration" -ExtensionType "LcmController" -NoWait + } + + #validate extensions are installed + foreach ($Server in $Servers){ + Get-AzConnectedMachineExtension -Name "TelemetryAndDiagnostics" -ResourceGroupName $ResourceGroupName -MachineName $Server + Get-AzConnectedMachineExtension -Name "AzureEdgeDeviceManagement" -ResourceGroupName $ResourceGroupName -MachineName $Server + Get-AzConnectedMachineExtension -Name "AzureEdgeLifecycleManager" -ResourceGroupName $ResourceGroupName -MachineName $Server + } + + #wait until provisioning state is succeeded + do { + Start-Sleep 5 + $Status=@() + foreach ($Server in $Servers){ + $Status+=Get-AzConnectedMachineExtension -Name "TelemetryAndDiagnostics" -ResourceGroupName $ResourceGroupName -MachineName $Server + $Status+=Get-AzConnectedMachineExtension -Name "AzureEdgeDeviceManagement" -ResourceGroupName $ResourceGroupName -MachineName $Server + $Status+=Get-AzConnectedMachineExtension -Name "AzureEdgeLifecycleManager" -ResourceGroupName $ResourceGroupName -MachineName $Server + } + Write-Host "." -NoNewline + } until ( + $status.provisioningstate -notcontains "Creatingg" + ) + + #Assign role to ARC Objects + $ResourceIDs=Invoke-Command -ComputerName $Servers -ScriptBlock { + $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" + $headers.Add("metadata", "true") + $headers.Add("UseDefaultCredentials","true") + $response = Invoke-WebRequest -Uri "http://localhost:40342/metadata/instance/compute?api-version=2020-06-01" -Method GET -Headers $headers -UseBasicParsing + $content = $response.Content | ConvertFrom-Json + $resourceId = $content.resourceId + return $resourceId + } -Credential $Credentials + + foreach ($ResourceID in $ResourceIDs){ + $arcResource = Get-AzResource -ResourceId $ResourceID + $objectId = $arcResource.Identity.PrincipalId + New-AzRoleAssignment -ObjectId $ObjectId -ResourceGroupName $ResourceGroupName -RoleDefinitionName "Azure Stack HCI Device Management Role" + New-AzRoleAssignment -ObjectId $ObjectId -ResourceGroupName $ResourceGroupName -RoleDefinitionName "Azure Connected Machine Resource Manager" + New-AzRoleAssignment -ObjectId $ObjectId -ResourceGroupName $ResourceGroupName -RoleDefinitionName "Reader" + + } + + #make sure environmental checker is installed on nodes + Invoke-Command -ComputerName $Servers -ScriptBlock { + Install-Module -Name AzStackHci.EnvironmentChecker -Force -AllowClobber + } -Credential $Credentials + + #remove + <# + foreach ($ResourceID in $ResourceIDs){ + $arcResource = Get-AzResource -ResourceId $ResourceID + $objectId = $arcResource.Identity.PrincipalId + Remove-AzRoleAssignment -ObjectId $ObjectId -ResourceGroupName $ResourceGroupName -RoleDefinitionName "Azure Stack HCI Device Management Role" + } + #> + #> + #endregion + +#endregion + +#region final touches + + #make sure there is only one management NIC with IP address (setup is complaining about multiple gateways) + Invoke-Command -ComputerName $servers -ScriptBlock { + $adapter=Get-NetIPConfiguration | Where-Object IPV4defaultGateway | Get-NetAdapter | Sort-Object Name | Select-Object -Skip 1 + #disable netbios (otherwise the apipa might be resolved instead of 10.x address) + $query="select * From Win32_NetworkAdapterConfiguration where Description = `'$($Adapter.Interfacedescription)`'" + $arguments = @{'TcpipNetbiosOptions' = [UInt32](2) } + Invoke-CimMethod -Query $query -Namespace Root/CIMV2 -MethodName SetTcpipNetbios -Arguments $arguments + #disable receiving address from dhcp + $adapter | Set-NetIPInterface -Dhcp Disabled + } -Credential $Credentials + Clear-DnsClientCache + + #add key vault admin of current user to Resource Group + $objectId = (Get-AzADUser -SignedIn).Id + New-AzRoleAssignment -ObjectId $ObjectId -ResourceGroupName $ResourceGroupName -RoleDefinitionName "Key Vault Administrator" + + #change password of local admin to be at least 12 chars + Invoke-Command -ComputerName $servers -ScriptBlock { + Set-LocalUser -Name Administrator -AccountNeverExpires -Password (ConvertTo-SecureString "LS1setup!LS1setup!" -AsPlainText -Force) + } -Credential $Credentials + + +#endregion + +#region do the magic in azure portal +<# +Basics: + Resource Group: ASClus-01-RG + ClusterName: ASClus01 + Keyvaultname: + +Configuration: + New Configuration + +Networking + Network Switch for storage + Group All traffic + + Network adapter 1: Ethernet + Network adapter 1 VLAN ID: 711 (default) + Network adapter 2: Ethernet 2 + Network adapter 2 VLAN ID: 712 (default) + + Starting IP: 10.0.0.100 + ENding IP: 10.0.0.110 + Subnet mask: 255.255.255.0 + Default Gateway: 10.0.0.1 + DNS Server: 10.0.0.1 + +Management + Custom location name: ASClus01CustomLocation (default)\ + Azure storage account name: + + Domain: corp.contoso.com + Computer name prefix: ASClus01 + OU: OU=ASClus01,DC=Corp,DC=contoso,DC=com + + Deployment account: + Username: ASClus01-DeployUser + Password: LS1setup!LS1setup! + + Local Administrator + Username: Administrator + Password: LS1setup!LS1setup! + +Security: + Customized security settings + Unselect Bitlocker for data volumes (would consume too much space) + +Advanced: + Create workload volumes (Default) + +Tags: + + +Let it validate... if you run into issues with key vault audit logging, make sure that there are not having too many linked accounts under key vault diagnostics. This can happen if you run validation multiple times +If it will timeout, try to run it again. +#> +#endregion + +#region check progress + #Create new password credentials + $UserName="Administrator" + $Password="LS1setup!LS1setup!" + $SecuredPassword = ConvertTo-SecureString $password -AsPlainText -Force + $Credentials= New-Object System.Management.Automation.PSCredential ($UserName,$SecuredPassword) + + #before domain join + Invoke-Command -ComputerName $Servers[0] -ScriptBlock { + ([xml](Get-Content C:\ecestore\efb61d70-47ed-8f44-5d63-bed6adc0fb0f\086a22e3-ef1a-7b3a-dc9d-f407953b0f84)) | Select-Xml -XPath "//Action/Steps/Step" | ForEach-Object { $_.Node } | Select-Object FullStepIndex, Status, Name, StartTimeUtc, EndTimeUtc, @{Name="Duration";Expression={new-timespan -Start $_.StartTimeUtc -End $_.EndTimeUtc } } | Format-Table -AutoSize + } -Credential $Credentials + + #after domain join + Invoke-Command -ComputerName $Servers[0] -ScriptBlock { + ([xml](Get-Content C:\ecestore\efb61d70-47ed-8f44-5d63-bed6adc0fb0f\086a22e3-ef1a-7b3a-dc9d-f407953b0f84)) | Select-Xml -XPath "//Action/Steps/Step" | ForEach-Object { $_.Node } | Select-Object FullStepIndex, Status, Name, StartTimeUtc, EndTimeUtc, @{Name="Duration";Expression={new-timespan -Start $_.StartTimeUtc -End $_.EndTimeUtc } } | Format-Table -AutoSize + } +#endregion + +#Deployment using ARM Templates \ No newline at end of file diff --git a/Scenarios/AzSHCI and Deployment tool/readme.md b/Scenarios/AzSHCI and Cloud Based Deployment/readme.md similarity index 65% rename from Scenarios/AzSHCI and Deployment tool/readme.md rename to Scenarios/AzSHCI and Cloud Based Deployment/readme.md index de93e1a5..a809d0f9 100644 --- a/Scenarios/AzSHCI and Deployment tool/readme.md +++ b/Scenarios/AzSHCI and Cloud Based Deployment/readme.md @@ -1,4 +1,4 @@ -Following lab is based on new Azure Stack HCI deployment tool: https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-powershell +Following lab is based on new Azure Stack HCI Cloud Based Deployment: https://learn.microsoft.com/en-us/azure-stack/hci/whats-new#cloud-based-deployment Notes: * You can also notice in Labconfig, that nodes are not domain joined diff --git a/Scenarios/AzSHCI and Deployment tool/Scenario.ps1 b/Scenarios/AzSHCI and Deployment tool/Scenario.ps1 deleted file mode 100644 index e896a23a..00000000 --- a/Scenarios/AzSHCI and Deployment tool/Scenario.ps1 +++ /dev/null @@ -1,378 +0,0 @@ -#region Prepare Active Directory - run from management VM! - $AsHCIOUName="OU=ASClus01,DC=Corp,DC=contoso,DC=com" - $Servers="ASNode1","ASNode2","ASNode3","ASNode4" - $DomainFQDN=$env:USERDNSDOMAIN - $ClusterName="ASClus01" - $Prefix="ASClus01" - $UserName="ASClus01-DeployUser" - $Password="LS1setup!" - $SecuredPassword = ConvertTo-SecureString $password -AsPlainText -Force - $Credentials= New-Object System.Management.Automation.PSCredential ($UserName,$SecuredPassword) - - - #install posh module for prestaging Active Directory - Install-PackageProvider -Name NuGet -Force - Install-Module AsHciADArtifactsPreCreationTool -Repository PSGallery -Force - - #add KDS Root Key - if (-not (Get-KdsRootKey)){ - Add-KdsRootKey -EffectiveTime ((Get-Date).addhours(-10)) - } - - #make sure active directory module and GPMC is installed - Install-WindowsFeature -Name RSAT-AD-PowerShell,GPMC - - #populate objects - New-HciAdObjectsPreCreation -Deploy -AzureStackLCMUserCredential $Credentials -AsHciOUName $AsHCIOUName -AsHciPhysicalNodeList $Servers -DomainFQDN $DomainFQDN -AsHciClusterName $ClusterName -AsHciDeploymentPrefix $Prefix - - #install management features to explore cluster,settings... - Install-WindowsFeature -Name "RSAT-ADDS","RSAT-Clustering" -#endregion - -#region prepare azure prerequisites - run from ASNode1 or Management (you can run from Management, just copy the resulting variables and use it in next region) - #variables - $StorageAccountName="asclus01$(Get-Random -Minimum 100000 -Maximum 999999)" - $ServicePrincipal=$True #or false if you want to use MFA (and skip SP creation) - $ServicePrincipalName="Azure-Stack-Registration" - $ResourceGroupName="ASClus01-RG" - $Location="eastus" #make sure location is lowercase as in 2308 was not able to deploy with "EastUS" - - #login to azure - #download Azure module - if (!(Get-InstalledModule -Name az.accounts -ErrorAction Ignore)){ - Install-Module -Name Az.Accounts -Force - } - if (-not (Get-AzContext)){ - Connect-AzAccount -UseDeviceAuthentication - } - - #select subscription if more available - $subscriptions=Get-AzSubscription - #list subscriptions - $subscriptions - if (($subscriptions).count -gt 1){ - $SubscriptionID=Read-Host "Please give me subscription ID" - }else{ - $SubscriptionID=$subscriptions.id - } - - #make sure resource providers are registered - if (!(Get-InstalledModule -Name "az.resources" -ErrorAction Ignore)){ - Install-Module -Name "az.resources" -Force - } - $Providers="Microsoft.ResourceConnector","Microsoft.Authorization","Microsoft.AzureStackHCI","Microsoft.HybridCompute","Microsoft.GuestConfiguration" - foreach ($Provider in $Providers){ - Register-AzResourceProvider -ProviderNamespace $Provider - #wait for provider to finish registration - do { - $Status=Get-AzResourceProvider -ProviderNamespace $Provider - Write-Output "Registration Status - $Provider : $(($status.RegistrationState -match 'Registered').Count)/$($Status.Count)" - Start-Sleep 1 - } while (($status.RegistrationState -match "Registered").Count -ne ($Status.Count)) - } - - #Create Storage Account - if (!(Get-InstalledModule -Name "az.storage"-ErrorAction Ignore)){ - Install-Module -Name "az.storage" -Force - } - - #create resource group first - if (-not(Get-AzResourceGroup -Name $ResourceGroupName -ErrorAction Ignore)){ - New-AzResourceGroup -Name $ResourceGroupName -Location $location - } - #create Storage Account - If (-not(Get-AzStorageAccountKey -Name $StorageAccountName -ResourceGroupName $ResourceGroupName -ErrorAction Ignore)){ - New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -SkuName Standard_LRS -Location $location -Kind StorageV2 -AccessTier Cool - } - $StorageAccountAccessKey=(Get-AzStorageAccountKey -Name $StorageAccountName -ResourceGroupName $ResourceGroupName | Select-Object -First 1).Value - - #create service principal if requested - if ($ServicePrincipal){ - #Create Azure Stack HCI registration role https://learn.microsoft.com/en-us/azure-stack/hci/deploy/register-with-azure#assign-permissions-from-azure-portal - #https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#azure-connected-machine-onboarding - if (-not (Get-AzRoleDefinition -Name "Azure Stack HCI registration role - Custom" -ErrorAction Ignore)){ - $Content=@" -{ - "Name": "Azure Stack HCI registration role - Custom", - "Id": null, - "IsCustom": true, - "Description": "Custom Azure role to allow subscription-level access to register Azure Stack HCI", - "Actions": [ - "Microsoft.Resources/subscriptions/resourceGroups/read", - "Microsoft.Resources/subscriptions/resourceGroups/write", - "Microsoft.Resources/subscriptions/resourceGroups/delete", - "Microsoft.AzureStackHCI/register/action", - "Microsoft.AzureStackHCI/Unregister/Action", - "Microsoft.AzureStackHCI/clusters/*", - "Microsoft.Authorization/roleAssignments/write", - "Microsoft.Authorization/roleAssignments/read", - "Microsoft.HybridCompute/register/action", - "Microsoft.GuestConfiguration/register/action", - "Microsoft.HybridConnectivity/register/action", - "Microsoft.HybridCompute/machines/extensions/write", - "Microsoft.HybridCompute/machines/extensions/read", - "Microsoft.HybridCompute/machines/read", - "Microsoft.HybridCompute/machines/write", - "Microsoft.HybridCompute/privateLinkScopes/read", - "Microsoft.GuestConfiguration/guestConfigurationAssignments/read", - "Microsoft.ResourceConnector/register/action", - "Microsoft.Kubernetes/register/action", - "Microsoft.KubernetesConfiguration/register/action", - "Microsoft.ExtendedLocation/register/action", - "Microsoft.HybridContainerService/register/action", - "Microsoft.ResourceConnector/appliances/write" - ], - "NotActions": [ - ], - "AssignableScopes": [ - "/subscriptions/$SubscriptionID" - ] - } -"@ - $Content | Out-File "$env:USERPROFILE\Downloads\customHCIRole.json" - New-AzRoleDefinition -InputFile "$env:USERPROFILE\Downloads\customHCIRole.json" - } - - #Create AzADServicePrincipal for Azure Stack HCI registration (if it does not exist) - $SP=Get-AZADServicePrincipal -DisplayName $ServicePrincipalName - if (-not $SP){ - $SP=New-AzADServicePrincipal -DisplayName $ServicePrincipalName -Role "Azure Stack HCI registration role - Custom" - #remove default cred - Remove-AzADAppCredential -ApplicationId $SP.AppId - } - - #Create new SPN password - $credential = New-Object -TypeName "Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential" -Property @{ - "KeyID" = (new-guid).Guid ; - "EndDateTime" = [DateTime]::UtcNow.AddYears(1) - } - $Creds=New-AzADAppCredential -PasswordCredentials $credential -ApplicationID $SP.AppID - $SPNSecret=$Creds.SecretText - $SPAppID=$SP.AppID - } - - Disconnect-AzAccount - #output variables - Write-Host -ForegroundColor Cyan @" - #Variables to copy - `$SubscriptionID=`"$SubscriptionID`" - `$SPAppID=`"$SPAppID`" - `$SPNSecret=`"$SPNSecret`" - `$ResourceGroupName=`"$ResourceGroupName`" - `$StorageAccountName=`"$StorageAccountName`" - `$StorageAccountAccessKey=`"$StorageAccountAccessKey`" - `$Location=`"$Location`" -"@ - - -#endregion - -#region Deploy - run from ASNode1! - #variables - #create deployment credentials - $UserName="ASClus01-DeployUser" - $Password="LS1setup!" - $SecuredPassword = ConvertTo-SecureString $password -AsPlainText -Force - $AzureStackLCMUserCredential = New-Object System.Management.Automation.PSCredential ($UserName,$SecuredPassword) - $UserName="Administrator" - $Password="LS1setup!" - $SecuredPassword = ConvertTo-SecureString $password -AsPlainText -Force - $LocalAdminCred = New-Object System.Management.Automation.PSCredential ($UserName,$SecuredPassword) - - #the one you have to populate if you did not run above region from Seed node - <# - $SubscriptionID="" - $SPAppID="" #not needed if you use MFA - $SPNSecret="" #not needed if you use MFA - $ResourceGroupName="" - $StorageAccountName="" - $StorageAccountAccessKey="" - $Location="" - #> - - #download folder - $downloadfolder="c:\temp" - - $Servers="ASNode1","ASNode2","ASNode3","ASNode4" - - #Download files - #create folder - if (-not (Test-Path $downloadfolder)){New-Item -Path $downloadfolder -ItemType Directory} - $files=@() - $Files+=@{Uri="https://go.microsoft.com/fwlink/?linkid=2210545" ; FileName="BootstrapCloudDeploymentTool.ps1" ; Description="Bootstrap PowerShell"} - $Files+=@{Uri="https://go.microsoft.com/fwlink/?linkid=2210546" ; FileName="CloudDeployment_10.2306.0.47.zip" ; Description="Cloud Deployment Package"} - $Files+=@{Uri="https://go.microsoft.com/fwlink/?linkid=2210608" ; FileName="Verify-CloudDeployment.zip_Hash.ps1" ; Description="Verify Cloud Deployment PowerShell"} - - foreach ($file in $files){ - if (-not (Test-Path "$downloadfolder\$($file.filename)")){ - Start-BitsTransfer -Source $file.uri -Destination "$downloadfolder\$($file.filename)" -DisplayName "Downloading: $($file.filename)" - } - } - - #Start bootstrap (script is looking for file "CloudDeployment_*.zip" - & $downloadfolder\BootstrapCloudDeploymentTool.ps1 - - #create authentication token (Service Principal or MFA) - if ($SPAppID){ - $SPNsecStringPassword = ConvertTo-SecureString $SPNSecret -AsPlainText -Force - $SPNCred=New-Object System.Management.Automation.PSCredential ($SPAppID, $SPNsecStringPassword) - }else{ - Set-AuthenticationToken -RegistrationCloudName AzureCloud -RegistrationSubscriptionID $SubscriptionID - } - - #create config.json - #add servers to trusted hosts so you can query IP address dynamically (in the lab we dont exactly now which adapter is first and what IP was assigned - $TrustedHosts=@() - $TrustedHosts+=$Servers - Set-Item WSMan:\localhost\Client\TrustedHosts -Value $($TrustedHosts -join ',') -Force - - $Content=@" -{ - "Version": "10.0.0.0", - "ScaleUnits": [ - { - "DeploymentData": { - "SecuritySettings": { - "HVCIProtection": true, - "DRTMProtection": true, - "DriftControlEnforced": true, - "CredentialGuardEnforced": true, - "SMBSigningEnforced": true, - "SMBClusterEncryption": false, - "SideChannelMitigationEnforced": true, - "BitlockerBootVolume": true, - "BitlockerDataVolumes": false, - "WDACEnforced": true - }, - "Observability": { - "StreamingDataClient": true, - "EULocation": true, - "EpisodicDataUpload": true - }, - "Cluster": { - "Name": "ASClus01", - "WitnessType": "Cloud", - "WitnessPath": "", - "CloudAccountName": "$StorageAccountName", - "AzureServiceEndpoint": "core.windows.net", - "StaticAddress": [ - "" - ] - }, - "Storage": { - "ConfigurationMode": "Express" - }, - "TimeZone": "Pacific Standard Time", - "NamingPrefix": "ASClus01", - "DomainFQDN": "corp.contoso.com", - "InfrastructureNetwork": [ - { - "VlanId": "0", - "SubnetMask": "255.255.255.0", - "Gateway": "10.0.0.1", - "IPPools": [ - { - "StartingAddress": "10.0.0.100", - "EndingAddress": "10.0.0.110" - } - ], - "DNSServers": [ - "10.0.0.1" - ] - } - ], - "PhysicalNodes": [ - { - "Name": "ASNode1", - "IPv4Address": "$((Get-NetIPAddress -InterfaceAlias ethernet -AddressFamily ipv4 -CimSession ASNode1).IPAddress)" - }, - { - "Name": "ASNode2", - "IPv4Address": "$((Get-NetIPAddress -InterfaceAlias ethernet -AddressFamily ipv4 -CimSession ASNode2).IPAddress)" - }, - { - "Name": "ASNode3", - "IPv4Address": "$((Get-NetIPAddress -InterfaceAlias ethernet -AddressFamily ipv4 -CimSession ASNode3).IPAddress)" - }, - { - "Name": "ASNode4", - "IPv4Address": "$((Get-NetIPAddress -InterfaceAlias ethernet -AddressFamily ipv4 -CimSession ASNode4).IPAddress)" - } - ], - "HostNetwork": { - "Intents": [ - { - "Name": "Compute_Management_Storage", - "TrafficType": [ - "Compute", - "Management", - "Storage" - ], - "Adapter": [ - "Ethernet", - "Ethernet 2" - ], - "OverrideVirtualSwitchConfiguration": false, - "VirtualSwitchConfigurationOverrides": { - "EnableIov": "", - "LoadBalancingAlgorithm": "" - }, - "OverrideQoSPolicy": false, - "QoSPolicyOverrides": { - "PriorityValue8021Action_Cluster": "", - "PriorityValue8021Action_SMB": "", - "BandwidthPercentage_SMB": "" - }, - "OverrideAdapterProperty": false, - "AdapterPropertyOverrides": { - "JumboPacket": "", - "NetworkDirect": "", - "NetworkDirectTechnology": "" - } - } - ], - "StorageNetworks": [ - { - "Name": "Storage1Network", - "NetworkAdapterName": "Ethernet", - "VlanId": 711 - }, - { - "Name": "Storage2Network", - "NetworkAdapterName": "Ethernet 2", - "VlanId": 712 - } - ] - }, - "ADOUPath": "OU=ASClus01,DC=Corp,DC=contoso,DC=com", - "DNSForwarder": [ - "10.0.0.1" - ] - } - } - ] -} -"@ -$Content | Out-File -FilePath c:\config.json - -#set trusted hosts back -Set-Item WSMan:\localhost\Client\TrustedHosts -Value "" -Force - -#create secured storage access key -$StorageAccountAccessKeySecured = ConvertTo-SecureString $StorageAccountAccessKey -AsPlainText -Force - -#deploy -if ($SPAppID){ - .\Invoke-CloudDeployment -JSONFilePath c:\config.json -AzureStackLCMUserCredential $AzureStackLCMUserCredential -LocalAdminCredential $LocalAdminCred -RegistrationSPCredential $SPNCred -RegistrationCloudName AzureCloud -RegistrationSubscriptionID $SubscriptionID -RegistrationResourceGroupName $ResourceGroupName -WitnessStorageKey $StorageAccountAccessKeySecured -RegistrationRegion $Location -}else{ - .\Invoke-CloudDeployment -JSONFilePath c:\config.json -AzureStackLCMUserCredential $AzureStackLCMUserCredential -LocalAdminCredential $LocalAdminCred -RegistrationCloudName AzureCloud -RegistrationSubscriptionID $SubscriptionID -RegistrationResourceGroupName $ResourceGroupName -WitnessStorageKey $StorageAccountAccessKeySecured -RegistrationRegion $Location -} -#endregion - -#region Validate deployment - run from management VM! -$SeedNode="ASNode1" - -Invoke-Command -ComputerName $SeedNode -ScriptBlock { - ([xml](Get-Content C:\ecestore\efb61d70-47ed-8f44-5d63-bed6adc0fb0f\086a22e3-ef1a-7b3a-dc9d-f407953b0f84)) | Select-Xml -XPath "//Action/Steps/Step" | ForEach-Object { $_.Node } | Select-Object FullStepIndex, Status, Name, StartTimeUtc, EndTimeUtc, @{Name="Duration";Expression={new-timespan -Start $_.StartTimeUtc -End $_.EndTimeUtc } } | Format-Table -AutoSize -} -#endregion \ No newline at end of file