jenningsloy318/redfish_exporter

Reading Units for FANs are not always percentages

Closed this issue · 0 comments

The collector treats FAN-Reading automatically as percentage, and creates an metric named redfish_chassis_fan_rpm_percentage

prometheus.BuildFQName(namespace, ChassisSubsystem, "fan_rpm_percentage"),

But not all systems return percentage-values. In our case with Dell PowerEdge Servers an absolute value is being returned.

    {
      "@odata.id": "/redfish/v1/Chassis/System.Embedded.1/Sensors/Fans/0x17||Fan.Embedded.5B",
      "FanName": "System Board Fan5B",
      "LowerThresholdCritical": 480,
      "LowerThresholdFatal": 480,
      "LowerThresholdNonCritical": 840,
      "MaxReadingRange": 197,
      "MemberId": "0x17||Fan.Embedded.5B",
      "MinReadingRange": 139,
      "Name": "System Board Fan5B",
      "PhysicalContext": "SystemBoard",
      "Reading": 4320,
      "ReadingUnits": "RPM",
      "Redundancy": [],
      "Redundancy@odata.count": 0,
      "RelatedItem": [
        {
          "@odata.id": "/redfish/v1/Chassis/System.Embedded.1"
        }
      ],
      "RelatedItem@odata.count": 1,
      "Status": {
        "Health": "OK",
        "State": "Enabled"
      },
      "UpperThresholdCritical": null,
      "UpperThresholdFatal": null,
      "UpperThresholdNonCritical": null
    }

The ReadingUnits - property is the key here. In our case it is RPM, other systems use "Percent".

So it might make sense to return different metrics depending on the value of ReadingUnits ?
What do you think ?