- Move every collector into its own file
- Move FreeIPMI code into own package
- Allow more customization of commands executed by collectors
- Split up documentation, so README is a little less overwhelming
A single commit message does not do justice to the amount of changes
here, but hey... :)
The events are currently not used for anyways, and this avoids the case
where `ipmimonitoring` outputs several events quoted in a way that is at
best borderline CSV-compatible.
Fixes#62
The `freeipmiOutput` function is used many in places. It already returns
an error if it encounters one, so it should leave the handling as well
as the severity of the logging of the error to the caller.
More specifically, the case has come up where `bmc-info` may fail, but
still provide partial results that the collector can use. This commit
allows to do so without littering the log with errors.
This is a workaround for an issue described in #57. The bmc-info command
might produce usable output minus the system firmware revision, but then
choke on that. Try to recover in that scenario by attempting to parse
the output even if the command failed. Since the system firmware
revision is already optional, this should at least produce all other
values.
It is not pretty, but it avoids both folks having to change their
configs as well a second round-trip, which can be quite expensive in
IPMI.
There are systems that do not make this available, so don't make the
entire collector fail if only this metric can not be read. Instead, set
it to "N/A" if it cannot be determined.
This fixes#57.
Add the "system firmware version" (i.e. the host's "BIOS version", as
opposed to the BMC firmware version) as a label to the `bmc_info`
metric.
This fixes#51.
It exposes two metrics about the IPMI system event log (SEL), the
current number of entries stored in it and the free space for new
records. The collector is not enabled by default, it has to be
explicitly enabled in the config.
Related to #41.
- Copy local repo when building instead of using go get
- Fix accidentally copying dir instead of executable to final container
- Use combination of ENTRYPOINT and CMD as preset
Fixes#37, #38.
It should be more aligned with how releases are (will be) built.
Ideally, we release container images as well, but this will not be in
place for the first release.
This only adds the facilities to do so, the version information itself
is currently only a git hash, as we have not tagged any releases so far.
With this in place, let's set up some CI system, maybe a few test stubs
and then we can do a 1.0 release.