1*6dbdd20aSAndroid Build Coastguard Worker# Statsd Checkpoint Atoms 2*6dbdd20aSAndroid Build Coastguard Worker## Tracing 3*6dbdd20aSAndroid Build Coastguard Worker 4*6dbdd20aSAndroid Build Coastguard WorkerThis diagram gives the atoms and the state transitions between when tracing/ 5*6dbdd20aSAndroid Build Coastguard WorkerAll atoms above log the UUID of the trace; 6*6dbdd20aSAndroid Build Coastguard Worker`PERFETTO_TRACED_TRIGGER_STOP_TRACING` is special as it *also* logs the trigger 7*6dbdd20aSAndroid Build Coastguard Workername which caused trace finalization. 8*6dbdd20aSAndroid Build Coastguard Worker 9*6dbdd20aSAndroid Build Coastguard WorkerNOTE: dotted lines indicate these transitions only happen in background 10*6dbdd20aSAndroid Build Coastguard Workerconfigs; transitions with solid lines happen in both background and 11*6dbdd20aSAndroid Build Coastguard Workernon-background cases. 12*6dbdd20aSAndroid Build Coastguard Worker 13*6dbdd20aSAndroid Build Coastguard WorkerNOTE: for background traces, *either* start triggers or stop triggers are 14*6dbdd20aSAndroid Build Coastguard Workersupported; both cannot happen for the same trace. 15*6dbdd20aSAndroid Build Coastguard Worker 16*6dbdd20aSAndroid Build Coastguard Worker```mermaid 17*6dbdd20aSAndroid Build Coastguard Workergraph TD; 18*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_CMD_TRACE_BEGIN-->PERFETTO_CMD_ON_CONNECT; 19*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_CMD_BACKGROUND_TRACE_BEGIN-.->PERFETTO_CMD_ON_CONNECT 20*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_CMD_ON_CONNECT-->PERFETTO_TRACED_ENABLE_TRACING 21*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_ENABLE_TRACING-->PERFETTO_TRACED_START_TRACING 22*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_ENABLE_TRACING-.->|start trigger background traces only|PERFETTO_TRACED_TRIGGER_START_TRACING 23*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_TRIGGER_START_TRACING-.->PERFETTO_TRACED_START_TRACING 24*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_START_TRACING-.->|stop trigger background traces only|PERFETTO_TRACED_TRIGGER_STOP_TRACING 25*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_TRIGGER_STOP_TRACING-.->PERFETTO_TRACED_DISABLE_TRACING 26*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_START_TRACING-->PERFETTO_TRACED_DISABLE_TRACING 27*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_DISABLE_TRACING-->PERFETTO_TRACED_NOTIFY_TRACING_DISABLED 28*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRACED_NOTIFY_TRACING_DISABLED-->PERFETTO_CMD_ON_TRACING_DISABLED 29*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_CMD_ON_TRACING_DISABLED-->PERFETTO_CMD_FINALIZE_TRACE_AND_EXIT 30*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_CMD_FINALIZE_TRACE_AND_EXIT-->PERFETTO_CMD_UPLOAD_INCIDENT 31*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_CMD_FINALIZE_TRACE_AND_EXIT-.->|only if no trigger happened|PERFETTO_CMD_NOT_UPLOADING_EMPTY_TRACE 32*6dbdd20aSAndroid Build Coastguard Worker``` 33*6dbdd20aSAndroid Build Coastguard Worker 34*6dbdd20aSAndroid Build Coastguard Worker## Triggers 35*6dbdd20aSAndroid Build Coastguard Worker 36*6dbdd20aSAndroid Build Coastguard WorkerThis diagram gives the atoms which can trigger finalization of a trace. 37*6dbdd20aSAndroid Build Coastguard WorkerThese atoms will not be reported individually but instead aggregated by trigger name 38*6dbdd20aSAndroid Build Coastguard Workerand reported as a count. 39*6dbdd20aSAndroid Build Coastguard Worker 40*6dbdd20aSAndroid Build Coastguard Worker```mermaid 41*6dbdd20aSAndroid Build Coastguard Workergraph TD; 42*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_CMD_TRIGGER 43*6dbdd20aSAndroid Build Coastguard Worker PERFETTO_TRIGGER_PERFETTO_TRIGGER 44*6dbdd20aSAndroid Build Coastguard Worker``` 45*6dbdd20aSAndroid Build Coastguard Worker 46