blob: 22b902cbf67ac083ff26a3a18fd206c2902ce625 [file] [log] [blame] [view]
# Quickstart: Trace conversion
_This quickstart demonstrates how Perfetto traces can be converted into other trace formats using the `traceconv` tool._
![](/docs/images/traceconv-summary.png)
## 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 protos
- `json` - Chrome JSON format: the format used by chrome://tracing
- `systrace`: the ftrace text format used by Android systrace
- `profile` : pprof-like format. Either for traces with with
[native heap profiler](/docs/data-sources/native-heap-profiler.md) dumps or
[callstack sampling](/docs/quickstart/callstack-sampling.md) (note however
callstacks requires the `--perf` flag).
## Setup
To use the latest binaries:
```bash
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:
```bash
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](https://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.