#tape #tracing #gui

app trace-deck

GUI for visualizing and analyzing tracing tape files

2 releases

0.1.1 Nov 19, 2024
0.1.0 Nov 10, 2024

#163 in Debugging

Download history 95/week @ 2024-11-08 141/week @ 2024-11-15 22/week @ 2024-11-22 18/week @ 2024-11-29 16/week @ 2024-12-06

201 downloads per month

MIT/Apache

110KB
2.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.

Trace Deck Screenshot

Setup

  1. Add the following dependencies to your application:
cargo add tracing tracing-subscriber tracing-tape-recorder
  1. 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

  • Currently there is no way, to configure the tape recorder (#6, #8).
  • Recent data is lost when the tape recorder is not properly dropped (#7).
  • Loading large tape files can be slow (#9).
  • Recording tape files will occasionally cause lag spikes (#10).

Dependencies

~14–32MB
~533K SLoC