Skip to content

Generic sensor (unclassified) of IPMI are always exported, generating a large number of meaningless metrics #312

@SilenceAdele

Description

@SilenceAdele

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
  1. The total number of IPMI-related metrics collected for a single node during one ipmi-exporter scrape.(Total ipmi metrics: 317)
Image
  1. The ipmi_sensor_state and ipmi_sensor_value metrics account for approximately 85%(136 *2 / 317) of all IPMI metrics.
Image
  1. A large number of generic IPMI sensors are reported with NaN values in ipmi_sensor_state and zero values in ipmi_sensor_value.

ipmi-exporter-metircs.txt

Image Image

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions