Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

plan to upstream? #13

Open
aqw opened this issue Jan 18, 2022 · 5 comments
Open

plan to upstream? #13

aqw opened this issue Jan 18, 2022 · 5 comments

Comments

@aqw
Copy link

aqw commented Jan 18, 2022

Thanks for creating this tool! Are there any plans to upstream zpool_prometheus the same way that zpool_influxdb has been?

@richardelling
Copy link
Owner

yes, there are plans, but it is pretty low on the priority list.

To properly implement this as a prometheus service, a C-language web service is needed (reference https://github.com/digitalocean/prometheus-client-c). This brings along a little bit of baggage, but it is mostly license compatible (prometheus-client-c has default dependence on libmicrohttpd, which could be problematic) so the non-technical barriers are relatively low. Using other languages with better web service support is possible, too, with the associated baggage.

The bulk of the pain of upstreaming is in the autoconf and ztest areas.

So it can be done, there are a few people-weeks of effort to make it ready to upstream.

@richardelling
Copy link
Owner

richardelling commented Jan 19, 2022

Alternatively, telegraf can be a prometheus source, so you can run a telegraf instance to use zpool_influxdb and present that as a prometheus metrics endpoint. Not as elegant, but doable.

@aqw
Copy link
Author

aqw commented Jan 19, 2022

Thanks for the information and suggestions. :-) We might just take the easy route for now, and deploy a systemd timer to execute zpool_prometheus and direct the output to a file for node_exporter's textfile collector to ingest.

@richardelling
Copy link
Owner

That will work, too.

Unlike the performance metrics, the bulk of the data collected is configuration and pool status which doesn't change very often. So you can use a coarse sampling interval.

@Jean-Daniel
Copy link

Jean-Daniel commented Jul 26, 2022

yes, there are plans, but it is pretty low on the priority list.

To properly implement this as a prometheus service, a C-language web service is needed (reference https://github.com/digitalocean/prometheus-client-c).

I'm not sure it should be a service. I prefer having a command that merely generate OpenMetrics data, and does not provide a HTTP server, this would make it a reusable foundation to write exporters for OpenZFS.

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

No branches or pull requests

3 participants