eve
eve copied to clipboard
Add sending metrics for devices from ZFS
This is the second part (first part #2645 ) of the PR with the addition of functionality for sending statistics for the Zpool and devices included in it to the controller.
@eriknordmark I updated this PR
Updated PR. At the request of @zedi-pramodh , @kalyan-nidumolu I changed the types of variables "PoolStatus" and "VDevAux" state in informational messages from numeric to string by sending a detailed state description.
With the pool in a normal state, these fields will not take up a large size in messages. Numeric states remain but will not be sent to the controller. We may need them in the future to respond to emerging issues with the storage system inside EVE.
And before merging this PR with the main branch, it is advisable to wait for PR #2746 to merge. This will avoid the difference in states that occurs due to different versions (more details in PR #2746).
I'm trying to make sure that the names for messages and their identifying content is the same across metrics.proto and info.proto when it comes to storage. But perhaps you can check that @vk-en? What I see is that in info.proto we use "Disk" as part of names where in metrics.proto we use "Device". Can we use Disk across the board? Also the pattern for identifying/naming the objects (be they pool, disks, childen) doesn't seem consistent but I need a lot of time and a whiteboard to write down the side by side comparison so I'd appreciate if you can do the comparison.
Also the pattern for identifying/naming the objects (be they pool, disks, childen) doesn't seem consistent but I need a lot of time and a whiteboard to write down the side by side comparison so I'd appreciate if you can do the comparison.
Of course, I will do it.
I'm trying to make sure that the names for messages and their identifying content is the same across metrics.proto and info.proto when it comes to storage. But perhaps you can check that @vk-en? What I see is that in info.proto we use "Disk" as part of names where in metrics.proto we use "Device". Can we use Disk across the board? Also the pattern for identifying/naming the objects (be they pool, disks, childen) doesn't seem consistent but I need a lot of time and a whiteboard to write down the side by side comparison so I'd appreciate if you can do the comparison.
I drew a diagram (SVG on google drive) where I compare info.proto and metrics.proto. It should bring understanding and show that everything is similar. I hope this is exactly what you needed.
I can also assume that you were misled by a message called StorageDeviceMetrics. Since all metrics in zfs, with the exception of zvols, have a common structure and fields,And so I decided to name it neutrally from /pool/raid/disk.
I drew a diagram (SVG on google drive) where I compare info.proto and metrics.proto. It should bring understanding and show that everything is similar. I hope this is exactly what you needed.
Thanks that's a great comparison. Too me it shows a set of gratuitous differences in the structure (the references between the objects) and the naming/identification of the objects and I think we should make the metrics side match those aspects of the info side.
What's a good time to have a call about this? Should we use the EVE standing meeting this Thursday?
Yes please lets use the EVE standing meeting,
@eriknordmark I updated PR. And I drew a new diagram (SVG on google drive) to compare.