Data source that controls the system properties used to guard initialization
of track_event producers (i.e. Skia) in apps using HWUI, and certain
processes like SurfaceFlinger.
Arguments for rpc CloneSession.
Consumer may also send a file descriptor with this rpc message. If the
descriptor is valid, and the session that should be cloned is
‘write_into_file’ session, traced writes the cloned session content to that
file descriptor, instead of writing it in the cloned session buffers.
Arguments for rpc CommitData().
See commit_data_request.proto for CommitDataRequest. That has its own file
because it is used also as input to generate C++ classes (xxx.gen.h).
This message is sent from Producer(s) to the tracing Service when registering
to advertise their capabilities. It describes the structure of tracing
protos that will be produced by the data source and the supported filters.
Configuration for trace packet interception. Used for diverting trace data to
non-Perfetto sources (e.g., logging to the console, ETW) when using the
Perfetto SDK.
Configuration that allows to boost the priority of the ‘traced’ or
‘traced_probs’ processes, by changing the scheduler configuration.
Only supported on Linux and Android the boosted process must have
‘CAP_SYS_NICE’ capability.
Custom configuration for the “android.protolog” data source.
ProtoLog is a logging mechanism that is intented to be more efficient than
logcat. This configures what logs to capture in the tracing instance.
This file is named ‘statsd_tracing_config.proto’ rather than
‘statsd_config.proto’ (which would be more consistent with the other
config protos) so it doesn’t show up and confuse folks looking for
the existing statsd_config.proto for configuring statsd itself.
Same for the config proto itself.
This file defines the configuration for the Linux /proc poller data source,
which injects counters in the trace.
Counters that are needed in the trace must be explicitly listed in the
_counters fields. This is to avoid spamming the trace with all counters
at all times.
The sampling rate is configurable. All polling rates (_period_ms) need
to be integer multiples of each other.
OK: [10ms, 10ms, 10ms], [10ms, 20ms, 10ms], [10ms, 20ms, 60ms]
Not OK: [10ms, 10ms, 11ms], [10ms, 15ms, 20ms]
Arbitrary key value pairs which can attached to a trace to provide context
about any facet of the trace. This can include, what data it contains,
properties of the host / machine the trace was collected on, and other
interesting information about a trace.
/
Examples include:
gradle_version = “9.0.10-alpha01”
java_major_version = 24
/
Attributes can be written as a TracePacket or set in
TraceConfig.trace_attributes (e.g. via perfetto --add-attribute).
/
All keys get prefixed with trace_attribute. in the UI and in
traceprocessor. If there are multiple trace attribute packets that use the
same key, then the latest value wins.
These key value pairs show up in the Overview section in
Perfetto UI. Additionally, these key, value pairs can also be queried using
Pefetto SQL by using the following query:
/
SELECT * FROM metadata WHERE name GLOB 'trace_attribute.*';
The overall config that is used when starting a new tracing session through
ProducerPort::StartTracing().
It contains the general config for the logging buffer(s) and the configs for
all the data source being enabled.
This enum is obtained by post-processing
AOSP/frameworks/proto_logging/stats/atoms.proto through
AOSP/external/perfetto/tools/update-statsd-descriptor, which extracts one
enum value for each proto field defined in the upstream atoms.proto.
A shared memory layout and the operations that send its data to the service.
The versions are independent: v2 does not imply v1. The producer sends a
bitmask of its versions in InitializeConnectionRequest. The service returns
the bitmask of common versions. This exchange does not select a writer for
an instance.
Semantic types for string fields. This tells the filter what kind of
data the field contains, so it can apply the right filtering rules.
See /rfcs/0011-subset-string-filter-rules.md for design details.
Introduced in: Perfetto v54.