feat: cmperf collector#4305
Conversation
There was a problem hiding this comment.
Pull request overview
Introduces the CmPerf collector's data path: instead of polling per-counter REST endpoints, it downloads pre-aggregated CM2 protobuf files from the ONTAP counter-cache SPI endpoint, parses them into the matrix, and cooks counters using the existing RestPerf-style post-processing. Templates under conf/cmperf/9.19.1 are migrated from the old instance_key: + plain counter style to the new ^^/^ counter-prefix syntax that CmPerf's InitCache requires. A small IsCmPerfCollector() hook is added so the RestPerf NIC plugin selects the rx_bytes/tx_bytes naming used by CmPerf.
Changes:
- New
cm2.go: ONTAP file listing, SPI download, protobuf parse, schema-driven counter setup, scalar/1D/2D/histogram matrix population, and instance-key construction. - Reworked
cmperf.goPollData/PollCounter to drive the CM2 download/parse pipeline, plus receiver-name and structural cleanups (drop unused QoS-detail plumbing andInitSchedule). - Bulk template migration to
^^instance_uuid/^…label syntax across 30+ object YAMLs, and small plugin/poller hooks (IsCmPerfCollector, NIC plugin updates).
Reviewed changes
Copilot reviewed 40 out of 40 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/collectors/cmperf/cm2.go | New CM2 download/parse pipeline and matrix population. |
| cmd/collectors/cmperf/cmperf.go | Reworked PollData/PollCounter around CM2 files; receiver rename; QoS-detail cleanup. |
| cmd/poller/plugin/plugin.go | Adds IsCmPerfCollector() helper. |
| cmd/collectors/restperf/plugins/nic/nic.go | Treats CmPerf like StatPerf for rx/tx byte naming and nic port label. |
| conf/cmperf/9.19.1/*.yaml (30+) | Migrate counters to ^^/^ prefix syntax; drop top-level instance_key; minor formatting. |
| conf/cmperf/9.19.1/token_manager.yaml | Renames instance_name => token but is missing the ^/^^ prefixes, leaving the template inconsistent with the rest of the migration. |
| conf/cmperf/9.19.1/workload*.yaml | Switch keys to ^^instance_uuid, change data schedule from 3m to 1m. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.