fix(diskspace.plugin): exclude ZFS datasets #21532
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes: #21518
Problem
When a ZFS pool runs out of disk space, the diskspace collector triggers separate alerts for every dataset in the pool. For pools with hundreds of datasets, this creates massive alert/notification floods.
Root Cause
The diskspace collector treats each ZFS dataset as a separate mountpoint and calls
stat()on every one. When the parent pool fills up, all child datasets are affected simultaneously, triggering alerts for each one.Solution
Exclude ZFS datasets from diskspace monitoring, keeping only ZFS pool-level mountpoints. This is done by checking the mount source field in
/proc/self/mountinfo:tank)tank/install,tank/u/user1)Test Plan
Additional Information
For users: How does this change affect me?
Summary by cubic
Prevents alert floods in diskspace monitoring by excluding ZFS datasets and monitoring only ZFS pools.
Written for commit 0c0ff65. Summary will update on new commits.