-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Publish richer virtual disk statistics to oximeter (#746)
* Publish richer virtual disk statistics to oximeter - Use the `virtual_disk:*` timeseries defined in Omicron to publish statistics about the block operations performed on virtual disks. - Add concept of a completion callback to the existing block tracking object, and expose a way to set the callback on a `block::Device`. - Create object for managing all the statistics for one virtual disk backed by Crucible. This is shared between the existing oximeter producer, and the block devices, via the above completion callback mechanism. As I/Os complete, the stats are updated, and oximeter collects them periodically. - Straighten out a bunch of the initialiazation logic for the pre-existing metrics, producer server, and registry. This grew pretty organically, and was getting unwieldy and confusing. - Use `virtual_machine:reset` definition from TOML - Move kstat sampler creation to machine initialization process, rather than buried in the producer server startup. This lets us use the sampler in-line when initializing the vCPUs, where it should be much easier to re-use when we want to add more kstat-based metrics, such as Viona link stats. - Simplify and cleanup the `ServerStats` types, and remove the kstat sampler from it, which never should have been there at all. - Bump kstat-rs dep, which includes the new version that is cross-platform. This gets rid of a bunch of cfg-soup in the stats modules. * Shorten collection interval, since disk stats are only polled * Small fixes - Use 512B as the lowest I/O size histogram bin - Update Crucible dep so we can test in CI - Fixups for some cfg directives around kstats * Review feedback - Clarify when we create kstat sampler - Style nits and comment cleanup - Don't return early from blockdev initialization if we fail to track stats, just continue instead * Rename oximeter collection interval for clarity * Review feedback - Remove default impl of `set_completion_callback()` - Cleanup internals of `Tracking` creation * Point back to Omicron / Crucible main branches
- Loading branch information
Showing
13 changed files
with
1,493 additions
and
451 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.