1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年4月6日 |
---|
#8 in #reply
7KB
120 行
tokio-timeit-middleware
测量你的 Tokio Service
对 Service::Request
发送 Service::Response
所需的时间。
用法
首先,将以下内容添加到你的 Cargo.toml 文件中
[dependencies]
tokio-timeit-middleware = { git = "https://github.com/fitzgen/tokio-timeit-middleware" }
然后,将以下内容添加到你的 crate
extern crate tokio_timeit_middleware;
为了测量你的 Tokio Service
的请求/响应时间,将其包装在 tokio_timeit_middleware::Timeit
中
let timed_service = Timeit::new(my_tokio_service, Rc::new(|duration| {
println!("Responded to request in {}", duration);
));
lib.rs
:
tokio-timeit-middleware
提供了一个名为 Timeit
的 Tokio Service
中间件,用于测量响应 Service::Request
所需的时间。
记录的时间将被发送到一个 TimeSink
,它可以是任何可以解引用到接收一个 time::Duration
并实现 Clone
特征的智能指针类型。
示例
// Send recorded timings to metrics or logging or whatever...
let time_sink = Rc::new(|timing: time::Duration| {
println!("Replied to a request with a response in {}", timing);
});
// Wrap a service in `Timeit`!
let my_timed_service = tokio_timeit_middleware::Timeit::new(my_tokio_service, time_sink);
依赖关系
~0.7–1MB
~15K SLoC