pub struct ProbedTrace { /* private fields */ }Expand description
Represents an ongoing collection of latency information with the ability to report on partial latencies before the instrumented function completes.
Implementations§
Source§impl ProbedTrace
impl ProbedTrace
Sourcepub fn probe_latencies(&self) -> Timings
pub fn probe_latencies(&self) -> Timings
Returns partial latencies collected when the call is made.
Examples found in repository?
examples/doc_sync_probed.rs (line 35)
26fn main() {
27 let probed = LatencyTrace::activated_default()
28 .unwrap()
29 .measure_latencies_probed(f)
30 .unwrap();
31
32 // Let the function run for some time before probing latencies.
33 thread::sleep(Duration::from_micros(16000));
34
35 let latencies1 = probed.probe_latencies();
36 let latencies2 = probed.wait_and_report();
37
38 println!("\nlatencies1 in microseconds");
39 for (span_group, stats) in latencies1.map_values(summary_stats) {
40 println!(" * {:?}, {:?}", span_group, stats);
41 }
42
43 println!("\nlatencies2 in microseconds");
44 for (span_group, stats) in latencies2.map_values(summary_stats) {
45 println!(" * {:?}, {:?}", span_group, stats);
46 }
47}More examples
examples/doc_async_probed.rs (line 36)
27fn main() {
28 let probed = LatencyTrace::activated_default()
29 .unwrap()
30 .measure_latencies_probed_tokio(f)
31 .unwrap();
32
33 // Let the function run for some time before probing latencies.
34 thread::sleep(Duration::from_micros(48000));
35
36 let latencies1 = probed.probe_latencies();
37 let latencies2 = probed.wait_and_report();
38
39 println!("\nlatencies1 in microseconds");
40 for (span_group, stats) in latencies1.map_values(summary_stats) {
41 println!(" * {:?}, {:?}", span_group, stats);
42 }
43
44 println!("\nlatencies2 in microseconds");
45 for (span_group, stats) in latencies2.map_values(summary_stats) {
46 println!(" * {:?}, {:?}", span_group, stats);
47 }
48}Sourcepub fn wait_and_report(&self) -> Timings
pub fn wait_and_report(&self) -> Timings
Blocks until the function being measured completes, and then returns the collected latency information.
Should only be called at most once, from main thread. May panic otherwise.
Examples found in repository?
examples/doc_sync_probed.rs (line 36)
26fn main() {
27 let probed = LatencyTrace::activated_default()
28 .unwrap()
29 .measure_latencies_probed(f)
30 .unwrap();
31
32 // Let the function run for some time before probing latencies.
33 thread::sleep(Duration::from_micros(16000));
34
35 let latencies1 = probed.probe_latencies();
36 let latencies2 = probed.wait_and_report();
37
38 println!("\nlatencies1 in microseconds");
39 for (span_group, stats) in latencies1.map_values(summary_stats) {
40 println!(" * {:?}, {:?}", span_group, stats);
41 }
42
43 println!("\nlatencies2 in microseconds");
44 for (span_group, stats) in latencies2.map_values(summary_stats) {
45 println!(" * {:?}, {:?}", span_group, stats);
46 }
47}More examples
examples/doc_async_probed.rs (line 37)
27fn main() {
28 let probed = LatencyTrace::activated_default()
29 .unwrap()
30 .measure_latencies_probed_tokio(f)
31 .unwrap();
32
33 // Let the function run for some time before probing latencies.
34 thread::sleep(Duration::from_micros(48000));
35
36 let latencies1 = probed.probe_latencies();
37 let latencies2 = probed.wait_and_report();
38
39 println!("\nlatencies1 in microseconds");
40 for (span_group, stats) in latencies1.map_values(summary_stats) {
41 println!(" * {:?}, {:?}", span_group, stats);
42 }
43
44 println!("\nlatencies2 in microseconds");
45 for (span_group, stats) in latencies2.map_values(summary_stats) {
46 println!(" * {:?}, {:?}", span_group, stats);
47 }
48}Trait Implementations§
Source§impl Clone for ProbedTrace
impl Clone for ProbedTrace
Source§fn clone(&self) -> ProbedTrace
fn clone(&self) -> ProbedTrace
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ProbedTrace
impl !RefUnwindSafe for ProbedTrace
impl Send for ProbedTrace
impl Sync for ProbedTrace
impl Unpin for ProbedTrace
impl !UnwindSafe for ProbedTrace
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more