| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.tracing.perfetto |
| |
| <p>Library providing methods for connecting Perfetto clients to a system |
| tracing service.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 8</span></div> |
| |
| |
| ## **PROTOCOLS** |
| |
| ## BufferReceiver {#BufferReceiver} |
| *Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=12)* |
| <p>An interface for exchanging trace data buffers between Providers and the |
| system tracing service.</p> |
| |
| |
| ### ProvideBuffer {#BufferReceiver.ProvideBuffer} |
| |
| <p>Sends a file to be used as a trace buffer. |
| The file must support writable mmap() access.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 9</span></div> |
| |
| |
| |
| #### Request {#BufferReceiver.ProvideBuffer_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>buffer</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#File'>File</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#BufferReceiver.ProvideBuffer_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#BufferReceiver_ProvideBuffer_Result'>BufferReceiver_ProvideBuffer_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## ConsumerConnector {#ConsumerConnector} |
| *Defined in [fuchsia.tracing.perfetto/consumer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/consumer.fidl;l=13)* |
| <p>Interface for creating connections between Perfetto "Consumers" and |
| a shared Perfetto service. |
| To learn more about Perfetto, see: https://www.perfetto.dev/docs/ |
| and https://perfetto.dev/docs/concepts/service-model .</p> |
| |
| |
| ### ConnectConsumer {#ConsumerConnector.ConnectConsumer} |
| |
| <p>Connects a Perfetto Consumer to the Perfetto backend. Both sides |
| will communicate over <code>producer_socket</code> using Perfetto's internal wire |
| format. |
| The lifetime of <code>consumer_socket</code> may outlive the connection lifetime |
| of ConsumerConnector. |
| Multiple producers may be connected simultaneously.</p> |
| |
| |
| |
| #### Request {#ConsumerConnector.ConnectConsumer_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>consumer_socket</code></td> |
| <td> |
| <code>handle<socket></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#ConsumerConnector.ConnectConsumer_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#ConsumerConnector_ConnectConsumer_Result'>ConsumerConnector_ConnectConsumer_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## ProducerConnector {#ProducerConnector} |
| *Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=45)* |
| <p>Interface for creating connections between Perfetto "Producers" and |
| a shared Perfetto service. |
| To learn more about Perfetto, see: https://www.perfetto.dev/docs/ |
| and https://perfetto.dev/docs/concepts/service-model .</p> |
| |
| |
| ### ConnectProducer {#ProducerConnector.ConnectProducer} |
| |
| <p>Connects a Perfetto Producer to the Perfetto backend. Both sides |
| will communicate over <code>producer_socket</code> using Perfetto's internal |
| wire format "ProducerPort" (see |
| //third_party/perfetto/protos/perfetto/ipc/producer_port.proto).</p> |
| <p><code>trace_buffer</code> either provides a buffer for communicating trace data |
| from the client, or an interface for receiving a buffer from the |
| server, depending on the client's needs.</p> |
| <p>The lifetime of <code>producer_socket</code> may outlive the connection lifetime |
| of ProducerConnector. |
| Multiple Producers may be connected simultaneously.</p> |
| |
| |
| |
| #### Request {#ProducerConnector.ConnectProducer_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>producer_socket</code></td> |
| <td> |
| <code>handle<socket></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>buffer</code></td> |
| <td> |
| <code><a class='link' href='#TraceBuffer'>TraceBuffer</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#ProducerConnector.ConnectProducer_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>result</code></td> |
| <td> |
| <code><a class='link' href='#ProducerConnector_ConnectProducer_Result'>ProducerConnector_ConnectProducer_Result</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **STRUCTS** |
| |
| ### BufferReceiver_ProvideBuffer_Response {#BufferReceiver_ProvideBuffer_Response data-text="BufferReceiver_ProvideBuffer_Response"} |
| *Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=18)* |
| |
| <EMPTY> |
| |
| ### ConsumerConnector_ConnectConsumer_Response {#ConsumerConnector_ConnectConsumer_Response data-text="ConsumerConnector_ConnectConsumer_Response"} |
| *Defined in [fuchsia.tracing.perfetto/consumer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/consumer.fidl;l=23)* |
| |
| <EMPTY> |
| |
| ### ProducerConnector_ConnectProducer_Response {#ProducerConnector_ConnectProducer_Response data-text="ProducerConnector_ConnectProducer_Response"} |
| *Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=62)* |
| |
| <EMPTY> |
| |
| |
| |
| |
| ## **UNIONS** |
| |
| ### BufferReceiver_ProvideBuffer_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#BufferReceiver_ProvideBuffer_Result data-text="BufferReceiver_ProvideBuffer_Result"} |
| *Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=18)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="BufferReceiver_ProvideBuffer_Result.response"> |
| <td><h3 id="BufferReceiver_ProvideBuffer_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#BufferReceiver_ProvideBuffer_Response'>BufferReceiver_ProvideBuffer_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="BufferReceiver_ProvideBuffer_Result.err"> |
| <td><h3 id="BufferReceiver_ProvideBuffer_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### ConsumerConnector_ConnectConsumer_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ConsumerConnector_ConnectConsumer_Result data-text="ConsumerConnector_ConnectConsumer_Result"} |
| *Defined in [fuchsia.tracing.perfetto/consumer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/consumer.fidl;l=23)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="ConsumerConnector_ConnectConsumer_Result.response"> |
| <td><h3 id="ConsumerConnector_ConnectConsumer_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#ConsumerConnector_ConnectConsumer_Response'>ConsumerConnector_ConnectConsumer_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="ConsumerConnector_ConnectConsumer_Result.err"> |
| <td><h3 id="ConsumerConnector_ConnectConsumer_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### ProducerConnector_ConnectProducer_Result [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ProducerConnector_ConnectProducer_Result data-text="ProducerConnector_ConnectProducer_Result"} |
| *Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=62)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="ProducerConnector_ConnectProducer_Result.response"> |
| <td><h3 id="ProducerConnector_ConnectProducer_Result.response" class="add-link hide-from-toc">1</h3></td> |
| <td><code>response</code></td> |
| <td> |
| <code><a class='link' href='#ProducerConnector_ConnectProducer_Response'>ProducerConnector_ConnectProducer_Response</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="ProducerConnector_ConnectProducer_Result.err"> |
| <td><h3 id="ProducerConnector_ConnectProducer_Result.err" class="add-link hide-from-toc">2</h3></td> |
| <td><code>err</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### TraceBuffer [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} [resource](/fuchsia-src/reference/fidl/language/language.md#value-vs-resource){:.fidl-attribute} {#TraceBuffer data-text="TraceBuffer"} |
| *Defined in [fuchsia.tracing.perfetto/producer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.tracing.perfetto/producer.fidl;l=35)* |
| <p>Specifies how the trace buffer should be exchanged.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="TraceBuffer.from_server"> |
| <td><h3 id="TraceBuffer.from_server" class="add-link hide-from-toc">1</h3></td> |
| <td><code>from_server</code></td> |
| <td> |
| <code><a class='link' href='#BufferReceiver'>BufferReceiver</a></code> |
| </td> |
| <td><p>Used to receive the trace buffer from the system tracing service.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |