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 61438373e..897cb90ca 100644 --- a/cmd/collectors/restperf/plugins/volume/volume.go +++ b/cmd/collectors/restperf/plugins/volume/volume.go @@ -79,7 +79,7 @@ func (v *Volume) fetchVolumes() map[string]string { href := rest.NewHrefBuilder(). APIPath(query). - Fields([]string{"volume", "volume_style_extended"}). + Fields([]string{"volume", "vserver", "volume_style_extended"}). Filter([]string{"is_constituent=*"}). MaxRecords(collectors.DefaultBatchSize). Build() @@ -101,7 +101,8 @@ func (v *Volume) fetchVolumes() map[string]string { } styleExtended := volume.Get("volume_style_extended").String() name := volume.Get("volume").String() - volumesMap[name] = styleExtended + svm := volume.Get("vserver").String() + 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 6bd971e87..3e993dd16 100644 --- a/cmd/collectors/restperf/plugins/volume/volume_test.go +++ b/cmd/collectors/restperf/plugins/volume/volume_test.go @@ -37,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["svm1"+"RahulTest__0001"] = "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["svm1"+"RahulTest__0002"] = "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["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["SimpleVolume"] = "flexvol" + volumesMap["svm1"+"SimpleVolume"] = "flexvol" // Create latency and ops metrics latencyMetric, _ := data.NewMetricFloat64("read_latency") diff --git a/cmd/collectors/volume.go b/cmd/collectors/volume.go index 69567f0b9..7801caa32 100644 --- a/cmd/collectors/volume.go +++ b/cmd/collectors/volume.go @@ -40,10 +40,11 @@ func ProcessFlexGroupData(logger *slog.Logger, data *matrix.Matrix, style string for _, i := range data.GetInstances() { volName := i.GetLabel("volume") - switch volumesMap[volName] { + svmName := i.GetLabel("svm") + switch volumesMap[svmName+volName] { 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())) @@ -72,7 +73,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)) @@ -91,11 +92,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] != "flexgroup_constituent" { + svmName := i.GetLabel("svm") + if volumesMap[svmName+volName] != "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/collectors/zapiperf/plugins/volume/volume.go b/cmd/collectors/zapiperf/plugins/volume/volume.go index d70a06f03..8409c1356 100644 --- a/cmd/collectors/zapiperf/plugins/volume/volume.go +++ b/cmd/collectors/zapiperf/plugins/volume/volume.go @@ -92,6 +92,7 @@ func (v *Volume) fetchVolumes() map[string]string { 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) @@ -119,7 +120,8 @@ 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 + 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 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 e9d6b707d..d46fd1b92 100644 --- a/conf/rest/9.12.0/status.yaml +++ b/conf/rest/9.12.0/status.yaml @@ -4,11 +4,13 @@ query: api/cluster object: cluster counters: + - ^_tags => tags - ^health => status - hidden_fields: - health plugins: + - Cluster - LabelAgent: value_to_num: - new_status status ok ok `0` 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/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/cluster.json b/grafana/dashboards/cmode/cluster.json index e00ff8d89..45ee8a143 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -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,7 +1869,8 @@ "excludeByName": {}, "indexByName": {}, "renameByName": { - "cpu_firmware_release": "CPU Firmware Release" + "cpu_firmware_release": "CPU Firmware Release", + "tags": "Cluster Tags" } } } @@ -4462,7 +4464,31 @@ "allValue": ".*", "current": {}, "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\"},cluster)", + "definition": "label_values(cluster_tags{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tag)", + "hide": 0, + "includeAll": true, + "label": "", + "multi": true, + "name": "Tag", + "options": [], + "query": { + "query": "label_values(cluster_tags{system_type!=\"7mode\", datacenter=~\"$Datacenter\"},tag)", + "refId": "StandardVariableQuery" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": null, + "current": {}, + "datasource": "${DS_PROMETHEUS}", + "definition": "label_values(cluster_new_status{system_type!=\"7mode\",datacenter=~\"$Datacenter\",tags=~\".*$Tag.*\"},cluster)", "description": null, "error": null, "hide": 0, @@ -4472,7 +4498,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=~\".*$Tag.*\"},cluster)", "refId": "StandardVariableQuery" }, "refresh": 2, @@ -4619,5 +4645,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 1f2ee2b61..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\",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\", 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\", 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\",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\",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\",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\",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\",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\",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\",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" @@ -626,7 +626,7 @@ }, { "id": "displayName", - "value": "status" + "value": "Status" }, { "id": "color", @@ -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=~\".*$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\",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\",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\",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\",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\",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\",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\",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\",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\",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, @@ -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" } } } @@ -1234,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\",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": "", @@ -1390,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\",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": "", @@ -1547,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\",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": "", @@ -1734,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\",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": "", @@ -1890,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\",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": "", @@ -2047,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\",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": "", @@ -2199,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\",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" @@ -2290,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\",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" @@ -2381,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\",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" @@ -2473,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\",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" @@ -2565,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\",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" @@ -2657,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\",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" @@ -2748,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\",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}}", @@ -2840,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\",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" @@ -3139,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\", 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" @@ -3231,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\", 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" @@ -5127,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\",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}}", @@ -5216,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\",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}}", @@ -5305,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\",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}}", @@ -5394,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\",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}}", @@ -5487,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\",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}}", @@ -5580,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\",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}}", @@ -5673,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\",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}}", @@ -5766,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\",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}}", @@ -5859,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\",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}}", @@ -5969,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\",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}}", @@ -6064,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\",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}}", @@ -6159,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\",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}}", @@ -6254,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\",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}}", @@ -6348,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\",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}}", @@ -6443,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\",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}}", @@ -7447,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\", 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}} ", @@ -7543,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\", 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}} ", @@ -7637,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\", 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}} ", @@ -7733,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\", 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}} ", @@ -7837,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\",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}}", @@ -7925,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\",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" @@ -8015,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\",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" @@ -8137,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\", 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" @@ -8229,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\",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" @@ -8321,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\",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" @@ -8436,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\",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}}", @@ -8536,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\",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}}", @@ -8854,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\",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, @@ -8867,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\",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, @@ -9059,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_tags{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tag)", + "hide": 0, + "includeAll": true, + "multi": true, + "name": "Tag", + "options": [], + "query": { + "query": "label_values(volume_tags{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\"},tag)", + "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=~\".*$Tag.*\"}, volume)", "description": null, "error": null, "hide": 0, @@ -9069,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=~\".*$Tag.*\"}, volume)", "refId": "StandardVariableQuery" }, "refresh": 2, @@ -9194,5 +9220,5 @@ "timezone": "", "title": "ONTAP: Volume", "uid": "cdot-volume", - "version": 28 + "version": 29 } 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": {},