Commit 88fbde7
authored
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 branches1 parent 39d6150 commit 88fbde7
File tree
13 files changed
+1493
-451
lines changed- bin/propolis-server/src/lib
- stats
- vm
- lib/propolis/src
- block
- hw
- nvme
- virtio
13 files changed
+1493
-451
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
85 | | - | |
| 84 | + | |
| 85 | + | |
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | | - | |
| 123 | + | |
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
15 | 18 | | |
16 | 19 | | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
20 | 23 | | |
| 24 | + | |
21 | 25 | | |
22 | 26 | | |
23 | 27 | | |
| |||
491 | 495 | | |
492 | 496 | | |
493 | 497 | | |
494 | | - | |
| 498 | + | |
| 499 | + | |
495 | 500 | | |
496 | 501 | | |
497 | 502 | | |
| |||
542 | 547 | | |
543 | 548 | | |
544 | 549 | | |
545 | | - | |
| 550 | + | |
546 | 551 | | |
547 | 552 | | |
548 | 553 | | |
549 | 554 | | |
550 | 555 | | |
551 | 556 | | |
552 | | - | |
| 557 | + | |
| 558 | + | |
553 | 559 | | |
554 | 560 | | |
555 | 561 | | |
| |||
564 | 570 | | |
565 | 571 | | |
566 | 572 | | |
567 | | - | |
| 573 | + | |
| 574 | + | |
568 | 575 | | |
569 | 576 | | |
570 | 577 | | |
571 | | - | |
572 | | - | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
573 | 581 | | |
574 | 582 | | |
575 | 583 | | |
576 | | - | |
| 584 | + | |
577 | 585 | | |
578 | 586 | | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
579 | 626 | | |
580 | 627 | | |
581 | 628 | | |
| |||
1041 | 1088 | | |
1042 | 1089 | | |
1043 | 1090 | | |
1044 | | - | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
1045 | 1095 | | |
1046 | 1096 | | |
1047 | 1097 | | |
1048 | 1098 | | |
1049 | 1099 | | |
1050 | 1100 | | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
1051 | 1104 | | |
1052 | 1105 | | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
1053 | 1127 | | |
0 commit comments