Skip to content

Commit

Permalink
feat: quota metric renaming (#1345)
Browse files Browse the repository at this point in the history
* feat: quota metric renaming

* feat: type change

* feat: rest side changes + retain older qtree plugin metrics

* feat: handle instances/metrics review comments

* feat: handle review comments

* feat: missed to add the file

* feat: deprecation in changelog
  • Loading branch information
Hardikl authored Oct 20, 2022
1 parent a2f5fb3 commit 9db5393
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 35 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

[Releases](https://github.com/NetApp/harvest/releases)

## 22.11.0 / 2022-11-10
<!-- git log --no-decorate --no-merges --cherry-pick --right-only --oneline origin/release/22.08.0...origin/release/22.11.0 -->

:rocket: Highlights of this major release include:

**Deprecation**: Earlier versions of Harvest published quota metrics prefixed with qtree. Harvest release 22.11 deprecates the quota metrics prefixed with qtree and instead publishes quota metrics prefixed with quota.
All dashboards have been updated. If you are consuming these metrics outside the default dashboards, please update them to use the quota prefixed metrics. Harvest release 23.02 will remove the deprecated quota metrics
prefixed with qtree.

---

## 22.08.0 / 2022-08-19
<!-- git log --no-decorate --no-merges --cherry-pick --right-only --oneline origin/release/22.05.0...origin/release/22.08.0 -->

Expand Down
14 changes: 7 additions & 7 deletions cmd/collectors/rest/plugins/qtree/qtree.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/netapp/harvest/v2/pkg/dict"
"github.com/netapp/harvest/v2/pkg/errs"
"github.com/netapp/harvest/v2/pkg/matrix"
"github.com/netapp/harvest/v2/pkg/tree/node"
"github.com/netapp/harvest/v2/pkg/util"
"github.com/tidwall/gjson"
"strconv"
Expand Down Expand Up @@ -75,13 +74,10 @@ func (my *Qtree) Init() error {

my.query = "api/storage/quota/reports"

my.data = matrix.New(my.Parent+".Qtree", "qtree", "qtree")
my.data = matrix.New(my.Parent+".Qtree", "quota", "quota")
my.instanceKeys = make(map[string]string)
my.instanceLabels = make(map[string]*dict.Dict)

exportOptions := node.NewS("export_options")
exportOptions.NewChildS("include_all_labels", "true")

quotaType := my.Params.GetChildS("quotaType")
if quotaType != nil {
my.quotaType = []string{}
Expand All @@ -105,7 +101,6 @@ func (my *Qtree) Init() error {
}

my.Logger.Debug().Msgf("added data with %d metrics", len(my.data.GetMetrics()))
my.data.SetExportOptions(exportOptions)

return nil
}
Expand Down Expand Up @@ -210,5 +205,10 @@ func (my *Qtree) Run(data *matrix.Matrix) ([]*matrix.Matrix, error) {
Int("metrics", numMetrics).
Msg("Collected")

return []*matrix.Matrix{my.data}, nil
// This would generate quota metrics prefix with `qtree_`. These are deprecated now and will be removed later.
qtreePluginData := my.data.Clone(true, true, true)
qtreePluginData.UUID = my.Parent + ".Qtree"
qtreePluginData.Object = "qtree"
qtreePluginData.Identifier = "qtree"
return []*matrix.Matrix{qtreePluginData, my.data}, nil
}
14 changes: 8 additions & 6 deletions cmd/collectors/zapi/plugins/qtree/qtree.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,10 @@ func (my *Qtree) Init() error {
}
my.Logger.Debug().Msg("plugin connected!")

my.data = matrix.New(my.Parent+".Qtree", "qtree", "qtree")
my.data = matrix.New(my.Parent+".Qtree", "quota", "quota")
my.instanceKeys = make(map[string]string)
my.instanceLabels = make(map[string]*dict.Dict)

exportOptions := node.NewS("export_options")
exportOptions.NewChildS("include_all_labels", "true")

objects := my.Params.GetChildS("objects")
if objects == nil {
return errs.New(errs.ErrMissingParam, "objects")
Expand Down Expand Up @@ -93,7 +90,6 @@ func (my *Qtree) Init() error {
}

my.Logger.Debug().Msgf("added data with %d metrics", len(my.data.GetMetrics()))
my.data.SetExportOptions(exportOptions)

// setup batchSize for request
if my.client.IsClustered() {
Expand Down Expand Up @@ -281,5 +277,11 @@ func (my *Qtree) Run(data *matrix.Matrix) ([]*matrix.Matrix, error) {
Str("parseD", parseT.Round(time.Millisecond).String()).
Str("batchSize", my.batchSize).
Msg("Collected")
return []*matrix.Matrix{my.data}, nil

// This would generate quota metrics prefix with `qtree_`. These are deprecated now and will be removed later.
qtreePluginData := my.data.Clone(true, true, true)
qtreePluginData.UUID = my.Parent + ".Qtree"
qtreePluginData.Object = "qtree"
qtreePluginData.Identifier = "qtree"
return []*matrix.Matrix{qtreePluginData, my.data}, nil
}
16 changes: 8 additions & 8 deletions grafana/dashboards/cmode/qtree.json
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@
"targets": [
{
"exemplar": true,
"expr": "topk($TopResources, qtree_disk_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$TopQtreeDiskUsed\"})",
"expr": "topk($TopResources, quota_disk_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$TopQtreeDiskUsed\"})",
"interval": "",
"legendFormat": "{{svm}} - {{volume}} - {{qtree}}",
"refId": "A"
Expand Down Expand Up @@ -618,7 +618,7 @@
"targets": [
{
"exemplar": true,
"expr": "topk($TopResources, qtree_files_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$TopQtreeFileUsed\"})",
"expr": "topk($TopResources, quota_files_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$TopQtreeFileUsed\"})",
"interval": "",
"legendFormat": "{{svm}} - {{volume}} - {{qtree}}",
"refId": "A"
Expand Down Expand Up @@ -961,7 +961,7 @@
"allValue": null,
"current": {},
"datasource": "${DS_PROMETHEUS}",
"definition": "query_result(topk($TopResources, avg_over_time(qtree_disk_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"definition": "query_result(topk($TopResources, avg_over_time(quota_disk_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"description": null,
"error": null,
"hide": 2,
Expand All @@ -971,7 +971,7 @@
"name": "TopQtreeDiskUsed",
"options": [],
"query": {
"query": "query_result(topk($TopResources, avg_over_time(qtree_disk_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"query": "query_result(topk($TopResources, avg_over_time(quota_disk_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"refId": "StandardVariableQuery"
},
"refresh": 1,
Expand All @@ -984,7 +984,7 @@
"allValue": null,
"current": {},
"datasource": "${DS_PROMETHEUS}",
"definition": "query_result(topk($TopResources, avg_over_time(qtree_files_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"definition": "query_result(topk($TopResources, avg_over_time(quota_files_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"description": null,
"error": null,
"hide": 2,
Expand All @@ -994,7 +994,7 @@
"name": "TopQtreeFileUsed",
"options": [],
"query": {
"query": "query_result(topk($TopResources, avg_over_time(qtree_files_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"query": "query_result(topk($TopResources, avg_over_time(quota_files_used{datacenter=~\"$Datacenter\", cluster=~\"$Cluster\", svm=~\"$SVM\", volume=~\"$Volume\", qtree=~\"$Qtree\"}[${__range}])))",
"refId": "StandardVariableQuery"
},
"refresh": 1,
Expand Down Expand Up @@ -1024,6 +1024,6 @@
},
"timezone": "",
"title": "ONTAP: Qtree",
"uid": "",
"uid": "X_svTxn4k",
"version": 5
}
}
24 changes: 12 additions & 12 deletions grafana/dashboards/cmode/quotaReport.json
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand All @@ -436,7 +436,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_disk_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_disk_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand All @@ -447,7 +447,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_file_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_file_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand All @@ -458,7 +458,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_files_used{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand All @@ -469,7 +469,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_soft_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_soft_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand All @@ -480,7 +480,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_disk_used_pct_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_disk_used_pct_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand All @@ -491,7 +491,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_files_used_pct_file_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_files_used_pct_file_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand All @@ -502,7 +502,7 @@
{
"datasource": "${DS_PROMETHEUS}",
"exemplar": false,
"expr": "qtree_soft_file_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"expr": "quota_soft_file_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",svm=~\"$SVM\",qtree=~\"$Qtree\"}",
"format": "table",
"hide": false,
"instant": true,
Expand Down Expand Up @@ -691,7 +691,7 @@
"allValue": null,
"current": {},
"datasource": "${DS_PROMETHEUS}",
"definition": "label_values(qtree_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, svm)",
"definition": "label_values(quota_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, svm)",
"description": null,
"error": null,
"hide": 0,
Expand All @@ -702,7 +702,7 @@
"name": "SVM",
"options": [],
"query": {
"query": "label_values(qtree_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, svm)",
"query": "label_values(quota_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}, svm)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
Expand All @@ -716,7 +716,7 @@
"allValue": "(.*)",
"current": {},
"datasource": "${DS_PROMETHEUS}",
"definition": "label_values(qtree_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", svm=~\"$SVM\"}, qtree)",
"definition": "label_values(quota_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", svm=~\"$SVM\"}, qtree)",
"description": null,
"error": null,
"hide": 0,
Expand All @@ -727,7 +727,7 @@
"name": "Qtree",
"options": [],
"query": {
"query": "label_values(qtree_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", svm=~\"$SVM\"}, qtree)",
"query": "label_values(quota_disk_limit{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\", svm=~\"$SVM\"}, qtree)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
Expand Down
4 changes: 2 additions & 2 deletions integration/test/data/counter_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ func GetCounterMap() map[string][]string {
"svm_ldap",
"svm_vscan",
"security_login",
"qtree_disk_used_pct_disk_limit",
"qtree_files_used_pct_file_limit",
"quota_files_used_pct_file_limit",
"quota_disk_used_pct_disk_limit",
"nfs_clients_idle_duration",
)
return counterMap
Expand Down

0 comments on commit 9db5393

Please sign in to comment.