Commit Graph

135 Commits

Author SHA1 Message Date
pengganyu b4566e080b Fix configuration: at 2.26+ prometheus versions, params should be list, not k/v 2021-06-21 09:58:29 +08:00
Conrad Hoffmann 178b38f32d Update Makefile.common from Prometheus project 2021-06-01 22:48:04 +02:00
Conrad Hoffmann 67041ef633 The great refactoring
- 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... :)
2021-06-01 22:38:23 +02:00
Conrad Hoffmann 0dd6487f4e Update deps 2021-05-11 18:37:08 +02:00
Conrad Hoffmann dbe7c2b164
Merge pull request #66 from ainamori/fixed_make_docker
Failed COPY ipmi_exporter from=builder - again
2021-02-22 10:17:05 +01:00
Akira Inamori 4a065bdeb2 change builder version 2021-02-20 12:18:54 +09:00
Conrad Hoffmann 0b40276f1f Output events in hex (bitmask), not string
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
2021-02-19 16:19:46 +01:00
Conrad Hoffmann 77e404a02c
Merge pull request #67 from soundcloud/bitfehler/bmc-info-recover
Use partial bmc-info output even if it fails
2021-02-19 16:15:36 +01:00
Conrad Hoffmann 1a7c9d6189 Move error logging to same level as error handling
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.
2021-02-19 16:08:09 +01:00
Akira Inamori abf9350445 Update gobuilder & fixed go binary name 2021-02-19 15:02:25 +09:00
Conrad Hoffmann 27f27b902f Try to parse bmc-info even if command failed
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.
2021-02-16 18:36:17 +01:00
Conrad Hoffmann a138b9ae59
Merge pull request #60 from ainamori/fixed_builder_path
Fixed #59
2021-02-12 16:21:28 +01:00
Akira Inamori 7a7a44580e Fixed #59 2020-11-25 10:45:52 +09:00
Conrad Hoffmann 57c0f966d0 Make system firmware version optional in BMC info
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.
2020-10-22 18:09:14 +02:00
Conrad Hoffmann 1561913027 Update Makefile.common to latest version 2020-07-26 17:42:06 +02:00
Conrad Hoffmann 29354b0eb0 Document magic values in metric description
See https://www.supermicro.com/support/faqs/faq.cfm?faq=28159
2020-07-26 17:28:12 +02:00
Conrad Hoffmann ae2992c60b Update all dependencies 2020-07-26 17:24:32 +02:00
Conrad Hoffmann 2ae0db3934 Misc doc fixes for README and example configs 2020-07-26 17:16:30 +02:00
Conrad Hoffmann 35a6530c50 Document new "system firmware version" in BMC info 2020-07-26 16:46:54 +02:00
Conrad Hoffmann 2c6a73b151 Add system firmware version to BMC info metric
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.
2020-07-26 16:39:08 +02:00
Conrad Hoffmann ef4e20a936
Merge pull request #49 from cdn77/detect-lan-mode
Add new metric config_lan_mode
2020-07-24 15:32:30 +02:00
Jakub Chábek 534775f13a Add new metric config_lan_mode 2020-06-30 10:40:54 +02:00
Conrad Hoffmann 26628185da Update all dependencies 2020-04-22 22:58:50 +02:00
Conrad Hoffmann 07736995e0 Update Makefile.common to latest version 2020-04-22 22:58:50 +02:00
Conrad Hoffmann 0aa63d4c21 Add SEL collector
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.
2020-04-22 22:58:29 +02:00
Conrad Hoffmann 7d7e33dc93 Log error if pipe deletion fails
Hopefully this helps to shed some light on #42.
2020-03-06 09:56:31 +01:00
Conrad Hoffmann aecd42dbb0 Update dependencies 2020-02-14 15:08:53 +01:00
Conrad Hoffmann 3b9965040c
Merge pull request #44 from cawamata/master
add ipmi-chassis info to README.md
2020-02-14 14:09:18 +01:00
cawamata fff7d37cc8
add ipmi-chassis info to README.md 2020-01-29 09:13:23 +09:00
Conrad Hoffmann a8c821cb15
Merge pull request #39 from zliuva/master
Adding config options for workaround_flags.
2019-12-18 18:24:39 +01:00
zliuva 636235f6da Adding config options for workaround_flags. 2019-12-18 08:51:47 -08:00
Conrad Hoffmann 9243e9fc9f Misc fixes for the Dockerfile
- 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.
2019-10-26 15:24:52 +02:00
Conrad Hoffmann f76900aa23 Refactor and update README a bit 2019-10-18 15:06:28 +02:00
Conrad Hoffmann c2e5bad2d2 Do not make all targets phony 2019-10-18 15:06:28 +02:00
Conrad Hoffmann 376cbdb0f1 Support `make docker` to build container
It gets build via the Makefile.common's `common-container` target.
2019-10-18 11:59:37 +02:00
Conrad Hoffmann 6759fce7ed Use prometheus tooling to build docker container
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.
2019-10-18 11:42:15 +02:00
Conrad Hoffmann bbdab3989a Update license text 2019-10-16 13:52:36 +02:00
Conrad Hoffmann 5e699d473e Add Cirrus CI integration 2019-10-16 13:52:36 +02:00
Conrad Hoffmann 85875ebc14
Merge pull request #34 from msherman64/ipmi-chassis
Ipmi-chassis power on/off state
2019-10-15 10:58:58 +02:00
Michael Sherman 25d1fd0ef8 Check chassis power state
Use ipmi-chassis to check power on /off
report via ipmi_chassis_power_state
enable via "chassis" module
2019-10-14 15:43:30 -04:00
Conrad Hoffmann 41ce90557f Update Makefile.common to latest upstream version 2019-10-14 15:45:19 +02:00
Conrad Hoffmann a94c4127e4 Update dependencies 2019-10-14 15:45:19 +02:00
Conrad Hoffmann 5ac3a479c5
Merge pull request #36 from neoaggelos/docker
Added Dockerfile and example docker-compose.yml
2019-10-14 15:44:24 +02:00
Aggelos Kolaitis 277c9cc91c Added Dockerfile and docker-compose.yml 2019-10-11 22:38:21 +03:00
Conrad Hoffmann a569d7a035
Merge pull request #35 from cawamata/non-root-execute-guide
Add how to execute as non root to README.md
2019-10-11 13:09:35 +02:00
cawamata e2c299b38e
Update README.md 2019-10-10 11:04:18 +09:00
cawamata d0b97919ac
Add how to execute as non root to README.md
https://github.com/soundcloud/ipmi_exporter/issues/32
2019-10-06 18:35:19 +09:00
Conrad Hoffmann 3ec5c4f7f5
Merge pull request #31 from badrabubker/master
No sensor state for PSU sensor on old BMC's
2019-10-01 14:45:01 +02:00
Badreddin ac6dbe2e02 add --ignore-unrecognized-events flag
to avoid NaN in sensor reading when sensor Event has unrecognized-events
2019-10-01 11:29:41 +02:00
Conrad Hoffmann 52c50a5e7e Supply proper version information
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.
2019-07-15 10:49:10 +02:00