Lines Matching full:tracing
1 # Tracing API and ABI: surfaces and stability
9 * The public C++ API in `include/perfetto/tracing/` is mostly stable but can
13 * A new C API/ABI for a tracing shared library is in the works in
15 * The tracing protocol ABI is based on protobuf-over-UNIX-socket and shared
23 * There isn't a version number neither in the trace file nor in the tracing
41 [`track_event.h`](/include/perfetto/tracing/track_event.h).
49 `perfetto::Tracing` controller class defined in
50 [`tracing.h`](/include/perfetto/tracing.h).
52 notifications about tracing sessions lifecycle and emit custom protos in the
78 chrome://tracing. The team is continuously reshaping this surface to gradually
79 migrate all Chrome Tracing use cases over to Perfetto.
81 ## Tracing Protocol ABI
83 The Tracing Protocol ABI consists of the following binary interfaces that allow
84 various processes in the operating system to contribute to tracing sessions and
85 inject tracing data into the tracing service:
91 The whole tracing protocol ABI is binary stable across platforms and is updated
96 
100 At the lowest level, the tracing protocol is initiated with a UNIX socket of
101 type `SOCK_STREAM` to the tracing service.
102 The tracing service listens on two distinct sockets: producer and consumer.
188 notifications about the tracing session lifecycle (trace being started, stopped)
193 [shared memory buffer](/docs/concepts/buffers.md) where tracing data will be
204 injecting system-wide tracing / profiling data.
209 The consumer socket allows processes to control tracing sessions (start / stop
210 tracing) and read back trace data.
237 on-device tracing service. Today both the Perfetto UI and Android GPU
260 a producer process and the tracing service (SMB).
283 Mojo initialization during startup tracing.
320 tracing Service. When a producer fills a chunk it sends `CommitData` IPC to the
357 **[TracePacket][trace-packet-ref]** is the atom of tracing. Putting aside
382 direct-serialization scenario like tracing, the length is known only when the
389 In order to do this, the tracing protocol allows to patch the contents of a
391 [`CommitDataRequest.ChunkToPatch`][commit_data_request.proto]) after the tracing
413 initialization, before any tracing session is started. This message is used
422 [TraceConfig](/docs/concepts/config.md) when a Consumer starts a new tracing
438 All the layers of the tracing protocol ABI are long-term stable and can only
447 #### Producer/Consumer client older than tracing service
454 The tracing service needs to support clients talking and older version of the
455 Producer or Consumer tracing protocol.
464 #### Producer/Consumer client newer than tracing service
467 will still run Android P or Q, hence running a snapshot of the tracing service
469 Chrome, when configured in system-tracing mode (i.e. system-wide + in-app
470 tracing), connects to the Android's `traced` producer socket and talks the
471 latest version of the tracing protocol.
493 library). The library implements the Tracing Protocol ABI so, once statically
498 discourage teams from attempting to build the C++ tracing library as shared
519 [cli_lib]: /docs/instrumentation/tracing-sdk.md
522 [mojom]: https://source.chromium.org/chromium/chromium/src/+/master:services/tracing/public/mojom/p…
530 [shared_memory_abi.h]: /include/perfetto/ext/tracing/core/shared_memory_abi.h