xref: /aosp_15_r20/external/perfetto/docs/design-docs/checkpoint-atoms.md (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
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