Skip to content

feat: Harvest should include a cmperf collector#4240

Merged
cgrinds merged 2 commits intomainfrom
cbg-cmperf
Apr 16, 2026
Merged

feat: Harvest should include a cmperf collector#4240
cgrinds merged 2 commits intomainfrom
cbg-cmperf

Conversation

@cgrinds
Copy link
Copy Markdown
Collaborator

@cgrinds cgrinds commented Apr 15, 2026

No description provided.

Copilot AI review requested due to automatic review settings April 15, 2026 12:48
@cla-bot cla-bot bot added the cla-signed label Apr 15, 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 initial plumbing to support a new ONTAP performance collector named CmPerf, including configuration schema updates, collector registration/conflict handling, and a large set of CmPerf templates.

Changes:

  • Register the CmPerf collector and add ONTAP collector classification.
  • Generate a CmPerf JSON manifest from initialized CmPerf collectors (with tests) and add a poller config field for manifest naming.
  • Introduce conf/cmperf default + ONTAP 9.19.1 object templates, plus CmPerf plugin wrappers reusing existing implementations.

Reviewed changes

Copilot reviewed 71 out of 71 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
pkg/conf/conf.go Adds cm_perf_manifest poller config field.
pkg/conf/collectors.go Adds CmPerf to collector/type maps.
harvest.cue Adds cm_perf_manifest to CUE schema.
conf/cmperf/default.yaml Default CmPerf collector config + object template mapping.
conf/cmperf/9.19.1/workload_volume.yaml CmPerf template: WorkloadVolume.
conf/cmperf/9.19.1/workload.yaml CmPerf template: Workload.
conf/cmperf/9.19.1/wafl_hya_sizer.yaml CmPerf template: WAFLSizer.
conf/cmperf/9.19.1/wafl_hya_per_aggr.yaml CmPerf template: WAFLAggr.
conf/cmperf/9.19.1/wafl_comp_aggr_vol_bin.yaml CmPerf template: WAFLCompBin.
conf/cmperf/9.19.1/wafl.yaml CmPerf template: WAFL.
conf/cmperf/9.19.1/vscan_svm.yaml CmPerf template: VscanSVM.
conf/cmperf/9.19.1/vscan.yaml CmPerf template: Vscan.
conf/cmperf/9.19.1/volume_node.yaml CmPerf template: VolumeNode.
conf/cmperf/9.19.1/volume.yaml CmPerf template: Volume.
conf/cmperf/9.19.1/token_manager.yaml CmPerf template: TokenManager.
conf/cmperf/9.19.1/system_node.yaml CmPerf template: SystemNode.
conf/cmperf/9.19.1/smb2.yaml CmPerf template: SMB2.
conf/cmperf/9.19.1/rwctx.yaml CmPerf template: Rwctx.
conf/cmperf/9.19.1/resource_headroom_cpu.yaml CmPerf template: HeadroomCPU.
conf/cmperf/9.19.1/resource_headroom_aggr.yaml CmPerf template: HeadroomAggr.
conf/cmperf/9.19.1/qtree.yaml CmPerf template: Qtree.
conf/cmperf/9.19.1/path.yaml CmPerf template: Path.
conf/cmperf/9.19.1/ontap_s3_svm.yaml CmPerf template: OntapS3SVM.
conf/cmperf/9.19.1/object_store_client_op.yaml CmPerf template: ObjectStoreClient.
conf/cmperf/9.19.1/nvmf_tcp_port.yaml CmPerf template: NvmfTcpPort.
conf/cmperf/9.19.1/nvmf_rdma_port.yaml CmPerf template: NvmfRdmaPort.
conf/cmperf/9.19.1/nvmf_lif.yaml CmPerf template: NVMfLif.
conf/cmperf/9.19.1/nvm_mirror.yaml CmPerf template: NvmMirror.
conf/cmperf/9.19.1/nic_common.yaml CmPerf template: NicCommon.
conf/cmperf/9.19.1/nfsv4_pool.yaml CmPerf template: NFSv4Pool.
conf/cmperf/9.19.1/nfsv4_node.yaml CmPerf template: NFSv4Node.
conf/cmperf/9.19.1/nfsv4_2_node.yaml CmPerf template: NFSv42Node.
conf/cmperf/9.19.1/nfsv4_2.yaml CmPerf template: NFSv42.
conf/cmperf/9.19.1/nfsv4_1_node.yaml CmPerf template: NFSv41Node.
conf/cmperf/9.19.1/nfsv4_1.yaml CmPerf template: NFSv41.
conf/cmperf/9.19.1/nfsv4.yaml CmPerf template: NFSv4.
conf/cmperf/9.19.1/nfsv3_node.yaml CmPerf template: NFSv3Node.
conf/cmperf/9.19.1/nfsv3.yaml CmPerf template: NFSv3.
conf/cmperf/9.19.1/netstat.yaml CmPerf template: Netstat.
conf/cmperf/9.19.1/namespace.yaml CmPerf template: Namespace.
conf/cmperf/9.19.1/lun.yaml CmPerf template: Lun.
conf/cmperf/9.19.1/lif.yaml CmPerf template: LIF.
conf/cmperf/9.19.1/iwarp.yaml CmPerf template: Iwarp.
conf/cmperf/9.19.1/iscsi_lif.yaml CmPerf template: ISCSI.
conf/cmperf/9.19.1/hostadapter.yaml CmPerf template: HostAdapter.
conf/cmperf/9.19.1/fpolicy_svm.yaml CmPerf template: FPolicySVM.
conf/cmperf/9.19.1/fpolicy_server.yaml CmPerf template: FPolicyServer.
conf/cmperf/9.19.1/fpolicy.yaml CmPerf template: FPolicy.
conf/cmperf/9.19.1/flexcache.yaml CmPerf template: FlexCache.
conf/cmperf/9.19.1/fcvi.yaml CmPerf template: FCVI.
conf/cmperf/9.19.1/fcp_lif.yaml CmPerf template: FcpLif.
conf/cmperf/9.19.1/fcp.yaml CmPerf template: FcpPort.
conf/cmperf/9.19.1/external_service_operation.yaml CmPerf template: ExternalServiceOperation.
conf/cmperf/9.19.1/ext_cache_obj.yaml CmPerf template: ExtCacheObj.
conf/cmperf/9.19.1/disk.yaml CmPerf template: Disk.
conf/cmperf/9.19.1/copy_manager.yaml CmPerf template: CopyManager.
conf/cmperf/9.19.1/cifs_vserver.yaml CmPerf template: CIFSvserver.
conf/cmperf/9.19.1/cifs_node.yaml CmPerf template: CIFSNode.
cmd/poller/poller_test.go Adds tests for CmPerf overlap rules + manifest building/name selection.
cmd/poller/poller.go Registers CmPerf collector, adds conflict rules, and builds CmPerf manifest.
cmd/collectors/zapiperf/zapiperf.go Fixes non-formatted slog message for missing plugin.
cmd/collectors/cmperf/plugins/vscan/vscan.go Reuses zapiperf vscan plugin for CmPerf.
cmd/collectors/cmperf/plugins/volume/volume.go Reuses restperf volume plugin for CmPerf.
cmd/collectors/cmperf/plugins/nic/nic.go Reuses restperf nic plugin for CmPerf.
cmd/collectors/cmperf/plugins/headroom/headroom.go Reuses restperf headroom plugin for CmPerf.
cmd/collectors/cmperf/plugins/flexcache/flexcache.go Reuses statperf flexcache plugin for CmPerf.
cmd/collectors/cmperf/plugins/fcvi/fcvi.go Reuses restperf fcvi plugin for CmPerf.
cmd/collectors/cmperf/plugins/fcp/fcp.go Reuses restperf fcp plugin for CmPerf.
cmd/collectors/cmperf/plugins/fabricpool/fabricpool.go Reuses restperf fabricpool plugin for CmPerf.
cmd/collectors/cmperf/plugins/disk/disk.go Reuses restperf disk plugin for CmPerf.
cmd/collectors/cmperf/cmperf.go Introduces CmPerf collector skeleton and plugin dispatch.

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

Comment thread cmd/poller/poller.go
Comment thread cmd/collectors/cmperf/cmperf.go
Comment thread pkg/conf/conf.go
Comment thread cmd/poller/poller.go
Comment thread cmd/collectors/cmperf/cmperf.go
Comment thread cmd/collectors/cmperf/cmperf.go
Comment thread cmd/collectors/cmperf/plugins/flexcache/flexcache.go Outdated
@cgrinds cgrinds merged commit c315791 into main Apr 16, 2026
13 checks passed
@cgrinds cgrinds deleted the cbg-cmperf branch April 16, 2026 11:51
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.

4 participants