From 9a11483dec5e4e0c1fcce81b3f7347d62b43ef3d Mon Sep 17 00:00:00 2001 From: hardikl Date: Tue, 23 May 2023 13:17:34 +0530 Subject: [PATCH 1/3] feat: added volume panels in aggr dashboard --- grafana/dashboards/cmode/aggregate.json | 654 ++++++++++++++++++++++++ 1 file changed, 654 insertions(+) diff --git a/grafana/dashboards/cmode/aggregate.json b/grafana/dashboards/cmode/aggregate.json index 2ab4b4168..be816eede 100644 --- a/grafana/dashboards/cmode/aggregate.json +++ b/grafana/dashboards/cmode/aggregate.json @@ -4279,6 +4279,552 @@ ], "title": "Volume Statistics", "type": "row" + }, + { + "collapsed": true, + "datasource": { + "uid": "${DS_PROMETHEUS}" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 58 + }, + "id": 28, + "panels": [ + { + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "µs" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 6 + }, + "id": 88, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "topk($TopResources, volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", volume=~\"$TopVolumeReadLatency\"} * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\",volume=~\"$TopVolumeReadLatency\"})", + "interval": "", + "legendFormat": "{{aggr}} - {{volume}} - {{style}}", + "refId": "A" + } + ], + "title": "Top $TopResources Volumes by Read Latency", + "transformations": [], + "type": "timeseries" + }, + { + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 6 + }, + "id": 89, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "topk($TopResources, volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", volume=~\"$TopVolumeReadThroughput\"} * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\",volume=~\"$TopVolumeReadThroughput\"})", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{aggr}} - {{volume}} - {{style}}", + "refId": "A" + } + ], + "title": "Top $TopResources Volumes by Read Throughput", + "transformations": [], + "type": "timeseries" + }, + { + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "iops" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 6 + }, + "id": 90, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "topk($TopResources, volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", volume=~\"$TopVolumeReadIOPS\"} * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\",volume=~\"$TopVolumeReadIOPS\"})", + "interval": "", + "legendFormat": "{{aggr}} - {{volume}} - {{style}}", + "refId": "A" + } + ], + "title": "Top $TopResources Volumes by Read IOPs", + "transformations": [], + "type": "timeseries" + }, + { + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "µs" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 15 + }, + "id": 91, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "topk($TopResources, volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", volume=~\"$TopVolumeWriteLatency\"} * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\",volume=~\"$TopVolumeWriteLatency\"})", + "interval": "", + "legendFormat": "{{aggr}} - {{volume}} - {{style}}", + "refId": "A" + } + ], + "title": "Top $TopResources Volumes by Write Latency", + "transformations": [], + "type": "timeseries" + }, + { + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 15 + }, + "id": 92, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "topk($TopResources, volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", volume=~\"$TopVolumeWriteThroughput\"} * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\",volume=~\"$TopVolumeWriteThroughput\"})", + "interval": "", + "legendFormat": "{{aggr}} - {{volume}} - {{style}}", + "refId": "A" + } + ], + "title": "Top $TopResources Volumes by Write Throughput", + "transformations": [], + "type": "timeseries" + }, + { + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "iops" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 15 + }, + "id": 93, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom" + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "exemplar": false, + "expr": "topk($TopResources, volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", volume=~\"$TopVolumeWriteIOPS\"} * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\",volume=~\"$TopVolumeWriteIOPS\"})", + "interval": "", + "legendFormat": "{{aggr}} - {{volume}} - {{style}}", + "refId": "A" + } + ], + "title": "Top $TopResources Volumes by Write IOPs", + "transformations": [], + "type": "timeseries" + } + ], + "title": "Volume WAFL Layer Drilldown", + "type": "row" } ], "refresh": "", @@ -4620,6 +5166,114 @@ "skipUrlSync": false, "sort": 1, "type": "query" + }, + { + "current": {}, + "definition": "query_result(topk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "hide": 2, + "includeAll": true, + "multi": true, + "name": "TopVolumeReadLatency", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*volume=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "definition": "query_result(topk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "hide": 2, + "includeAll": true, + "multi": true, + "name": "TopVolumeReadThroughput", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*volume=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "definition": "query_result(topk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "hide": 2, + "includeAll": true, + "multi": true, + "name": "TopVolumeReadIOPS", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*volume=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "definition": "query_result(topk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "hide": 2, + "includeAll": true, + "multi": true, + "name": "TopVolumeWriteLatency", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*volume=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "definition": "query_result(topk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "hide": 2, + "includeAll": true, + "multi": true, + "name": "TopVolumeWriteThroughput", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*volume=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": {}, + "definition": "query_result(topk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "hide": 2, + "includeAll": true, + "multi": true, + "name": "TopVolumeWriteIOPS", + "options": [], + "query": { + "query": "query_result(topk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": ".*volume=\\\"(.*?)\\\".*", + "skipUrlSync": false, + "sort": 0, + "type": "query" } ] }, From 2e7f019b8275d9e030ea252e7ae847295bf42fc2 Mon Sep 17 00:00:00 2001 From: hardikl Date: Thu, 25 May 2023 16:10:33 +0530 Subject: [PATCH 2/3] feat: handled review comments with testcase --- cmd/tools/grafana/dashboard_test.go | 3 +++ grafana/dashboards/cmode/aggregate.json | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go index fef456232..7784b3beb 100644 --- a/cmd/tools/grafana/dashboard_test.go +++ b/cmd/tools/grafana/dashboard_test.go @@ -28,6 +28,9 @@ func checkDashboardForDatasource(t *testing.T, path string, data []byte) { } t.Errorf("dashboard=%s panel=%s has a null datasource", path, key.String()) } + if dsResult.String() != "${DS_PROMETHEUS}" { + t.Errorf("dashboard=%s panel=%s has %s datasource should be ${DS_PROMETHEUS}", shortPath(path), key.String(), dsResult.String()) + } return true }) diff --git a/grafana/dashboards/cmode/aggregate.json b/grafana/dashboards/cmode/aggregate.json index be816eede..a69022d2a 100644 --- a/grafana/dashboards/cmode/aggregate.json +++ b/grafana/dashboards/cmode/aggregate.json @@ -4282,9 +4282,7 @@ }, { "collapsed": true, - "datasource": { - "uid": "${DS_PROMETHEUS}" - }, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -4823,7 +4821,7 @@ "type": "timeseries" } ], - "title": "Volume WAFL Layer Drilldown", + "title": "Busy Volumes Drilldown", "type": "row" } ], From 3972cb1f75eda88184f888ba1be33154e649900e Mon Sep 17 00:00:00 2001 From: hardikl Date: Thu, 25 May 2023 20:38:54 +0530 Subject: [PATCH 3/3] feat: adding datasource testcase --- cmd/tools/grafana/dashboard_test.go | 17 +++++++---- grafana/dashboards/cmode/aggregate.json | 12 ++++++-- grafana/dashboards/cmode/cdot.json | 11 ++++--- grafana/dashboards/cmode/cluster.json | 12 ++++---- .../dashboards/cmode/external_service_op.json | 14 ++++----- grafana/dashboards/cmode/fsa.json | 3 +- grafana/dashboards/cmode/headroom.json | 2 +- grafana/dashboards/cmode/health.json | 30 +++++++++---------- grafana/dashboards/cmode/namespace.json | 4 +-- grafana/dashboards/cmode/network.json | 10 +++---- grafana/dashboards/cmode/nfs4storePool.json | 1 + grafana/dashboards/cmode/power.json | 10 +++---- grafana/dashboards/cmode/qtree.json | 2 +- grafana/dashboards/cmode/s3ObjectStorage.json | 2 ++ grafana/dashboards/cmode/shelf.json | 2 +- grafana/dashboards/cmode/smb.json | 2 +- grafana/dashboards/cmode/svm.json | 6 ++-- grafana/dashboards/cmode/volume.json | 15 ++++++---- grafana/dashboards/cmode/workload.json | 4 +-- .../dashboards/storagegrid/fabricpool.json | 4 +-- grafana/dashboards/storagegrid/overview.json | 2 +- 21 files changed, 96 insertions(+), 69 deletions(-) diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go index 7784b3beb..c05a01f8d 100644 --- a/cmd/tools/grafana/dashboard_test.go +++ b/cmd/tools/grafana/dashboard_test.go @@ -19,19 +19,26 @@ func TestDatasource(t *testing.T) { } func checkDashboardForDatasource(t *testing.T, path string, data []byte) { - gjson.GetBytes(data, "panels").ForEach(func(key, value gjson.Result) bool { + path = shortPath(path) + // visit all panel for datasource test + visitAllPanels(data, func(p string, key, value gjson.Result) { dsResult := value.Get("datasource") + panelTitle := value.Get("title").String() + if !dsResult.Exists() { + t.Errorf("dashboard=%s panel=%s don't have datasource", path, panelTitle) + return + } + if dsResult.Type == gjson.Null { // if the panel is a row, it is OK if there is no datasource if value.Get("type").String() == "row" { - return true + return } - t.Errorf("dashboard=%s panel=%s has a null datasource", path, key.String()) + t.Errorf("dashboard=%s panel=%s has a null datasource", path, panelTitle) } if dsResult.String() != "${DS_PROMETHEUS}" { - t.Errorf("dashboard=%s panel=%s has %s datasource should be ${DS_PROMETHEUS}", shortPath(path), key.String(), dsResult.String()) + t.Errorf("dashboard=%s panel=%s has %s datasource should be ${DS_PROMETHEUS}", path, panelTitle, dsResult.String()) } - return true }) // Check that the variable DS_PROMETHEUS exist diff --git a/grafana/dashboards/cmode/aggregate.json b/grafana/dashboards/cmode/aggregate.json index a69022d2a..a86c9b363 100644 --- a/grafana/dashboards/cmode/aggregate.json +++ b/grafana/dashboards/cmode/aggregate.json @@ -85,7 +85,7 @@ "panels": [ { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2385,6 +2385,7 @@ }, { "collapsed": true, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -3071,6 +3072,7 @@ }, { "collapsed": true, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -3314,7 +3316,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -4292,6 +4294,7 @@ "id": 28, "panels": [ { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -4380,6 +4383,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -4469,6 +4473,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -4557,6 +4562,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -4645,6 +4651,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -4733,6 +4740,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { diff --git a/grafana/dashboards/cmode/cdot.json b/grafana/dashboards/cmode/cdot.json index bc83408dc..33746c90c 100644 --- a/grafana/dashboards/cmode/cdot.json +++ b/grafana/dashboards/cmode/cdot.json @@ -79,7 +79,7 @@ "panels": [ { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -642,7 +642,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -1322,7 +1322,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -1601,7 +1601,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -1611,6 +1611,7 @@ "id": 264, "panels": [ { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -1701,6 +1702,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -1791,6 +1793,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json index 3d4a3ca63..3cb4d4847 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -98,7 +98,7 @@ "panels": [ { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2892,7 +2892,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -3572,7 +3572,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -3582,7 +3582,7 @@ "id": 214, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -3667,7 +3667,7 @@ "type": "timeseries" }, { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { @@ -3755,7 +3755,7 @@ "type": "timeseries" }, { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "description": "", "fieldConfig": { "defaults": { diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json index c3a460466..66df29f15 100644 --- a/grafana/dashboards/cmode/external_service_op.json +++ b/grafana/dashboards/cmode/external_service_op.json @@ -1012,7 +1012,7 @@ { "allValue": null, "current": {}, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "definition": "query_result(topk($TopResources, avg by (key) (avg_over_time(external_service_op_request_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", "description": null, "error": null, @@ -1035,7 +1035,7 @@ { "allValue": null, "current": {}, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_not_found_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", "description": null, "error": null, @@ -1058,7 +1058,7 @@ { "allValue": null, "current": {}, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_request_failures{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", "description": null, "error": null, @@ -1081,7 +1081,7 @@ { "allValue": null, "current": {}, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_requests_sent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", "description": null, "error": null, @@ -1104,7 +1104,7 @@ { "allValue": null, "current": {}, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_responses_received{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", "description": null, "error": null, @@ -1127,7 +1127,7 @@ { "allValue": null, "current": {}, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_successful_responses{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", "description": null, "error": null, @@ -1150,7 +1150,7 @@ { "allValue": null, "current": {}, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "definition": "query_result(topk($TopResources, sum by (key) (avg_over_time(external_service_op_num_timeouts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",service_name=~\"$ServiceName\",operation=~\"$Operation\"}[${__range}]))))", "description": null, "error": null, diff --git a/grafana/dashboards/cmode/fsa.json b/grafana/dashboards/cmode/fsa.json index f731fd873..82054f26e 100644 --- a/grafana/dashboards/cmode/fsa.json +++ b/grafana/dashboards/cmode/fsa.json @@ -103,6 +103,7 @@ "panels": [ { "collapsed": false, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -763,7 +764,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/headroom.json b/grafana/dashboards/cmode/headroom.json index 90a977aa4..5e8c89612 100644 --- a/grafana/dashboards/cmode/headroom.json +++ b/grafana/dashboards/cmode/headroom.json @@ -1332,7 +1332,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/health.json b/grafana/dashboards/cmode/health.json index 0689f8ee0..0023ab741 100644 --- a/grafana/dashboards/cmode/health.json +++ b/grafana/dashboards/cmode/health.json @@ -91,7 +91,7 @@ "panels": [ { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -121,7 +121,7 @@ }, { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -740,7 +740,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -750,7 +750,7 @@ "id": 251, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -863,7 +863,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -999,7 +999,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -1646,7 +1646,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2446,7 +2446,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2456,7 +2456,7 @@ "id": 274, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -2547,7 +2547,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2714,7 +2714,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2724,7 +2724,7 @@ "id": 259, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -2813,7 +2813,7 @@ "type": "table" }, { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -2907,7 +2907,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -3007,7 +3007,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/namespace.json b/grafana/dashboards/cmode/namespace.json index beea2a693..a1ecbb51e 100644 --- a/grafana/dashboards/cmode/namespace.json +++ b/grafana/dashboards/cmode/namespace.json @@ -641,7 +641,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -651,7 +651,7 @@ "id": 101, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/network.json b/grafana/dashboards/cmode/network.json index 5b0754a2c..006a5e30d 100644 --- a/grafana/dashboards/cmode/network.json +++ b/grafana/dashboards/cmode/network.json @@ -91,7 +91,7 @@ "panels": [ { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2462,7 +2462,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -3023,7 +3023,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -3033,7 +3033,7 @@ "id": 110, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "description": "", "gridPos": { "h": 2, @@ -3050,7 +3050,7 @@ "type": "text" }, { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/nfs4storePool.json b/grafana/dashboards/cmode/nfs4storePool.json index d870bd0f7..f4f2bf992 100644 --- a/grafana/dashboards/cmode/nfs4storePool.json +++ b/grafana/dashboards/cmode/nfs4storePool.json @@ -357,6 +357,7 @@ }, { "collapsed": true, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/power.json b/grafana/dashboards/cmode/power.json index b9add3cc4..87390bb15 100644 --- a/grafana/dashboards/cmode/power.json +++ b/grafana/dashboards/cmode/power.json @@ -1339,7 +1339,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -1727,7 +1727,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -1737,7 +1737,7 @@ "id": 84, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "description": "Displays sensors with failed state.", "fieldConfig": { "defaults": { @@ -1852,7 +1852,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -2389,7 +2389,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/qtree.json b/grafana/dashboards/cmode/qtree.json index a1b160795..ffd310f1f 100644 --- a/grafana/dashboards/cmode/qtree.json +++ b/grafana/dashboards/cmode/qtree.json @@ -446,7 +446,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/s3ObjectStorage.json b/grafana/dashboards/cmode/s3ObjectStorage.json index 7816afb7b..ad6814c63 100644 --- a/grafana/dashboards/cmode/s3ObjectStorage.json +++ b/grafana/dashboards/cmode/s3ObjectStorage.json @@ -75,6 +75,7 @@ "panels": [ { "collapsed": false, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -103,6 +104,7 @@ "type": "text" }, { + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/shelf.json b/grafana/dashboards/cmode/shelf.json index 06ce6daa7..f2919dbce 100644 --- a/grafana/dashboards/cmode/shelf.json +++ b/grafana/dashboards/cmode/shelf.json @@ -580,7 +580,7 @@ }, { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/smb.json b/grafana/dashboards/cmode/smb.json index 5d933c02d..71a8e40a4 100644 --- a/grafana/dashboards/cmode/smb.json +++ b/grafana/dashboards/cmode/smb.json @@ -121,7 +121,7 @@ }, { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/svm.json b/grafana/dashboards/cmode/svm.json index 6caf82e53..39444d894 100644 --- a/grafana/dashboards/cmode/svm.json +++ b/grafana/dashboards/cmode/svm.json @@ -6089,7 +6089,7 @@ "mode": "spectrum" }, "dataFormat": "tsbuckets", - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "description": "", "gridPos": { "h": 8, @@ -6158,7 +6158,7 @@ "mode": "spectrum" }, "dataFormat": "tsbuckets", - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "description": "", "gridPos": { "h": 8, @@ -6227,7 +6227,7 @@ "mode": "spectrum" }, "dataFormat": "tsbuckets", - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "description": "", "gridPos": { "h": 8, diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json index 59cb5e06d..7ec53beca 100644 --- a/grafana/dashboards/cmode/volume.json +++ b/grafana/dashboards/cmode/volume.json @@ -4629,6 +4629,7 @@ "id": 92, "panels": [ { + "datasource": "${DS_PROMETHEUS}", "description": "Average latency per GET operation to object storage", "fieldConfig": { "defaults": { @@ -4720,6 +4721,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "Total GET request count, per volume, in the collection interval to object storage. Not scaled per second, but a cumulative count (delta) since the previous poll.", "fieldConfig": { "defaults": { @@ -4812,6 +4814,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "Average latency per PUT operation to object storage", "fieldConfig": { "defaults": { @@ -4903,6 +4906,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "Total PUT request count, per volume, in the collection interval to object storage. Not scaled per second, but a cumulative count (delta) since the previous poll.", "fieldConfig": { "defaults": { @@ -4995,6 +4999,7 @@ "type": "timeseries" }, { + "datasource": "${DS_PROMETHEUS}", "description": "Average request count, per volume, in the chosen time window, to object storage. Not scaled per second, but a cumulative count (delta) since the previous poll.", "fieldConfig": { "defaults": { @@ -5092,7 +5097,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -5102,7 +5107,7 @@ "id": 98, "panels": [ { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -5189,7 +5194,7 @@ "type": "timeseries" }, { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -5275,7 +5280,7 @@ "type": "timeseries" }, { - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "fieldConfig": { "defaults": { "color": { @@ -5368,7 +5373,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/cmode/workload.json b/grafana/dashboards/cmode/workload.json index 80e9c7e19..5a85e1e5b 100644 --- a/grafana/dashboards/cmode/workload.json +++ b/grafana/dashboards/cmode/workload.json @@ -79,7 +79,7 @@ "panels": [ { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -109,7 +109,7 @@ }, { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/storagegrid/fabricpool.json b/grafana/dashboards/storagegrid/fabricpool.json index 672ef0198..9af6e0ec3 100644 --- a/grafana/dashboards/storagegrid/fabricpool.json +++ b/grafana/dashboards/storagegrid/fabricpool.json @@ -85,7 +85,7 @@ "panels": [ { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, @@ -1267,7 +1267,7 @@ }, { "collapsed": false, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24, diff --git a/grafana/dashboards/storagegrid/overview.json b/grafana/dashboards/storagegrid/overview.json index 33b9d53fe..c553a469e 100644 --- a/grafana/dashboards/storagegrid/overview.json +++ b/grafana/dashboards/storagegrid/overview.json @@ -1615,7 +1615,7 @@ }, { "collapsed": true, - "datasource": null, + "datasource": "${DS_PROMETHEUS}", "gridPos": { "h": 1, "w": 24,