10 个版本
0.1.9 | 2022年10月17日 |
---|---|
0.1.8 | 2022年8月2日 |
0.1.7 | 2022年6月13日 |
0.1.6 | 2022年4月3日 |
0.1.0 | 2021年12月10日 |
#2 in #hot
31 每月下载量
24KB
497 代码行,不包括注释
pomfrit
支持热重载的 Prometheus 指标导出器
示例
use pomfrit::formatter::*;
/// Your metrics as a struct
struct MyMetrics<'a> {
ctx: &'a str,
some_diff: u32,
some_time: u32,
}
/// Describe how your metrics will be displayed
impl std::fmt::Display for MyMetrics<'_> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.begin_metric("some_diff")
.label("label1", self.ctx)
.label("label2", "some value")
.value(self.some_diff)?;
f.begin_metric("some_time")
.label("label1", self.ctx)
.value(self.some_time)
}
}
async fn my_app() {
// Create inactive exporter
let (exporter, writer) = pomfrit::create_exporter(None).await.unwrap();
// Spawn task that will run in the background and write metrics
writer.spawn(|buf| {
buf.write(MyMetrics {
ctx: "asd",
some_diff: 123,
some_time: 456,
}).write(MyMetrics {
ctx: "qwe",
some_diff: 111,
some_time: 444,
});
});
// ...
// Reload exporter config
exporter.reload(Some(pomfrit::Config {
collection_interval_sec: 10,
..Default::default()
})).await.unwrap();
}
为什么叫 pomfrit
?
蓬弗里特是炸薯条。非常简单,你通常会在主菜之外点它。
依赖
~0.5–11MB
~106K SLoC