Skip to content

update gofish version to support supermicro oem#20

Open
ben-kulp wants to merge 1 commit intoFlxPeters:masterfrom
LambdaLabs:OBS-736
Open

update gofish version to support supermicro oem#20
ben-kulp wants to merge 1 commit intoFlxPeters:masterfrom
LambdaLabs:OBS-736

Conversation

@ben-kulp
Copy link
Copy Markdown

Description:
This PR updates the github.com/stmcginnis/gofish dependency from v0.15.0 to v0.20.0 to gain access to recent improvements and expanded hardware support.

What changed:

  • Updated go.mod to use gofish v0.20.0
  • Fixed breaking API changes:
    • Updated parseChassisFan function signature to use redfish.ThermalFan instead of redfish.Fan (chassis_collector.go:281)
    • Added type conversion for NetworkPortLinkStatus to PortLinkStatus (chassis_collector.go:428)

Why this update is needed:

  • Adds support for Supermicro OEM objects (ComputerSystem, Chassis, Manager, AccountService, UpdateService, DumpService)
  • Improves Drive and PCIeDevice/PCIeFunction OEM data exposure
  • Updates to Redfish 2023.3 schema bundle for better compatibility with modern hardware
  • Includes various bug fixes and stability improvements from versions v0.16.0 through v0.20.0

⚠️ Important Compatibility Note:
The gofish v0.20.0 library changed fan threshold and reading values from float32 to int. This means:

  • Fan RPM values that were previously reported as decimals (e.g., 2150.5 RPM) will now be truncated to integers (2150 RPM)
  • This affects: Reading, LowerThresholdCritical, LowerThresholdFatal, UpperThresholdCritical, UpperThresholdFatal,
    MinReadingRange, MaxReadingRange
  • Recommended: Test with your hardware to ensure fan monitoring and alerting thresholds still work as expected
  • This change comes from upstream gofish library and aligns with the Redfish specification

Testing:

  • Build completes successfully
  • All existing tests pass
  • No functional changes to the exporter's behavior (aside from int truncation noted above)
  • Confirmed this resolves issue we were seeing with json unmarshalling
time=2025-08-11T16:38:06.486Z level=ERROR msg="error getting processor data from system" target=10.0.0.1 collector=SystemCollector System=HGX_Baseboard_0 operation=system.Processors() error="failed to retrieve some items: [{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_2\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"},{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_1\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"},{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_3\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"},{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_4\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"},{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_5\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"},{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_6\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"},{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_7\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"},{\"link\":\"/redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_8\",\"error\":\"json: cannot unmarshal object into Go struct field t1.Actions of type string\"}]"

stmcginnis pushed a commit to stmcginnis/redfish_exporter that referenced this pull request Feb 3, 2026
adding context_utilization_seconds_total metric
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant