2 releases
new 0.1.1 | Nov 19, 2024 |
---|---|
0.1.0 | Nov 10, 2024 |
#2 in #tape
175 downloads per month
65KB
1.5K
SLoC
Tracing Tape
Dead-simple debugging and profiling of (distributed) Rust applications using the tracing crate. Record trace files and view them within within seconds without complex setup or configuration.
Setup
- Add the following dependencies to your application:
cargo add tracing tracing-subscriber tracing-tape-recorder
- Add the following code to your application:
use tracing::trace_span;
use tracing_subscriber::{fmt, layer::SubscriberExt, Registry};
use tracing_tape_recorder::TapeRecorder;
let subscriber = Registry::default().with(TapeRecorder::default());
let guard = tracing::subscriber::set_default(subscriber);
// ...
drop(guard);
Running your application will now generate a {name}-{timestamp}.tape
file in the current working directory.
Note: it is preferred to use set_default
instead of set_global_default
to ensure the subsriber is dropped when the guard goes out of scope.
See #7 for more information.
Viewing Tape Files
You can use the trace-deck
application to view the recorded tape files either by running trace-deck filename.tape
or by dragging the files into the window.
You can load multiple files simultaneously which can be useful for analyzing workflows across multiple applications (e.g., client-server interactions).
Have a look at the getting started guide.
Crates
- tracing-tape: defines the format of the tape files.
- tracing-tape-recorder: records trace events to tape files.
- tracing-tape-parser: parses recorded tape files.
- trace-deck: GUI application for viewing tape files.
Known Issues
Dependencies
~3–4MB
~70K SLoC