Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions