24.05.0 / 2024-05-20 Release
π Highlights of this major release include:
-
Harvest supports consistency groups (CG) in the SnapMirror dashboard. Thanks to @Nikhita-13 for reporting this.
-
We've fixed an intermittent latency/ops spike problem caused by Harvest incorrectly handling ONTAP partial aggregation. This impacted all perf objects. A big thank you to @summertony15 for reporting this critical issue.
-
Harvest dashboards are compatible with Grafana 10.x.x versions.
-
π LUN, Flexgroup and cDot dashboard updated to work with FSx. Some panels are blank because FSx does not have that data.
-
The credentials script supports providing both username and password. Thanks to @kbhalaki for reporting.
-
Harvest configuration file supports reading parameters from environment variables. Kudos to @wally007 for the suggestion.
-
Harvest includes remediation steps for EMS alerts.
-
π New Dashboards:
NFS Troubleshooting
which provides links to detailed dashboards. Thanks to RustyBrown for contributing these.- Detailed Dashboards:
Volume by SVM
andVolume Deep Dive
.
-
π Performance Improvements:
- Rest/RestPerf Collector only requests metrics defined in templates, reducing API time, payload size, and collection load.
- TopK queries in dashboards are now faster. Thanks to AlessandroN for reporting.
-
β Several of the existing dashboards include new panels in this release:
- Workload dashboard includes adaptive QoS used percentage tracking. Thanks to @faguayot for reporting.
- Network dashboard includes ethernet errors. Thanks to Rusty Brown for contributing.
- Node dashboard includes the BMC firmware version. Thanks to @summertony15 for reporting.
- SVM dashboard now includes NFS4.2 panels. Thanks to Didlier for reporting.
- The Volume dashboard includes several new panels:
-
πΎ Harvest includes a new template to collect lock counts at the node, SVM, LIF, and volume levels.. Thanks to @troysmullerna for reporting.
-
π Documentation Additions:
- How to customize Prometheus's retention period in a Docker deployment. Thanks to @WayneShen2 for the suggestion.
- How to use endpoints in a REST collector template. Thanks to Hubert for reporting.
- Harvest includes remediation steps for EMS alerts.
- How to use
confpath
to extend templates.
-
Harvest supports embedded exporters in Harvest configuration. This means you can define your exporters in one place instead of multiple. Thanks to @wagneradrian92 for reporting.
-
Harvest supports exporting to multiple InfluxDB instances. Thanks to @figeac888 for reporting.
-
Node label metrics include HA partner details. Thanks to @johnwarlick for reporting.
Announcements
βΌοΈ IMPORTANT Release 24.05
removes duplicate quota metrics. If you wish to enable them, refer here.
π‘ IMPORTANT After upgrading, don't forget to re-import your dashboards to get all the new enhancements and fixes. You can import them via the 'bin/harvest grafana import' CLI, from the Grafana UI, or from the 'Maintenance > Reset Harvest Dashboards' button in NAbox.
Known Issues
- β οΈ Harvest does not calculate power metrics for AFF A250 systems. This data is not available from ONTAP via ZAPI or REST. See ONTAP bug 1511476 for more details.
- β οΈ ONTAP does not include REST metrics for
offbox_vscan_server
andoffbox_vscan
until ONTAP 9.13.1. See ONTAP bug 1473892 for more details.
IMPORTANT 7-mode filers that are not on the latest release of ONTAP may experience TLS connection issues with errors like tls: server selected unsupported protocol version 301
. This is caused by a change in Go 1.18. The default for TLS client connections was changed to TLS 1.2 in Go 1.18. Please upgrade your 7-mode filers (recommended) or set tls_min_version: tls10
in your harvest.yml
poller section. See #1007 for more details.
Thanks to all the awesome contributors
π€ A big thanks to all the people who've opened issues, asked questions on Discord, and contributed code or dashboards this release:
@BrendonA667, @Nikhita-13, @WayneShen2, @derDaywalker, @faguayot, @figeac888, @jgasher, @johnwarlick, @kbhalaki, @rdecaneva, @s-kuchi, @summertony15, @troysmullerna, @wagneradrian92, @wally007, @ybizeul, AlessandroN, Didlier, Hubert, Rusty Brow, Tamas Zsolt
π± This release includes 42 features, 38 bug fixes, 10 documentation, 1 performance, 6 styling, 9 refactoring, 16 miscellaneous, and 17 ci pull requests.
π Features
- Adding Zapi/Rest Templates For Lock-Get-Iter & Protocols/Locks (#2706)
- Dashboards Would Work With Grafana 10.X.x (#2713)
- Add Harvest.yml Environment Variable Expansion (#2714)
- Metadata Dashboard Should Include Poller Rss Panels And Time Se⦠(#2716)
- Harvest Should Export To Multiple Influxdb Exporters (#2722)
- Adding Ha_partner Info In Node (#2723)
- Improve Rest Collector (#2740)
- Harvest Should Track Network Bytes Received And Number Of Ontap⦠(#2745)
- Harvest Should Handle Ontap Counter Manager Rejection Errors (#2747)
- Harvest Network Dashboard Should Show Ethernet Errors (#2748)
- Changed Plugin Generated Metric Naming For Lock Object (#2750)
- Usage Of Predict_linear Function In Volume Dashboard (#2763)
- Improve Restperf Collector (#2765)
- Harvest Should Include Nfs Troubleshooting Dashboards (#2766)
- Adding Volume Growth Rate Panels In Volume Dashboard (#2768)
- Harvest Should Reduce Batch Size And Retry When Ontap Times Out (#2770)
- Ignore Performance Counters With Partial Aggregation (#2775)
- Harvest Should Reduce Batch Size And Retry When Ontap Times Out (#2776)
- Harvest Should Log When The Template Is Missing (#2779)
- Add Instance Log For Latency Calculation (#2794)
- Harvest Should Collect The Bmc Firmware Version (#2800)
- Add I/O Density Panels To Volume Dashboard (#2805)
- Reduce Dependencies (#2812)
- Use Constrained Topk To Improve Dashboard Performance (#2825)
- Supporting Consistency Group Drilldowns In Snapmirror Dashboard (#2830)
- Harvest Should Include Remediation Steps For Ems Alerts (#2836)
- Harvest Svm Dashboard Should Include Nfsv4.2 Panels (#2846)
- Adding Description To Svm Panels (#2861)
- Harvest Should Support Embedded Exporters (#2864)
- Adaptive Qos Used% Tracking (#2865)
- Credentials Script Should Support Both Username And Password (#2870)
- Adding Panel Descriptions In All Dashboards (#2878)
- Remove Hidden Topk Variables From Dashboards (#2881)
- Remove Duplicate Quota Metrics (#2886)
- Remove Hidden Topk Variables From Dashboards (#2889)
- Adding Description To Panels (#2891)
- Add Test Case For Join Queries In A Table (#2892)
- Adding Details Folder In Docker (#2896)
- Enable Request/Response Logging For Rest And Restperf Plugins (#2898)
- Flexgroup And Lun Dashboards Work With Fsx (#2899)
- Remove Hidden Topk From Aggregation Dashboard (#2900)
- Cdot Dashboards Work With Fsx (#2903)
π Bug Fixes
- Handle Inter-Cluster Snapmirrors When Different Datacenter (#2688)
- Display Poller Status With Harvest_docker Env (#2705)
- Sync Svm_labels With Ontap Cli For Zapi Collector (#2711)
- Harvest Should Not Panic When A Poller Has No Config (#2718)
- Convert Qos Adaptive Policy Configuration Ops To Tb (#2720)
- Align Make Build Version With Prod Version (#2732)
- Add Volume Filter For Per Volume Statistics (#2742)
- Restperf Panics When Pollinstance Fails (#2743)
- Storagegrid Should Honor Template Api Version (#2744)
- Qospolicyfixed Should Ignore Missing Min-Throughput (#2754)
- Remove Unused Error From Rest (#2758)
- Harvest Dashboard Variables Should Use Fsx Friendly Queries Wher⦠(#2778)
- Harvest Should Support Poller Names With Spaces In Their Names (#2780)
- Restperf Ignore Performance Counters With Partial Aggregation (#2783)
- Using Volume_total_data Instead Of Read_data And Write_data (#2786)
- Change Diskperf Warn To Debug When Metrics Have Record False (#2796)
- Parity Of Id Value In Disk Restperf And Zapiperf (#2807)
- Iops Should Not Have Decimals In Dashboards (#2810)
- Node Dashboard, Bmc Column Should Have String Unit (#2815)
- Add Root_volume Label For Vol0 Volumes (#2816)
- The Unix Poller Should Detect Poller Names With Spaces (#2818)
- Add Missing Label Snapshot_autodelete To Rest Volume Template (#2822)
- Resolve Duplicate Skip Increment (#2826)
- Zapiperf Pollcounter Error (#2831)
- Update Workload Templates To Use Default Schedule For Counter And Instance (#2835)
- Fix Dashboard Sort Test (#2844)
- Svm Cifs Total Ops Should Sum All Types Of Ops (#2853)
- Volume Count In Datacenter Dashboard (#2854)
- Load Cert Pool When Ca_cert Is Defined In Harvest.yml (#2855)
- Qos Mbps Should Report With Precision (#2871)
- Remove Duplicate Columns From Qos Adaptive Dashboard Tables (#2872)
- Adaptive Qos Table Grafana 9 Workaround (#2873)
- Handling Index For Quota (#2874)
- Add Regex For Node Table (#2884)
- Add All To Svm Dropdown In Volume Deep Dive Dashboard (#2901)
- Add Restgap For Volume_space_logical_available (#2904)
- Handling Missing Protection_mode In Disk Rest Call (#2905)
- Duplicate Instance Key Issue Quota Metrics (#2913)
π Documentation
- Describe How To Use Confpath To Extend Templates (#2725)
- Prometheus Retention Period Customization In Docker Instructions (#2760)
- Update Container Faq (#2809)
- Harvest Should Document How To Use Endpoints In Rest Collector Template (#2811)
- Add Workload-Class As Supported Field For Workload Perf Filter (#2828)
- Clarify Include_all_labels And Export Options (#2839)
- Fix Latency Average Units (#2851)
- Add Jitter Documentation (#2860)
- Update List Of Supported Fsx Dashboards (#2906)
- 24.05 Ontap Metric Docs (#2907)
β‘ Performance
- Remove Visits Counter From Workload Detail Templates (#2824)
Styling
- Remove Potential Nil Dereference (#2675)
- Fix Spelling Error In Description (#2712)
- Log Via Send Instead Of Msg("") (#2737)
- Jitter Logging (#2781)
- Improving Debug Log Clarity And Reducing Noise (#2795)
- Reduce Log Noise When Disk Attributes Are Missing (#2798)
Refactoring
- Use Range Over Int Go 1.22 Feature (#2684)
- Don't Double Log Error (#2739)
- Remove Unused Schedule In Security Account Rest Template (#2751)
- Log With Msg Not Msgf (#2753)
- Changed Field To Use # To Handle Counter Testcase (#2759)
- Remove Trace Logging (#2813)
- Fetch Constituents When Asked From Template (#2838)
- Use Cmp.or For Envvar-Default Pattern (#2845)
- Changed Allvalue To .* (#2887)
Miscellaneous
- Merge Release/24.02.0 To Main (#2701)
- Update Golang.org/X/Exp Digest To 814Bf88 (#2709)
- Bump (#2721)
- Update Module Github.com/Shirou/Gopsutil/V3 To V3.24.2 (#2724)
- Update Module Github.com/Go-Openapi/Spec To V0.21.0 (#2733)
- Update Golang.org/X/Exp Digest To C7f7c64 (#2755)
- Update All Dependencies (#2772)
- Use The Correct Format For .Golangci.yml (#2791)
- Update All Dependencies (#2797)
- Commitlint Changed File Extension (#2801)
- Update All Dependencies (#2814)
- Update Golang.org/X/Exp Digest To 93D18d7 (#2833)
- Address Code Scanning Issues In Thirdparty (#2842)
- Update Golang.org/X/Exp Digest To Fe59bbe (#2843)
- Update All Dependencies (#2877)
- Update Module Github.com/Zekrotja/Timedmap To V2 (#2888)
π¨ CI
- Merge 24.02 Into Main (#2683)
- Use Go Run To Track Tool Dependencies (#2685)
- Run Go Mod Tidy Before Linting And Govulncheck (#2708)
- Preallocate Slices That Can Be (#2727)
- Bump Go (#2728)
- Bump Dependencies (#2730)
- Improve Lint (#2764)
- Enable Integration Dep Updates With Renovate (#2789)
- Move More Ci From Github Actions To Makefile (#2803)
- Bump Go (#2808)
- Add Flexcache To Flaky Counter List (#2817)
- Enable More Linters (#2841)
- Enable More Linters (#2847)
- Enable Golanglint "Canonicalheader" Linter (#2876)
- Bump Go (#2880)
- Bump Dependencies (#2882)
- Increase Golangci-Lint Timeout (#2912)