24.05.0
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
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 foroffbox_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)