tree: ae2494b96354e7e060200bbf665144f9b3eb0825 [path history] [tgz]
  1. images/
  2. _toc.yaml
  3. add-tracing-in-code.md
  4. README.md
  5. record-and-visualize-a-trace.md
  6. register-a-trace-provider.md
docs/development/tracing/tutorial/README.md

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{: width=“600”}

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.