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.
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.