Quickstart: Trace conversion
This quickstart demonstrates how Perfetto traces can be converted into other trace formats using the traceconv
tool.
Prerequisites
- A host running Linux or MacOS
- A Perfetto protobuf trace file
The supported output formats are:
text
- protobuf text format: a text based representation of protosjson
- Chrome JSON format: the format used by chrome://tracingsystrace
: the ftrace text format used by Android systraceprofile
: pprof-like format. Either for traces with with native heap profiler dumps or callstack sampling (note however callstacks requires the--perf
flag).
Setup
To use the latest binaries:
curl -LO https://get.perfetto.dev/traceconv
chmod +x traceconv
./traceconv [text|json|systrace|profile] [input proto file] [output file]
For versioned downloads, replace <tag>
with the required git tag:
curl -LO https://raw.githubusercontent.com/google/perfetto/<tag>/tools/traceconv
chmod +x traceconv
./traceconv [text|json|systrace|profile] [input proto file] [output file]
Converting to systrace text format
./traceconv systrace [input proto file] [output systrace file]
Converting to Chrome Tracing JSON format
./traceconv json [input proto file] [output json file]
Converting to pprof profile.
This extract all samples from the trace, and outputs a proto that is compatible with pprof.
If you are extracting heaps profiles like heapprofd you can use the following:
~/traceconv profile [input proto file] [output file]
However if you are using callstack sampling like traced_perf then use the following instead:
~/traceconv profile [input proto file] [output file] --perf
Note for --perf
the output is one pprof file per process sampled in the trace.
You can use pprof to merge them together if desired.
Opening in the legacy systrace UI
If you just want to open a Perfetto trace with the legacy (Catapult) trace
viewer, you can just navigate to ui.perfetto.dev,
and use the "Open with legacy UI" link. This runs traceconv
within
the browser using WebAssembly and passes the converted trace seamlessly to
chrome://tracing.