Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial draft of snapshots size monitoring plugin
CREDIT: This plugin would simply not have been possible without the help from @dougm. I'm grateful for both the general feedback (confirming I was looking in the right direction) and taking the time to craft code samples based on a review of the PowerCLI (C#) `Get-Snapshot` implementation. The logic used in this plugin is heavily inspired from the ideas presented, but *attempts* to use a slightly different (but probably less efficient) approach that made more sense to me. The current implementation is based on an evolution of my understanding of the API. While I believe the end results between the two implementations are the same, with further refactoring the implementation used by this project will probably end up looking nearly the same as the code examples originally presented. OVERVIEW: As with several other plugins in this project, this one borrows heavily from existing projects. In particular, this plugin was initially based on a PowerShell / PowerCLI plugin I wrote in 2019. In short, this plugin attempts to provide snapshot size details per snapshot for review, but evaluates size of snapshots for a VM based on the total of all snapshot size values, not individual values. This differs from the snapshots age plugin, which checks each snapshot individually to determine the service check result. Doc updates have been applied, example usage has been added, including a command definition "contrib" file illustrating how the plugin would be referenced within a production Nagios configuration. Partial work implemented with the snapshots age monitoring plugin to handle size monitoring has been completed and is functional as of this set of changes. Further refactoring and polish is needed, but based on initial use in our production environment the results appear to match the results provided by PowerCLI `Get-Snapshot` results. OTHER CHANGES: - Minor tweaks to snapshots age plugin to better mirror new snapshots size plugin. The idea is to eventually refactor both to share common code instead of replicating between the two. - Refactoring (more todo) of `internal/vsphere` code used by both plugins REFERENCES: - refs #4 - refs vmware/govmomi#2243 SEE ALSO: Note to self: See the following branches for "archival" commits that I hammered out while trying to understand the API. There is a lot of cruft and dead ends, but something there may be useful later. - `ARCHIVE-i4-add-snapshots-size-monitoring-plugin` - basically a "dirty" version of the branch holding this commit - `ARCHIVE-i4-add-snapshots-age-monitoring-plugin` - likely contains fragments of functionality from this branch before they were yanked to provide a more focused release (using what functionality was working at the time for the age-based checks) - `i4-add-snapshots-monitoring-plugin` - what I thought was going to be a combined plugin for age and size checks; abandoned, older state than the other branches
- Loading branch information