| # Statsd Checkpoint Atoms |
| ## Tracing |
| |
| 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. |
| |
| ```mermaid |
| 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 |
| ``` |
| |
| ## Triggers |
| |
| 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. |
| |
| ```mermaid |
| graph TD; |
| PERFETTO_CMD_TRIGGER |
| PERFETTO_TRIGGER_PERFETTO_TRIGGER |
| ``` |
| |