-
Notifications
You must be signed in to change notification settings - Fork 145
Description
Background
- My ipmi-exporter runs in native IPMI mode with --native-ipm
- "--native-ipmi"
- "--web.listen-address=:9290"
- In the current implementation, ipmi-exporter always exports generic IPMI sensors as generic metrics:
ipmi_sensor_state
ipmi_sensor_value
- The total number of IPMI-related metrics collected for a single node during one ipmi-exporter scrape.(Total ipmi metrics: 317)
- The ipmi_sensor_state and ipmi_sensor_value metrics account for approximately 85%(136 *2 / 317) of all IPMI metrics.
- A large number of generic IPMI sensors are reported with NaN values in ipmi_sensor_state and zero values in ipmi_sensor_value.
Summary
-
In the ipmi-exporter, all sensors except generic sensor are typed sensors with clear physical meanings, such as:
- Fan speed (RPM / percentage)
- Temperature(degrees C)
- Current(Amps)
- Voltage(Volts)
- Power (Watts)
These typed sensors are always exported and produce well-defined, meaningful metrics.
-
Generic sensor is a fallback mechanism, used only when a sensor cannot be classified, for example:
- Unknown or unsupported units
- Discrete sensor types
- Vendor-specific or proprietary sensors
- Many generic sensors
- state are represented as IPMI bitmasks, require OEM interpretation(NAN)
- no runtime value (defalut: 0)
-
In production environments, typed IPMI sensor(Fan speed (RPM / percentage) /Temperature(degrees C)/ Current(Amps)/ Voltage(Volts) / Power (Watts))monitoring already provides sufficient coverage for most hardware health and alerting scenarios.
-
The demand for monitoring generic IPMI sensors is very limited, while exporting them produces a large number of low-value or meaningless metrics.
-
The current implementation is not elegant and introduces unnecessary performance overhead for ipmi-exporter.
-
For Prometheus, in large-scale production environments, the excessive number of metrics leads to high cardinality issues, increasing ingestion, storage, and query costs.
Solutions
Introduce a configuration for --config.file to control whether generic (unclassified) IPMI sensors are exported.
The collector_gensensor_ipmi configuration is true by default to preserve backward compatibility, but users are explicitly encouraged to false in production environments to avoid exporting low-value metrics and unnecessary overhead.
The --config.file such as:
modules:
default:
collector_gensensor_ipmi: false
@SuperQ @bitfehler Please consider whether introducing this feature is necessary.