From 13ca16179996bdcf25500a923f0a9bff39b5b845 Mon Sep 17 00:00:00 2001 From: hardikl Date: Fri, 8 Nov 2024 16:09:46 +0530 Subject: [PATCH 01/11] feat: add tags field in volume table --- conf/rest/9.14.0/volume.yaml | 2 ++ grafana/dashboards/cmode/volume.json | 35 +++++++++++++++------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/conf/rest/9.14.0/volume.yaml b/conf/rest/9.14.0/volume.yaml index 82a29b149..297ecb39d 100644 --- a/conf/rest/9.14.0/volume.yaml +++ b/conf/rest/9.14.0/volume.yaml @@ -16,6 +16,7 @@ counters: - ^snaplock_type => snaplock_type - ^snapshot_policy => snapshot_policy - ^state => state + - ^tags => tags - ^type => type - ^uuid => uuid - ^volume_style_extended => style @@ -144,4 +145,5 @@ export_options: - snapshot_policy - state - svm_root + - tags - type diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json index 1f2ee2b61..b3a791d64 100644 --- a/grafana/dashboards/cmode/volume.json +++ b/grafana/dashboards/cmode/volume.json @@ -626,7 +626,7 @@ }, { "id": "displayName", - "value": "status" + "value": "Status" }, { "id": "color", @@ -1041,7 +1041,8 @@ "Value #I", "Value #J", "datacenter", - "cluster" + "cluster", + "tags" ] } } @@ -1066,23 +1067,24 @@ }, "indexByName": { "Value #A": 6, - "Value #C": 7, - "Value #D": 8, - "Value #E": 11, - "Value #F": 12, - "Value #G": 13, - "Value #H": 9, - "Value #I": 10, - "Value #J": 18, + "Value #C": 8, + "Value #D": 9, + "Value #E": 12, + "Value #F": 13, + "Value #G": 14, + "Value #H": 10, + "Value #I": 11, + "Value #J": 19, "aggr": 5, - "clone_parent_snapshot": 17, - "clone_parent_svm": 15, - "clone_parent_volume": 16, + "clone_parent_snapshot": 18, + "clone_parent_svm": 16, + "clone_parent_volume": 17, "cluster": 1, "datacenter": 0, - "junction_path": 14, + "junction_path": 15, "node": 4, "svm": 2, + "tags": 7, "volume": 3 }, "renameByName": { @@ -1097,7 +1099,8 @@ "clone_parent_snapshot": "Clone Parent Snapshot", "clone_parent_svm": "Clone Parent SVM", "clone_parent_volume": "Clone Parent Volume", - "junction_path": "Junction Path" + "junction_path": "Junction Path", + "tags": "Tags" } } } @@ -9194,5 +9197,5 @@ "timezone": "", "title": "ONTAP: Volume", "uid": "cdot-volume", - "version": 28 + "version": 29 } From c9b7781b6714de9bdd0c93e9545c2bb364bb2606 Mon Sep 17 00:00:00 2001 From: hardikl Date: Mon, 11 Nov 2024 16:50:42 +0530 Subject: [PATCH 02/11] feat: add tags in cluster dashboard --- conf/rest/9.12.0/status.yaml | 1 + grafana/dashboards/cmode/cluster.json | 130 +++++++++++++++++++++++++- grafana/dashboards/cmode/volume.json | 27 +++++- 3 files changed, 152 insertions(+), 6 deletions(-) diff --git a/conf/rest/9.12.0/status.yaml b/conf/rest/9.12.0/status.yaml index e9d6b707d..f7b429ed1 100644 --- a/conf/rest/9.12.0/status.yaml +++ b/conf/rest/9.12.0/status.yaml @@ -4,6 +4,7 @@ query: api/cluster object: cluster counters: + - ^_tags => tags - ^health => status - hidden_fields: - health diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json index e00ff8d89..41bc9c335 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -1726,7 +1726,7 @@ }, "gridPos": { "h": 7, - "w": 18, + "w": 15, "x": 0, "y": 35 }, @@ -1875,6 +1875,104 @@ ], "type": "table" }, + { + "datasource": "${DS_PROMETHEUS}", + "description": "Tags details.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "left", + "displayMode": "auto", + "filterable": true + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unitScale": true + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 3, + "x": 15, + "y": 2 + }, + "id": 282, + "interval": "", + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true + }, + "pluginVersion": "8.1.8", + "targets": [ + { + "datasource": "${DS_PROMETHEUS}", + "editorMode": "code", + "exemplar": false, + "expr": "cluster_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}", + "format": "table", + "instant": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "title": "Tags", + "transformations": [ + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Value": true, + "__name__": true, + "cluster": true, + "datacenter": true, + "instance": true, + "job": true, + "status": true + }, + "includeByName": {}, + "indexByName": {}, + "renameByName": { + "tags": "Tags" + } + } + }, + { + "disabled": true, + "id": "extractFields", + "options": { + "format": "auto", + "keepTime": false, + "replace": true, + "source": "Tags" + } + } + ], + "type": "table" + }, { "datasource": "${DS_PROMETHEUS}", "description": "It is an indicator of the overall health status of the cluster, with a value of 1 indicating a healthy status and a value of 0 indicating an unhealthy status.", @@ -4462,7 +4560,31 @@ "allValue": ".*", "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\"},cluster)", + "definition": "label_values(cluster_new_status{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tags)", + "hide": 0, + "includeAll": true, + "label": "", + "multi": true, + "name": "Tags", + "options": [], + "query": { + "query": "label_values(cluster_new_status{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tags)", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": {}, + "datasource": "${DS_PROMETHEUS}", + "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags~\"$Tags\"},cluster)", "description": null, "error": null, "hide": 0, @@ -4472,7 +4594,7 @@ "name": "Cluster", "options": [], "query": { - "query": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\"},cluster)", + "query": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags~\"$Tags\"},cluster)", "refId": "StandardVariableQuery" }, "refresh": 2, @@ -4619,5 +4741,5 @@ "timezone": "", "title": "ONTAP: Cluster", "uid": "cdot-cluster", - "version": 6 + "version": 7 } diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json index b3a791d64..e96e2c84e 100644 --- a/grafana/dashboards/cmode/volume.json +++ b/grafana/dashboards/cmode/volume.json @@ -9062,7 +9062,30 @@ "allValue": ".*", "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\"}, volume)", + "definition": "label_values(volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tags)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Tags", + "options": [], + "query": { + "query": "label_values(volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tags)", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": {}, + "datasource": "${DS_PROMETHEUS}", + "definition": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\",tags~\"$Tags\"}, volume)", "description": null, "error": null, "hide": 0, @@ -9072,7 +9095,7 @@ "name": "Volume", "options": [], "query": { - "query": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\"}, volume)", + "query": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\",tags=~\"$Tags\"}, volume)", "refId": "StandardVariableQuery" }, "refresh": 2, From fc00b6a18c9928a1f1c23465ca5013360cf4bff6 Mon Sep 17 00:00:00 2001 From: hardikl Date: Mon, 11 Nov 2024 16:53:29 +0530 Subject: [PATCH 03/11] feat: minor change --- grafana/dashboards/cmode/cluster.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json index 41bc9c335..dc7ef8ae2 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -4584,7 +4584,7 @@ "allValue": ".*", "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags~\"$Tags\"},cluster)", + "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags=~\"$Tags\"},cluster)", "description": null, "error": null, "hide": 0, @@ -4594,7 +4594,7 @@ "name": "Cluster", "options": [], "query": { - "query": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags~\"$Tags\"},cluster)", + "query": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags=~\"$Tags\"},cluster)", "refId": "StandardVariableQuery" }, "refresh": 2, From e1e4c17ff151fe6de4404475243f3f1542d37c36 Mon Sep 17 00:00:00 2001 From: hardikl Date: Mon, 11 Nov 2024 16:56:08 +0530 Subject: [PATCH 04/11] feat: minor change --- grafana/dashboards/cmode/cluster.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json index dc7ef8ae2..96021a565 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -1907,7 +1907,7 @@ "h": 7, "w": 3, "x": 15, - "y": 2 + "y": 35 }, "id": 282, "interval": "", From f3dd31f68f0ac061ab430e6070f6e8f34b159690 Mon Sep 17 00:00:00 2001 From: hardikl Date: Tue, 12 Nov 2024 18:06:06 +0530 Subject: [PATCH 05/11] feat: update volume dashboard with tags --- .../restperf/plugins/volume/volume.go | 30 ++++- .../restperf/plugins/volume/volume_test.go | 13 +- cmd/collectors/volume.go | 13 +- .../zapiperf/plugins/volume/volume.go | 15 ++- conf/rest/9.12.0/volume.yaml | 2 + conf/restperf/9.12.0/volume.yaml | 1 + grafana/dashboards/cmode/volume.json | 122 +++++++++--------- 7 files changed, 112 insertions(+), 84 deletions(-) diff --git a/cmd/collectors/restperf/plugins/volume/volume.go b/cmd/collectors/restperf/plugins/volume/volume.go index c66186073..679e59095 100644 --- a/cmd/collectors/restperf/plugins/volume/volume.go +++ b/cmd/collectors/restperf/plugins/volume/volume.go @@ -8,6 +8,8 @@ import ( "github.com/netapp/harvest/v2/pkg/matrix" "github.com/netapp/harvest/v2/pkg/util" "log/slog" + "sort" + "strings" "time" ) @@ -17,7 +19,7 @@ type Volume struct { styleType string includeConstituents bool client *rest.Client - volumesMap map[string]string // volume-name -> volume-extended-style map + volumesMap map[string]collectors.VolumeData // volume-name -> {volume-extended-style, tags} map } func New(p *plugin.AbstractPlugin) plugin.Plugin { @@ -36,7 +38,7 @@ func (v *Volume) Init() error { v.styleType = "type" } - v.volumesMap = make(map[string]string) + v.volumesMap = make(map[string]collectors.VolumeData) // Assigned the value to currentVal so that plugin would be invoked first time to populate cache. v.currentVal = v.SetPluginInterval() @@ -61,6 +63,7 @@ func (v *Volume) Init() error { func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util.Metadata, error) { data := dataMap[v.Object] style := v.styleType + tags := "tags" opsKeyPrefix := "temp_" if v.currentVal >= v.PluginInvocationRate { v.currentVal = 0 @@ -70,16 +73,16 @@ func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util } v.currentVal++ - return collectors.ProcessFlexGroupData(v.SLogger, data, style, v.includeConstituents, opsKeyPrefix, v.volumesMap) + return collectors.ProcessFlexGroupData(v.SLogger, data, style, tags, v.includeConstituents, opsKeyPrefix, v.volumesMap) } -func (v *Volume) fetchVolumes() map[string]string { - volumesMap := make(map[string]string) +func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { + volumesMap := make(map[string]collectors.VolumeData) query := "api/private/cli/volume" href := rest.NewHrefBuilder(). APIPath(query). - Fields([]string{"volume", "volume_style_extended"}). + Fields([]string{"volume", "volume_style_extended", "tags"}). Filter([]string{"is_constituent=*"}). MaxRecords(collectors.DefaultBatchSize). Build() @@ -95,13 +98,26 @@ func (v *Volume) fetchVolumes() map[string]string { } for _, volume := range records { + var tags string if !volume.IsObject() { v.SLogger.Warn("volume is not object, skipping", slog.String("type", volume.Type.String())) continue } styleExtended := volume.Get("volume_style_extended").String() name := volume.Get("volume").String() - volumesMap[name] = styleExtended + tagData := volume.Get("tags") + if tagData.IsArray() { + var labelArray []string + for _, r := range tagData.Array() { + labelString := r.String() + labelArray = append(labelArray, labelString) + } + sort.Strings(labelArray) + tags = strings.Join(labelArray, ",") + } else { + tags = tagData.String() + } + volumesMap[name] = collectors.VolumeData{Style: styleExtended, Tags: tags} } return volumesMap diff --git a/cmd/collectors/restperf/plugins/volume/volume_test.go b/cmd/collectors/restperf/plugins/volume/volume_test.go index 513232584..9d5512e22 100644 --- a/cmd/collectors/restperf/plugins/volume/volume_test.go +++ b/cmd/collectors/restperf/plugins/volume/volume_test.go @@ -16,6 +16,7 @@ import ( const OpsKeyPrefix = "temp_" const StyleType = "style" +const Tags = "tags" const PollerName = "test" // Common test logic for RestPerf/ZapiPerf Volume plugin @@ -23,7 +24,7 @@ func runVolumeTest(t *testing.T, createVolume func(params *node.Node) plugin.Plu params := node.NewS("Volume") params.NewChildS("include_constituents", includeConstituents) v := createVolume(params) - volumesMap := make(map[string]string) + volumesMap := make(map[string]collectors.VolumeData) // Initialize the plugin if err := v.Init(); err != nil { @@ -36,26 +37,26 @@ func runVolumeTest(t *testing.T, createVolume func(params *node.Node) plugin.Plu instance1.SetLabel("volume", "RahulTest__0001") instance1.SetLabel("svm", "svm1") instance1.SetLabel("aggr", "aggr1") - volumesMap["RahulTest__0001"] = "flexgroup_constituent" + volumesMap["RahulTest__0001"] = collectors.VolumeData{Style: "flexgroup_constituent"} instance2, _ := data.NewInstance("RahulTest__0002") instance2.SetLabel("volume", "RahulTest__0002") instance2.SetLabel("svm", "svm1") instance2.SetLabel("aggr", "aggr2") - volumesMap["RahulTest__0002"] = "flexgroup_constituent" + volumesMap["RahulTest__0002"] = collectors.VolumeData{Style: "flexgroup_constituent"} instance3, _ := data.NewInstance("RahulTest__0003") instance3.SetLabel("volume", "RahulTest__0003") instance3.SetLabel("svm", "svm1") instance3.SetLabel("aggr", "aggr3") - volumesMap["RahulTest__0003"] = "flexgroup_constituent" + volumesMap["RahulTest__0003"] = collectors.VolumeData{Style: "flexgroup_constituent"} // Create a simple volume instance simpleInstance, _ := data.NewInstance("SimpleVolume") simpleInstance.SetLabel("volume", "SimpleVolume") simpleInstance.SetLabel("svm", "svm1") simpleInstance.SetLabel("aggr", "aggr4") - volumesMap["SimpleVolume"] = "flexvol" + volumesMap["SimpleVolume"] = collectors.VolumeData{Style: "flexvol"} // Create latency and ops metrics latencyMetric, _ := data.NewMetricFloat64("read_latency") @@ -87,7 +88,7 @@ func runVolumeTest(t *testing.T, createVolume func(params *node.Node) plugin.Plu // Run the plugin boolValue, _ := strconv.ParseBool(includeConstituents) - output, _, err := collectors.ProcessFlexGroupData(slog.Default(), data, StyleType, boolValue, OpsKeyPrefix, volumesMap) + output, _, err := collectors.ProcessFlexGroupData(slog.Default(), data, StyleType, Tags, boolValue, OpsKeyPrefix, volumesMap) if err != nil { t.Fatalf("Run method failed: %v", err) } diff --git a/cmd/collectors/volume.go b/cmd/collectors/volume.go index 69567f0b9..8ac25cf33 100644 --- a/cmd/collectors/volume.go +++ b/cmd/collectors/volume.go @@ -14,7 +14,12 @@ import ( var flexgroupRegex = regexp.MustCompile(`^(.*)__(\d{4})$`) -func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string, includeConstituents bool, opsKeyPrefix string, volumesMap map[string]string) ([]*matrix.Matrix, *util.Metadata, error) { +type VolumeData struct { + Style string + Tags string +} + +func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string, tags string, includeConstituents bool, opsKeyPrefix string, volumesMap map[string]VolumeData) ([]*matrix.Matrix, *util.Metadata, error) { var err error if volumesMap == nil { @@ -40,7 +45,9 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string for _, i := range data.GetInstances() { volName := i.GetLabel("volume") - switch volumesMap[volName] { + volData := volumesMap[volName] + i.SetLabel(tags, volData.Tags) + switch volData.Style { case "flexgroup_constituent": match := flexgroupRegex.FindStringSubmatch(volName) key := i.GetLabel("svm") + "." + match[1] @@ -91,7 +98,7 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string recordFGFalse := make(map[string]*set.Set) for _, i := range data.GetInstances() { volName := i.GetLabel("volume") - if volumesMap[volName] != "flexgroup_constituent" { + if volumesMap[volName].Style != "flexgroup_constituent" { continue } match := flexgroupRegex.FindStringSubmatch(volName) diff --git a/cmd/collectors/zapiperf/plugins/volume/volume.go b/cmd/collectors/zapiperf/plugins/volume/volume.go index 5af6eaea5..f193140a7 100644 --- a/cmd/collectors/zapiperf/plugins/volume/volume.go +++ b/cmd/collectors/zapiperf/plugins/volume/volume.go @@ -23,7 +23,7 @@ type Volume struct { styleType string includeConstituents bool client *zapi.Client - volumesMap map[string]string // volume-name -> volume-extended-style map + volumesMap map[string]collectors.VolumeData // volume-name -> {volume-extended-style, tags} map } func New(p *plugin.AbstractPlugin) plugin.Plugin { @@ -46,7 +46,7 @@ func (v *Volume) Init() error { return nil } - v.volumesMap = make(map[string]string) + v.volumesMap = make(map[string]collectors.VolumeData) // Assigned the value to currentVal so that plugin would be invoked first time to populate cache. v.currentVal = v.SetPluginInterval() @@ -64,6 +64,7 @@ func (v *Volume) Init() error { func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util.Metadata, error) { data := dataMap[v.Object] style := v.styleType + tags := "tags" opsKeyPrefix := "temp_" if v.currentVal >= v.PluginInvocationRate { v.currentVal = 0 @@ -73,17 +74,17 @@ func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util } v.currentVal++ - return collectors.ProcessFlexGroupData(v.SLogger, data, style, v.includeConstituents, opsKeyPrefix, v.volumesMap) + return collectors.ProcessFlexGroupData(v.SLogger, data, style, tags, v.includeConstituents, opsKeyPrefix, v.volumesMap) } -func (v *Volume) fetchVolumes() map[string]string { +func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { var ( result *node.Node volumes []*node.Node - volumesMap map[string]string + volumesMap map[string]collectors.VolumeData ) - volumesMap = make(map[string]string) + volumesMap = make(map[string]collectors.VolumeData) query := "volume-get-iter" tag := "initial" request := node.NewXMLS(query) @@ -119,7 +120,7 @@ func (v *Volume) fetchVolumes() map[string]string { for _, volume := range volumes { styleExtended := volume.GetChildS("volume-id-attributes").GetChildContentS("style-extended") name := volume.GetChildS("volume-id-attributes").GetChildContentS("name") - volumesMap[name] = styleExtended + volumesMap[name] = collectors.VolumeData{Style: styleExtended, Tags: ""} } } diff --git a/conf/rest/9.12.0/volume.yaml b/conf/rest/9.12.0/volume.yaml index 8c2e08f26..1872566cc 100644 --- a/conf/rest/9.12.0/volume.yaml +++ b/conf/rest/9.12.0/volume.yaml @@ -16,6 +16,7 @@ counters: - ^snaplock_type => snaplock_type - ^snapshot_policy => snapshot_policy - ^state => state + - ^tags => tags - ^type => type - ^uuid => uuid - ^volume_style_extended => style @@ -139,4 +140,5 @@ export_options: - snapshot_policy - state - svm_root + - tags - type diff --git a/conf/restperf/9.12.0/volume.yaml b/conf/restperf/9.12.0/volume.yaml index 64462718e..0022af3e4 100644 --- a/conf/restperf/9.12.0/volume.yaml +++ b/conf/restperf/9.12.0/volume.yaml @@ -78,4 +78,5 @@ export_options: - node - style - svm + - tags - volume \ No newline at end of file diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json index e96e2c84e..b228ac13e 100644 --- a/grafana/dashboards/cmode/volume.json +++ b/grafana/dashboards/cmode/volume.json @@ -156,7 +156,7 @@ "targets": [ { "exemplar": false, - "expr": "avg(topk($TopResources, volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", + "expr": "avg(topk($TopResources, volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", "interval": "", "legendFormat": "", "refId": "A" @@ -215,7 +215,7 @@ "targets": [ { "exemplar": false, - "expr": "sum(\n topk(\n $TopResources, \n volume_read_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"}\n )\n)", + "expr": "sum(\n topk(\n $TopResources, \n volume_read_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"}\n )\n)", "interval": "", "legendFormat": "", "refId": "A" @@ -272,7 +272,7 @@ "targets": [ { "exemplar": false, - "expr": "sum(topk($TopResources, volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", + "expr": "sum(topk($TopResources, volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", "interval": "", "legendFormat": "", "refId": "A" @@ -362,7 +362,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -453,7 +453,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n + avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n )\n)", + "expr": "(\n volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n + avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n )\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -545,7 +545,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -910,7 +910,7 @@ "pluginVersion": "8.1.8", "targets": [ { - "expr": "volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "instant": true, "interval": "", @@ -919,7 +919,7 @@ "refId": "B" }, { - "expr": "volume_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -929,7 +929,7 @@ "refId": "A" }, { - "expr": "volume_size_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_size_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -939,7 +939,7 @@ "refId": "C" }, { - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -950,7 +950,7 @@ }, { "exemplar": false, - "expr": "volume_sis_dedup_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_dedup_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -961,7 +961,7 @@ }, { "exemplar": false, - "expr": "volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -972,7 +972,7 @@ }, { "exemplar": false, - "expr": "volume_sis_dedup_saved+volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_dedup_saved+volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -983,7 +983,7 @@ }, { "exemplar": false, - "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -994,7 +994,7 @@ }, { "exemplar": false, - "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -1005,7 +1005,7 @@ }, { "exemplar": false, - "expr": "volume_clone_split_estimate{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_clone_split_estimate{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -1237,7 +1237,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1393,7 +1393,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1550,7 +1550,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1737,7 +1737,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1893,7 +1893,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -2050,7 +2050,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -2202,7 +2202,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2293,7 +2293,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2384,7 +2384,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2476,7 +2476,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2568,7 +2568,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2660,7 +2660,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2751,7 +2751,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "intervalFactor": 1, "legendFormat": "{{svm}} - {{volume}}", @@ -2843,7 +2843,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -3142,7 +3142,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n unless\n on(datacenter, cluster, svm, volume)\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", root_volume=\"Yes\",style!=\"flexgroup_constituent\"}\n)", + "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n unless\n on(datacenter, cluster, svm, volume)\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", root_volume=\"Yes\",style!=\"flexgroup_constituent\"}\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -3234,7 +3234,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\nbottomk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n and\n on(datacenter, cluster, svm, volume)\n (\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", root_volume!=\"Yes\",style!=\"flexgroup_constituent\"}\n * on(datacenter, cluster, svm, volume)\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) > 50\n )\n)", + "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\nbottomk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n and\n on(datacenter, cluster, svm, volume)\n (\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", root_volume!=\"Yes\",style!=\"flexgroup_constituent\"}\n * on(datacenter, cluster, svm, volume)\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) > 50\n )\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -5130,7 +5130,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5219,7 +5219,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5308,7 +5308,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5397,7 +5397,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5490,7 +5490,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5583,7 +5583,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5676,7 +5676,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5769,7 +5769,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5862,7 +5862,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5972,7 +5972,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6067,7 +6067,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6162,7 +6162,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6257,7 +6257,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6351,7 +6351,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6446,7 +6446,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -7450,7 +7450,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7546,7 +7546,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7640,7 +7640,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7736,7 +7736,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7840,7 +7840,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -7928,7 +7928,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -8018,7 +8018,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -8140,7 +8140,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n (\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * 100\n )\n / \n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n avg_over_time(\n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n )\n)", + "expr": "(\n (\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * 100\n )\n / \n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n avg_over_time(\n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n )\n)", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8232,7 +8232,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8324,7 +8324,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8439,7 +8439,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "deriv(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "deriv(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -8539,7 +8539,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "deriv(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "deriv(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -8857,7 +8857,7 @@ { "datasource": "${DS_PROMETHEUS}", "editorMode": "code", - "expr": "predict_linear(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3d], 15*24*3600) and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "predict_linear(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3d], 15*24*3600) and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "hide": false, "instant": true, @@ -8870,7 +8870,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "hide": false, "instant": true, From 67b323abb629d09940b8257f48a91c891ab7a513 Mon Sep 17 00:00:00 2001 From: hardikl Date: Wed, 13 Nov 2024 16:20:56 +0530 Subject: [PATCH 06/11] feat: adding volume_tags and cluster_tags metrics --- .../rest/plugins/cluster/cluster.go | 93 ++++++++++++ cmd/collectors/rest/plugins/volume/volume.go | 89 +++++++++++- cmd/collectors/rest/rest.go | 3 + .../restperf/plugins/volume/volume.go | 5 +- .../restperf/plugins/volume/volume_test.go | 8 +- cmd/collectors/volume.go | 12 +- cmd/tools/grafana/dashboard_test.go | 1 + conf/rest/9.12.0/status.yaml | 1 + grafana/dashboards/cmode/cluster.json | 17 +-- grafana/dashboards/cmode/volume.json | 132 +++++++++--------- 10 files changed, 272 insertions(+), 89 deletions(-) create mode 100644 cmd/collectors/rest/plugins/cluster/cluster.go diff --git a/cmd/collectors/rest/plugins/cluster/cluster.go b/cmd/collectors/rest/plugins/cluster/cluster.go new file mode 100644 index 000000000..6548f6f7f --- /dev/null +++ b/cmd/collectors/rest/plugins/cluster/cluster.go @@ -0,0 +1,93 @@ +package cluster + +import ( + "github.com/netapp/harvest/v2/cmd/poller/plugin" + "github.com/netapp/harvest/v2/pkg/conf" + "github.com/netapp/harvest/v2/pkg/matrix" + "github.com/netapp/harvest/v2/pkg/slogx" + "github.com/netapp/harvest/v2/pkg/tree/node" + "github.com/netapp/harvest/v2/pkg/util" + "log/slog" + "strings" +) + +type Cluster struct { + *plugin.AbstractPlugin + tags *matrix.Matrix +} + +func New(p *plugin.AbstractPlugin) plugin.Plugin { + return &Cluster{AbstractPlugin: p} +} + +func (c *Cluster) Init(_ conf.Remote) error { + var err error + + if err := c.InitAbc(); err != nil { + return err + } + + c.tags = matrix.New(c.Parent+".Cluster", "cluster", "cluster") + exportOptions := node.NewS("export_options") + instanceKeys := exportOptions.NewChildS("instance_keys", "") + instanceKeys.NewChildS("", "tag") + c.tags.SetExportOptions(exportOptions) + _, err = c.tags.NewMetricFloat64("tags", "tags") + if err != nil { + c.SLogger.Error("add metric", slogx.Err(err)) + return err + } + + return nil +} + +func (c *Cluster) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util.Metadata, error) { + data := dataMap[c.Object] + + // Based on the tags array, cluster_tags instances/metrics would be created + c.handleTags(data) + + return []*matrix.Matrix{c.tags}, nil, nil +} + +func (c *Cluster) handleTags(data *matrix.Matrix) { + var ( + tagInstance *matrix.Instance + err error + ) + + // Purge and reset data + c.tags.PurgeInstances() + c.tags.Reset() + + // Set all global labels + c.tags.SetGlobalLabels(data.GetGlobalLabels()) + + // Based on the tags array, cluster_tags instances/metrics would be created. + for _, cluster := range data.GetInstances() { + if tags := cluster.GetLabel("tags"); tags != "" { + for _, tag := range strings.Split(tags, ",") { + tagInstanceKey := data.GetGlobalLabels()["cluster"] + tag + if tagInstance, err = c.tags.NewInstance(tagInstanceKey); err != nil { + c.SLogger.Error( + "Failed to create tag instance", + slogx.Err(err), + slog.String("tagInstanceKey", tagInstanceKey), + ) + return + } + + tagInstance.SetLabel("tag", tag) + + m := c.tags.GetMetric("tags") + // populate numeric data + value := 1.0 + if err = m.SetValueFloat64(tagInstance, value); err != nil { + c.SLogger.Error("Failed to parse value", slogx.Err(err), slog.Float64("value", value)) + } else { + c.SLogger.Debug("added value", slog.Float64("value", value)) + } + } + } + } +} diff --git a/cmd/collectors/rest/plugins/volume/volume.go b/cmd/collectors/rest/plugins/volume/volume.go index 74537dc11..5c294c56c 100644 --- a/cmd/collectors/rest/plugins/volume/volume.go +++ b/cmd/collectors/rest/plugins/volume/volume.go @@ -18,6 +18,7 @@ import ( "github.com/tidwall/gjson" "log/slog" "strconv" + "strings" "time" ) @@ -28,8 +29,10 @@ type Volume struct { *plugin.AbstractPlugin currentVal int client *rest.Client - aggrsMap map[string]bool // aggregate-name -> exist map + aggrsMap map[string]bool // aggregate-name -> exist map + volTagMap map[string]volumeTag // volume-key -> volumeTag map arw *matrix.Matrix + tags *matrix.Matrix includeConstituents bool isArwSupportedVersion bool } @@ -45,6 +48,12 @@ type volumeInfo struct { isDestinationCloud string } +type volumeTag struct { + vol string + svm string + tags string +} + func New(p *plugin.AbstractPlugin) plugin.Plugin { return &Volume{AbstractPlugin: p} } @@ -58,6 +67,7 @@ func (v *Volume) Init(remote conf.Remote) error { } v.aggrsMap = make(map[string]bool) + v.volTagMap = make(map[string]volumeTag) // Assigned the value to currentVal so that plugin would be invoked first time to populate cache. v.currentVal = v.SetPluginInterval() @@ -87,6 +97,19 @@ func (v *Volume) Init(remote conf.Remote) error { return err } + v.tags = matrix.New(v.Parent+".Volume", "volume", "volume") + exportOptions = node.NewS("export_options") + instanceKeys = exportOptions.NewChildS("instance_keys", "") + instanceKeys.NewChildS("", "tag") + instanceKeys.NewChildS("", "svm") + instanceKeys.NewChildS("", "volume") + v.tags.SetExportOptions(exportOptions) + _, err = v.tags.NewMetricFloat64("tags", "tags") + if err != nil { + v.SLogger.Error("add metric", slogx.Err(err)) + return err + } + // Read template to decide inclusion of flexgroup constituents v.includeConstituents = collectors.ReadPluginKey(v.Params, "include_constituents") // ARW feature is supported from 9.10 onwards, If we ask this field in Rest call in plugin, then it will be failed. @@ -121,20 +144,26 @@ func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util if err != nil { v.SLogger.Error("Failed to collect volume info data", slogx.Err(err)) } else { - // update volume instance labels + // update volume instance labels and populate volTagMap v.updateVolumeLabels(data, volumeMap) } // parse anti_ransomware_start_time, antiRansomwareState for all volumes and export at cluster level v.handleARWProtection(data) + // Based on the tags array in volTagMap, volume_tags instances/metrics would be created + v.handleTags(data.GetGlobalLabels()) + v.currentVal++ - return []*matrix.Matrix{v.arw}, v.client.Metadata, nil + return []*matrix.Matrix{v.arw, v.tags}, v.client.Metadata, nil } func (v *Volume) updateVolumeLabels(data *matrix.Matrix, volumeMap map[string]volumeInfo) { var err error + // clear volTagMap + clear(v.volTagMap) + cloneSplitEstimateMetric := data.GetMetric("clone_split_estimate") if cloneSplitEstimateMetric == nil { if cloneSplitEstimateMetric, err = data.NewMetricFloat64("clone_split_estimate"); err != nil { @@ -142,7 +171,13 @@ func (v *Volume) updateVolumeLabels(data *matrix.Matrix, volumeMap map[string]vo return } } - for _, volume := range data.GetInstances() { + for vKey, volume := range data.GetInstances() { + // update volumeTagMap used to update tag details + svm := volume.GetLabel("svm") + vol := volume.GetLabel("volume") + tags := volume.GetLabel("tags") + v.volTagMap[vKey] = volumeTag{vol: vol, svm: svm, tags: tags} + if !volume.IsExportable() { continue } @@ -344,3 +379,49 @@ func (v *Volume) updateAggrMap(disks []gjson.Result) { } } } + +func (v *Volume) handleTags(globalLabels map[string]string) { + var ( + tagInstance *matrix.Instance + err error + ) + + // Purge and reset data + v.tags.PurgeInstances() + v.tags.Reset() + + // Set all global labels + v.tags.SetGlobalLabels(globalLabels) + + // Based on the tags array, volume_tags instances/metrics would be created. + for _, volume := range v.volTagMap { + svm := volume.svm + vol := volume.vol + if tags := volume.tags; tags != "" { + for _, tag := range strings.Split(tags, ",") { + tagInstanceKey := globalLabels["cluster"] + svm + vol + tag + if tagInstance, err = v.tags.NewInstance(tagInstanceKey); err != nil { + v.SLogger.Error( + "Failed to create tag instance", + slogx.Err(err), + slog.String("tagInstanceKey", tagInstanceKey), + ) + return + } + + tagInstance.SetLabel("tag", tag) + tagInstance.SetLabel("volume", vol) + tagInstance.SetLabel("svm", svm) + + m := v.tags.GetMetric("tags") + // populate numeric data + value := 1.0 + if err = m.SetValueFloat64(tagInstance, value); err != nil { + v.SLogger.Error("Failed to parse value", slogx.Err(err), slog.Float64("value", value)) + } else { + v.SLogger.Debug("added value", slog.Float64("value", value)) + } + } + } + } +} diff --git a/cmd/collectors/rest/rest.go b/cmd/collectors/rest/rest.go index 96a5bd450..b723bb1bc 100644 --- a/cmd/collectors/rest/rest.go +++ b/cmd/collectors/rest/rest.go @@ -6,6 +6,7 @@ import ( "github.com/netapp/harvest/v2/cmd/collectors" "github.com/netapp/harvest/v2/cmd/collectors/rest/plugins/aggregate" "github.com/netapp/harvest/v2/cmd/collectors/rest/plugins/certificate" + "github.com/netapp/harvest/v2/cmd/collectors/rest/plugins/cluster" "github.com/netapp/harvest/v2/cmd/collectors/rest/plugins/disk" "github.com/netapp/harvest/v2/cmd/collectors/rest/plugins/health" "github.com/netapp/harvest/v2/cmd/collectors/rest/plugins/metroclustercheck" @@ -484,6 +485,8 @@ func (r *Rest) LoadPlugin(kind string, abc *plugin.AbstractPlugin) plugin.Plugin switch kind { case "Aggregate": return aggregate.New(abc) + case "Cluster": + return cluster.New(abc) case "Disk": return disk.New(abc) case "Health": diff --git a/cmd/collectors/restperf/plugins/volume/volume.go b/cmd/collectors/restperf/plugins/volume/volume.go index fb2204b87..01a7e7899 100644 --- a/cmd/collectors/restperf/plugins/volume/volume.go +++ b/cmd/collectors/restperf/plugins/volume/volume.go @@ -82,7 +82,7 @@ func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { href := rest.NewHrefBuilder(). APIPath(query). - Fields([]string{"volume", "volume_style_extended", "tags"}). + Fields([]string{"volume", "vserver", "volume_style_extended", "tags"}). Filter([]string{"is_constituent=*"}). MaxRecords(collectors.DefaultBatchSize). Build() @@ -105,6 +105,7 @@ func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { } styleExtended := volume.Get("volume_style_extended").String() name := volume.Get("volume").String() + svm := volume.Get("vserver").String() tagData := volume.Get("tags") if tagData.IsArray() { var labelArray []string @@ -117,7 +118,7 @@ func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { } else { tags = tagData.String() } - volumesMap[name] = collectors.VolumeData{Style: styleExtended, Tags: tags} + volumesMap[svm+name] = collectors.VolumeData{Style: styleExtended, Tags: tags} } return volumesMap diff --git a/cmd/collectors/restperf/plugins/volume/volume_test.go b/cmd/collectors/restperf/plugins/volume/volume_test.go index 1ae639a3c..cc172713b 100644 --- a/cmd/collectors/restperf/plugins/volume/volume_test.go +++ b/cmd/collectors/restperf/plugins/volume/volume_test.go @@ -38,26 +38,26 @@ func runVolumeTest(t *testing.T, createVolume func(params *node.Node) plugin.Plu instance1.SetLabel("volume", "RahulTest__0001") instance1.SetLabel("svm", "svm1") instance1.SetLabel("aggr", "aggr1") - volumesMap["RahulTest__0001"] = collectors.VolumeData{Style: "flexgroup_constituent"} + volumesMap["svm1"+"RahulTest__0001"] = collectors.VolumeData{Style: "flexgroup_constituent"} instance2, _ := data.NewInstance("RahulTest__0002") instance2.SetLabel("volume", "RahulTest__0002") instance2.SetLabel("svm", "svm1") instance2.SetLabel("aggr", "aggr2") - volumesMap["RahulTest__0002"] = collectors.VolumeData{Style: "flexgroup_constituent"} + volumesMap["svm1"+"RahulTest__0002"] = collectors.VolumeData{Style: "flexgroup_constituent"} instance3, _ := data.NewInstance("RahulTest__0003") instance3.SetLabel("volume", "RahulTest__0003") instance3.SetLabel("svm", "svm1") instance3.SetLabel("aggr", "aggr3") - volumesMap["RahulTest__0003"] = collectors.VolumeData{Style: "flexgroup_constituent"} + volumesMap["svm1"+"RahulTest__0003"] = collectors.VolumeData{Style: "flexgroup_constituent"} // Create a simple volume instance simpleInstance, _ := data.NewInstance("SimpleVolume") simpleInstance.SetLabel("volume", "SimpleVolume") simpleInstance.SetLabel("svm", "svm1") simpleInstance.SetLabel("aggr", "aggr4") - volumesMap["SimpleVolume"] = collectors.VolumeData{Style: "flexvol"} + volumesMap["svm1"+"SimpleVolume"] = collectors.VolumeData{Style: "flexvol"} // Create latency and ops metrics latencyMetric, _ := data.NewMetricFloat64("read_latency") diff --git a/cmd/collectors/volume.go b/cmd/collectors/volume.go index 8ac25cf33..0b88939bc 100644 --- a/cmd/collectors/volume.go +++ b/cmd/collectors/volume.go @@ -45,12 +45,13 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string for _, i := range data.GetInstances() { volName := i.GetLabel("volume") - volData := volumesMap[volName] + svmName := i.GetLabel("svm") + volData := volumesMap[svmName+volName] i.SetLabel(tags, volData.Tags) switch volData.Style { case "flexgroup_constituent": match := flexgroupRegex.FindStringSubmatch(volName) - key := i.GetLabel("svm") + "." + match[1] + key := svmName + "." + match[1] if cache.GetInstance(key) == nil { fg, _ := cache.NewInstance(key) fg.SetLabels(maps.Clone(i.GetLabels())) @@ -79,7 +80,7 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string i.SetExportable(includeConstituents) case "flexvol": i.SetLabel(style, "flexvol") - key := i.GetLabel("svm") + "." + volName + key := svmName + "." + volName flexvolInstance, err := volumeAggrmetric.NewInstance(key) if err != nil { logger.Error("Failed to create new instance", slogx.Err(err), slog.String("key", key)) @@ -98,11 +99,12 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string recordFGFalse := make(map[string]*set.Set) for _, i := range data.GetInstances() { volName := i.GetLabel("volume") - if volumesMap[volName].Style != "flexgroup_constituent" { + svmName := i.GetLabel("svm") + if volumesMap[svmName+volName].Style != "flexgroup_constituent" { continue } match := flexgroupRegex.FindStringSubmatch(volName) - key := i.GetLabel("svm") + "." + match[1] + key := svmName + "." + match[1] flexgroupInstance := volumeAggrmetric.GetInstance(key) if flexgroupInstance != nil { diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go index be565afa2..a89af8a74 100644 --- a/cmd/tools/grafana/dashboard_test.go +++ b/cmd/tools/grafana/dashboard_test.go @@ -699,6 +699,7 @@ func checkVariablesHaveAll(t *testing.T, path string, data []byte) { } exceptionForAllValues := map[string]bool{ "cmode/security.json": true, + "cmode/cluster.json": true, } if exceptionToAll[ShortPath(path)] { diff --git a/conf/rest/9.12.0/status.yaml b/conf/rest/9.12.0/status.yaml index f7b429ed1..d46fd1b92 100644 --- a/conf/rest/9.12.0/status.yaml +++ b/conf/rest/9.12.0/status.yaml @@ -10,6 +10,7 @@ counters: - health plugins: + - Cluster - LabelAgent: value_to_num: - new_status status ok ok `0` diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json index 96021a565..e13ae43d4 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -1899,6 +1899,7 @@ } ] }, + "unit": "short", "unitScale": true }, "overrides": [] @@ -1921,7 +1922,7 @@ ], "show": false }, - "showHeader": true + "showHeader": false }, "pluginVersion": "8.1.8", "targets": [ @@ -1929,7 +1930,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "cluster_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}", + "expr": "cluster_tags{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}", "format": "table", "instant": true, "interval": "", @@ -4560,15 +4561,15 @@ "allValue": ".*", "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(cluster_new_status{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tags)", + "definition": "label_values(cluster_tags{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tag)", "hide": 0, "includeAll": true, "label": "", "multi": true, - "name": "Tags", + "name": "Tag", "options": [], "query": { - "query": "label_values(cluster_new_status{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tags)", + "query": "label_values(cluster_tags{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tag)", "refId": "StandardVariableQuery" }, "refresh": 2, @@ -4581,10 +4582,10 @@ "useTags": false }, { - "allValue": ".*", + "allValue": null, "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags=~\"$Tags\"},cluster)", + "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags=~\".*$Tag.*\"},cluster)", "description": null, "error": null, "hide": 0, @@ -4594,7 +4595,7 @@ "name": "Cluster", "options": [], "query": { - "query": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags=~\"$Tags\"},cluster)", + "query": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags=~\".*$Tag.*\"},cluster)", "refId": "StandardVariableQuery" }, "refresh": 2, diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json index b228ac13e..2d8bcdf24 100644 --- a/grafana/dashboards/cmode/volume.json +++ b/grafana/dashboards/cmode/volume.json @@ -156,7 +156,7 @@ "targets": [ { "exemplar": false, - "expr": "avg(topk($TopResources, volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", + "expr": "avg(topk($TopResources, volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", "interval": "", "legendFormat": "", "refId": "A" @@ -215,7 +215,7 @@ "targets": [ { "exemplar": false, - "expr": "sum(\n topk(\n $TopResources, \n volume_read_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"}\n )\n)", + "expr": "sum(\n topk(\n $TopResources, \n volume_read_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"}\n )\n)", "interval": "", "legendFormat": "", "refId": "A" @@ -272,7 +272,7 @@ "targets": [ { "exemplar": false, - "expr": "sum(topk($TopResources, volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", + "expr": "sum(topk($TopResources, volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", "interval": "", "legendFormat": "", "refId": "A" @@ -362,7 +362,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -453,7 +453,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n + avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n )\n)", + "expr": "(\n volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n + avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n )\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -545,7 +545,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -910,7 +910,7 @@ "pluginVersion": "8.1.8", "targets": [ { - "expr": "volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "instant": true, "interval": "", @@ -919,7 +919,7 @@ "refId": "B" }, { - "expr": "volume_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -929,7 +929,7 @@ "refId": "A" }, { - "expr": "volume_size_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_size_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -939,7 +939,7 @@ "refId": "C" }, { - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -950,7 +950,7 @@ }, { "exemplar": false, - "expr": "volume_sis_dedup_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_dedup_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -961,7 +961,7 @@ }, { "exemplar": false, - "expr": "volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -972,7 +972,7 @@ }, { "exemplar": false, - "expr": "volume_sis_dedup_saved+volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_dedup_saved+volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -983,7 +983,7 @@ }, { "exemplar": false, - "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -994,7 +994,7 @@ }, { "exemplar": false, - "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -1005,7 +1005,7 @@ }, { "exemplar": false, - "expr": "volume_clone_split_estimate{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_clone_split_estimate{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", "format": "table", "hide": false, "instant": true, @@ -1237,7 +1237,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1393,7 +1393,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1550,7 +1550,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1737,7 +1737,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -1893,7 +1893,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -2050,7 +2050,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "instant": true, "interval": "", @@ -2202,7 +2202,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2293,7 +2293,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2384,7 +2384,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2476,7 +2476,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2568,7 +2568,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2660,7 +2660,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2751,7 +2751,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "intervalFactor": 1, "legendFormat": "{{svm}} - {{volume}}", @@ -2843,7 +2843,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -3142,7 +3142,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n unless\n on(datacenter, cluster, svm, volume)\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", root_volume=\"Yes\",style!=\"flexgroup_constituent\"}\n)", + "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n unless\n on(datacenter, cluster, svm, volume)\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", root_volume=\"Yes\",style!=\"flexgroup_constituent\"}\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -3234,7 +3234,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\nbottomk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n and\n on(datacenter, cluster, svm, volume)\n (\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\", root_volume!=\"Yes\",style!=\"flexgroup_constituent\"}\n * on(datacenter, cluster, svm, volume)\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) > 50\n )\n)", + "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\nbottomk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n and\n on(datacenter, cluster, svm, volume)\n (\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", root_volume!=\"Yes\",style!=\"flexgroup_constituent\"}\n * on(datacenter, cluster, svm, volume)\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) > 50\n )\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -5130,7 +5130,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5219,7 +5219,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5308,7 +5308,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5397,7 +5397,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5490,7 +5490,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5583,7 +5583,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5676,7 +5676,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5769,7 +5769,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5862,7 +5862,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5972,7 +5972,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6067,7 +6067,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6162,7 +6162,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6257,7 +6257,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6351,7 +6351,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6446,7 +6446,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -7450,7 +7450,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7546,7 +7546,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7640,7 +7640,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7736,7 +7736,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7840,7 +7840,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -7928,7 +7928,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -8018,7 +8018,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -8140,7 +8140,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n (\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * 100\n )\n / \n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n avg_over_time(\n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\"$Tags\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n )\n)", + "expr": "(\n (\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * 100\n )\n / \n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n avg_over_time(\n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n )\n)", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8232,7 +8232,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8324,7 +8324,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8439,7 +8439,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "deriv(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "deriv(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -8539,7 +8539,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "deriv(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "deriv(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -8857,7 +8857,7 @@ { "datasource": "${DS_PROMETHEUS}", "editorMode": "code", - "expr": "predict_linear(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3d], 15*24*3600) and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "predict_linear(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3d], 15*24*3600) and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "hide": false, "instant": true, @@ -8870,7 +8870,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\"$Tags\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", "format": "table", "hide": false, "instant": true, @@ -9062,14 +9062,14 @@ "allValue": ".*", "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tags)", + "definition": "label_values(volume_tags{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tag)", "hide": 0, "includeAll": true, "multi": true, - "name": "Tags", + "name": "Tag", "options": [], "query": { - "query": "label_values(volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tags)", + "query": "label_values(volume_tags{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tag)", "refId": "StandardVariableQuery" }, "refresh": 2, @@ -9085,7 +9085,7 @@ "allValue": ".*", "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\",tags~\"$Tags\"}, volume)", + "definition": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\",tags=~\".*$Tag.*\"}, volume)", "description": null, "error": null, "hide": 0, @@ -9095,7 +9095,7 @@ "name": "Volume", "options": [], "query": { - "query": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\",tags=~\"$Tags\"}, volume)", + "query": "label_values(volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",style!=\"flexgroup_constituent\",tags=~\".*$Tag.*\"}, volume)", "refId": "StandardVariableQuery" }, "refresh": 2, From 089766dd2846acd685213a0518aafbe87827675e Mon Sep 17 00:00:00 2001 From: hardikl Date: Wed, 13 Nov 2024 18:18:41 +0530 Subject: [PATCH 07/11] feat: skip zapi counters --- integration/test/dashboard_json_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/integration/test/dashboard_json_test.go b/integration/test/dashboard_json_test.go index 8beffc5a1..dcb2e65b8 100644 --- a/integration/test/dashboard_json_test.go +++ b/integration/test/dashboard_json_test.go @@ -39,6 +39,8 @@ var zapiCounterMap = map[string]struct{}{ "volume_arw_status": {}, "volume_num_compress_fail": {}, "volume_num_compress_attempts": {}, + "cluster_tags": {}, + "volume_tags": {}, // sar is experiencing high api time for ZapiPerf. The u2 cluster does not have fabricpool added for the collection of these counters. Remove the following once sar is capable of running ZapiPerf. "volume_performance_tier_footprint": {}, "volume_capacity_tier_footprint": {}, From 006239096f0ad12fe117d5c9aa0ace4a59c09262 Mon Sep 17 00:00:00 2001 From: hardikl Date: Wed, 13 Nov 2024 18:29:39 +0530 Subject: [PATCH 08/11] feat: sorted slice --- pkg/conf/conf_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/conf/conf_test.go b/pkg/conf/conf_test.go index eb72cb44f..63231990f 100644 --- a/pkg/conf/conf_test.go +++ b/pkg/conf/conf_test.go @@ -494,6 +494,7 @@ func TestEmbeddedExporter(t *testing.T) { } uniqueExporters := GetUniqueExporters(p.Exporters) + slices.Sort(uniqueExporters) want := []string{"u2-1", "u2-2"} if !slices.Equal(uniqueExporters, want) { t.Errorf("got %v, want %v", uniqueExporters, want) From 8b4edbf941b0246de903c6f4d9755f5c80aa5c80 Mon Sep 17 00:00:00 2001 From: hardikl Date: Thu, 14 Nov 2024 19:49:21 +0530 Subject: [PATCH 09/11] feat: join with volume_labels --- .../restperf/plugins/volume/volume.go | 30 +---- .../restperf/plugins/volume/volume_test.go | 13 +- cmd/collectors/volume.go | 13 +- .../zapiperf/plugins/volume/volume.go | 17 +-- cmd/tools/generate/counter.go | 1 + cmd/tools/grafana/dashboard_test.go | 1 + conf/restperf/9.12.0/volume.yaml | 1 - grafana/dashboards/cmode/volume.json | 120 +++++++++--------- 8 files changed, 87 insertions(+), 109 deletions(-) diff --git a/cmd/collectors/restperf/plugins/volume/volume.go b/cmd/collectors/restperf/plugins/volume/volume.go index 01a7e7899..897cb90ca 100644 --- a/cmd/collectors/restperf/plugins/volume/volume.go +++ b/cmd/collectors/restperf/plugins/volume/volume.go @@ -8,8 +8,6 @@ import ( "github.com/netapp/harvest/v2/pkg/matrix" "github.com/netapp/harvest/v2/pkg/util" "log/slog" - "sort" - "strings" "time" ) @@ -19,7 +17,7 @@ type Volume struct { styleType string includeConstituents bool client *rest.Client - volumesMap map[string]collectors.VolumeData // volume-name -> {volume-extended-style, tags} map + volumesMap map[string]string // volume-name -> volume-extended-style map } func New(p *plugin.AbstractPlugin) plugin.Plugin { @@ -38,7 +36,7 @@ func (v *Volume) Init(remote conf.Remote) error { v.styleType = "type" } - v.volumesMap = make(map[string]collectors.VolumeData) + v.volumesMap = make(map[string]string) // Assigned the value to currentVal so that plugin would be invoked first time to populate cache. v.currentVal = v.SetPluginInterval() @@ -63,7 +61,6 @@ func (v *Volume) Init(remote conf.Remote) error { func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util.Metadata, error) { data := dataMap[v.Object] style := v.styleType - tags := "tags" opsKeyPrefix := "temp_" if v.currentVal >= v.PluginInvocationRate { v.currentVal = 0 @@ -73,16 +70,16 @@ func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util } v.currentVal++ - return collectors.ProcessFlexGroupData(v.SLogger, data, style, tags, v.includeConstituents, opsKeyPrefix, v.volumesMap) + return collectors.ProcessFlexGroupData(v.SLogger, data, style, v.includeConstituents, opsKeyPrefix, v.volumesMap) } -func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { - volumesMap := make(map[string]collectors.VolumeData) +func (v *Volume) fetchVolumes() map[string]string { + volumesMap := make(map[string]string) query := "api/private/cli/volume" href := rest.NewHrefBuilder(). APIPath(query). - Fields([]string{"volume", "vserver", "volume_style_extended", "tags"}). + Fields([]string{"volume", "vserver", "volume_style_extended"}). Filter([]string{"is_constituent=*"}). MaxRecords(collectors.DefaultBatchSize). Build() @@ -98,7 +95,6 @@ func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { } for _, volume := range records { - var tags string if !volume.IsObject() { v.SLogger.Warn("volume is not object, skipping", slog.String("type", volume.Type.String())) continue @@ -106,19 +102,7 @@ func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { styleExtended := volume.Get("volume_style_extended").String() name := volume.Get("volume").String() svm := volume.Get("vserver").String() - tagData := volume.Get("tags") - if tagData.IsArray() { - var labelArray []string - for _, r := range tagData.Array() { - labelString := r.String() - labelArray = append(labelArray, labelString) - } - sort.Strings(labelArray) - tags = strings.Join(labelArray, ",") - } else { - tags = tagData.String() - } - volumesMap[svm+name] = collectors.VolumeData{Style: styleExtended, Tags: tags} + volumesMap[svm+name] = styleExtended } return volumesMap diff --git a/cmd/collectors/restperf/plugins/volume/volume_test.go b/cmd/collectors/restperf/plugins/volume/volume_test.go index cc172713b..3e993dd16 100644 --- a/cmd/collectors/restperf/plugins/volume/volume_test.go +++ b/cmd/collectors/restperf/plugins/volume/volume_test.go @@ -17,7 +17,6 @@ import ( const OpsKeyPrefix = "temp_" const StyleType = "style" -const Tags = "tags" const PollerName = "test" // Common test logic for RestPerf/ZapiPerf Volume plugin @@ -25,7 +24,7 @@ func runVolumeTest(t *testing.T, createVolume func(params *node.Node) plugin.Plu params := node.NewS("Volume") params.NewChildS("include_constituents", includeConstituents) v := createVolume(params) - volumesMap := make(map[string]collectors.VolumeData) + volumesMap := make(map[string]string) // Initialize the plugin if err := v.Init(conf.Remote{}); err != nil { @@ -38,26 +37,26 @@ func runVolumeTest(t *testing.T, createVolume func(params *node.Node) plugin.Plu instance1.SetLabel("volume", "RahulTest__0001") instance1.SetLabel("svm", "svm1") instance1.SetLabel("aggr", "aggr1") - volumesMap["svm1"+"RahulTest__0001"] = collectors.VolumeData{Style: "flexgroup_constituent"} + volumesMap["svm1"+"RahulTest__0001"] = "flexgroup_constituent" instance2, _ := data.NewInstance("RahulTest__0002") instance2.SetLabel("volume", "RahulTest__0002") instance2.SetLabel("svm", "svm1") instance2.SetLabel("aggr", "aggr2") - volumesMap["svm1"+"RahulTest__0002"] = collectors.VolumeData{Style: "flexgroup_constituent"} + volumesMap["svm1"+"RahulTest__0002"] = "flexgroup_constituent" instance3, _ := data.NewInstance("RahulTest__0003") instance3.SetLabel("volume", "RahulTest__0003") instance3.SetLabel("svm", "svm1") instance3.SetLabel("aggr", "aggr3") - volumesMap["svm1"+"RahulTest__0003"] = collectors.VolumeData{Style: "flexgroup_constituent"} + volumesMap["svm1"+"RahulTest__0003"] = "flexgroup_constituent" // Create a simple volume instance simpleInstance, _ := data.NewInstance("SimpleVolume") simpleInstance.SetLabel("volume", "SimpleVolume") simpleInstance.SetLabel("svm", "svm1") simpleInstance.SetLabel("aggr", "aggr4") - volumesMap["svm1"+"SimpleVolume"] = collectors.VolumeData{Style: "flexvol"} + volumesMap["svm1"+"SimpleVolume"] = "flexvol" // Create latency and ops metrics latencyMetric, _ := data.NewMetricFloat64("read_latency") @@ -89,7 +88,7 @@ func runVolumeTest(t *testing.T, createVolume func(params *node.Node) plugin.Plu // Run the plugin boolValue, _ := strconv.ParseBool(includeConstituents) - output, _, err := collectors.ProcessFlexGroupData(slog.Default(), data, StyleType, Tags, boolValue, OpsKeyPrefix, volumesMap) + output, _, err := collectors.ProcessFlexGroupData(slog.Default(), data, StyleType, boolValue, OpsKeyPrefix, volumesMap) if err != nil { t.Fatalf("Run method failed: %v", err) } diff --git a/cmd/collectors/volume.go b/cmd/collectors/volume.go index 0b88939bc..7801caa32 100644 --- a/cmd/collectors/volume.go +++ b/cmd/collectors/volume.go @@ -14,12 +14,7 @@ import ( var flexgroupRegex = regexp.MustCompile(`^(.*)__(\d{4})$`) -type VolumeData struct { - Style string - Tags string -} - -func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string, tags string, includeConstituents bool, opsKeyPrefix string, volumesMap map[string]VolumeData) ([]*matrix.Matrix, *util.Metadata, error) { +func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string, includeConstituents bool, opsKeyPrefix string, volumesMap map[string]string) ([]*matrix.Matrix, *util.Metadata, error) { var err error if volumesMap == nil { @@ -46,9 +41,7 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string for _, i := range data.GetInstances() { volName := i.GetLabel("volume") svmName := i.GetLabel("svm") - volData := volumesMap[svmName+volName] - i.SetLabel(tags, volData.Tags) - switch volData.Style { + switch volumesMap[svmName+volName] { case "flexgroup_constituent": match := flexgroupRegex.FindStringSubmatch(volName) key := svmName + "." + match[1] @@ -100,7 +93,7 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string for _, i := range data.GetInstances() { volName := i.GetLabel("volume") svmName := i.GetLabel("svm") - if volumesMap[svmName+volName].Style != "flexgroup_constituent" { + if volumesMap[svmName+volName] != "flexgroup_constituent" { continue } match := flexgroupRegex.FindStringSubmatch(volName) diff --git a/cmd/collectors/zapiperf/plugins/volume/volume.go b/cmd/collectors/zapiperf/plugins/volume/volume.go index af96d7fd7..8409c1356 100644 --- a/cmd/collectors/zapiperf/plugins/volume/volume.go +++ b/cmd/collectors/zapiperf/plugins/volume/volume.go @@ -23,7 +23,7 @@ type Volume struct { styleType string includeConstituents bool client *zapi.Client - volumesMap map[string]collectors.VolumeData // volume-name -> {volume-extended-style, tags} map + volumesMap map[string]string // volume-name -> volume-extended-style map } func New(p *plugin.AbstractPlugin) plugin.Plugin { @@ -46,7 +46,7 @@ func (v *Volume) Init(remote conf.Remote) error { return nil } - v.volumesMap = make(map[string]collectors.VolumeData) + v.volumesMap = make(map[string]string) // Assigned the value to currentVal so that plugin would be invoked first time to populate cache. v.currentVal = v.SetPluginInterval() @@ -64,7 +64,6 @@ func (v *Volume) Init(remote conf.Remote) error { func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util.Metadata, error) { data := dataMap[v.Object] style := v.styleType - tags := "tags" opsKeyPrefix := "temp_" if v.currentVal >= v.PluginInvocationRate { v.currentVal = 0 @@ -74,17 +73,17 @@ func (v *Volume) Run(dataMap map[string]*matrix.Matrix) ([]*matrix.Matrix, *util } v.currentVal++ - return collectors.ProcessFlexGroupData(v.SLogger, data, style, tags, v.includeConstituents, opsKeyPrefix, v.volumesMap) + return collectors.ProcessFlexGroupData(v.SLogger, data, style, v.includeConstituents, opsKeyPrefix, v.volumesMap) } -func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { +func (v *Volume) fetchVolumes() map[string]string { var ( result *node.Node volumes []*node.Node - volumesMap map[string]collectors.VolumeData + volumesMap map[string]string ) - volumesMap = make(map[string]collectors.VolumeData) + volumesMap = make(map[string]string) query := "volume-get-iter" tag := "initial" request := node.NewXMLS(query) @@ -93,6 +92,7 @@ func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { volumeAttributes := node.NewXMLS("desired-attributes") volumeIDAttributes := node.NewXMLS("volume-id-attributes") volumeIDAttributes.NewChildS("name", "") + volumeIDAttributes.NewChildS("owning-vserver-name", "") volumeIDAttributes.NewChildS("style-extended", "") volumeAttributes.AddChild(volumeIDAttributes) desired.AddChild(volumeAttributes) @@ -120,7 +120,8 @@ func (v *Volume) fetchVolumes() map[string]collectors.VolumeData { for _, volume := range volumes { styleExtended := volume.GetChildS("volume-id-attributes").GetChildContentS("style-extended") name := volume.GetChildS("volume-id-attributes").GetChildContentS("name") - volumesMap[name] = collectors.VolumeData{Style: styleExtended, Tags: ""} + svm := volume.GetChildS("volume-id-attributes").GetChildContentS("owning-vserver-name") + volumesMap[svm+name] = styleExtended } } diff --git a/cmd/tools/generate/counter.go b/cmd/tools/generate/counter.go index 8310e0a65..6190d727f 100644 --- a/cmd/tools/generate/counter.go +++ b/cmd/tools/generate/counter.go @@ -172,6 +172,7 @@ var ( "_labels", "volume_arw_status", "ALERTS", + "_tags", } // Exclude extra metrics for ZAPI diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go index a89af8a74..9dd1d1a52 100644 --- a/cmd/tools/grafana/dashboard_test.go +++ b/cmd/tools/grafana/dashboard_test.go @@ -700,6 +700,7 @@ func checkVariablesHaveAll(t *testing.T, path string, data []byte) { exceptionForAllValues := map[string]bool{ "cmode/security.json": true, "cmode/cluster.json": true, + "cmode/volume.json": true, } if exceptionToAll[ShortPath(path)] { diff --git a/conf/restperf/9.12.0/volume.yaml b/conf/restperf/9.12.0/volume.yaml index 0022af3e4..64462718e 100644 --- a/conf/restperf/9.12.0/volume.yaml +++ b/conf/restperf/9.12.0/volume.yaml @@ -78,5 +78,4 @@ export_options: - node - style - svm - - tags - volume \ No newline at end of file diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json index 2d8bcdf24..911b39c25 100644 --- a/grafana/dashboards/cmode/volume.json +++ b/grafana/dashboards/cmode/volume.json @@ -156,7 +156,7 @@ "targets": [ { "exemplar": false, - "expr": "avg(topk($TopResources, volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", + "expr": "avg(topk($TopResources, volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}))", "interval": "", "legendFormat": "", "refId": "A" @@ -215,7 +215,7 @@ "targets": [ { "exemplar": false, - "expr": "sum(\n topk(\n $TopResources, \n volume_read_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"}\n )\n)", + "expr": "sum(\n topk(\n $TopResources, \n volume_read_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"} \n )\n)", "interval": "", "legendFormat": "", "refId": "A" @@ -272,7 +272,7 @@ "targets": [ { "exemplar": false, - "expr": "sum(topk($TopResources, volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}))", + "expr": "sum(topk($TopResources, volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}))", "interval": "", "legendFormat": "", "refId": "A" @@ -362,7 +362,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_avg_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -453,7 +453,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n + avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end())\n )\n)", + "expr": "(\n volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} \n +\n volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"} \n + avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}\n )\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -545,7 +545,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_total_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -919,7 +919,7 @@ "refId": "B" }, { - "expr": "volume_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -929,7 +929,7 @@ "refId": "A" }, { - "expr": "volume_size_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_size_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -939,7 +939,7 @@ "refId": "C" }, { - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -950,7 +950,7 @@ }, { "exemplar": false, - "expr": "volume_sis_dedup_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_dedup_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -961,7 +961,7 @@ }, { "exemplar": false, - "expr": "volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -972,7 +972,7 @@ }, { "exemplar": false, - "expr": "volume_sis_dedup_saved+volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_sis_dedup_saved+volume_sis_compress_saved{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -983,7 +983,7 @@ }, { "exemplar": false, - "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -994,7 +994,7 @@ }, { "exemplar": false, - "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -1005,7 +1005,7 @@ }, { "exemplar": false, - "expr": "volume_clone_split_estimate{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}", + "expr": "volume_clone_split_estimate{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}", "format": "table", "hide": false, "instant": true, @@ -1237,7 +1237,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "instant": true, "interval": "", @@ -1393,7 +1393,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "instant": true, "interval": "", @@ -1550,7 +1550,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "instant": true, "interval": "", @@ -1737,7 +1737,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "instant": true, "interval": "", @@ -1893,7 +1893,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "instant": true, "interval": "", @@ -2050,7 +2050,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "instant": true, "interval": "", @@ -2202,7 +2202,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2293,7 +2293,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2384,7 +2384,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2476,7 +2476,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2568,7 +2568,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2660,7 +2660,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_other_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -2751,7 +2751,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "intervalFactor": 1, "legendFormat": "{{svm}} - {{volume}}", @@ -2843,7 +2843,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -3142,7 +3142,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n unless\n on(datacenter, cluster, svm, volume)\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", root_volume=\"Yes\",style!=\"flexgroup_constituent\"}\n)", + "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"} / 1099511627776,\n 1\n )\n )\n unless\n on(datacenter, cluster, svm, volume)\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", root_volume=\"Yes\",style!=\"flexgroup_constituent\"}\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -3234,7 +3234,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\nbottomk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) / 1099511627776,\n 1\n )\n )\n and\n on(datacenter, cluster, svm, volume)\n (\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\", root_volume!=\"Yes\",style!=\"flexgroup_constituent\"}\n * on(datacenter, cluster, svm, volume)\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) > 50\n )\n)", + "expr": "(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n /\n clamp_min(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} / 1099511627776,\n 1\n )\n)\nand\nbottomk(\n $TopResources,\n (\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}\n /\n clamp_min(\n avg_over_time(\n volume_space_logical_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"} / 1099511627776,\n 1\n )\n )\n and\n on(datacenter, cluster, svm, volume)\n (\n volume_labels{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", root_volume!=\"Yes\",style!=\"flexgroup_constituent\"}\n * on(datacenter, cluster, svm, volume)\n avg_over_time(\n volume_total_ops{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"} > 50\n )\n)", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -5130,7 +5130,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5219,7 +5219,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5308,7 +5308,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5397,7 +5397,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5490,7 +5490,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5583,7 +5583,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_size{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5676,7 +5676,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5769,7 +5769,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshots_size_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5862,7 +5862,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -5972,7 +5972,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_physical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6067,7 +6067,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_logical_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6162,7 +6162,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6257,7 +6257,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6351,7 +6351,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_snapshot_reserve_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -6446,7 +6446,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_space_performance_tier_inactive_user_data_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -7450,7 +7450,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7546,7 +7546,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_performance_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7640,7 +7640,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7736,7 +7736,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_capacity_tier_footprint_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}} ", @@ -7840,7 +7840,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -7928,7 +7928,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_files_total{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -8018,7 +8018,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_inode_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} - {{volume}}", "refId": "A" @@ -8140,7 +8140,7 @@ "targets": [ { "exemplar": false, - "expr": "(\n (\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * 100\n )\n / \n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n /\n avg_over_time(\n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", tags=~\".*$Tag.*\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n )\n )\n)", + "expr": "(\n (\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"} * 100\n )\n / \n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\n)\nand\ntopk(\n $TopResources,\n (\n avg_over_time(\n volume_num_compress_fail{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}\n /\n avg_over_time(\n volume_num_compress_attempts{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()\n ) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"}\n )\n)", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8232,7 +8232,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_attempts{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8324,7 +8324,7 @@ "targets": [ { "exemplar": false, - "expr": "volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}\nand\ntopk($TopResources, avg_over_time(volume_num_compress_fail{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "interval": "", "legendFormat": "{{svm}} / {{volume}}", "refId": "A" @@ -8439,7 +8439,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "deriv(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "deriv(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_physical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -8539,7 +8539,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "deriv(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "deriv(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[4m]) and topk($TopResources, avg_over_time(volume_space_logical_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "hide": false, "interval": "", "legendFormat": "{{svm}} - {{volume}}", @@ -8857,7 +8857,7 @@ { "datasource": "${DS_PROMETHEUS}", "editorMode": "code", - "expr": "predict_linear(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3d], 15*24*3600) and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "predict_linear(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3d], 15*24*3600) and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "hide": false, "instant": true, @@ -8870,7 +8870,7 @@ "datasource": "${DS_PROMETHEUS}", "editorMode": "code", "exemplar": false, - "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()))", + "expr": "volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"} and topk($TopResources, avg_over_time(volume_size_used_percent{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",style!=\"flexgroup_constituent\"}[3h] @ end()) * on (datacenter, cluster, svm, volume) group_left() volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",volume=~\"$Volume\",tags=~\".*$Tag.*\"})", "format": "table", "hide": false, "instant": true, From 910ddbbf739d737ea8e78f1bd433e345ea1e233b Mon Sep 17 00:00:00 2001 From: hardikl Date: Fri, 15 Nov 2024 19:27:58 +0530 Subject: [PATCH 10/11] feat: update cluster dashboard --- grafana/dashboards/cmode/cluster.json | 111 ++------------------------ pkg/conf/conf_test.go | 1 - 2 files changed, 7 insertions(+), 105 deletions(-) diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json index e13ae43d4..45ee8a143 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -1726,7 +1726,7 @@ }, "gridPos": { "h": 7, - "w": 15, + "w": 18, "x": 0, "y": 35 }, @@ -1747,7 +1747,7 @@ "targets": [ { "exemplar": false, - "expr": "node_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}", + "expr": "node_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"} * on (datacenter, cluster) group_left(tags) cluster_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}", "format": "table", "instant": true, "interval": "", @@ -1757,7 +1757,7 @@ }, { "exemplar": false, - "expr": "node_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}", + "expr": "node_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"} * on (datacenter, cluster) group_left(tags) cluster_new_status{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"} ", "format": "table", "hide": false, "instant": true, @@ -1857,7 +1857,8 @@ "version", "model", "Value #B", - "cpu_firmware_release" + "cpu_firmware_release", + "tags" ] } } @@ -1868,108 +1869,10 @@ "excludeByName": {}, "indexByName": {}, "renameByName": { - "cpu_firmware_release": "CPU Firmware Release" - } - } - } - ], - "type": "table" - }, - { - "datasource": "${DS_PROMETHEUS}", - "description": "Tags details.", - "fieldConfig": { - "defaults": { - "custom": { - "align": "left", - "displayMode": "auto", - "filterable": true - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short", - "unitScale": true - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 3, - "x": 15, - "y": 35 - }, - "id": 282, - "interval": "", - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": false - }, - "pluginVersion": "8.1.8", - "targets": [ - { - "datasource": "${DS_PROMETHEUS}", - "editorMode": "code", - "exemplar": false, - "expr": "cluster_tags{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}", - "format": "table", - "instant": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "title": "Tags", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true, - "__name__": true, - "cluster": true, - "datacenter": true, - "instance": true, - "job": true, - "status": true - }, - "includeByName": {}, - "indexByName": {}, - "renameByName": { - "tags": "Tags" + "cpu_firmware_release": "CPU Firmware Release", + "tags": "Cluster Tags" } } - }, - { - "disabled": true, - "id": "extractFields", - "options": { - "format": "auto", - "keepTime": false, - "replace": true, - "source": "Tags" - } } ], "type": "table" diff --git a/pkg/conf/conf_test.go b/pkg/conf/conf_test.go index 63231990f..eb72cb44f 100644 --- a/pkg/conf/conf_test.go +++ b/pkg/conf/conf_test.go @@ -494,7 +494,6 @@ func TestEmbeddedExporter(t *testing.T) { } uniqueExporters := GetUniqueExporters(p.Exporters) - slices.Sort(uniqueExporters) want := []string{"u2-1", "u2-2"} if !slices.Equal(uniqueExporters, want) { t.Errorf("got %v, want %v", uniqueExporters, want) From 5fd7126d445b60e048073bea95485a3332e909be Mon Sep 17 00:00:00 2001 From: hardikl Date: Fri, 15 Nov 2024 19:34:13 +0530 Subject: [PATCH 11/11] feat: update test --- cmd/tools/grafana/dashboard_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go index 9dd1d1a52..a89af8a74 100644 --- a/cmd/tools/grafana/dashboard_test.go +++ b/cmd/tools/grafana/dashboard_test.go @@ -700,7 +700,6 @@ func checkVariablesHaveAll(t *testing.T, path string, data []byte) { exceptionForAllValues := map[string]bool{ "cmode/security.json": true, "cmode/cluster.json": true, - "cmode/volume.json": true, } if exceptionToAll[ShortPath(path)] {