diff --git a/cmd/tools/generate/counter.go b/cmd/tools/generate/counter.go index d1f2d3509..a830d4f96 100644 --- a/cmd/tools/generate/counter.go +++ b/cmd/tools/generate/counter.go @@ -591,7 +591,7 @@ func updateDescription(description string) string { return s } -func generateCounterTemplate(counters map[string]Counter, client *rest.Client) { +func generateCounterTemplate(counters map[string]Counter, version [3]int) { targetPath := "docs/ontap-metrics.md" t, err := template.New("counter.tmpl").ParseFiles("cmd/tools/generate/counter.tmpl") if err != nil { @@ -644,7 +644,7 @@ func generateCounterTemplate(counters map[string]Counter, client *rest.Client) { } } - verWithDots := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(client.Cluster().Version)), "."), "[]") + verWithDots := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(version)), "."), "[]") c := CounterTemplate{ Counters: values, CounterMetaData: CounterMetaData{ diff --git a/cmd/tools/generate/generate.go b/cmd/tools/generate/generate.go index 876811c80..da3069981 100644 --- a/cmd/tools/generate/generate.go +++ b/cmd/tools/generate/generate.go @@ -2,6 +2,7 @@ package generate import ( "fmt" + "github.com/netapp/harvest/v2/cmd/tools/grafana" "github.com/netapp/harvest/v2/cmd/tools/rest" "github.com/netapp/harvest/v2/pkg/api/ontapi/zapi" "github.com/netapp/harvest/v2/pkg/auth" @@ -9,10 +10,15 @@ import ( "github.com/netapp/harvest/v2/pkg/conf" "github.com/netapp/harvest/v2/pkg/logging" "github.com/spf13/cobra" + "github.com/tidwall/gjson" + "github.com/tidwall/pretty" + "github.com/tidwall/sjson" "io" + "log" "os" "path/filepath" "regexp" + "slices" "strconv" "strings" "text/template" @@ -68,6 +74,8 @@ type options struct { confPath string } +var metricRe = regexp.MustCompile(`(\w+)\{`) + var opts = &options{ loglevel: 2, image: "harvest:latest", @@ -104,6 +112,13 @@ var metricCmd = &cobra.Command{ Run: doGenerateMetrics, } +var descCmd = &cobra.Command{ + Use: "desc", + Short: "generate Description of panels", + Hidden: true, + Run: doDescription, +} + func doDockerFull(cmd *cobra.Command, _ []string) { addRootOptions(cmd) generateDocker(full) @@ -121,7 +136,18 @@ func doDockerCompose(cmd *cobra.Command, _ []string) { func doGenerateMetrics(cmd *cobra.Command, _ []string) { addRootOptions(cmd) - generateMetrics() + counters, cluster := generateMetrics() + generateCounterTemplate(counters, cluster.Version) +} + +func doDescription(cmd *cobra.Command, _ []string) { + addRootOptions(cmd) + counters, _ := generateMetrics() + grafana.VisitDashboards( + []string{"grafana/dashboards/cmode"}, + func(path string, data []byte) { + generateDescription(path, data, counters) + }) } func addRootOptions(cmd *cobra.Command) { @@ -474,7 +500,7 @@ func writeAdminSystemd(configFp string) { println(color.Colorize("✓", color.Green) + " HTTP SD file: " + harvestAdminService + " created") } -func generateMetrics() { +func generateMetrics() (map[string]Counter, rest.Cluster) { var ( poller *conf.Poller err error @@ -512,12 +538,81 @@ func generateMetrics() { zapiCounters := processZapiCounters(zapiClient) counters := mergeCounters(restCounters, zapiCounters) counters = processExternalCounters(counters) - generateCounterTemplate(counters, restClient) + return counters, restClient.Cluster() +} + +func generateDescription(dPath string, data []byte, counters map[string]Counter) { + var err error + dashPath := grafana.ShortPath(dPath) + panelDescriptionMap := make(map[string]string) + ignoreDashboards := []string{ + "cmode/health.json", "cmode/headroom.json", + } + if slices.Contains(ignoreDashboards, dashPath) { + return + } + + grafana.VisitAllPanels(data, func(path string, key, value gjson.Result) { + kind := value.Get("type").String() + if kind == "row" || kind == "text" { + return + } + description := value.Get("description").String() + targetsSlice := value.Get("targets").Array() + + if description == "" { + if len(targetsSlice) == 1 { + expr := targetsSlice[0].Get("expr").String() + if !(strings.Contains(expr, "/") || strings.Contains(expr, "+") || strings.Contains(expr, "-") || strings.Contains(expr, "on")) { + allMatches := metricRe.FindAllStringSubmatch(expr, -1) + for _, match := range allMatches { + m := match[1] + if len(m) == 0 { + continue + } + expr = m + } + panelPath, updatedDescription := generatePanelPathWithDescription(path, counters[expr].Description) + panelDescriptionMap[panelPath] = updatedDescription + } + } + } else if !strings.HasPrefix(description, "$") && !strings.HasSuffix(description, ".") { + // Few panels have description text from variable, which would be ignored. + panelPath, updatedDescription := generatePanelPathWithDescription(path, description) + panelDescriptionMap[panelPath] = updatedDescription + } + }) + + // Update the dashboard with description + for path, value := range panelDescriptionMap { + data, err = sjson.SetBytes(data, path, value) + if err != nil { + log.Fatalf("error while updating the panel in dashboard %s err: %+v", dPath, err) + } + } + + // Sorted json + sorted := pretty.PrettyOptions(data, &pretty.Options{ + SortKeys: true, + Indent: " ", + }) + + if err = os.WriteFile(dPath, sorted, grafana.GPerm); err != nil { + log.Fatalf("failed to write dashboard=%s err=%v\n", dPath, err) + } +} + +func generatePanelPathWithDescription(path string, desc string) (string, string) { + if desc != "" && !strings.HasSuffix(desc, ".") { + desc = desc + "." + } + return strings.Replace(strings.Replace(path, "[", ".", -1), "]", ".", -1) + "description", desc } func init() { Cmd.AddCommand(systemdCmd) Cmd.AddCommand(metricCmd) + Cmd.AddCommand(descCmd) Cmd.AddCommand(dockerCmd) dockerCmd.AddCommand(fullCmd) @@ -528,6 +623,10 @@ func init() { flags.StringVarP(&opts.Poller, "poller", "p", "sar", "name of poller, e.g. 10.193.48.154") _ = metricCmd.MarkPersistentFlagRequired("poller") + flag := descCmd.PersistentFlags() + flag.StringVarP(&opts.Poller, "poller", "p", "sar", "name of poller, e.g. 10.193.48.154") + _ = descCmd.MarkPersistentFlagRequired("poller") + dFlags.IntVarP(&opts.loglevel, "loglevel", "l", 2, "logging level (0=trace, 1=debug, 2=info, 3=warning, 4=error, 5=critical)", ) diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go index 4563702c7..f6d72f157 100644 --- a/cmd/tools/grafana/dashboard_test.go +++ b/cmd/tools/grafana/dashboard_test.go @@ -17,7 +17,7 @@ import ( var dashboards = []string{"../../../grafana/dashboards/cmode", "../../../grafana/dashboards/storagegrid"} func TestThreshold(t *testing.T) { - visitDashboards(dashboards, func(path string, data []byte) { + VisitDashboards(dashboards, func(path string, data []byte) { checkThreshold(t, path, data) }) } @@ -25,7 +25,7 @@ func TestThreshold(t *testing.T) { var aggregationPattern = regexp.MustCompile(`\b(sum|count|min|max)\b`) func checkThreshold(t *testing.T, path string, data []byte) { - path = shortPath(path) + path = ShortPath(path) var thresholdMap = map[string][]string{ // _latencies are in microseconds "_latency": { @@ -38,7 +38,7 @@ func checkThreshold(t *testing.T, path string, data []byte) { }, } // visit all panels for datasource test - visitAllPanels(data, func(p string, key, value gjson.Result) { + VisitAllPanels(data, func(p string, key, value gjson.Result) { panelTitle := value.Get("title").String() kind := value.Get("type").String() if kind == "table" || kind == "stat" { @@ -113,15 +113,15 @@ func checkThreshold(t *testing.T, path string, data []byte) { } func TestDatasource(t *testing.T) { - visitDashboards(dashboards, func(path string, data []byte) { + VisitDashboards(dashboards, func(path string, data []byte) { checkDashboardForDatasource(t, path, data) }) } func checkDashboardForDatasource(t *testing.T, path string, data []byte) { - path = shortPath(path) + path = ShortPath(path) // visit all panels for datasource test - visitAllPanels(data, func(p string, key, value gjson.Result) { + VisitAllPanels(data, func(p string, key, value gjson.Result) { dsResult := value.Get("datasource") panelTitle := value.Get("title").String() if !dsResult.Exists() { @@ -210,7 +210,7 @@ func TestUnitsAndExprMatch(t *testing.T) { reg := regexp.MustCompile(pattern) mt := newMetricsTable() expectedMt := parseUnits() - visitDashboards(dashboards, + VisitDashboards(dashboards, func(path string, data []byte) { checkUnits(t, path, mt, data) }) @@ -371,7 +371,7 @@ func newMetricsTable() *metricsTable { } func checkUnits(t *testing.T, dashboardPath string, mt *metricsTable, data []byte) { - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { doPanel(t, "", key, value, mt, dashboardPath) }) } @@ -398,7 +398,7 @@ func doPanel(t *testing.T, pathPrefix string, key gjson.Result, value gjson.Resu targetsSlice := value.Get("targets").Array() transformationsSlice := value.Get("transformations").Array() title := value.Get("title").String() - sPath := shortPath(dashboardPath) + sPath := ShortPath(dashboardPath) propertiesMap := make(map[string]map[string]string) overrides := make([]override, 0, len(overridesSlice)) @@ -540,7 +540,7 @@ func unitForExpr(e expression, overrides []override, defaultUnit string, } func TestVariablesAreSorted(t *testing.T) { - visitDashboards(dashboards, + VisitDashboards(dashboards, func(path string, data []byte) { checkVariablesAreSorted(t, path, data) }) @@ -565,14 +565,14 @@ func checkVariablesAreSorted(t *testing.T, path string, data []byte) { if sortVal != 1 { varName := value.Get("name").String() t.Errorf("dashboard=%s path=templating.list[%s].sort variable=%s is not 1. Should be \"sort\": 1,", - shortPath(path), key.String(), varName) + ShortPath(path), key.String(), varName) } return true }) } func TestNoUnusedVariables(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkUnusedVariables(t, path, data) @@ -595,7 +595,7 @@ func checkUnusedVariables(t *testing.T, path string, data []byte) { return true }) - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { d := value.Get("description").String() if d != "" { description = append(description, d) @@ -624,7 +624,7 @@ varLoop: } } - t.Errorf("dashboard=%s has unused variable [%s]", shortPath(path), variable) + t.Errorf("dashboard=%s has unused variable [%s]", ShortPath(path), variable) } } @@ -666,7 +666,7 @@ func doExpr(pathPrefix string, key gjson.Result, value gjson.Result, exprFunc fu } func TestIDIsBlank(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkUIDIsBlank(t, path, data) @@ -675,7 +675,7 @@ func TestIDIsBlank(t *testing.T) { } func TestExemplarIsFalse(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkExemplarIsFalse(t, path, data) @@ -684,26 +684,26 @@ func TestExemplarIsFalse(t *testing.T) { func checkExemplarIsFalse(t *testing.T, path string, data []byte) { if strings.Contains(string(data), "\"exemplar\": true") { - t.Errorf(`dashboard=%s exemplar should be "false" but is "true"`, shortPath(path)) + t.Errorf(`dashboard=%s exemplar should be "false" but is "true"`, ShortPath(path)) } } func checkUIDIsBlank(t *testing.T, path string, data []byte) { uid := gjson.GetBytes(data, "uid").String() if uid != "" { - t.Errorf(`dashboard=%s uid should be "" but is %s`, shortPath(path), uid) + t.Errorf(`dashboard=%s uid should be "" but is %s`, ShortPath(path), uid) } } func checkIDIsNull(t *testing.T, path string, data []byte) { id := gjson.GetBytes(data, "id").String() if id != "" { - t.Errorf(`dashboard=%s id should be null but is %s`, shortPath(path), id) + t.Errorf(`dashboard=%s id should be null but is %s`, ShortPath(path), id) } } func TestUniquePanelIDs(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkUniquePanelIDs(t, path, data) @@ -713,9 +713,9 @@ func TestUniquePanelIDs(t *testing.T) { func checkUniquePanelIDs(t *testing.T, path string, data []byte) { ids := make(map[int64]struct{}) - sPath := shortPath(path) + sPath := ShortPath(path) // visit all panel ids - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { id := value.Get("id").Int() _, ok := ids[id] if ok { @@ -734,7 +734,7 @@ func checkUniquePanelIDs(t *testing.T, path string, data []byte) { // b) otherwise fail, printing the expression, path, dashboard func TestTopKRange(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkTopKRange(t, path, data) @@ -745,7 +745,7 @@ func checkTopKRange(t *testing.T, path string, data []byte) { // collect all expressions expressions := make([]exprP, 0) - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { doTarget("", key, value, func(path string, expr string, format string) { if format == "table" || format == "stat" { return @@ -776,7 +776,7 @@ func checkTopKRange(t *testing.T, path string, data []byte) { } if !hasRange { t.Errorf(`dashboard=%s path=%s use topk but no variable has range. expr=%s`, - shortPath(path), expr.path, expr.expr) + ShortPath(path), expr.path, expr.expr) } } @@ -790,13 +790,13 @@ func checkTopKRange(t *testing.T, path string, data []byte) { // Test if text and value match, except for the special case with "All" and "$__all" if text != value && !(text == "All" && value == "$__all") { t.Errorf("In dashboard %s, variable %s uses topk, but text '%s' does not match value '%s'", - shortPath(path), v.name, text, value) + ShortPath(path), v.name, text, value) } // Test if the selected value matches the expected text "5" if (text == "5") != selected { t.Errorf("In dashboard %s, variable %s uses topk, but text '%s' has incorrect selected state: %t", - shortPath(path), v.name, text, selected) + ShortPath(path), v.name, text, selected) } } } @@ -806,7 +806,7 @@ func checkTopKRange(t *testing.T, path string, data []byte) { if v.refresh != "2" { t.Errorf("dashboard=%s name=%s use topk, refresh should be set to \"On time range change\". query=%s", - shortPath(path), v.name, v.query) + ShortPath(path), v.name, v.query) } } @@ -823,7 +823,7 @@ func TestOnlyHighlightsExpanded(t *testing.T) { "storagegrid/fabricpool.json": 2, } // count number of expanded sections in dashboard and ensure num expanded = 1 - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkExpansion(t, exceptions, path, data) @@ -834,7 +834,7 @@ func checkExpansion(t *testing.T, exceptions map[string]int, path string, data [ pathCollapsed := make(map[string]bool) titles := make([]string, 0) // visit all panel - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { collapsed := value.Get("collapsed") if !collapsed.Exists() { return @@ -848,7 +848,7 @@ func checkExpansion(t *testing.T, exceptions map[string]int, path string, data [ if len(titles) == 0 { return } - dashPath := shortPath(path) + dashPath := ShortPath(path) // By default, a single expanded row is allowed. allowed := 1 v, ok := exceptions[dashPath] @@ -860,22 +860,8 @@ func checkExpansion(t *testing.T, exceptions map[string]int, path string, data [ } } -func visitAllPanels(data []byte, handle func(path string, key gjson.Result, value gjson.Result)) { - visitPanels(data, "panels", "", handle) -} - -func visitPanels(data []byte, panelPath string, pathPrefix string, handle func(path string, key gjson.Result, value gjson.Result)) { - gjson.GetBytes(data, panelPath).ForEach(func(key, value gjson.Result) bool { - path := fmt.Sprintf("%s[%d]", panelPath, key.Int()) - fullPath := fmt.Sprintf("%s%s", pathPrefix, path) - handle(fullPath, key, value) - visitPanels([]byte(value.Raw), "panels", fullPath, handle) - return true - }) -} - func TestLegends(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkLegends(t, path, data) @@ -884,9 +870,9 @@ func TestLegends(t *testing.T) { func checkLegends(t *testing.T, path string, data []byte) { // collect all legends - dashPath := shortPath(path) + dashPath := ShortPath(path) - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { doLegends(t, value, dashPath) }) } @@ -944,7 +930,7 @@ func checkLegendCalculations(t *testing.T, gotLegendCalculations []string, dashP } func TestConnectNullValues(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkConnectNullValues(t, path, data) @@ -952,9 +938,9 @@ func TestConnectNullValues(t *testing.T) { } func checkConnectNullValues(t *testing.T, path string, data []byte) { - dashPath := shortPath(path) + dashPath := ShortPath(path) - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { spanNulls := value.Get("fieldConfig.defaults.custom.spanNulls") if !spanNulls.Exists() { return @@ -966,10 +952,10 @@ func checkConnectNullValues(t *testing.T, path string, data []byte) { } func TestPanelChildPanels(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { - checkPanelChildPanels(t, shortPath(path), data) + checkPanelChildPanels(t, ShortPath(path), data) }) } @@ -984,10 +970,10 @@ func checkPanelChildPanels(t *testing.T, path string, data []byte) { } func TestRatesAreNot1m(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { - checkRate1m(t, shortPath(path), data) + checkRate1m(t, ShortPath(path), data) }, ) } @@ -1002,7 +988,7 @@ func checkRate1m(t *testing.T, path string, data []byte) { } func TestTableFilter(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkTableFilter(t, path, data) @@ -1010,8 +996,8 @@ func TestTableFilter(t *testing.T) { } func checkTableFilter(t *testing.T, path string, data []byte) { - dashPath := shortPath(path) - visitAllPanels(data, func(path string, key, value gjson.Result) { + dashPath := ShortPath(path) + VisitAllPanels(data, func(path string, key, value gjson.Result) { panelType := value.Get("type").String() if panelType == "table" { isFilterable := value.Get("fieldConfig.defaults.custom.filterable").String() @@ -1023,10 +1009,10 @@ func checkTableFilter(t *testing.T, path string, data []byte) { } func TestTitlesOfTopN(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { - checkTitlesOfTopN(t, shortPath(path), data) + checkTitlesOfTopN(t, ShortPath(path), data) }, ) } @@ -1061,7 +1047,7 @@ func asTitle(id string) string { } func TestPercentHasMinMax(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkPercentHasMinMax(t, path, data) @@ -1069,9 +1055,9 @@ func TestPercentHasMinMax(t *testing.T) { } func checkPercentHasMinMax(t *testing.T, path string, data []byte) { - dashPath := shortPath(path) + dashPath := ShortPath(path) - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { panelType := value.Get("type").String() if panelType != "timeseries" { return @@ -1098,10 +1084,10 @@ func checkPercentHasMinMax(t *testing.T, path string, data []byte) { } func TestRefreshIsOff(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { - checkDashboardRefresh(t, shortPath(path), data) + checkDashboardRefresh(t, ShortPath(path), data) }, ) } @@ -1116,21 +1102,21 @@ func checkDashboardRefresh(t *testing.T, path string, data []byte) { } func TestHeatmapSettings(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { - checkHeatmapSettings(t, shortPath(path), data) + checkHeatmapSettings(t, ShortPath(path), data) }, ) } func checkHeatmapSettings(t *testing.T, path string, data []byte) { - dashPath := shortPath(path) + dashPath := ShortPath(path) const ( wantColorScheme = "interpolateRdYlGn" wantColorMode = "spectrum" ) - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { panelType := value.Get("type").String() if panelType != "heatmap" { return @@ -1149,7 +1135,7 @@ func checkHeatmapSettings(t *testing.T, path string, data []byte) { } func TestBytePanelsHave2Decimals(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { checkBytePanelsHave2Decimals(t, path, data) @@ -1157,7 +1143,7 @@ func TestBytePanelsHave2Decimals(t *testing.T) { } func checkBytePanelsHave2Decimals(t *testing.T, path string, data []byte) { - dashPath := shortPath(path) + dashPath := ShortPath(path) byteTypes := map[string]bool{ "bytes": true, "decbytes": true, @@ -1175,7 +1161,7 @@ func checkBytePanelsHave2Decimals(t *testing.T, path string, data []byte) { "decpbytes": true, } - visitAllPanels(data, func(path string, key, value gjson.Result) { + VisitAllPanels(data, func(path string, key, value gjson.Result) { panelType := value.Get("type").String() if panelType != "timeseries" { return @@ -1193,10 +1179,10 @@ func checkBytePanelsHave2Decimals(t *testing.T, path string, data []byte) { } func TestDashboardKeysAreSorted(t *testing.T) { - visitDashboards( + VisitDashboards( dashboards, func(path string, data []byte) { - path = shortPath(path) + path = ShortPath(path) sorted := pretty.PrettyOptions(data, &pretty.Options{ SortKeys: true, Indent: " ", @@ -1240,13 +1226,13 @@ func writeSorted(t *testing.T, path string, sorted []byte) string { } func TestDashboardTime(t *testing.T) { - visitDashboards(dashboards, func(path string, data []byte) { + VisitDashboards(dashboards, func(path string, data []byte) { checkDashboardTime(t, path, data) }) } func checkDashboardTime(t *testing.T, path string, data []byte) { - dashPath := shortPath(path) + dashPath := ShortPath(path) from := gjson.GetBytes(data, "time.from") to := gjson.GetBytes(data, "time.to") @@ -1261,14 +1247,14 @@ func checkDashboardTime(t *testing.T, path string, data []byte) { } func TestNoDrillDownRows(t *testing.T) { - visitDashboards(dashboards, func(path string, data []byte) { + VisitDashboards(dashboards, func(path string, data []byte) { checkRowNames(t, path, data) }) } func checkRowNames(t *testing.T, path string, data []byte) { - path = shortPath(path) - visitAllPanels(data, func(p string, key, value gjson.Result) { + path = ShortPath(path) + VisitAllPanels(data, func(p string, key, value gjson.Result) { kind := value.Get("type").String() if kind == "row" { title := value.Get("title").String() @@ -1277,5 +1263,76 @@ func checkRowNames(t *testing.T, path string, data []byte) { } } }) +} + +func TestDescription(t *testing.T) { + count := 0 + VisitDashboards( + []string{"../../../grafana/dashboards/cmode"}, + func(path string, data []byte) { + checkDescription(t, path, data, &count) + }) +} + +func checkDescription(t *testing.T, path string, data []byte, count *int) { + dashPath := ShortPath(path) + ignoreDashboards := []string{ + "cmode/health.json", "cmode/headroom.json", + } + if slices.Contains(ignoreDashboards, dashPath) { + fmt.Printf(`dashboard=%s skipped\n`, dashPath) + return + } + // we don't get description for below panels, we need to manually formed them as per our need. + ignoreList := []string{ + // These are from fsa + "Volume Access ($Activity) History", "Volume Access ($Activity) History By Percent", "Volume Modify ($Activity) History", "Volume Modify ($Activity) History By Percent", + // These are from snapmirror + "Destination Relationships per Node", "Source Relationships per SVM", "Destination Relationships per SVM", + // This is from workload + "Service Latency by Resources", + // These are from svm + "NFSv3 Latency Heatmap", "NFSv3 Read Latency Heatmap", "NFSv3 Write Latency Heatmap", + "NFSv4 Latency Heatmap", "NFSv4 Read Latency Heatmap", "NFSv4 Write Latency Heatmap", + "NFSv4.1 Latency Heatmap", "NFSv4.1 Read Latency Heatmap", "NFSv4.1 Write Latency Heatmap", + // This is from volume + "Top $TopResources Volumes by Inode Files Used Percentage", "Top $TopResources Volumes by Number of Compress Attempts", "Top $TopResources Volumes by Number of Compress Fail", + "Volume Latency by Op Type", "Volume IOPs per Type", + } + + VisitAllPanels(data, func(path string, key, value gjson.Result) { + kind := value.Get("type").String() + if kind == "row" || kind == "text" { + return + } + description := value.Get("description").String() + targetsSlice := value.Get("targets").Array() + title := value.Get("title").String() + if slices.Contains(ignoreList, title) { + fmt.Printf(`dashboard=%s panel="%s" has different description\n`, dashPath, title) + return + } + + if description == "" { + if len(targetsSlice) == 1 { + expr := targetsSlice[0].Get("expr").String() + if strings.Contains(expr, "/") || strings.Contains(expr, "+") || strings.Contains(expr, "-") || strings.Contains(expr, "on") { + // This indicates expressions with arithmetic operations, After adding appropriate description, this will be uncommented. + //t.Errorf(`dashboard=%s panel="%s" has many expressions`, dashPath, value.Get("title").String()) + fmt.Printf(`dashboard=%s panel="%s" has many expressions \n`, dashPath, title) + } else { + *count = *count + 1 + t.Errorf(`dashboard=%s panel="%s" hasn't panel description %d`, dashPath, title, *count) + } + } else { + // This indicates table/timeseries with more than 1 expressions, After deciding next steps, this will be uncommented. + //t.Errorf(`dashboard=%s panel="%s" has many expressions`, dashPath, value.Get("title").String()) + fmt.Printf(`dashboard=%s panel="%s" has many expressions \n`, dashPath, title) + } + } else if !strings.HasPrefix(description, "$") && !strings.HasSuffix(description, ".") { + // Few panels have description text from variable, which would be ignored. + t.Errorf(`dashboard=%s panel="%s" description hasn't ended with period`, dashPath, title) + } + }) } diff --git a/cmd/tools/grafana/grafana.go b/cmd/tools/grafana/grafana.go index 63f7f60bb..6037ef0d6 100644 --- a/cmd/tools/grafana/grafana.go +++ b/cmd/tools/grafana/grafana.go @@ -33,7 +33,7 @@ import ( const ( clientTimeout = 5 grafanaDataSource = "Prometheus" - gPerm os.FileMode = 644 + GPerm os.FileMode = 644 ) var ( @@ -173,7 +173,7 @@ func exportFiles(dir string, folder *Folder) error { return err } // creating dashboards with group and other permissions of read are OK - if err = os.WriteFile(fp, data, gPerm); err != nil { + if err = os.WriteFile(fp, data, GPerm); err != nil { fmt.Printf("error write to [%s]: %v\n", fp, err) return err } @@ -1038,7 +1038,6 @@ func init() { metricsCmd.PersistentFlags().StringVarP(&opts.dir, "directory", "d", "", "local directory that contains dashboards (searched recursively).") - } func addFlags(commands ...*cobra.Command) { diff --git a/cmd/tools/grafana/grafana_test.go b/cmd/tools/grafana/grafana_test.go index 9096d5310..6c0d1b698 100644 --- a/cmd/tools/grafana/grafana_test.go +++ b/cmd/tools/grafana/grafana_test.go @@ -73,7 +73,7 @@ func TestAddPrefixToMetricNames(t *testing.T) { ) prefix := "xx_" - visitDashboards( + VisitDashboards( []string{"../../../grafana/dashboards/cmode", "../../../grafana/dashboards/storagegrid"}, func(path string, data []byte) { oldExpressions = readExprs(data) @@ -106,7 +106,7 @@ func TestAddPrefixToMetricNames(t *testing.T) { func TestAddSvmRegex(t *testing.T) { regex := ".*ABC.*" - visitDashboards( + VisitDashboards( []string{"../../../grafana/dashboards/cmode/svm.json", "../../../grafana/dashboards/cmode/snapmirror.json"}, func(path string, data []byte) { file := filepath.Base(path) diff --git a/cmd/tools/grafana/metrics.go b/cmd/tools/grafana/metrics.go index eb06afae5..16f5fc4d8 100644 --- a/cmd/tools/grafana/metrics.go +++ b/cmd/tools/grafana/metrics.go @@ -25,7 +25,7 @@ var metricsCmd = &cobra.Command{ func doMetrics(_ *cobra.Command, _ []string) { adjustOptions() validateImport() - visitDashboards([]string{opts.dir}, func(path string, data []byte) { + VisitDashboards([]string{opts.dir}, func(path string, data []byte) { visitExpressionsAndQueries(path, data) }) } @@ -78,7 +78,7 @@ func visitExpressionsAndQueries(path string, data []byte) { } } - fmt.Printf("%s\n", shortPath(path)) + fmt.Printf("%s\n", ShortPath(path)) metrics := setToList(metricsSeen) for _, metric := range metrics { fmt.Printf("- %s\n", metric) @@ -153,7 +153,7 @@ func doTarget(pathPrefix string, key gjson.Result, value gjson.Result, } } -func visitDashboards(dirs []string, eachDash func(path string, data []byte)) { +func VisitDashboards(dirs []string, eachDash func(path string, data []byte)) { for _, dir := range dirs { err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if strings.Contains(path, "influxdb") { @@ -179,7 +179,21 @@ func visitDashboards(dirs []string, eachDash func(path string, data []byte)) { } } -func shortPath(dashPath string) string { +func VisitAllPanels(data []byte, handle func(path string, key gjson.Result, value gjson.Result)) { + visitPanels(data, "panels", "", handle) +} + +func visitPanels(data []byte, panelPath string, pathPrefix string, handle func(path string, key gjson.Result, value gjson.Result)) { + gjson.GetBytes(data, panelPath).ForEach(func(key, value gjson.Result) bool { + path := fmt.Sprintf("%s[%d]", panelPath, key.Int()) + fullPath := fmt.Sprintf("%s%s", pathPrefix, path) + handle(fullPath, key, value) + visitPanels([]byte(value.Raw), "panels", fullPath, handle) + return true + }) +} + +func ShortPath(dashPath string) string { splits := strings.Split(dashPath, string(filepath.Separator)) return strings.Join(splits[len(splits)-2:], string(filepath.Separator)) } diff --git a/grafana/dashboards/cmode/aggregate.json b/grafana/dashboards/cmode/aggregate.json index 34730c409..f86e663a2 100644 --- a/grafana/dashboards/cmode/aggregate.json +++ b/grafana/dashboards/cmode/aggregate.json @@ -100,7 +100,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of aggregates.", "fieldConfig": { "defaults": { "color": { @@ -176,7 +176,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of disks in the aggregate.", "fieldConfig": { "defaults": { "color": { @@ -252,7 +252,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of flexvol volumes in the aggregate.", "fieldConfig": { "defaults": { "color": { @@ -327,7 +327,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total usable space in bytes, not including WAFL reserve and aggregate Snapshot copy reserve.", "fieldConfig": { "defaults": { "color": { @@ -385,7 +385,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Space available in bytes.", "fieldConfig": { "defaults": { "color": { @@ -443,7 +443,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Percent of space used.", "fieldConfig": { "defaults": { "color": { @@ -502,7 +502,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Aggregate details.", "fieldConfig": { "defaults": { "color": { @@ -977,7 +977,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total physical used size of an aggregate in bytes.", "fieldConfig": { "defaults": { "color": { @@ -1068,7 +1068,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Space available in bytes.", "fieldConfig": { "defaults": { "color": { @@ -1159,7 +1159,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Used space in bytes in the cloud store. Only applicable for aggregates with a cloud store tier.", "fieldConfig": { "defaults": { "color": { @@ -1250,7 +1250,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Space saved in bytes by compacting the data.", "fieldConfig": { "defaults": { "color": { @@ -1341,7 +1341,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of space saved in bytes by storage efficiency.", "fieldConfig": { "defaults": { "color": { @@ -1530,7 +1530,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The percentage of disk space currently in use based on user-visible file count on the referenced file system.", "fieldConfig": { "defaults": { "color": { @@ -1911,7 +1911,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Percentage of disk space used by Snapshot copies.", "fieldConfig": { "defaults": { "color": { @@ -2002,7 +2002,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Percentage of space reserved for Snapshot copies.", "fieldConfig": { "defaults": { "color": { @@ -2093,7 +2093,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The percentage of disk space currently in use based on user-visible file (inode) count on the referenced file system.", "fieldConfig": { "defaults": { "color": { @@ -2396,6 +2396,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Storage efficiency ratio of space used.", "fieldConfig": { "defaults": { "color": { @@ -2451,6 +2452,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Storage efficiency ratio without snapshot.", "fieldConfig": { "defaults": { "color": { @@ -2507,6 +2509,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Storage efficiency ratio without snapshots and flexclones.", "fieldConfig": { "defaults": { "color": { @@ -2562,7 +2565,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Logical used.", "fieldConfig": { "defaults": { "color": { @@ -2647,6 +2650,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total Physical Used.", "fieldConfig": { "defaults": { "color": { @@ -2731,6 +2735,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Logical used.", "fieldConfig": { "defaults": { "color": { @@ -2815,6 +2820,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total Data Reduction Physical Used Without Snapshots.", "fieldConfig": { "defaults": { "color": { @@ -2899,7 +2905,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Logical used.", "fieldConfig": { "defaults": { "color": { @@ -2984,6 +2990,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total data deduction physical used without snapshots and Flexclones.", "fieldConfig": { "defaults": { "color": { @@ -3083,7 +3090,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Disk Utilization per Aggregate for latest record (independent of time range selected)", + "description": "Disk Utilization per Aggregate for latest record (independent of time range selected).", "fieldConfig": { "defaults": { "custom": { @@ -3243,7 +3250,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Disk Utilization per Aggregate in the selected time range", + "description": "Disk Utilization per Aggregate in the selected time range.", "fieldConfig": { "defaults": { "color": { @@ -3929,7 +3936,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "A summation of volume footprints (including volume guarantees), in bytes. This includes all of the volume footprints in the block_storage tier and the cloud_storage tier.This is an advanced property; there is an added computational cost to retrieving its value. The field is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter containing either footprint or **.", "fieldConfig": { "defaults": { "color": { @@ -4023,7 +4030,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Volume footprints percent.", "fieldConfig": { "defaults": { "color": { @@ -4118,7 +4125,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Used space in bytes in the cloud store. Only applicable for aggregates with a cloud store tier.", "fieldConfig": { "defaults": { "color": { @@ -4506,7 +4513,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Flexgroup by-aggregate filtering does not display the per-aggregate breakdown, instead the sum of all flexgroup aggregates is displayed. This is how ONTAP reports the data, even when an aggregate is selected in the dropdown.\n\nNote that in some scenarios, it is possible to exceed 100% of the space allocated.\n", + "description": "Flexgroup by-aggregate filtering does not display the per-aggregate breakdown, instead the sum of all flexgroup aggregates is displayed. This is how ONTAP reports the data, even when an aggregate is selected in the dropdown.\n\nNote that in some scenarios, it is possible to exceed 100% of the space allocated.\n.", "fieldConfig": { "defaults": { "color": { @@ -4601,7 +4608,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in bytes for the performance tier (bin 0).", "fieldConfig": { "defaults": { "color": { @@ -4695,7 +4702,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in performance tier (bin 0) as a percentage of aggregate size.", "fieldConfig": { "defaults": { "color": { @@ -4790,7 +4797,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in bytes for capacity tier (bin 1).", "fieldConfig": { "defaults": { "color": { @@ -4884,7 +4891,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in capacity tier (bin 1) as a percentage of aggregate size.", "fieldConfig": { "defaults": { "color": { @@ -4994,7 +5001,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -5083,7 +5090,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes read per second.", "fieldConfig": { "defaults": { "color": { @@ -5173,7 +5180,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of read operations per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -5262,7 +5269,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -5351,7 +5358,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes written per second.", "fieldConfig": { "defaults": { "color": { @@ -5440,7 +5447,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of write operations per second to the volume.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/cdot.json b/grafana/dashboards/cmode/cdot.json index 0277b30c1..f76c676a9 100644 --- a/grafana/dashboards/cmode/cdot.json +++ b/grafana/dashboards/cmode/cdot.json @@ -90,7 +90,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of CIFS operations per second.", "fieldConfig": { "defaults": { "color": { @@ -180,7 +180,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of NFS operations per second.", "fieldConfig": { "defaults": { "color": { @@ -270,7 +270,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { @@ -548,6 +548,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time. node_volume_avg_latency is [volume_avg_latency](#volume_avg_latency) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -653,6 +654,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "SVM space used percent.", "fieldConfig": { "defaults": { "color": { @@ -783,6 +785,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Volume space used percent.", "fieldConfig": { "defaults": { "color": { @@ -913,6 +916,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Aggregate space used percent.", "fieldConfig": { "defaults": { "color": { @@ -1051,6 +1055,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "SVM space used percent.", "fieldConfig": { "defaults": { "color": { @@ -1140,6 +1145,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Volume space used percent.", "fieldConfig": { "defaults": { "color": { @@ -1229,6 +1235,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Aggregate space used percent.", "fieldConfig": { "defaults": { "color": { @@ -1333,6 +1340,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1421,6 +1429,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "SVM total throughput.", "fieldConfig": { "defaults": { "color": { @@ -1509,6 +1518,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { @@ -1612,7 +1622,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1703,7 +1713,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Volume total throughput.", "fieldConfig": { "defaults": { "color": { @@ -1794,7 +1804,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/changelogMonitor.json b/grafana/dashboards/cmode/changelogMonitor.json index 67e78e71e..e34319a45 100644 --- a/grafana/dashboards/cmode/changelogMonitor.json +++ b/grafana/dashboards/cmode/changelogMonitor.json @@ -304,7 +304,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "`Poller Time:` The timestamp when Harvest Poller captured the change \n\n`Object:` The name of the ONTAP object that was changed (e.g., volume, svm, node) \n\n`OP:` The type of change that was made (e.g., create, update, delete) \n\n`Track:` Property of the object which was modified \n\n`New Value:` The new value of the object after the change was made \n\n`Old Value:` The previous value of the object before the change was made", + "description": "`Poller Time:` The timestamp when Harvest Poller captured the change \n\n`Object:` The name of the ONTAP object that was changed (e.g., volume, svm, node) \n\n`OP:` The type of change that was made (e.g., create, update, delete) \n\n`Track:` Property of the object which was modified \n\n`New Value:` The new value of the object after the change was made \n\n`Old Value:` The previous value of the object before the change was made.", "fieldConfig": { "defaults": { "color": { @@ -655,7 +655,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "`Poller Time:` The timestamp when Harvest Poller captured the change \n\n`Object:` The name of the ONTAP object that was changed (e.g., volume, svm, node) \n\n`OP:` The type of change that was made (e.g., create, update, delete) \n\n`Track:` Property of the object which was modified \n\n`New Value:` The new value of the object after the change was made \n\n`Old Value:` The previous value of the object before the change was made", + "description": "`Poller Time:` The timestamp when Harvest Poller captured the change \n\n`Object:` The name of the ONTAP object that was changed (e.g., volume, svm, node) \n\n`OP:` The type of change that was made (e.g., create, update, delete) \n\n`Track:` Property of the object which was modified \n\n`New Value:` The new value of the object after the change was made \n\n`Old Value:` The previous value of the object before the change was made.", "fieldConfig": { "defaults": { "color": { @@ -1011,7 +1011,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "`Poller Time:` The timestamp when Harvest Poller captured the change \n\n`Object:` The name of the ONTAP object that was changed (e.g., volume, svm, node) \n\n`OP:` The type of change that was made (e.g., create, update, delete) \n\n`Track:` Property of the object which was modified \n\n`New Value:` The new value of the object after the change was made \n\n`Old Value:` The previous value of the object before the change was made", + "description": "`Poller Time:` The timestamp when Harvest Poller captured the change \n\n`Object:` The name of the ONTAP object that was changed (e.g., volume, svm, node) \n\n`OP:` The type of change that was made (e.g., create, update, delete) \n\n`Track:` Property of the object which was modified \n\n`New Value:` The new value of the object after the change was made \n\n`Old Value:` The previous value of the object before the change was made.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json index fad7836bb..12431964e 100644 --- a/grafana/dashboards/cmode/cluster.json +++ b/grafana/dashboards/cmode/cluster.json @@ -105,6 +105,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time. node_volume_read_latency is [volume_read_latency](#volume_read_latency) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -227,6 +228,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time. node_volume_write_latency is [volume_write_latency](#volume_write_latency) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -349,6 +351,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Node total throughput.", "fieldConfig": { "defaults": { "color": { @@ -447,6 +450,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of operations per second serviced by the volume. node_volume_total_ops is [volume_total_ops](#volume_total_ops) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -545,7 +549,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average processor utilization across all processors in the system", + "description": "Average processor utilization across all processors in the system.", "fieldConfig": { "defaults": { "color": { @@ -791,6 +795,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time. node_volume_avg_latency is [volume_avg_latency](#volume_avg_latency) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -882,6 +887,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Node total throughput.", "fieldConfig": { "defaults": { "color": { @@ -973,6 +979,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of operations per second serviced by the volume. node_volume_total_ops is [volume_total_ops](#volume_total_ops) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -1064,6 +1071,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The utilization percent of the disk. node_disk_busy is [disk_busy](#disk_busy) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -1197,7 +1205,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Node details.", "fieldConfig": { "defaults": { "custom": { @@ -1470,7 +1478,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "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.", "fieldConfig": { "defaults": { "color": { @@ -1630,7 +1638,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average processor utilization across all processors in the system", + "description": "Average processor utilization across all processors in the system.", "fieldConfig": { "defaults": { "color": { @@ -1704,7 +1712,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Cluster subsystem details.", "fieldConfig": { "defaults": { "custom": { @@ -1958,7 +1966,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The utilization percent of the disk. node_disk_max_busy is the maximum of [disk_busy](#disk_busy) for label `node`.", "fieldConfig": { "defaults": { "color": { @@ -2032,7 +2040,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The utilization percent of the disk. node_disk_busy is [disk_busy](#disk_busy) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -2107,7 +2115,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Aggregate space used percent.", "fieldConfig": { "defaults": { "color": { @@ -2267,7 +2275,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average processor utilization across all processors in the system", + "description": "Average processor utilization across all processors in the system.", "fieldConfig": { "defaults": { "color": { @@ -2369,6 +2377,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -2460,6 +2469,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Volume total throughput.", "fieldConfig": { "defaults": { "color": { @@ -2550,6 +2560,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { @@ -2640,7 +2651,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The utilization percent of the disk. aggr_disk_busy is [disk_busy](#disk_busy) aggregated by `aggr`.", "fieldConfig": { "defaults": { "color": { @@ -2733,7 +2744,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The percentage of disk space currently in use on the referenced file system.", "fieldConfig": { "defaults": { "color": { @@ -2826,7 +2837,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average processor utilization across all processors in the system", + "description": "Average processor utilization across all processors in the system.", "fieldConfig": { "defaults": { "color": { @@ -3027,6 +3038,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Storage efficiency ratio of space used.", "fieldConfig": { "defaults": { "color": { @@ -3082,6 +3094,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Storage efficiency ratio without snapshot.", "fieldConfig": { "defaults": { "color": { @@ -3137,6 +3150,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Storage efficiency ratio without snapshot and flexclone.", "fieldConfig": { "defaults": { "color": { @@ -3192,7 +3206,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Logical used.", "fieldConfig": { "defaults": { "color": { @@ -3276,6 +3290,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total Physical Used.", "fieldConfig": { "defaults": { "color": { @@ -3359,6 +3374,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Logical used.", "fieldConfig": { "defaults": { "color": { @@ -3442,6 +3458,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total Data Reduction Physical Used Without Snapshots.", "fieldConfig": { "defaults": { "color": { @@ -3525,7 +3542,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Logical used.", "fieldConfig": { "defaults": { "color": { @@ -3609,6 +3626,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total data reduction physical used without snapshots and flexclones.", "fieldConfig": { "defaults": { "color": { @@ -3707,6 +3725,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -3792,7 +3811,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "SVM total throughput.", "fieldConfig": { "defaults": { "color": { @@ -3880,7 +3899,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/data_protection_snapshot.json b/grafana/dashboards/cmode/data_protection_snapshot.json index 00719d08b..afd86c159 100644 --- a/grafana/dashboards/cmode/data_protection_snapshot.json +++ b/grafana/dashboards/cmode/data_protection_snapshot.json @@ -102,7 +102,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Volumes Protected With Snapshot Copies (local)", + "description": "Volumes Protected With Snapshot Copies (local).", "fieldConfig": { "defaults": { "color": { @@ -268,7 +268,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Volumes Breaching Snapshot Copy Reserve Space", + "description": "Volumes Breaching Snapshot Copy Reserve Space.", "fieldConfig": { "defaults": { "color": { @@ -731,7 +731,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Volumes details of snapshot copy reserve space.", "fieldConfig": { "defaults": { "custom": { diff --git a/grafana/dashboards/cmode/disk.json b/grafana/dashboards/cmode/disk.json index 818da7ae3..3263b7be8 100644 --- a/grafana/dashboards/cmode/disk.json +++ b/grafana/dashboards/cmode/disk.json @@ -100,7 +100,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of disks.", "fieldConfig": { "defaults": { "mappings": [ @@ -172,7 +172,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of failed disks.", "fieldConfig": { "defaults": { "mappings": [ @@ -244,7 +244,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The utilization percent of the disk. aggr_disk_busy is [disk_busy](#disk_busy) aggregated by `aggr`.", "fieldConfig": { "defaults": { "mappings": [ @@ -316,7 +316,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The utilization percent of the disk. aggr_disk_busy is [disk_busy](#disk_busy) aggregated by `aggr`.", "fieldConfig": { "defaults": { "mappings": [ @@ -388,7 +388,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of disks in the aggregate.", "fieldConfig": { "defaults": { "mappings": [ @@ -459,7 +459,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Disk capacity per aggregate detail.", "fieldConfig": { "defaults": { "custom": { @@ -754,7 +754,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Highest Disk Utilization per Aggregate for latest record (independent of time range selected)", + "description": "Highest Disk Utilization per Aggregate for latest record (independent of time range selected).", "fieldConfig": { "defaults": { "custom": { @@ -981,7 +981,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Highest Disk Utilization per Aggregate in the selected time range", + "description": "Highest Disk Utilization per Aggregate in the selected time range.", "fieldConfig": { "defaults": { "color": { @@ -1072,7 +1072,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total number of disk operations involving data transfer initiated per second\n", + "description": "Total number of disk operations involving data transfer initiated per second\n.", "fieldConfig": { "defaults": { "color": { @@ -1161,7 +1161,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average number of blocks transferred in each user read operation. aggr_disk_max_user_read_chain is the maximum of [disk_user_read_chain](#disk_user_read_chain) for label `aggr`.", "fieldConfig": { "defaults": { "color": { @@ -1253,7 +1253,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average number of blocks transferred in each user write operation. aggr_disk_max_user_write_chain is the maximum of [disk_user_write_chain](#disk_user_write_chain) for label `aggr`.", "fieldConfig": { "defaults": { "color": { @@ -1360,7 +1360,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Average latency per block in microseconds for user read operations", + "description": "Average latency per block in microseconds for user read operations.", "fieldConfig": { "defaults": { "color": { @@ -1452,7 +1452,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average latency per block in microseconds for user write operations", + "description": "Average latency per block in microseconds for user write operations.", "fieldConfig": { "defaults": { "color": { @@ -1544,7 +1544,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total number of disk operations involving data transfer initiated per second", + "description": "Total number of disk operations involving data transfer initiated per second.", "fieldConfig": { "defaults": { "color": { @@ -1636,7 +1636,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "The utilization percent of the disk in the selected time range", + "description": "The utilization percent of the disk in the selected time range.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/external_service_op.json b/grafana/dashboards/cmode/external_service_op.json index 2a61df8c9..8dfe6ccfd 100644 --- a/grafana/dashboards/cmode/external_service_op.json +++ b/grafana/dashboards/cmode/external_service_op.json @@ -212,7 +212,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for request latency values of this operation to the specified server", + "description": "This panel tracks histograms for request latency values of this operation to the specified server.", "gridPos": { "h": 9, "w": 12, diff --git a/grafana/dashboards/cmode/flexgroup.json b/grafana/dashboards/cmode/flexgroup.json index 3ebc6eea7..4f3fc013b 100644 --- a/grafana/dashboards/cmode/flexgroup.json +++ b/grafana/dashboards/cmode/flexgroup.json @@ -122,7 +122,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -213,7 +213,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Volume total throughput.", "fieldConfig": { "defaults": { "color": { @@ -304,7 +304,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { @@ -406,7 +406,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "FlexGroup constituents details.", "fieldConfig": { "defaults": { "custom": { @@ -770,6 +770,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -891,6 +892,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes read per second.", "fieldConfig": { "defaults": { "color": { @@ -980,6 +982,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of read operations per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -1069,6 +1072,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1191,6 +1195,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes written per second.", "fieldConfig": { "defaults": { "color": { @@ -1281,6 +1286,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of write operations per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -1386,7 +1392,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in bytes for the performance tier (bin 0).", "fieldConfig": { "defaults": { "color": { @@ -1480,7 +1486,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in performance tier (bin 0) as a percentage of aggregate size.", "fieldConfig": { "defaults": { "color": { @@ -1575,7 +1581,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in bytes for capacity tier (bin 1).", "fieldConfig": { "defaults": { "color": { @@ -1669,7 +1675,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in capacity tier (bin 1) as a percentage of aggregate size.", "fieldConfig": { "defaults": { "color": { @@ -1779,7 +1785,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1869,7 +1875,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1959,7 +1965,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process other operations to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -2050,7 +2056,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of read operations per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -2140,7 +2146,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of write operations per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -2230,7 +2236,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of other operations per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -2321,7 +2327,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes read per second.", "fieldConfig": { "defaults": { "color": { @@ -2412,7 +2418,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes written per second.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/fsa.json b/grafana/dashboards/cmode/fsa.json index 9faa5a3a7..00435e972 100644 --- a/grafana/dashboards/cmode/fsa.json +++ b/grafana/dashboards/cmode/fsa.json @@ -147,7 +147,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The virtual space used (includes volume reserves) before storage efficiency, in bytes.", "fieldConfig": { "defaults": { "mappings": [], @@ -215,7 +215,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The available space, in bytes.", "fieldConfig": { "defaults": { "mappings": [], @@ -272,7 +272,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total size of AFS, excluding snap-reserve, in bytes.", "fieldConfig": { "defaults": { "mappings": [], @@ -329,6 +329,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Volume space used percent.", "fieldConfig": { "defaults": { "color": { @@ -390,7 +391,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total directory count including the root and children directories", + "description": "Total directory count including the root and children directories.", "fieldConfig": { "defaults": { "color": { @@ -448,6 +449,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The actual number of bytes used on disk by this file. If byte_offset and length parameters are specified, this will return the bytes used by the file within the given range.", "fieldConfig": { "defaults": { "color": { @@ -535,7 +537,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total number of files in root and child directories", + "description": "Total number of files in root and child directories.", "fieldConfig": { "defaults": { "color": { @@ -593,7 +595,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Shows Top 100 directories per volume", + "description": "Shows Top 100 directories per volume.", "fieldConfig": { "defaults": { "color": { @@ -775,6 +777,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "", "fieldConfig": { "defaults": { "color": { @@ -925,6 +928,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "", "fieldConfig": { "defaults": { "color": { @@ -1076,6 +1080,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "", "fieldConfig": { "defaults": { "color": { @@ -1226,6 +1231,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/lun.json b/grafana/dashboards/cmode/lun.json index 661f08513..851286267 100644 --- a/grafana/dashboards/cmode/lun.json +++ b/grafana/dashboards/cmode/lun.json @@ -105,7 +105,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average Latency of top $TopResources volumes", + "description": "Average Latency of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -169,7 +169,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average Latency of top $TopResources volumes", + "description": "Average Latency of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -233,7 +233,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Throughput of top $TopResources volumes", + "description": "Throughput of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -289,7 +289,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Throughput of top $TopResources volumes", + "description": "Throughput of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -345,7 +345,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "IOPs of top $TopResources volumes", + "description": "IOPs of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -401,7 +401,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "IOPs of top $TopResources volumes", + "description": "IOPs of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -468,6 +468,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average read latency in microseconds for all operations on the LUN.", "fieldConfig": { "defaults": { "color": { @@ -612,6 +613,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Read bytes.", "fieldConfig": { "defaults": { "color": { @@ -716,6 +718,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of read operations.", "fieldConfig": { "defaults": { "color": { @@ -820,6 +823,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average write latency in microseconds for all operations on the LUN.", "fieldConfig": { "defaults": { "color": { @@ -957,6 +961,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Write bytes.", "fieldConfig": { "defaults": { "color": { @@ -1061,6 +1066,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of write operations.", "fieldConfig": { "defaults": { "color": { @@ -1165,7 +1171,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "LUN details.", "fieldConfig": { "defaults": { "custom": { @@ -1431,7 +1437,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average read latency in microseconds for all operations on the LUN.", "fieldConfig": { "defaults": { "color": { @@ -1522,7 +1528,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Read bytes.", "fieldConfig": { "defaults": { "color": { @@ -1614,7 +1620,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of read operations.", "fieldConfig": { "defaults": { "color": { @@ -1705,7 +1711,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average write latency in microseconds for all operations on the LUN.", "fieldConfig": { "defaults": { "color": { @@ -1796,7 +1802,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Write bytes.", "fieldConfig": { "defaults": { "color": { @@ -1888,7 +1894,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of write operations.", "fieldConfig": { "defaults": { "color": { @@ -1994,6 +2000,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Histogram of WAFL write alignment (number of sectors off WAFL block start).", "fieldConfig": { "defaults": { "color": { @@ -2096,6 +2103,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Histogram of WAFL read alignment (number sectors off WAFL block start).", "fieldConfig": { "defaults": { "color": { @@ -2198,6 +2206,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of operations received by a storage system that does not own the LUN targeted by the operations.", "fieldConfig": { "defaults": { "color": { @@ -2332,7 +2341,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -2422,7 +2431,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -2513,7 +2522,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -2604,7 +2613,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -2694,7 +2703,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -2784,7 +2793,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -2875,7 +2884,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -2966,7 +2975,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3057,7 +3066,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3147,7 +3156,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3237,7 +3246,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3342,6 +3351,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "percentage of utilized storage space in a volume relative to its total capacity.", "fieldConfig": { "defaults": { "color": { @@ -3433,6 +3443,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Percentage of snapshot reserve size that has been used.", "fieldConfig": { "defaults": { "color": { @@ -3524,6 +3535,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Percentage of the total disk space that is saved by deduplication and file cloning.", "fieldConfig": { "defaults": { "color": { @@ -3615,6 +3627,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Percentage of the total disk space that is saved by compressing blocks on the referenced file system.", "fieldConfig": { "defaults": { "color": { @@ -3706,6 +3719,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "LUN used percent.", "fieldConfig": { "defaults": { "color": { @@ -3799,6 +3813,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "LUN used percent.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/mcc_cluster.json b/grafana/dashboards/cmode/mcc_cluster.json index 26a73ed5f..385d7fcf8 100644 --- a/grafana/dashboards/cmode/mcc_cluster.json +++ b/grafana/dashboards/cmode/mcc_cluster.json @@ -108,6 +108,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -188,6 +189,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", + "description": "Average RDMA write I/O latency.", "fieldConfig": { "defaults": { "color": { @@ -268,6 +270,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", + "description": "RDMA write throughput in bytes per second.", "fieldConfig": { "defaults": { "color": { @@ -344,6 +347,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", + "description": "Number of RDMA write I/Os issued per second.", "fieldConfig": { "defaults": { "color": { @@ -419,7 +423,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "Average processor utilization across all processors in the system", + "description": "Average processor utilization across all processors in the system.", "fieldConfig": { "defaults": { "color": { @@ -498,6 +502,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", + "description": "The utilization percent of the disk. aggr_disk_max_busy is the maximum of [disk_busy](#disk_busy) for label `aggr`.", "fieldConfig": { "defaults": { "color": { @@ -586,7 +591,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Average RDMA write I/O latency per node", + "description": "Average RDMA write I/O latency per node.", "fieldConfig": { "defaults": { "color": { @@ -679,7 +684,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average RDMA write throughput in bytes per second per node", + "description": "Average RDMA write throughput in bytes per second per node.", "fieldConfig": { "defaults": { "color": { @@ -772,7 +777,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average Number of RDMA write I/Os issued per second per node", + "description": "Average Number of RDMA write I/Os issued per second per node.", "fieldConfig": { "defaults": { "color": { @@ -865,7 +870,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times hard reset of FCVI adapter got issued per node", + "description": "Total Number of times hard reset of FCVI adapter got issued per node.", "fieldConfig": { "defaults": { "color": { @@ -958,7 +963,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times soft reset of FCVI adapter got issued per node", + "description": "Total Number of times soft reset of FCVI adapter got issued per node.", "fieldConfig": { "defaults": { "color": { @@ -1051,7 +1056,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times Firmware reported link failure count per node", + "description": "Total Number of times Firmware reported link failure count per node.", "fieldConfig": { "defaults": { "color": { @@ -1144,7 +1149,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times Firmware reported loss of signal count per node", + "description": "Total Number of times Firmware reported loss of signal count per node.", "fieldConfig": { "defaults": { "color": { @@ -1237,7 +1242,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times Firmware reported loss of sync count per node", + "description": "Total Number of times Firmware reported loss of sync count per node.", "fieldConfig": { "defaults": { "color": { @@ -1330,7 +1335,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times Firmware reported SyStatDiscardFrames value per node", + "description": "Total Number of times Firmware reported SyStatDiscardFrames value per node.", "fieldConfig": { "defaults": { "color": { @@ -1423,7 +1428,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times Firmware reported invalid crc count per node", + "description": "Total Number of times Firmware reported invalid crc count per node.", "fieldConfig": { "defaults": { "color": { @@ -1516,7 +1521,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Total Number of times Firmware reported invalid transmit word count per node", + "description": "Total Number of times Firmware reported invalid transmit word count per node.", "fieldConfig": { "defaults": { "color": { @@ -1625,7 +1630,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Average Number of RDMA I/Os issued per node", + "description": "Average Number of RDMA I/Os issued per node.", "fieldConfig": { "defaults": { "color": { @@ -1718,7 +1723,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average Number of RDMA read I/Os issued per node", + "description": "Average Number of RDMA read I/Os issued per node.", "fieldConfig": { "defaults": { "color": { @@ -1811,7 +1816,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average Number of RDMA write I/Os issued per node", + "description": "Average Number of RDMA write I/Os issued per node.", "fieldConfig": { "defaults": { "color": { @@ -1904,7 +1909,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average RDMA I/O latency per node", + "description": "Average RDMA I/O latency per node.", "fieldConfig": { "defaults": { "color": { @@ -2013,6 +2018,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "The utilization percent of the disk. plex_disk_busy is disk_busy aggregated by plex.", "fieldConfig": { "defaults": { "color": { @@ -2112,6 +2118,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The utilization percent of the disk. plex_disk_busy is disk_busy aggregated by plex.", "fieldConfig": { "defaults": { "color": { @@ -2253,6 +2260,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of disk read operations initiated each second for retrieving data or metadata associated with user requests. plex_disk_user_reads is [disk_user_reads](#disk_user_reads) aggregated by `plex`.", "fieldConfig": { "defaults": { "color": { @@ -2345,6 +2353,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of disk write operations initiated each second for storing data or metadata associated with user requests. plex_disk_user_writes is [disk_user_writes](#disk_user_writes) aggregated by `plex`.", "fieldConfig": { "defaults": { "color": { @@ -2440,6 +2449,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency per block in microseconds for user read operations. plex_disk_user_read_latency is [disk_user_read_latency](#disk_user_read_latency) aggregated by `plex`.", "fieldConfig": { "defaults": { "color": { @@ -2533,6 +2543,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency per block in microseconds for user write operations. plex_disk_user_write_latency is [disk_user_write_latency](#disk_user_write_latency) aggregated by `plex`.", "fieldConfig": { "defaults": { "color": { @@ -2638,6 +2649,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes read through a host adapter.", "fieldConfig": { "defaults": { "color": { @@ -2731,6 +2743,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes written through a host adapter.", "fieldConfig": { "defaults": { "color": { @@ -2840,6 +2853,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "The average latency of I/O read operations sent from this controller to the indicated target port.", "fieldConfig": { "defaults": { "color": { @@ -2932,6 +2946,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The average read throughput in kilobytes per second read from the indicated target port by the controller.", "fieldConfig": { "defaults": { "color": { @@ -3024,6 +3039,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The number of I/O read operations sent from the initiator port to the indicated target port.", "fieldConfig": { "defaults": { "color": { @@ -3116,6 +3132,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The average latency of I/O write operations sent from this controller to the indicated target port.", "fieldConfig": { "defaults": { "color": { @@ -3208,6 +3225,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The average write throughput in kilobytes per second written to the indicated target port by the controller.", "fieldConfig": { "defaults": { "color": { @@ -3300,6 +3318,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The number of I/O write operations sent from the initiator port to the indicated target port.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/metadata.json b/grafana/dashboards/cmode/metadata.json index 3d26a8f1b..403607437 100644 --- a/grafana/dashboards/cmode/metadata.json +++ b/grafana/dashboards/cmode/metadata.json @@ -112,7 +112,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of datacenters.", "fieldConfig": { "defaults": { "color": { @@ -175,7 +175,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of pollers.", "fieldConfig": { "defaults": { "color": { @@ -250,6 +250,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", + "description": "Number of collectors.", "fieldConfig": { "defaults": { "color": { @@ -324,7 +325,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of exporters.", "fieldConfig": { "defaults": { "color": { @@ -398,7 +399,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "Data points collected last 24h", + "description": "Data points collected last 24h.", "fieldConfig": { "defaults": { "color": { @@ -472,7 +473,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "Data points collected per minute", + "description": "Data points collected per minute.", "fieldConfig": { "defaults": { "color": { @@ -547,7 +548,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "Data points exported per minute", + "description": "Data points exported per minute.", "fieldConfig": { "defaults": { "color": { @@ -621,7 +622,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Target system details.", "fieldConfig": { "defaults": { "color": { @@ -969,7 +970,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "System Memory used by Harvest Pollers", + "description": "System Memory used by Harvest Pollers.", "fieldConfig": { "defaults": { "color": { @@ -1046,7 +1047,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Detail of pollers.", "fieldConfig": { "defaults": { "color": { @@ -1286,7 +1287,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Detail of collectors.", "fieldConfig": { "defaults": { "color": { @@ -1528,7 +1529,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Detail of exporters.", "fieldConfig": { "defaults": { "color": { @@ -1751,7 +1752,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average duration of data poll of all collectors", + "description": "Average duration of data poll of all collectors.", "fieldConfig": { "defaults": { "color": { @@ -1842,7 +1843,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average duration of data poll (includes API time and plugins)", + "description": "Average duration of data poll (includes API time and plugins).", "fieldConfig": { "defaults": { "color": { @@ -1933,7 +1934,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average export time (includes render time)", + "description": "Average export time (includes render time).", "fieldConfig": { "defaults": { "color": { @@ -2035,7 +2036,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "amount of time it took for the poll to finish.", "fieldConfig": { "defaults": { "color": { @@ -2125,7 +2126,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "API wait time of each data poll", + "description": "API wait time of each data poll.", "fieldConfig": { "defaults": { "color": { @@ -2215,7 +2216,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "API wait time of each data poll", + "description": "API wait time of each data poll.", "fieldConfig": { "defaults": { "color": { @@ -2305,7 +2306,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "amount of time to parse XML, JSON, etc. for cluster object.", "fieldConfig": { "defaults": { "color": { @@ -2395,7 +2396,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "amount of time it took to compute metrics between two successive polls, specifically using properties like raw, delta, rate, average, and percent. This metric is available for ZapiPerf/RestPerf collectors.", "fieldConfig": { "defaults": { "color": { @@ -2620,7 +2621,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Two values:\n- IN: number of data points pushed from collectors to the exporter\n- OUT: number of data points delivered to the Prometheus database over HTTP (might be more than IN, if Prometheus scrapes Harvest with a higher interval)", + "description": "Two values:\n- IN: number of data points pushed from collectors to the exporter\n- OUT: number of data points delivered to the Prometheus database over HTTP (might be more than IN, if Prometheus scrapes Harvest with a higher interval).", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/namespace.json b/grafana/dashboards/cmode/namespace.json index b072d6501..c57301aff 100644 --- a/grafana/dashboards/cmode/namespace.json +++ b/grafana/dashboards/cmode/namespace.json @@ -93,7 +93,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average read latency in microseconds for all operations on the Namespace.", "fieldConfig": { "defaults": { "color": { @@ -184,7 +184,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Read bytes.", "fieldConfig": { "defaults": { "color": { @@ -276,7 +276,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of read operations.", "fieldConfig": { "defaults": { "color": { @@ -367,7 +367,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average write latency in microseconds for all operations on the Namespace.", "fieldConfig": { "defaults": { "color": { @@ -458,7 +458,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Write bytes.", "fieldConfig": { "defaults": { "color": { @@ -550,7 +550,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of write operations.", "fieldConfig": { "defaults": { "color": { @@ -652,6 +652,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "NVMe namespace details.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/network.json b/grafana/dashboards/cmode/network.json index f790699a1..fce4b505b 100644 --- a/grafana/dashboards/cmode/network.json +++ b/grafana/dashboards/cmode/network.json @@ -105,7 +105,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes sent.", "fieldConfig": { "defaults": { "mappings": [], @@ -255,7 +255,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes received.", "fieldConfig": { "defaults": { "mappings": [], @@ -311,7 +311,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes sent.", "fieldConfig": { "defaults": { "mappings": [], @@ -564,7 +564,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Ethernet port details.", "fieldConfig": { "defaults": { "custom": { @@ -917,7 +917,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes sent.", "fieldConfig": { "defaults": { "color": { @@ -1010,7 +1010,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes received.", "fieldConfig": { "defaults": { "color": { @@ -1102,7 +1102,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Percentage of bytes transferred.", "fieldConfig": { "defaults": { "color": { @@ -1415,7 +1415,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "FC port details.", "fieldConfig": { "defaults": { "custom": { @@ -1673,6 +1673,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "FC ports with fabric details.", "fieldConfig": { "defaults": { "custom": { @@ -1878,7 +1879,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data read from the storage system.", "fieldConfig": { "defaults": { "color": { @@ -1971,7 +1972,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data written to the storage system.", "fieldConfig": { "defaults": { "color": { @@ -2063,7 +2064,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for read operations.", "fieldConfig": { "defaults": { "color": { @@ -2156,7 +2157,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for write operations.", "fieldConfig": { "defaults": { "color": { @@ -2495,7 +2496,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of times the Fibre Channel link was lost.", "fieldConfig": { "defaults": { "color": { @@ -2587,7 +2588,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of link failures.", "fieldConfig": { "defaults": { "color": { @@ -2694,7 +2695,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "NVMe/FC port details.", "fieldConfig": { "defaults": { "custom": { @@ -2869,7 +2870,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data read from the storage system (FC-NVMe).", "fieldConfig": { "defaults": { "color": { @@ -2962,7 +2963,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data written to the storage system (FC-NVMe).", "fieldConfig": { "defaults": { "color": { @@ -3054,7 +3055,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for read operations (FC-NVMe).", "fieldConfig": { "defaults": { "color": { @@ -3147,7 +3148,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for write operations (FC-NVMe).", "fieldConfig": { "defaults": { "color": { @@ -3272,6 +3273,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Detail of network routes.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/nfs4storePool.json b/grafana/dashboards/cmode/nfs4storePool.json index 65eed5f23..0657313b1 100644 --- a/grafana/dashboards/cmode/nfs4storePool.json +++ b/grafana/dashboards/cmode/nfs4storePool.json @@ -368,7 +368,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "For each byte-range lock acquired by a client there is a resulting increment in allocation", + "description": "For each byte-range lock acquired by a client there is a resulting increment in allocation.", "fieldConfig": { "defaults": { "color": { @@ -465,7 +465,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "For each ClientID exchanged with the server/SVM, this allocation is incremented.\nNFS version 4 uses a value of clientid or stateid to represent the current state (instance) of client-held resources such as locks, opens, and host restarts. The client and server pass this state information between them on certain operations, allowing both to agree on the current instance of resources held by the client.\n\nhttps://www.ibm.com/docs/en/zos/2.2.0?topic=introduction-nfs-version-4-state", + "description": "For each ClientID exchanged with the server/SVM, this allocation is incremented.\nNFS version 4 uses a value of clientid or stateid to represent the current state (instance) of client-held resources such as locks, opens, and host restarts. The client and server pass this state information between them on certain operations, allowing both to agree on the current instance of resources held by the client.\n\nhttps://www.ibm.com/docs/en/zos/2.2.0?topic=introduction-nfs-version-4-state.", "fieldConfig": { "defaults": { "color": { @@ -849,7 +849,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "When an allocation type includes ‘State’ in the title, an allocation is provided for each StateID associated per the associated lock type. In this case, when a Delegation type lock is acquired and associated with a specific StateID. This is incremented once per Delegation type lock.\n\nStateIDs as defined in RFC 5661 –\n8.2. Stateid Definition\n\n When the server grants a lock of any type (including opens, byte-\n range locks, delegations, and layouts), it responds with a unique\n stateid that represents a set of locks (often a single lock) for the\n same file, of the same type, and sharing the same ownership\n characteristics. Thus, opens of the same file by different open-\n owners each have an identifying stateid. Similarly, each set of\n byte-range locks on a file owned by a specific lock-owner has its own\n identifying stateid. Delegations and layouts also have associated\n stateids by which they may be referenced. The stateid is used as a\n shorthand reference to a lock or set of locks, and given a stateid,\n the server can determine the associated state-owner or state-owners\n (in the case of an open-owner/lock-owner pair) and the associated\n filehandle. When stateids are used, the current filehandle must be\n the one associated with that stateid.\n", + "description": "When an allocation type includes ‘State’ in the title, an allocation is provided for each StateID associated per the associated lock type. In this case, when a Delegation type lock is acquired and associated with a specific StateID. This is incremented once per Delegation type lock.\n\nStateIDs as defined in RFC 5661 –\n8.2. Stateid Definition\n\n When the server grants a lock of any type (including opens, byte-\n range locks, delegations, and layouts), it responds with a unique\n stateid that represents a set of locks (often a single lock) for the\n same file, of the same type, and sharing the same ownership\n characteristics. Thus, opens of the same file by different open-\n owners each have an identifying stateid. Similarly, each set of\n byte-range locks on a file owned by a specific lock-owner has its own\n identifying stateid. Delegations and layouts also have associated\n stateids by which they may be referenced. The stateid is used as a\n shorthand reference to a lock or set of locks, and given a stateid,\n the server can determine the associated state-owner or state-owners\n (in the case of an open-owner/lock-owner pair) and the associated\n filehandle. When stateids are used, the current filehandle must be\n the one associated with that stateid.\n.", "fieldConfig": { "defaults": { "color": { @@ -945,7 +945,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "The LayoutAlloc is incremented for each Parallel NFS (pNFS) referral", + "description": "The LayoutAlloc is incremented for each Parallel NFS (pNFS) referral.", "fieldConfig": { "defaults": { "color": { @@ -1041,7 +1041,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "LayoutStateAlloc is incremented for each StateID associated with each pNFS referral", + "description": "LayoutStateAlloc is incremented for each StateID associated with each pNFS referral.", "fieldConfig": { "defaults": { "color": { @@ -1137,7 +1137,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "LockStateAlloc is incremented for the last lock request and response on a given state-owner while the lock state exists on the server", + "description": "LockStateAlloc is incremented for the last lock request and response on a given state-owner while the lock state exists on the server.", "fieldConfig": { "defaults": { "color": { @@ -1233,7 +1233,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "OpenAlloc is incremented for each Open request", + "description": "OpenAlloc is incremented for each Open request.", "fieldConfig": { "defaults": { "color": { @@ -1329,7 +1329,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "OpenStateAlloc is incremented for each StateID associated with each Open request", + "description": "OpenStateAlloc is incremented for each StateID associated with each Open request.", "fieldConfig": { "defaults": { "color": { @@ -1425,7 +1425,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "OwnerAlloc is incremented for Owner allocation information such as file name space, file information, chunk information and chunk allocation information. (source - https://dzone.com/articles/overview-and-recommendations)", + "description": "OwnerAlloc is incremented for Owner allocation information such as file name space, file information, chunk information and chunk allocation information. (source - https://dzone.com/articles/overview-and-recommendations).", "fieldConfig": { "defaults": { "color": { @@ -1905,7 +1905,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "StringAlloc is incremented for each individual client co_ownerid. \n\nSee section 2.4 of RFC 5661 for more information regarding client generated co_ownerid strings\n", + "description": "StringAlloc is incremented for each individual client co_ownerid. \n\nSee section 2.4 of RFC 5661 for more information regarding client generated co_ownerid strings\n.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/nfs_clients.json b/grafana/dashboards/cmode/nfs_clients.json index 0ac6dc5a9..b51cab35f 100644 --- a/grafana/dashboards/cmode/nfs_clients.json +++ b/grafana/dashboards/cmode/nfs_clients.json @@ -108,7 +108,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This panel requires a cluster with ONTAP 9.7+ and the Harvest REST collector", + "description": "This panel requires a cluster with ONTAP 9.7+ and the Harvest REST collector.", "fieldConfig": { "defaults": { "color": { @@ -168,7 +168,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This panel requires a cluster with ONTAP 9.7+ and the Harvest REST collector", + "description": "This panel requires a cluster with ONTAP 9.7+ and the Harvest REST collector.", "fieldConfig": { "defaults": { "color": { @@ -298,7 +298,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This panel requires a cluster with ONTAP 9.7+ and the Harvest REST collector", + "description": "This panel requires a cluster with ONTAP 9.7+ and the Harvest REST collector.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/node.json b/grafana/dashboards/cmode/node.json index 396babd25..45ca4aad9 100644 --- a/grafana/dashboards/cmode/node.json +++ b/grafana/dashboards/cmode/node.json @@ -106,7 +106,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of nodes.", "fieldConfig": { "defaults": { "mappings": [ @@ -179,7 +179,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of aggregates.", "fieldConfig": { "defaults": { "mappings": [ @@ -251,7 +251,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time. node_volume_avg_latency is [volume_avg_latency](#volume_avg_latency) aggregated by `node`.", "fieldConfig": { "defaults": { "mappings": [], @@ -372,7 +372,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume. node_volume_total_ops is [volume_total_ops](#volume_total_ops) aggregated by `node`.", "fieldConfig": { "defaults": { "mappings": [], @@ -484,7 +484,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time. node_volume_avg_latency is [volume_avg_latency](#volume_avg_latency) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -666,7 +666,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume. node_volume_total_ops is [volume_total_ops](#volume_total_ops) aggregated by `node`.", "fieldConfig": { "defaults": { "color": { @@ -757,7 +757,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average processor utilization across all processors in the system", + "description": "Average processor utilization across all processors in the system.", "fieldConfig": { "defaults": { "mappings": [], @@ -813,7 +813,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The utilization percent of the disk. node_disk_max_busy is the maximum of [disk_busy](#disk_busy) for label `node`.", "fieldConfig": { "defaults": { "mappings": [], @@ -869,7 +869,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "The total time, in seconds, that the node has been up.", "fieldConfig": { "defaults": { "color": { @@ -928,7 +928,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Specifies a count of the number of chassis fans that are not operating within the recommended RPM range.", "fieldConfig": { "defaults": { "color": { @@ -1010,7 +1010,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of failed power supply units.", "fieldConfig": { "defaults": { "color": { @@ -1103,7 +1103,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average processor utilization across all processors in the system.", "fieldConfig": { "defaults": { "color": { @@ -1201,7 +1201,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Array of processor time in percentage spent in various domains.", "fieldConfig": { "defaults": { "color": { @@ -1310,7 +1310,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Percentage of bytes transferred.", "fieldConfig": { "defaults": { "color": { @@ -1402,7 +1402,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Percent of data access from the storage system.", "fieldConfig": { "defaults": { "color": { @@ -2117,7 +2117,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Percent of reads on node that are supplied from, and had to wait on, various media types", + "description": "Percent of reads on node that are supplied from, and had to wait on, various media types.", "fieldConfig": { "defaults": { "color": { @@ -2382,6 +2382,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of Read procedure requests. The counter keeps track of the average response time of Read requests.", "fieldConfig": { "defaults": { "color": { @@ -2446,7 +2447,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency of requests. This counter keeps track of the average response time of requests.", "fieldConfig": { "defaults": { "color": { @@ -2511,6 +2512,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of Write procedure requests. The counter keeps track of the average response time of Write requests.", "fieldConfig": { "defaults": { "color": { @@ -3128,7 +3130,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for CIFS operations.", "fieldConfig": { "defaults": { "mappings": [], @@ -3195,7 +3197,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of CIFS operations per second.", "fieldConfig": { "defaults": { "mappings": [], @@ -3254,7 +3256,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Array of select CIFS operation counts.", "fieldConfig": { "defaults": { "color": { @@ -3472,7 +3474,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for FCP operations.", "fieldConfig": { "defaults": { "mappings": [], @@ -3538,7 +3540,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of operations.", "fieldConfig": { "defaults": { "mappings": [], @@ -3595,7 +3597,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for FCP operations.", "fieldConfig": { "defaults": { "color": { @@ -3779,7 +3781,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of operations.", "fieldConfig": { "defaults": { "color": { @@ -3886,7 +3888,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for NVMF operations.", "fieldConfig": { "defaults": { "mappings": [], @@ -3953,7 +3955,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of operations.", "fieldConfig": { "defaults": { "mappings": [], @@ -4011,7 +4013,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for NVMF operations.", "fieldConfig": { "defaults": { "color": { @@ -4195,7 +4197,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of operations.", "fieldConfig": { "defaults": { "color": { @@ -4302,7 +4304,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for iSCSI operations.", "fieldConfig": { "defaults": { "mappings": [], @@ -4425,7 +4427,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for iSCSI operations.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/power.json b/grafana/dashboards/cmode/power.json index c53fb4c30..859484ee8 100644 --- a/grafana/dashboards/cmode/power.json +++ b/grafana/dashboards/cmode/power.json @@ -200,7 +200,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average Power per used TB", + "description": "Average Power per used TB.", "fieldConfig": { "defaults": { "color": { @@ -260,7 +260,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Maximum temperature of all non-ambient sensors for node in Celsius.", "fieldConfig": { "defaults": { "color": { @@ -336,7 +336,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Maximum fan speed for shelf in rpm.", "fieldConfig": { "defaults": { "color": { @@ -393,7 +393,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average IOPs per Watt", + "description": "Average IOPs per Watt.", "fieldConfig": { "defaults": { "color": { @@ -453,7 +453,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Maximum temperature of all non-ambient sensors for shelf in Celsius.", "fieldConfig": { "defaults": { "color": { @@ -529,7 +529,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Maximum fan speed for node in rpm.", "fieldConfig": { "defaults": { "color": { @@ -731,7 +731,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Power consumed by a node in Watts.", "fieldConfig": { "defaults": { "color": { @@ -822,7 +822,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average temperature of all non-ambient sensors for node in Celsius.", "fieldConfig": { "defaults": { "color": { @@ -912,7 +912,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Power consumed by shelf in Watts.", "fieldConfig": { "defaults": { "color": { @@ -1003,7 +1003,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average temperature of all non-ambient sensors for shelf in Celsius.", "fieldConfig": { "defaults": { "color": { @@ -1094,7 +1094,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "View the power usage at the aggregate level, track down any \"hot\" aggregates and their corresponding workloads.\n\nThe line chart provides the ability to see how read/write IOs directly affect the power usage of the system. ", + "description": "View the power usage at the aggregate level, track down any \"hot\" aggregates and their corresponding workloads.\n\nThe line chart provides the ability to see how read/write IOs directly affect the power usage of the system. .", "fieldConfig": { "defaults": { "color": { @@ -1386,7 +1386,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Aggregate details.", "fieldConfig": { "defaults": { "color": { @@ -1859,7 +1859,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Storage node details.", "fieldConfig": { "defaults": { "color": { @@ -2396,7 +2396,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Storage shelf details.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/qtree.json b/grafana/dashboards/cmode/qtree.json index 0930a45e9..6086ea55d 100644 --- a/grafana/dashboards/cmode/qtree.json +++ b/grafana/dashboards/cmode/qtree.json @@ -88,6 +88,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of NFS operations per second to the qtree.", "fieldConfig": { "defaults": { "color": { @@ -176,6 +177,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of CIFS operations per second to the qtree.", "fieldConfig": { "defaults": { "color": { @@ -266,6 +268,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Summation of NFS ops, CIFS ops, CSS ops and internal ops.", "fieldConfig": { "defaults": { "color": { @@ -356,6 +359,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of internal operations generated by activites such as snapmirror and backup per second to the qtree.", "fieldConfig": { "defaults": { "color": { @@ -457,6 +461,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Current amount of disk space, in kilobytes, used by the quota target.", "fieldConfig": { "defaults": { "color": { @@ -545,6 +550,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Current number of files used by the quota target.", "fieldConfig": { "defaults": { "color": { @@ -632,7 +638,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Current amount of disk space, in kilobytes, used by the quota target.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/quotaReport.json b/grafana/dashboards/cmode/quotaReport.json index 75770cb25..1b56c7728 100644 --- a/grafana/dashboards/cmode/quotaReport.json +++ b/grafana/dashboards/cmode/quotaReport.json @@ -74,7 +74,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Only tree quotas are shown by default. To collect user/group quotas, enable them in the qtree.yaml template", + "description": "Only tree quotas are shown by default. To collect user/group quotas, enable them in the qtree.yaml template.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/s3ObjectStorage.json b/grafana/dashboards/cmode/s3ObjectStorage.json index edde1e1a9..d5a76dad5 100644 --- a/grafana/dashboards/cmode/s3ObjectStorage.json +++ b/grafana/dashboards/cmode/s3ObjectStorage.json @@ -410,7 +410,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Specifies the bucket logical used size up to this point.", "fieldConfig": { "defaults": { "color": { @@ -501,7 +501,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Specifies the bucket logical used percent.", "fieldConfig": { "defaults": { "color": { @@ -619,7 +619,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "You must enable the Rest collector in your harvest.yml config", + "description": "You must enable the Rest collector in your harvest.yml config.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/security.json b/grafana/dashboards/cmode/security.json index 52339923b..57d4fc6dc 100644 --- a/grafana/dashboards/cmode/security.json +++ b/grafana/dashboards/cmode/security.json @@ -545,7 +545,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This panel requires a cluster with ONTAP 9.10+ and the Harvest REST collector", + "description": "This panel requires a cluster with ONTAP 9.10+ and the Harvest REST collector.", "fieldConfig": { "defaults": { "color": { @@ -1181,7 +1181,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This panel requires a cluster with ONTAP 9.10+ and the Harvest REST collector", + "description": "This panel requires a cluster with ONTAP 9.10+ and the Harvest REST collector.", "fieldConfig": { "defaults": { "color": { @@ -1410,7 +1410,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of SAML authentication.", "fieldConfig": { "defaults": { "color": { @@ -1574,7 +1574,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of certificate authentication.", "fieldConfig": { "defaults": { "color": { @@ -1656,7 +1656,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of password authentication.", "fieldConfig": { "defaults": { "color": { @@ -1738,7 +1738,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of certificates expiring within 60 days.", "fieldConfig": { "defaults": { "color": { @@ -1820,7 +1820,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of certificates expired.", "fieldConfig": { "defaults": { "color": { @@ -1913,6 +1913,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Volume encryption & anti-ransomware status.", "fieldConfig": { "defaults": { "color": { @@ -2153,7 +2154,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "❌ means this attribute is non-compliant. \n\n| Column | Compliant When | \n|---|---|\n| `Snapshot Policy` | All volumes have applied Snapshot policy | \n| `Snapshot Autodelete` | All volumes have enabled Snapshot autodelete |\n| `ARW Protection for SVMs` | All SVMs have enabled ARW protection |\n|`ARW Protection for Volumes`| All volumes have enabled ARW protection|\n| `Cluster Certificate Validity` | Cluster has active certificate(s) |\n| `Global FIPS`| Cluster has global FIPS enabled |\n| `Telnet` | Cluster has telnet disabled |\n| `Autosupport Https Transport` | Cluster uses HTTPS for autosupport |\n| `Default Admin User` | Default admin user is locked |\n| `Remote Shell` | Cluster's remote shell is disabled |\n| `MD5 in use` | Cluster does not use MD5 algorithm |\n| `Insecure SSH Settings` | Cluster has strong SSH server ciphers |\n| `Login Banner` | Cluster has enabled login banner |\n| `Log Forwarding Encrypted` | Cluster has encrypted protocol for log forwarding |\n| `Network Time Protocol` | Cluster has configured three NTP servers |\n| `Cluster Peering` | Cluster peers use encryption |\n| `Notification Configured` | Cluster has configured destinations for notifications |\n| `Automatic Updates Configured`| Cluster has enabled automatic updates |", + "description": "❌ means this attribute is non-compliant. \n\n| Column | Compliant When | \n|---|---|\n| `Snapshot Policy` | All volumes have applied Snapshot policy | \n| `Snapshot Autodelete` | All volumes have enabled Snapshot autodelete |\n| `ARW Protection for SVMs` | All SVMs have enabled ARW protection |\n|`ARW Protection for Volumes`| All volumes have enabled ARW protection|\n| `Cluster Certificate Validity` | Cluster has active certificate(s) |\n| `Global FIPS`| Cluster has global FIPS enabled |\n| `Telnet` | Cluster has telnet disabled |\n| `Autosupport Https Transport` | Cluster uses HTTPS for autosupport |\n| `Default Admin User` | Default admin user is locked |\n| `Remote Shell` | Cluster's remote shell is disabled |\n| `MD5 in use` | Cluster does not use MD5 algorithm |\n| `Insecure SSH Settings` | Cluster has strong SSH server ciphers |\n| `Login Banner` | Cluster has enabled login banner |\n| `Log Forwarding Encrypted` | Cluster has encrypted protocol for log forwarding |\n| `Network Time Protocol` | Cluster has configured three NTP servers |\n| `Cluster Peering` | Cluster peers use encryption |\n| `Notification Configured` | Cluster has configured destinations for notifications |\n| `Automatic Updates Configured`| Cluster has enabled automatic updates |.", "fieldConfig": { "defaults": { "color": { @@ -3709,7 +3710,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "❌ means this attribute is non-compliant", + "description": "❌ means this attribute is non-compliant.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/shelf.json b/grafana/dashboards/cmode/shelf.json index aa4968acc..8a82d742f 100644 --- a/grafana/dashboards/cmode/shelf.json +++ b/grafana/dashboards/cmode/shelf.json @@ -106,7 +106,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of shelves.", "fieldConfig": { "defaults": { "color": { @@ -182,7 +182,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Power consumed by shelf in Watts.", "fieldConfig": { "defaults": { "color": { @@ -257,7 +257,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Maximum temperature of all non-ambient sensors for shelf in Celsius.", "fieldConfig": { "defaults": { "color": { @@ -333,7 +333,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Temperature, in degrees celsius.", "fieldConfig": { "defaults": { "color": { @@ -407,7 +407,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Fan speed, in rpm.", "fieldConfig": { "defaults": { "color": { @@ -465,7 +465,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Maximum fan speed for shelf in rpm.", "fieldConfig": { "defaults": { "color": { @@ -522,7 +522,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Current, in milliamps.", "fieldConfig": { "defaults": { "color": { @@ -594,7 +594,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Power consumed by shelf in Watts.", "fieldConfig": { "defaults": { "color": { @@ -684,7 +684,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average temperature of all non-ambient sensors for shelf in Celsius.", "fieldConfig": { "defaults": { "color": { @@ -773,7 +773,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Storage shelf details.", "fieldConfig": { "defaults": { "color": { @@ -1424,7 +1424,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Temperature, in degrees celsius.", "fieldConfig": { "defaults": { "color": { @@ -1490,7 +1490,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Fan speed, in rpm.", "fieldConfig": { "defaults": { "color": { @@ -1570,7 +1570,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Voltage, in volts.", "fieldConfig": { "defaults": { "color": { @@ -1635,7 +1635,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Power drawn, in watts.", "fieldConfig": { "defaults": { "color": { @@ -1698,7 +1698,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Power rating, in watts.", "fieldConfig": { "defaults": { "color": { @@ -1776,7 +1776,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Current, in milliamps.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/smb.json b/grafana/dashboards/cmode/smb.json index f8f180c5f..d295ba6fa 100644 --- a/grafana/dashboards/cmode/smb.json +++ b/grafana/dashboards/cmode/smb.json @@ -334,6 +334,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Detail of CIFS sessions.", "fieldConfig": { "defaults": { "color": { @@ -516,7 +517,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "This panel includes sum of read and write SMB OP’s /sec", + "description": "This panel includes sum of read and write SMB OP’s /sec.", "fieldConfig": { "defaults": { "color": { @@ -610,7 +611,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This panel includes average SMB read and write latency", + "description": "This panel includes average SMB read and write latency.", "fieldConfig": { "defaults": { "color": { @@ -1040,7 +1041,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for Session Setups and gives good indication of Client Authentication Latency Breakdown", + "description": "This panel tracks histograms for Session Setups and gives good indication of Client Authentication Latency Breakdown.", "gridPos": { "h": 8, "w": 12, @@ -1109,7 +1110,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for file opens and creates", + "description": "This panel tracks histograms for file opens and creates.", "gridPos": { "h": 8, "w": 12, @@ -1178,7 +1179,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for file closes", + "description": "This panel tracks histograms for file closes.", "gridPos": { "h": 8, "w": 12, @@ -1247,7 +1248,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for file locks", + "description": "This panel tracks histograms for file locks.", "gridPos": { "h": 8, "w": 12, @@ -1316,7 +1317,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for readdir", + "description": "This panel tracks histograms for readdir.", "gridPos": { "h": 8, "w": 12, @@ -1385,7 +1386,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for getattr", + "description": "This panel tracks histograms for getattr.", "gridPos": { "h": 8, "w": 12, @@ -1454,7 +1455,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for setattr", + "description": "This panel tracks histograms for setattr.", "gridPos": { "h": 8, "w": 12, @@ -1523,7 +1524,7 @@ }, "dataFormat": "tsbuckets", "datasource": "${DS_PROMETHEUS}", - "description": "This panel tracks histograms for oplock breaks", + "description": "This panel tracks histograms for oplock breaks.", "gridPos": { "h": 8, "w": 12, diff --git a/grafana/dashboards/cmode/snapmirror.json b/grafana/dashboards/cmode/snapmirror.json index b32419626..1c882f019 100644 --- a/grafana/dashboards/cmode/snapmirror.json +++ b/grafana/dashboards/cmode/snapmirror.json @@ -121,7 +121,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of snapmirrors.", "fieldConfig": { "defaults": { "mappings": [ @@ -193,7 +193,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of volume snapmirrors.", "fieldConfig": { "defaults": { "mappings": [ @@ -265,7 +265,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of svm-dr protected snapmirrors.", "fieldConfig": { "defaults": { "mappings": [ @@ -337,7 +337,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of insync snapmirrors.", "fieldConfig": { "defaults": { "mappings": [ @@ -409,7 +409,7 @@ { "cacheTimeout": null, "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of unhealhty snapmirrors.", "fieldConfig": { "defaults": { "mappings": [ @@ -481,7 +481,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Must select Source Volume/Destination Volume for detail of single relationship", + "description": "Must select Source Volume/Destination Volume for detail of single relationship.", "fieldConfig": { "defaults": { "custom": { @@ -810,7 +810,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Must select Source Volume/Destination Volume for detail of single relationship", + "description": "Must select Source Volume/Destination Volume for detail of single relationship.", "fieldConfig": { "defaults": { "color": { @@ -908,7 +908,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Must select Source Volume/Destination Volume for detail of single relationship", + "description": "Must select Source Volume/Destination Volume for detail of single relationship.", "fieldConfig": { "defaults": { "color": { @@ -1007,7 +1007,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Must select Source Volume/Destination Volume for detail of single relationship", + "description": "Must select Source Volume/Destination Volume for detail of single relationship.", "fieldConfig": { "defaults": { "color": { @@ -2164,7 +2164,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Volumes Protected With Snapmirror (Local And Remote)", + "description": "Volumes Protected With Snapmirror (Local And Remote).", "fieldConfig": { "defaults": { "color": { @@ -2413,7 +2413,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Volume Relationships Experiencing Lag", + "description": "Volume Relationships Experiencing Lag.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/svm.json b/grafana/dashboards/cmode/svm.json index 361fee0dc..1e718db34 100644 --- a/grafana/dashboards/cmode/svm.json +++ b/grafana/dashboards/cmode/svm.json @@ -105,7 +105,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -171,7 +171,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total throughput.", "fieldConfig": { "defaults": { "color": { @@ -229,7 +229,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { @@ -287,7 +287,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -353,7 +353,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -419,7 +419,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes read per second.", "fieldConfig": { "defaults": { "color": { @@ -477,7 +477,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes written per second.", "fieldConfig": { "defaults": { "color": { @@ -535,7 +535,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of read operations per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -593,7 +593,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of write operations per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -972,7 +972,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1062,6 +1062,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes read per second.", "fieldConfig": { "defaults": { "color": { @@ -1151,6 +1152,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of read operations per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -1240,6 +1242,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1329,6 +1332,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes written per second.", "fieldConfig": { "defaults": { "color": { @@ -1418,6 +1422,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of write operations per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -1522,6 +1527,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Details of LIFs.", "fieldConfig": { "defaults": { "color": { @@ -1670,6 +1676,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of bytes sent per second.", "fieldConfig": { "defaults": { "color": { @@ -1759,6 +1766,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of bytes received per second.", "fieldConfig": { "defaults": { "color": { @@ -1848,6 +1856,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data read from the storage system.", "fieldConfig": { "defaults": { "color": { @@ -1937,6 +1946,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data written to the storage system.", "fieldConfig": { "defaults": { "color": { @@ -2026,6 +2036,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data read from the storage system in bytes.", "fieldConfig": { "defaults": { "color": { @@ -2115,6 +2126,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data written to the storage system in bytes.", "fieldConfig": { "defaults": { "color": { @@ -2219,7 +2231,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for CIFS operations.", "fieldConfig": { "defaults": { "color": { @@ -2285,7 +2297,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "SVM cifs total Iops.", "fieldConfig": { "defaults": { "color": { @@ -2443,7 +2455,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for CIFS read operations.", "fieldConfig": { "defaults": { "color": { @@ -2509,7 +2521,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for CIFS write operations.", "fieldConfig": { "defaults": { "color": { @@ -2575,7 +2587,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of CIFS read operations.", "fieldConfig": { "defaults": { "color": { @@ -2633,7 +2645,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of CIFS write operations.", "fieldConfig": { "defaults": { "color": { @@ -2897,7 +2909,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Array of select CIFS operation counts.", "fieldConfig": { "defaults": { "color": { @@ -2988,7 +3000,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "dispatch_latency: Latency by ONTAP to select a scanner and until the selected scanner pulls the request.\n\nscan_latency: Latency by the scanner after it pulls the request and until it responds, including scan time of the AV software.\n\nNote, the scan latency is per request (file) and not per IOP", + "description": "dispatch_latency: Latency by ONTAP to select a scanner and until the selected scanner pulls the request.\n\nscan_latency: Latency by the scanner after it pulls the request and until it responds, including scan time of the AV software.\n\nNote, the scan latency is per request (file) and not per IOP.", "fieldConfig": { "defaults": { "color": { @@ -3083,7 +3095,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "scan_request_dispatched_rate: Number of virus-scanning requests sent from Data ONTAP to the Vscan servers per second.\n\nscan_noti_received_rate: Number of virus-scanning requests received back by Data ONTAP from the Vscan servers per second.\n\nIf (dispatched > received) then requests are failing or delayed and deeper troubleshooting is recommended.\n\nNote, the rate is per request (file) and not per IOP", + "description": "scan_request_dispatched_rate: Number of virus-scanning requests sent from Data ONTAP to the Vscan servers per second.\n\nscan_noti_received_rate: Number of virus-scanning requests received back by Data ONTAP from the Vscan servers per second.\n\nIf (dispatched \u003e received) then requests are failing or delayed and deeper troubleshooting is recommended.\n\nNote, the rate is per request (file) and not per IOP.", "fieldConfig": { "defaults": { "color": { @@ -3178,7 +3190,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "connections_active: Number of active connections from ONTAP nodes to virus scan servers", + "description": "connections_active: Number of active connections from ONTAP nodes to virus scan servers.", "fieldConfig": { "defaults": { "color": { @@ -3281,7 +3293,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for FCP operations.", "fieldConfig": { "defaults": { "color": { @@ -3347,7 +3359,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "FCP total throughput.", "fieldConfig": { "defaults": { "color": { @@ -3405,7 +3417,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of operations.", "fieldConfig": { "defaults": { "color": { @@ -3463,7 +3475,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for read operations.", "fieldConfig": { "defaults": { "color": { @@ -3529,7 +3541,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for write operations.", "fieldConfig": { "defaults": { "color": { @@ -3595,7 +3607,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data read from the storage system.", "fieldConfig": { "defaults": { "color": { @@ -3653,7 +3665,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data written to the storage system.", "fieldConfig": { "defaults": { "color": { @@ -3711,7 +3723,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of read operations.", "fieldConfig": { "defaults": { "color": { @@ -3769,7 +3781,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of write operations.", "fieldConfig": { "defaults": { "color": { @@ -4147,6 +4159,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data read from the storage system.", "fieldConfig": { "defaults": { "color": { @@ -4237,6 +4250,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data written to the storage system.", "fieldConfig": { "defaults": { "color": { @@ -4342,7 +4356,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for iSCSI operations.", "fieldConfig": { "defaults": { "color": { @@ -4408,7 +4422,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Iscsi total throughput.", "fieldConfig": { "defaults": { "color": { @@ -4466,7 +4480,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Iscsi total Iops.", "fieldConfig": { "defaults": { "color": { @@ -4524,7 +4538,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for read operations.", "fieldConfig": { "defaults": { "color": { @@ -4590,7 +4604,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for write operations.", "fieldConfig": { "defaults": { "color": { @@ -4656,7 +4670,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data read from the storage system in bytes.", "fieldConfig": { "defaults": { "color": { @@ -4714,7 +4728,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data written to the storage system in bytes.", "fieldConfig": { "defaults": { "color": { @@ -4772,7 +4786,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "iSCSI read operations per second on this logical interface (LIF).", "fieldConfig": { "defaults": { "color": { @@ -4830,7 +4844,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "iSCSI write operations per second on this logical interface (LIF).", "fieldConfig": { "defaults": { "color": { @@ -4888,6 +4902,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data read from the storage system in bytes.", "fieldConfig": { "defaults": { "color": { @@ -4978,6 +4993,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data written to the storage system in bytes.", "fieldConfig": { "defaults": { "color": { @@ -5289,6 +5305,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of NFSv4 requests. This counter keeps track of the average response time of NFSv4 requests.", "fieldConfig": { "defaults": { "color": { @@ -5354,6 +5371,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Rate of NFSv3 data transfers per second.", "fieldConfig": { "defaults": { "color": { @@ -5453,6 +5471,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total number of NFSv3 procedure requests per second.", "fieldConfig": { "defaults": { "color": { @@ -5552,6 +5571,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of READ operations.", "fieldConfig": { "defaults": { "color": { @@ -5617,6 +5637,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of WRITE operations.", "fieldConfig": { "defaults": { "color": { @@ -5682,6 +5703,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Rate of NFSv3 read data transfers per second.", "fieldConfig": { "defaults": { "color": { @@ -5781,6 +5803,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "data transfers.", "fieldConfig": { "defaults": { "color": { @@ -5880,6 +5903,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total observed NFSv3 read operations per second.", "fieldConfig": { "defaults": { "color": { @@ -5979,6 +6003,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total observed NFSv3 write operations per second.", "fieldConfig": { "defaults": { "color": { @@ -6572,6 +6597,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of NFSv4 requests. This counter keeps track of the average response time of NFSv4 requests.", "fieldConfig": { "defaults": { "color": { @@ -6637,6 +6663,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Rate of NFSv3 data transfers per second.", "fieldConfig": { "defaults": { "color": { @@ -6736,6 +6763,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total number of NFSv3 procedure requests per second.", "fieldConfig": { "defaults": { "color": { @@ -6835,6 +6863,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of READ operations.", "fieldConfig": { "defaults": { "color": { @@ -6900,6 +6929,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of WRITE operations.", "fieldConfig": { "defaults": { "color": { @@ -6965,6 +6995,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Rate of NFSv3 read data transfers per second.", "fieldConfig": { "defaults": { "color": { @@ -7064,6 +7095,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "data transfers.", "fieldConfig": { "defaults": { "color": { @@ -7163,6 +7195,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total number of READ operations.", "fieldConfig": { "defaults": { "color": { @@ -7262,6 +7295,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total number of WRITE procedures.", "fieldConfig": { "defaults": { "color": { @@ -7872,6 +7906,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of NFSv4 requests. This counter keeps track of the average response time of NFSv4 requests.", "fieldConfig": { "defaults": { "color": { @@ -7937,6 +7972,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Rate of NFSv3 data transfers per second.", "fieldConfig": { "defaults": { "color": { @@ -8036,6 +8072,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total number of NFSv3 procedure requests per second.", "fieldConfig": { "defaults": { "color": { @@ -8135,6 +8172,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of READ operations.", "fieldConfig": { "defaults": { "color": { @@ -8200,6 +8238,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency of WRITE operations.", "fieldConfig": { "defaults": { "color": { @@ -8265,6 +8304,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Rate of NFSv3 read data transfers per second.", "fieldConfig": { "defaults": { "color": { @@ -8364,6 +8404,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "data transfers.", "fieldConfig": { "defaults": { "color": { @@ -8463,6 +8504,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total number of READ operations.", "fieldConfig": { "defaults": { "color": { @@ -8562,6 +8604,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total number of WRITE procedures.", "fieldConfig": { "defaults": { "color": { @@ -9180,7 +9223,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for NVMF operations.", "fieldConfig": { "defaults": { "color": { @@ -9304,7 +9347,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total number of operations.", "fieldConfig": { "defaults": { "color": { @@ -9362,7 +9405,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for read operations.", "fieldConfig": { "defaults": { "color": { @@ -9428,7 +9471,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency for write operations.", "fieldConfig": { "defaults": { "color": { @@ -9494,7 +9537,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data read from the storage system.", "fieldConfig": { "defaults": { "color": { @@ -9552,7 +9595,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Amount of data written to the storage system.", "fieldConfig": { "defaults": { "color": { @@ -9610,7 +9653,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of read operations.", "fieldConfig": { "defaults": { "color": { @@ -9668,7 +9711,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of write operations.", "fieldConfig": { "defaults": { "color": { @@ -10047,6 +10090,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data read from the storage system.", "fieldConfig": { "defaults": { "color": { @@ -10137,6 +10181,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Amount of data written to the storage system.", "fieldConfig": { "defaults": { "color": { @@ -10242,6 +10287,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Sum of kilo-bytes copied.", "fieldConfig": { "defaults": { "color": { @@ -10496,6 +10542,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "This is the average response time for requests that were initiated by the workload.", "fieldConfig": { "defaults": { "color": { @@ -10560,6 +10607,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Qos toal throughput.", "fieldConfig": { "defaults": { "color": { @@ -10616,6 +10664,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This field is the workload's rate of operations that completed during the measurement interval; measured per second.", "fieldConfig": { "defaults": { "color": { @@ -10673,6 +10722,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the average response time for read requests that were initiated by the workload.", "fieldConfig": { "defaults": { "color": { @@ -10737,6 +10787,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the average response time for write requests that were initiated by the workload.", "fieldConfig": { "defaults": { "color": { @@ -10801,6 +10852,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the amount of data read per second from the filer by the workload.", "fieldConfig": { "defaults": { "color": { @@ -10857,6 +10909,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the amount of data written per second to the filer by the workload.", "fieldConfig": { "defaults": { "color": { @@ -10913,6 +10966,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the rate of this workload's read operations that completed during the measurement interval.", "fieldConfig": { "defaults": { "color": { @@ -10970,6 +11024,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the workload's write operations that completed during the measurement interval; measured per second.", "fieldConfig": { "defaults": { "color": { @@ -11433,6 +11488,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -11523,6 +11579,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -11613,6 +11670,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -11703,6 +11761,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -11793,6 +11852,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -11883,6 +11943,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -11973,6 +12034,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -12063,6 +12125,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -12153,6 +12216,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -12258,6 +12322,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "percentage of utilized storage space in a volume relative to its total capacity.", "fieldConfig": { "defaults": { "color": { @@ -12348,6 +12413,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Percentage of snapshot reserve size that has been used.", "fieldConfig": { "defaults": { "color": { @@ -12438,6 +12504,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Percentage of the total disk space that is saved by deduplication and file cloning.", "fieldConfig": { "defaults": { "color": { @@ -12528,6 +12595,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The total disk space (in bytes) that is saved by deduplication and file cloning.", "fieldConfig": { "defaults": { "color": { @@ -12617,6 +12685,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Percentage of the total disk space that is saved by compressing blocks on the referenced file system.", "fieldConfig": { "defaults": { "color": { @@ -12707,6 +12776,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "The total disk space (in bytes) that is saved by compressing blocks on the referenced file system.", "fieldConfig": { "defaults": { "color": { @@ -12797,6 +12867,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total space saved (in bytes) in the volume due to deduplication, compression, and file cloning.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json index b0b83e339..42a7527ce 100644 --- a/grafana/dashboards/cmode/volume.json +++ b/grafana/dashboards/cmode/volume.json @@ -105,7 +105,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average Latency of top $TopResources volumes", + "description": "Average Latency of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -169,7 +169,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Throughput of top $TopResources volumes", + "description": "Throughput of top $TopResources volumes.", "fieldConfig": { "defaults": { "color": { @@ -227,7 +227,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "IOPs of top $TopResources volumes", + "description": "IOPs of top $TopResources volumes.", "fieldConfig": { "defaults": { "mappings": [], @@ -283,7 +283,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process all the operations on the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -374,7 +374,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Total throughput.", "fieldConfig": { "defaults": { "color": { @@ -465,7 +465,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of operations per second serviced by the volume.", "fieldConfig": { "defaults": { "color": { @@ -567,7 +567,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Volume details.", "fieldConfig": { "defaults": { "custom": { @@ -981,6 +981,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1124,6 +1125,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes read per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -1235,6 +1237,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of reads per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -1346,6 +1349,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1488,6 +1492,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Bytes written per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -1599,6 +1604,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Number of writes per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -1725,7 +1731,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process read request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1815,7 +1821,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process write request to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1905,7 +1911,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Average latency in microseconds for the WAFL filesystem to process other operations to the volume; not including request processing or network communication time.", "fieldConfig": { "defaults": { "color": { @@ -1996,7 +2002,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of reads per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -2086,7 +2092,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of writes per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -2176,7 +2182,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Number of other operations per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -2267,7 +2273,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes read per second from the volume.", "fieldConfig": { "defaults": { "color": { @@ -2358,7 +2364,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Bytes written per second to the volume.", "fieldConfig": { "defaults": { "color": { @@ -2671,6 +2677,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the average response time for read requests that were initiated by the workload.", "fieldConfig": { "defaults": { "color": { @@ -2761,6 +2768,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the average response time for write requests that were initiated by the workload.", "fieldConfig": { "defaults": { "color": { @@ -2851,6 +2859,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the rate of this workload's read operations that completed during the measurement interval.", "fieldConfig": { "defaults": { "color": { @@ -2941,6 +2950,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the workload's write operations that completed during the measurement interval; measured per second.", "fieldConfig": { "defaults": { "color": { @@ -3031,6 +3041,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the amount of data read per second from the filer by the workload.", "fieldConfig": { "defaults": { "color": { @@ -3121,6 +3132,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the amount of data written per second to the filer by the workload.", "fieldConfig": { "defaults": { "color": { @@ -3211,6 +3223,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the percentage of reads, performed on behalf of the workload, that were sequential.", "fieldConfig": { "defaults": { "color": { @@ -3302,6 +3315,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "This is the percentage of writes, performed on behalf of the workload, that were sequential. This counter is only available on platforms with more than 4GB of NVRAM.", "fieldConfig": { "defaults": { "color": { @@ -3425,7 +3439,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3515,7 +3529,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3606,7 +3620,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3697,7 +3711,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3787,7 +3801,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3877,7 +3891,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -3968,7 +3982,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -4059,7 +4073,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -4150,7 +4164,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -4240,7 +4254,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -4330,7 +4344,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": { @@ -4900,7 +4914,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "Average latency per GET operation to object storage", + "description": "Average latency per GET operation to object storage.", "fieldConfig": { "defaults": { "color": { @@ -5086,7 +5100,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "Average latency per PUT operation to object storage", + "description": "Average latency per PUT operation to object storage.", "fieldConfig": { "defaults": { "color": { @@ -5372,7 +5386,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in bytes for the performance tier (bin 0).", "fieldConfig": { "defaults": { "color": { @@ -5466,7 +5480,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in performance tier (bin 0) as a percentage of aggregate size.", "fieldConfig": { "defaults": { "color": { @@ -5561,7 +5575,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in bytes for capacity tier (bin 1).", "fieldConfig": { "defaults": { "color": { @@ -5655,7 +5669,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Footprint of blocks written to the volume in capacity tier (bin 1) as a percentage of aggregate size.", "fieldConfig": { "defaults": { "color": { @@ -5765,6 +5779,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "Number of user-visible files (inodes) used. This field is valid only when the volume is online.", "fieldConfig": { "defaults": { "color": { @@ -5852,6 +5867,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "Total user-visible file (inode) count, i.e., current maximum number of user-visible files (inodes) that this volume can currently hold.", "fieldConfig": { "defaults": { "color": { @@ -5938,6 +5954,7 @@ }, { "datasource": "${DS_PROMETHEUS}", + "description": "volume_inode_files_used / volume_inode_total.", "fieldConfig": { "defaults": { "color": { @@ -6057,7 +6074,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "", + "description": "Percent of compress fail.", "fieldConfig": { "defaults": { "color": { diff --git a/grafana/dashboards/cmode/workload.json b/grafana/dashboards/cmode/workload.json index aba996e13..a53943060 100644 --- a/grafana/dashboards/cmode/workload.json +++ b/grafana/dashboards/cmode/workload.json @@ -1600,7 +1600,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from bamboo_ssd component", + "description": "This is the percentage of read requests served from bamboo_ssd component.", "fieldConfig": { "defaults": { "color": { @@ -1688,7 +1688,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from cache", + "description": "This is the percentage of read requests served from cache.", "fieldConfig": { "defaults": { "color": { @@ -1776,7 +1776,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from cloud", + "description": "This is the percentage of read requests served from cloud.", "fieldConfig": { "defaults": { "color": { @@ -1864,7 +1864,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from cloud_s2c", + "description": "This is the percentage of read requests served from cloud_s2c.", "fieldConfig": { "defaults": { "color": { @@ -1952,7 +1952,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from disk", + "description": "This is the percentage of read requests served from disk.", "fieldConfig": { "defaults": { "color": { @@ -2040,7 +2040,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from ext_cache", + "description": "This is the percentage of read requests served from ext_cache.", "fieldConfig": { "defaults": { "color": { @@ -2128,7 +2128,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from fc_miss", + "description": "This is the percentage of read requests served from fc_miss.", "fieldConfig": { "defaults": { "color": { @@ -2216,7 +2216,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from hya_cache", + "description": "This is the percentage of read requests served from hya_cache.", "fieldConfig": { "defaults": { "color": { @@ -2304,7 +2304,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from hya_hdd", + "description": "This is the percentage of read requests served from hya_hdd.", "fieldConfig": { "defaults": { "color": { @@ -2392,7 +2392,7 @@ }, { "datasource": "${DS_PROMETHEUS}", - "description": "This is the percentage of read requests served from hya_non_cache", + "description": "This is the percentage of read requests served from hya_non_cache.", "fieldConfig": { "defaults": { "color": { @@ -2495,6 +2495,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "", "fieldConfig": { "defaults": { "color": { @@ -4060,6 +4061,7 @@ "panels": [ { "datasource": "${DS_PROMETHEUS}", + "description": "average latency for workload on Data ONTAP subsystems.", "fieldConfig": { "defaults": { "color": {