1 个不稳定版本

0.1.0 2022年5月3日

#822 in 调试

MPL-2.0 OR MIT OR Apache-2.0

22KB
184 代码行

slg_prometheus - 日志指标

为什么?

很多次,使用tracing生态系统是一个非常好的选择。但有时,我有一小块软件,它只做简单的日志记录,而作为一个有责任感的开发者,它应该被监控。所以我给它一些指标。

这个库试图添加一些关于已记录内容的简单指标,使其更容易对所有日志错误进行捕获警报。

如何?

let drain = slog_prometheus::MonitoringDrainBuilder::new(drain)
        .build()
        .expect("Failed configuring setting up prometheus")
        .fuse();

如果您遇到任何问题或对功能感兴趣,请随时提交问题。


lib.rs:

记录记录的消息的Prometheus度量指标。

使用MonitoringDrainBuilder配置一个drain,将其放在slog drain堆栈的合适位置。

use slog::{info, Drain};

let decorator = slog_term::TermDecorator::new().build();
let drain = slog_term::FullFormat::new(decorator).build().fuse();
let drain = slog_async::Async::new(drain).build();

let drain = slog_prometheus::MonitoringDrainBuilder::new(drain)
    .build()
    .expect("Failed configuring setting up prometheus")
    .fuse();
let drain = slog::LevelFilter::new(drain, slog::Level::Info).fuse();

let logger = slog::Logger::root(drain, slog::o!());

info!(logger, "Finished setting up!");

依赖关系

~2.7–8MB
~73K SLoC