tracing-calltree 0.1.2

Always-on hierarchical profiling for Rust tracing spans with rolling latency statistics.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use tracing_calltree::CallTree;
use tracing_subscriber::prelude::*;

fn main() {
    let calltree = CallTree::new();

    tracing_subscriber::registry().with(calltree.layer()).init();

    tracing::info_span!("request").in_scope(|| {
        tracing::info_span!("parse").in_scope(|| {
            std::thread::sleep(std::time::Duration::from_millis(5));
        });
    });

    println!("{}", calltree.snapshot().display());
}