#tracing-layer #trace-logging #perfetto #tracing-subscriber #subscriber #tracing

tracing-perfetto

Tracing layer for recording spans and events as perfetto event format

6 releases

0.1.5 Jan 2, 2025
0.1.4 Dec 30, 2024
0.1.3 Nov 25, 2024
0.1.1 Jul 2, 2024

#278 in Debugging

Download history 687/week @ 2024-11-23 528/week @ 2024-11-30 603/week @ 2024-12-07 650/week @ 2024-12-14 452/week @ 2024-12-21 693/week @ 2024-12-28 1467/week @ 2025-01-04 812/week @ 2025-01-11 852/week @ 2025-01-18 885/week @ 2025-01-25 1218/week @ 2025-02-01 1278/week @ 2025-02-08 1076/week @ 2025-02-15 1314/week @ 2025-02-22 1224/week @ 2025-03-01 952/week @ 2025-03-08

4,682 downloads per month

MIT license

1.5MB
26K SLoC

tracing-perfetto

Overview

tracing-perfetto is a Layer for tracing-subscriber that outputs traces in perfetto's trace packet format that can be viewed with ui.perfetto.dev.

Usage

Add this near the beginning of main:

use tracing_perfetto::PerfettoLayer;
use tracing_subscriber::{registry::Registry, prelude::*};

let layer = PerfettoLayer::new(std::sync::Mutex::new(std::fs::File::create("/tmp/test.pftrace").unwrap()));
tracing_subscriber::registry().with(layer).init();

Open that file with ui.perfetto.dev:

Upgrade perfetto_trace.proto

  1. Download the latest perfetto_trace.proto into protos/peffetto_trace.proto.

  2. Run upgrade.rs

    • Windows cargo +nightly -Zscript upgrade.rs
    • *nix ./upgrade.rs
  3. Create a pull request with the changes.

License

Licensed under the MIT license

Dependencies

~3.5MB
~55K SLoC