Tutorial on Fuchsia tracing

Tracing is a powerful observability tool that can assist in quickly getting a high level overview of a running system to find and diagnose issues. You can think of tracing like visualizable, queryable, and toggleable printf debugging.

A Busy Fuchsia Trace

By enabling various categories, you can visualize the following (and more):

  • High granularity breakdown of which threads are scheduled on each core
  • Customizable per component trace events and spans
  • FIDL calls between processes and threads
  • A record of every single syscall
  • Network and file system activity
  • High level understanding of how a component operates and communicates

Step 1 of this tutorial walks through through how to take a trace, what's available to trace, and how to visualize it.

You can unlock deeper analysis by adding custom trace points to your component as well. Steps 2 and 3 explain how to add new trace points to a component.

  1. Record and visualize a trace.
  2. Register a trace provider.
  3. Add tracing in your code.