Quickstart: Trace conversion

This quickstart demonstrates how Perfetto traces can be converted into other trace formats using the traceconv tool.

Prerequisites

The supported output formats are:

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.