This quickstart demonstrates how Perfetto traces can be converted into other trace formats using the traceconv
tool.
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).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]
./traceconv systrace [input proto file] [output systrace file]
./traceconv json [input proto file] [output json file]
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.
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.