Skip to content

feat: gcnv ontap mode support#4235

Merged
rahulguptajss merged 5 commits intomainfrom
rg2-gcnv-ontap-mode
Apr 14, 2026
Merged

feat: gcnv ontap mode support#4235
rahulguptajss merged 5 commits intomainfrom
rg2-gcnv-ontap-mode

Conversation

@rahulguptajss
Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings April 14, 2026 09:53
@cla-bot cla-bot bot added the cla-signed label Apr 14, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for monitoring Google Cloud NetApp Volumes (GCNV) in ONTAP mode by introducing a poller config flag, adapting REST request/response handling for GCNV’s API quirks, and updating docs + Grafana dashboards/tags to work in that environment.

Changes:

  • Add gcnv_ontap_mode poller configuration and ensure it’s preserved during config merging.
  • Update REST tooling client to (a) rewrite fields query params and (b) unwrap GCNV { "body": ... } response envelopes; adjust poller TCP ping hostname handling for resource-path addr.
  • Add documentation + mkdocs nav entry and tag/update relevant Grafana dashboards for GCNV ONTAP mode.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
pkg/conf/conf.go Adds GCNVOntapMode poller field, union preservation, and node-based parsing.
cmd/tools/rest/client.go Implements GCNV-specific fields param rewrite and response-body unwrapping for GET.
cmd/poller/poller.go Strips path from addr for TCP ping when in GCNV ONTAP mode.
docs/gcnv-ontap-mode.md New setup/limitations guide for GCNV ONTAP mode.
docs/configure-harvest-basic.md Documents new gcnv_ontap_mode poller parameter.
mkdocs.yml Adds docs nav entry for the new GCNV ONTAP mode page.
grafana/dashboards/cmode/volume.json Updates table queries/transforms (adds unique_id) and tags dashboard for GCNV ONTAP mode.
grafana/dashboards/cmode/lun.json Updates table queries/transforms (adds unique_id) and tags dashboard for GCNV ONTAP mode.
grafana/dashboards/cmode/svm.json Tags dashboard for GCNV ONTAP mode.
grafana/dashboards/cmode/security.json Tags dashboard for GCNV ONTAP mode.
grafana/dashboards/cmode-details/volumeDeepDive.json Tags dashboard for GCNV ONTAP mode.
grafana/dashboards/cmode-details/volumeBySVM.json Tags dashboard for GCNV ONTAP mode.
cmd/tools/grafana/dashboard_test.go Allows gcnv-ontap-mode as a valid dashboard tag in tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cmd/tools/rest/client.go
Comment thread cmd/tools/rest/client.go
Comment thread cmd/tools/rest/client.go
Comment thread grafana/dashboards/cmode/volume.json Outdated
Comment thread mkdocs.yml Outdated
Comment thread pkg/conf/conf.go
Copilot AI review requested due to automatic review settings April 14, 2026 10:40
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

grafana/dashboards/cmode/volume.json:996

  • This PromQL sum is likely to return no data because the two operands won’t have matching label sets: the volume_sis_compress_saved term is joined with volume_labels using group_left(node), but the volume_sis_dedup_saved term is not. In PromQL, vector addition matches on all labels by default, so the extra node label on one side prevents matches. Apply the same label-join (or an explicit on(...)/ignoring(...) match) to both operands before adding, then do the final label_join.
              "expr": "label_join(\n    volume_sis_dedup_saved{cluster=~\"$Cluster\",datacenter=~\"$Datacenter\",style!=\"flexgroup_constituent\",svm=~\"$SVM\",volume=~\"$Volume\"}\n  +\n      volume_sis_compress_saved{cluster=~\"$Cluster\",datacenter=~\"$Datacenter\",style!=\"flexgroup_constituent\",svm=~\"$SVM\",volume=~\"$Volume\"}\n    * on (datacenter, cluster, svm, volume) group_left (node)\n      volume_labels{cluster=~\"$Cluster\",datacenter=~\"$Datacenter\",junction_path=~\"$Junction\",svm=~\"$SVM\",tags=~\".*$Tag.*\",volume=~\"$Volume\"},\n  \"unique_id\",\n  \"-\",\n  \"datacenter\",\n  \"cluster\",\n  \"svm\",\n  \"volume\"\n)",
              "format": "table",
              "hide": false,
              "instant": true,
              "interval": "",

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cmd/tools/rest/client.go
Comment thread cmd/tools/rest/client.go Outdated
cgrinds
cgrinds previously approved these changes Apr 14, 2026
Hardikl
Hardikl previously approved these changes Apr 14, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cmd/tools/rest/client.go
Comment thread cmd/tools/rest/client.go
@rahulguptajss rahulguptajss merged commit 22d2e07 into main Apr 14, 2026
17 checks passed
@rahulguptajss rahulguptajss deleted the rg2-gcnv-ontap-mode branch April 14, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Harvest for Google Cloud NetApp Volumes Flex Unified with ONTAP-mode

4 participants