node_exporter support to read from libraries

44 views
Skip to first unread message

Ranganath Sunku

unread,
Jun 30, 2020, 7:29:22 PM6/30/20
to Prometheus Users
Hi Node_exporter maintainers,
Node_exporter today supports reading metrics from file systems such as proc and sys. 
Would it be acceptable for a collector within node_exporter to rely on an external library to receive hardware metrics?

For example, one can obtain RedFish metrics in-band using libredfish library. 
Would it be ok for node_exporter to accept such a collector that relies on a library?

Thanks

Brian Candler

unread,
Jul 1, 2020, 3:28:04 AM7/1/20
to Prometheus Users
It sounds to me like this should be a separate exporter, like ipmi_exporter - especially since libredfish is a C library (according to Google anyway)

Ben Kochie

unread,
Jul 1, 2020, 8:13:46 AM7/1/20
to Brian Candler, Prometheus Users
We did some work previously to eliminate use of CGO in the node_exporter on Linux. CGO has a long history of being a bit fragile. We do use it for Non-Linux for gathering syscalls from OS functions that don't have Go-native implementations.

Normally I wouldn't object to adding RedFish to the node_exporter, but since it's missing a Go-native library implementation makes it not a good fit for our goals.

On Wed, Jul 1, 2020 at 9:28 AM Brian Candler <b.ca...@pobox.com> wrote:
It sounds to me like this should be a separate exporter, like ipmi_exporter - especially since libredfish is a C library (according to Google anyway)

--
You received this message because you are subscribed to the Google Groups "Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to prometheus-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-users/4afce4b3-425e-4962-98c4-128b6b2e1548o%40googlegroups.com.

Ranganath Sunku

unread,
Jul 2, 2020, 3:57:47 PM7/2/20
to Prometheus Users
Thanks for your fast responses.

Sounds like if the dependent library is written in Go to retrieve system metrics, node_exporter would be open to accepting such a collector.
Is it right to understand that as long as we dont use CGo for 'C' based libraries, but use Go based dependencies we are good?

Thanks
Sunku


On Wednesday, July 1, 2020 at 5:13:46 AM UTC-7, Ben Kochie wrote:
We did some work previously to eliminate use of CGO in the node_exporter on Linux. CGO has a long history of being a bit fragile. We do use it for Non-Linux for gathering syscalls from OS functions that don't have Go-native implementations.

Normally I wouldn't object to adding RedFish to the node_exporter, but since it's missing a Go-native library implementation makes it not a good fit for our goals.

On Wed, Jul 1, 2020 at 9:28 AM Brian Candler <b.ca...@pobox.com> wrote:
It sounds to me like this should be a separate exporter, like ipmi_exporter - especially since libredfish is a C library (according to Google anyway)

--
You received this message because you are subscribed to the Google Groups "Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to promethe...@googlegroups.com.

Ben Kochie

unread,
Jul 3, 2020, 12:03:58 AM7/3/20
to Ranganath Sunku, Prometheus Users
On Thu, Jul 2, 2020 at 9:57 PM Ranganath Sunku <rangana...@gmail.com> wrote:
Thanks for your fast responses.

Sounds like if the dependent library is written in Go to retrieve system metrics, node_exporter would be open to accepting such a collector.
Is it right to understand that as long as we dont use CGo for 'C' based libraries, but use Go based dependencies we are good?

Yup, that's basically it. We want to stick with pure go libraries. (like we do with https://github.com/prometheus/procfs)
 

Thanks
Sunku

On Wednesday, July 1, 2020 at 5:13:46 AM UTC-7, Ben Kochie wrote:
We did some work previously to eliminate use of CGO in the node_exporter on Linux. CGO has a long history of being a bit fragile. We do use it for Non-Linux for gathering syscalls from OS functions that don't have Go-native implementations.

Normally I wouldn't object to adding RedFish to the node_exporter, but since it's missing a Go-native library implementation makes it not a good fit for our goals.

On Wed, Jul 1, 2020 at 9:28 AM Brian Candler <b.ca...@pobox.com> wrote:
It sounds to me like this should be a separate exporter, like ipmi_exporter - especially since libredfish is a C library (according to Google anyway)

--
You received this message because you are subscribed to the Google Groups "Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to promethe...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-users/4afce4b3-425e-4962-98c4-128b6b2e1548o%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to prometheus-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-users/cd9d7b6f-237a-413b-a370-519115470546o%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages