Commit Graph

83 Commits

Author SHA1 Message Date
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
Conrad Hoffmann
f8edf32a85
Merge pull request #28 from SuperQ/circleci
Add Prometheus-style makefile for building and publishing.
2019-07-15 10:48:29 +02:00
Ben Kochie
79fa0cbc80
Drop circleci config. 2019-07-09 14:53:41 +02:00