Features
- Safe - no C(go)
- Tested
- Instrumented (Prometheus)
- Simple (compared to FreeIPMI's FIIDs at least)
- More efficient for long-lived processes (avoid repeated forking, cache sessions, so also easier on BMCs)
- Send arbitrary commands
- Handles retries
- Capabilities discovery
Few abstractions - easy to navigate if you’re familiar with the specification. Relatively little code between API and UDP payload being passed to kernel. But at the same time uses Go conventions like io.Closer and deferables.
Extensible due to being easier to navigate. Command missing? Implement it much more quickly.
Can build tooling (scanners, exporters) without having to interface with C.
“Deep protocol metric collection”
@gebn is there any way to make instrumentation optional? specifically looking to reduce the dependency footprint
thank you!
@bsdlp Are you referring to the Prometheus libraries? Minimising binary size was not a design goal unfortunately. It would probably require a fork, unless there's a way to strip a given dependency automatically which I'm not aware of. What kind of platform you are looking to use the library on?