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