[−][src]Macro metrics::timing
Records a timing.
Functionally equivalent to calling Recorder::record_histogram
.
Examples
fn handle_request() { let start = Instant::now(); process(); let end = Instant::now(); // We can pass instances of `Instant` directly: timing!("perf.request_processed", start, end); // Or we can pass just the delta: let delta = end - start; timing!("perf.request_processed", delta); // And we can even pass unsigned values, both for the start/end notation: let start: u64 = 100; let end: u64 = 200; timing!("perf.request_processed", start, end); // And the delta notation: let delta: u64 = end - start; timing!("perf.request_processed", delta); }
Labels can also be passed along:
fn handle_request() { let start = Instant::now(); process(); let end = Instant::now(); // We can pass instances of `Instant` directly: timing!("perf.request_processed", start, end, "service" => "http", "type" => "checkout"); // Or we can pass just the delta: let delta = end - start; timing!("perf.request_processed", delta, "service" => "http", "type" => "checkout"); // And we can even pass unsigned values, both for the start/end notation: let start: u64 = 100; let end: u64 = 200; timing!("perf.request_processed", start, end, "service" => "http", "type" => "checkout"); // And the delta notation: let delta: u64 = end - start; timing!("perf.request_processed", delta, "service" => "http", "type" => "checkout"); }