Helper library to export prometheus metrics using tokio and hyper. It's intended to help writing prometheus exporters without the need to setup and maintain a http (no https) webserver. If the program also uses a http server for other purposes this package is probably not the best way and prometheus should be used directly.
This crate is similar to prometheus_exporter.
If you are not in a
tokio environment you might choose this one. Keep in mind there is an vulnerability for tiny-http
< 0.8: https://rustsec.org/advisories/RUSTSEC-2020-0031.html
Use this crate when:
- you write an async app that wants to export metrics
- want to interact directly with prometheus.
- don't want to care about the webserver to host the
Don't use this crate when:
- you write a rest-api, in that case you should prob just implement the
/metricsendpoint with your rest-framework.
- you want to avoid
- you are writing a library, in that case use plain prometheus and let the binary application decide which HTTP server to use.
This crate optimizes for typical metrics scraping, e.g. a scrape interval by few prometheus instances (usually 1) with a usual interval (e.g. 1s). It's optimized for a low foot-print, rather than being able to serve 100.000 metrics requests per sec.
Add this to your
[dependencies] prometheus-hyper = "0.1"
The crate exports a single struct
Server with a single fn
Pass your registry to the server, and provide it with a shutdown_future.
The server will shut down, once the future completes.
tokio::spawn(Server::run( Arc::clone(®istry), SocketAddr::from(([0; 4], 8080)), shutdown_future, ));
This will start the exporter and bind the http server to
that you can just update the metrics as you used to.