Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
..
README.md 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
consumer_host.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
consumer_host.h 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
consumer_host_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
perfetto_integration_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
perfetto_service.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
perfetto_service.h 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
privacy_filtered_fields-inl.h 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
privacy_filtering_check.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
privacy_filtering_check.h 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
privacy_filtering_check_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
producer_host.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
producer_host.h 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
system_perfetto_unittest.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
system_test_utils.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
system_test_utils.h 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
test_utils.cc 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr
test_utils.h 4762b62e7d Publish DEPS for 106.0.5249.13 vor 1 Jahr

README.md

Perfetto in Chrome

[TOC]

Overview

Perfetto is a project intended to provide a common platform for performance instrumentation and logging across Chrome and Android, and this directory contains the code integrating the Perfetto library into Chrome. Specifically it provides a Mojo-based transportation layer which any individual new data source can build on to send logging protos to Perfetto, and an implementation which lets about://tracing generate a Chrome Tracing trace (TRACE_EVENT0, etc) using Perfetto rather than /base/trace_event/trace_log.cc as a backend.

The library itself lives in AOSP and is rolled in /third_party/chrome/.

Perfetto Documentation

Project page

Life of a Perfetto tracing Session

Internal documentation

Directory Structure

//services/tracing/                   <-- Perfetto is embedded by the tracing service
              /perfetto/              <-- Internal service implementation code
              /public/
                     /cpp/perfetto    <-- C++ client libraries used by the data source providers.
                     /mojom/          <-- Mojom interfaces
//third_party/perfetto/               <-- DEPS-rolled external library

Adding a new data source

A data source is a provider of a specific type of data in the form of protobufs, like Chrome Trace Events, memory-infra memory dumps, netlog, etc. It registers itself with Perfetto with a given string identifier (e.g. org.chromium.trace-event) and if enabled by the central Perfetto service, writes its protos into the provided Perfetto TraceWriter(s).

These data source providers can live in any child process, and the Mojo transportation layer will take care of the details of passing them to the central service through shared memory buffers.

To add a new data source:

Contact

For any questions about Perfetto in Chrome or adding a new data source, please start a thread on tracing@chromium.org.