This diagram gives the atoms and the state transitions between when tracing/ All atoms above log the UUID of the trace; PERFETTO_TRACED_TRIGGER_STOP_TRACING
is special as it also logs the trigger name which caused trace finalization.
NOTE: dotted lines indicate these transitions only happen in background configs; transitions with solid lines happen in both background and non-background cases.
NOTE: for background traces, either start triggers or stop triggers are supported; both cannot happen for the same trace.
graph TD; PERFETTO_CMD_TRACE_BEGIN-->PERFETTO_CMD_ON_CONNECT; PERFETTO_CMD_BACKGROUND_TRACE_BEGIN-.->PERFETTO_CMD_ON_CONNECT PERFETTO_CMD_ON_CONNECT-->PERFETTO_TRACED_ENABLE_TRACING PERFETTO_TRACED_ENABLE_TRACING-->PERFETTO_TRACED_START_TRACING PERFETTO_TRACED_ENABLE_TRACING-.->|start trigger background traces only|PERFETTO_TRACED_TRIGGER_START_TRACING PERFETTO_TRACED_TRIGGER_START_TRACING-.->PERFETTO_TRACED_START_TRACING PERFETTO_TRACED_START_TRACING-.->|stop trigger background traces only|PERFETTO_TRACED_TRIGGER_STOP_TRACING PERFETTO_TRACED_TRIGGER_STOP_TRACING-.->PERFETTO_TRACED_DISABLE_TRACING PERFETTO_TRACED_START_TRACING-->PERFETTO_TRACED_DISABLE_TRACING PERFETTO_TRACED_DISABLE_TRACING-->PERFETTO_TRACED_NOTIFY_TRACING_DISABLED PERFETTO_TRACED_NOTIFY_TRACING_DISABLED-->PERFETTO_CMD_ON_TRACING_DISABLED PERFETTO_CMD_ON_TRACING_DISABLED-->PERFETTO_CMD_FINALIZE_TRACE_AND_EXIT PERFETTO_CMD_FINALIZE_TRACE_AND_EXIT-->PERFETTO_CMD_UPLOAD_INCIDENT PERFETTO_CMD_FINALIZE_TRACE_AND_EXIT-.->|only if no trigger happened|PERFETTO_CMD_NOT_UPLOADING_EMPTY_TRACE
This diagram gives the atoms which can trigger finalization of a trace. These atoms will not be reported individually but instead aggregated by trigger name and reported as a count.
graph TD; PERFETTO_CMD_TRIGGER PERFETTO_TRIGGER_PERFETTO_TRIGGER