#prometheus-exporter #prometheus-metrics #prometheus #exporter #tokio #hyper

prometheus-hyper

小型的Tokio/Hyper服务器,用于运行Prometheus指标

7个版本

0.2.0 2024年5月28日
0.1.5 2022年9月4日
0.1.4 2022年3月31日
0.1.3 2021年11月19日
0.1.1 2021年2月15日

#117 in HTTP服务器

Download history 417/week @ 2024-05-03 419/week @ 2024-05-10 563/week @ 2024-05-17 562/week @ 2024-05-24 648/week @ 2024-05-31 500/week @ 2024-06-07 525/week @ 2024-06-14 678/week @ 2024-06-21 572/week @ 2024-06-28 576/week @ 2024-07-05 1111/week @ 2024-07-12 657/week @ 2024-07-19 500/week @ 2024-07-26 625/week @ 2024-08-02 439/week @ 2024-08-09 334/week @ 2024-08-16

每月下载量:2,009
用于 2 crates

Apache-2.0 OR MIT

20KB
241

Crates.io docs.rs pipeline status coverage report license dependencies lines of code

prometheus-hyper

辅助库,用于通过tokiohyper导出Prometheus指标。它旨在帮助编写Prometheus导出器,无需设置和维护http(无https)Web服务器。如果程序还使用http服务器用于其他目的,此包可能不是最佳选择,应直接使用prometheus

此crate与prometheus_exporter类似。如果您不在tokio环境中,您可能选择后者。

使用此crate的情况:

  • 您编写了一个想要导出指标的无阻塞应用程序
  • 想直接与prometheus交互。
  • 不希望关心托管/metrics端点的Web服务器

不使用此crate的情况:

  • 您编写了一个REST API,在这种情况下,您可能只需使用您的REST框架实现/metrics端点。
  • 您想避免使用tokio
  • 您正在编写一个库,在这种情况下,请使用纯prometheus,并让二进制应用程序决定使用哪个HTTP服务器。

此crate针对典型的指标抓取进行优化,例如,几个Prometheus实例(通常是1个)的抓取间隔(例如1秒)。它针对低内存占用进行优化,而不是能够每秒处理10万个指标请求。

使用方法

将其添加到您的Cargo.toml

[dependencies]
prometheus-hyper = "0.2"

此crate导出一个名为Server的单个结构体和一个名为run的单个函数:将注册表传递给服务器,并为其提供关闭future。服务器将在future完成时关闭。

tokio::spawn(Server::run(
    Arc::clone(&registry),
    SocketAddr::from(([0; 4], 8080)),
    std::future::pending(),
));

这将启动导出器并将http服务器绑定到0.0.0.0:8080。之后,您就可以像以前一样更新指标了。

请参阅文档示例,了解如何使用此crate的更多信息。

依赖项

约6-15MB
约184K SLoC