Skip to content

fix(inputs.redfish)!: Partial rewrite of redfish to use the gofish lib#18963

Closed
inhinias wants to merge 0 commit into
influxdata:masterfrom
inhinias:master
Closed

fix(inputs.redfish)!: Partial rewrite of redfish to use the gofish lib#18963
inhinias wants to merge 0 commit into
influxdata:masterfrom
inhinias:master

Conversation

@inhinias

@inhinias inhinias commented May 22, 2026

Copy link
Copy Markdown
Contributor

Summary

The current implementation of the redfish input plugin uses hand-made types and sends out http requests based on them.
This PR partially rewrites the plugin to use the gofish library.
The metrics produced by this PR are the same as before. Except the datacenter tag.
Apparantly that one is not part of the redfish standard.
Using the lib is done mostly for convenience as it simplifies adding new data to be collected.

I require some consideration on #8093. This removes the odata-version header for ILO4.
Currently this is not implemented in the rewrite. Considering ILO4 is in end of service life since 2023, i think we should not invest much time into fixes for it. Especially since it only has partial redfish support.
I invested some time to take care of #14488 thou.

Note on #18250 :
Since the new and old API's produce somewhat similar data but not exactly the same, I decided to put all the metrics produced by the new subsystem api in a new collection, redfish_powersubsys_XXX respectivly redfish_thermalsubsys_XXX
If null values for some tags/metrics are ok, then i can provide further commits to merge the two.

Lastly, this adds support for collecting storage metrics provided by redfish.

There is an open issue to collect processor metrics too. (#17618) But since they are just static data, i am unsure if telegraf is the right tool to collect them?!

Feel free to provide feedback.

Checklist

Related issues

related to #14488
related to #8093

resolves #15191
resolves #18250
resolves #11485

@telegraf-tiger telegraf-tiger Bot added fix pr to fix corresponding bug plugin/input 1. Request for new input plugins 2. Issues/PRs that are related to input plugins labels May 22, 2026

@srebhan srebhan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for your contribution @inhinias! To make this easier to digest, can we please split the PR into the following

  1. PR to cleanup/reorganize existing tests, including file rename (if really necessary)
  2. PR to cleanup/refactor existing code
  3. PR to extend tests to work with the upcoming code changes, i.e. extend the mock server, use redfish types where applicable etc.
  4. PR to move the actual code to the gofish library without functional changes
  5. PR(s) to add features

where step 1 & 2 are interchangeable...

This would allow us to review the changes more efficiently and separate non-functional changes from functional ones or even breaking ones...

@srebhan srebhan self-assigned this May 26, 2026
@inhinias

Copy link
Copy Markdown
Contributor Author

Thank you very much for your contribution @inhinias! To make this easier to digest, can we please split the PR into the following

1. PR to cleanup/reorganize existing tests, including file rename (if _really_ necessary)

2. PR to cleanup/refactor existing code

3. PR to extend tests to work with the upcoming code changes, i.e. extend the mock server, use redfish types where applicable etc.

4. PR to move the actual code to the gofish library without functional changes

5. PR(s) to add features

where step 1 & 2 are interchangeable...

This would allow us to review the changes more efficiently and separate non-functional changes from functional ones or even breaking ones...

I will try working on separating it this week. I may require some time, as I am on vacation next week.
Expect some new PR's around mid June.

@srebhan

srebhan commented May 27, 2026

Copy link
Copy Markdown
Member

@inhinias sure, take your time. I will probably poke you after your holidays to verify you are still there. A short heartbeat would be nice in those cases. :-)

@telegraf-tiger

Copy link
Copy Markdown
Contributor

Download PR build artifacts for linux_amd64.tar.gz, darwin_arm64.tar.gz, and windows_amd64.zip.
Downloads for additional architectures and packages are available below.

⚠️ This pull request increases the Telegraf binary size by 2.58 % for linux amd64 (new size: 316.2 MB, nightly size 308.2 MB)

📦 Click here to get additional PR build artifacts

Artifact URLs

. DEB . RPM . TAR . GZ . ZIP
amd64.deb aarch64.rpm darwin_amd64.tar.gz windows_amd64.zip
arm64.deb armel.rpm darwin_arm64.tar.gz windows_arm64.zip
armel.deb armv6hl.rpm freebsd_amd64.tar.gz windows_i386.zip
armhf.deb i386.rpm freebsd_armv7.tar.gz
i386.deb ppc64le.rpm freebsd_i386.tar.gz
mips.deb riscv64.rpm linux_amd64.tar.gz
mipsel.deb s390x.rpm linux_arm64.tar.gz
ppc64el.deb x86_64.rpm linux_armel.tar.gz
riscv64.deb linux_armhf.tar.gz
s390x.deb linux_i386.tar.gz
linux_mips.tar.gz
linux_mipsel.tar.gz
linux_ppc64le.tar.gz
linux_riscv64.tar.gz
linux_s390x.tar.gz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix pr to fix corresponding bug plugin/input 1. Request for new input plugins 2. Issues/PRs that are related to input plugins

Projects

None yet

2 participants