#service-request #time #tokio #how #long #response #reply

tokio-timeit-middleware

测量你的 Tokio Service 发送 Service::Response 响应所需的时间

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年4月6日

#8 in #reply

Apache-2.0/MIT

7KB
120

tokio-timeit-middleware

测量你的 Tokio ServiceService::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