Statsd Checkpoint Atoms
Tracing
此图给出了 atoms 以及在 tracing 时的状态转换
上面的所有 atoms 都采集 trace 的 UUID;
PERFETTO_TRACED_TRIGGER_STOP_TRACING 是特殊的,因为它也采集导致 trace 完成的 trigger 名称。
NOTE: 虚线表示这些转换仅在后台配置中发生;实线的转换在后台和非后台情况下都会发生。
NOTE: 对于后台 traces,要么支持 start triggers 要么支持 stop triggers;两者不能在同一个 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
触发器
此图给出了可以触发 trace 完成的 atoms。这些 atoms 不会单独报告,而是按 trigger 名称聚合并作为计数报告。
graph TD;
PERFETTO_CMD_TRIGGER
PERFETTO_TRIGGER_PERFETTO_TRIGGER