TraceConfig
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.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
buffers | BufferConfig[] | |
data_sources | DataSource[] | |
builtin_data_sources | BuiltinDataSource | |
duration_ms | uint32 | If specified, the trace will be stopped duration_ms after starting.This does not count the time the system is suspended, so we will run for duration_ms of system activity, not wall time. However in case of traces with triggers, see TriggerConfig.trigger_timeout_ms instead. |
prefer_suspend_clock_for_duration | bool | If true, tries to use CLOCK_BOOTTIME for duration_ms rather than CLOCK_MONOTONIC (which doesn't count time in suspend). Supported only on Linux/Android, no-op on other platforms. This is used when dealing with long (e.g. 24h) traces, where suspend can inflate them to weeks of wall-time, making them more likely to hit device reboots (and hence loss). This option also changes consistently the semantic of TriggerConfig.stop_delay_ms. |
enable_extra_guardrails | bool | This is set when --dropbox is passed to the Perfetto command line client and enables guardrails that limit resource usage for traces requested by statsd. |
lockdown_mode | LockdownModeOperation | Reject producers that are not running under the same UID as the tracing service. |
producers | ProducerConfig[] | |
statsd_metadata | StatsdMetadata | Statsd-specific metadata. |
write_into_file | bool | When true && output_path is empty, the EnableTracing() request must provide a file descriptor. The service will then periodically read packets out of the trace buffer and store it into the passed file.If output_path is not empty no fd should be passed, the service will create a new file and write into that (see comment below). |
output_path | string | This must point to a non-existing file. If the file exists the service will NOT overwrite and will fail instead as a security precaution. On Android, when this is used with the system traced, the path must be within /data/misc/perfetto-traces/ or the trace will fail. This option has been introduced in Android R. Before R write_into_file can be used only with the "pass a file descriptor over IPC" mode. |
file_write_period_ms | uint32 | Optional. If non-zero tunes the write period. A min value of 100ms is enforced (i.e. smaller values are ignored). |
max_file_size_bytes | uint64 | Optional. When non zero the periodic write stops once at most X bytes have been written into the file. Tracing is disabled when this limit is reached, even if duration_ms has not been reached yet. |
guardrail_overrides | GuardrailOverrides | |
deferred_start | bool | When true, data sources are not started until an explicit call to StartTracing() on the consumer port. This is to support early initialization and fast trace triggering. This can be used only when the Consumer explicitly triggers the StartTracing() method. This should not be used in a remote trace config via statsd, doing so will result in a hung trace session. |
flush_period_ms | uint32 | When set, it periodically issues a Flush() to all data source, forcing them to commit their data into the tracing service. This can be used for quasi-real-time streaming mode and to guarantee some partial ordering of events in the trace in windows of X ms. |
flush_timeout_ms | uint32 | Wait for this long for producers to acknowledge flush requests. Default 5s. |
data_source_stop_timeout_ms | uint32 | Wait for this long for producers to acknowledge stop requests. Default 5s. |
notify_traceur | bool | Android-only. If set, sends an intent to the Traceur system app when the trace ends to notify it about the trace readiness. |
bugreport_score | int32 | This field was introduced in Android S. Android-only. If set to a value > 0, marks the trace session as a candidate for being attached to a bugreport. This field effectively acts as a z-index for bugreports. When Android's dumpstate runs perfetto --save-for-bugreport, traced will pick the tracing session with the highest score (score <= 0 is ignored) and: On Android S, T: will steal its contents, save the trace into a known path and stop prematurely. On Android U+: will create a read-only snapshot and save that into a known path, without stoppin the original tracing session. When this field is set the tracing session becomes eligible to be cloned by other UIDs. |
bugreport_filename | string | When set, defines name of the file that will be saved under /data/misc/perfetto-traces/bugreport/ when using --save-all-for-bugreport. If omitted, traces will be named systrace.pftrace, systrace_1.pftrace, etc, starting from the highest bugreport_score .Introduced in v42 / Android V. |
trigger_config | TriggerConfig | |
activate_triggers | string[] | When this is non-empty the perfetto command line tool will ignore the rest of this TraceConfig and instead connect to the perfetto service as a producer and send these triggers, potentially stopping or starting traces that were previous configured to use a TriggerConfig. |
incremental_state_config | IncrementalStateConfig | |
allow_user_build_tracing | bool | No longer needed as we unconditionally allow tracing on user builds. |
unique_session_name | string | If set the tracing service will ensure there is at most one tracing session with this key. |
compression_type | CompressionType | |
incident_report_config | IncidentReportConfig | |
statsd_logging | StatsdLogging | Android-only. Not for general use. If specified, sets the logging to statsd of guardrails and checkpoints in the tracing service. perfetto_cmd sets this to enabled (if not explicitly set in the config) when specifying --upload. |
trace_uuid_msb | int64 | An identifier clients can use to tie this trace to other logging. DEPRECATED as per v32. See TracePacket.trace_uuid for the authoritative Trace UUID. If this field is set, the tracing service will respect the requested UUID (i.e. TracePacket.trace_uuid == this field) but only if gap-less snapshotting is not used. |
trace_uuid_lsb | int64 | |
trace_filter | TraceFilter | |
android_report_config | AndroidReportConfig | |
cmd_trace_start_delay | CmdTraceStartDelay | |
session_semaphores | SessionSemaphore[] |
TraceConfig.BufferConfig
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
size_kb | uint32 | |
fill_policy | FillPolicy | |
transfer_on_clone | bool | When true the buffer is moved (rather than copied) onto the cloned session, and an empty buffer of the same size is allocated in the source tracing session. This feature will likely get deprecated in the future. It been introduced mainly to support the surfaceflinger snapshot dump for bugreports, where SF can dumps O(400MB) into the bugreport trace. In that case we don't want to retain another in-memory copy of the buffer. |
clear_before_clone | bool | Used in conjunction with transfer_on_clone. When true the buffer is cleared before issuing the Flush(reason=kTraceClone). This is to ensure that if the data source took too long to write the data in a previous clone-related flush, we don't end up with a mixture of leftovers from the previous write and new data. |
TraceConfig.BufferConfig.FillPolicy
Defined in trace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
UNSPECIFIED | 0 | |
RING_BUFFER | 1 | Default behavior. The buffer operates as a conventional ring buffer. If the writer is faster than the reader (or if the reader reads only after tracing is stopped) newly written packets will overwrite old packets. |
DISCARD | 2 | Behaves like RING_BUFFER as long as there is space in the buffer or the reader catches up with the writer. As soon as the writer hits an unread chunk, it stops accepting new data in the buffer. |
TraceConfig.DataSource
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
config | protos.DataSourceConfig | Filters and data-source specific config. It contains also the unique name of the data source, the one passed in the DataSourceDescriptor when they register on the service. |
producer_name_filter | string[] | Optional. If multiple producers (~processes) expose the same data source and either producer_name_filter or producer_name_regex_filter is set, the data source is enabled only for producers whose names match any of the filters.producer_name_filter has to be an exact match, while producer_name_regex_filter is a regular expression.This allows to enable a data source only for specific processes. The "repeated" fields have OR semantics: specifying a filter ["foo", "bar"] will enable data sources on both "foo" and "bar" (if they exist). |
producer_name_regex_filter | string[] |
DataSourceConfig
The configuration that is passed to each data source when starting tracing.
Defined in data_source_config.proto
Fields:
Field | Type | Description |
---|---|---|
name | string | Data source unique name, e.g., "linux.ftrace". This must match the name passed by the data source when it registers (see RegisterDataSource()). |
target_buffer | uint32 | The index of the logging buffer where TracePacket(s) will be stored. This field doesn't make a major difference for the Producer(s). The final logging buffers, in fact, are completely owned by the Service. We just ask the Producer to copy this number into the chunk headers it emits, so that the Service can quickly identify the buffer where to move the chunks into without expensive lookups on its fastpath. |
trace_duration_ms | uint32 | Set by the service to indicate the duration of the trace. DO NOT SET in consumer as this will be overridden by the service. |
prefer_suspend_clock_for_duration | bool | If true, trace_duration_ms should count also time in suspend. This is propagated from TraceConfig.prefer_suspend_clock_for_duration. |
stop_timeout_ms | uint32 | Set by the service to indicate how long it waits after StopDataSource. DO NOT SET in consumer as this will be overridden by the service. |
enable_extra_guardrails | bool | Set by the service to indicate whether this tracing session has extra guardrails. DO NOT SET in consumer as this will be overridden by the service. |
session_initiator | SessionInitiator | Set by the service to indicate which user initiated this trace. DO NOT SET in consumer as this will be overridden by the service. |
tracing_session_id | uint64 | Set by the service to indicate which tracing session the data source belongs to. The intended use case for this is checking if two data sources, one of which produces metadata for the other one, belong to the same trace session and hence should be linked together. This field was introduced in Aug 2018 after Android P. DO NOT SET in consumer as this will be overridden by the service. |
ftrace_config | FtraceConfig | Data source name: linux.ftrace |
inode_file_config | InodeFileConfig | Data source name: linux.inode_file_map |
process_stats_config | ProcessStatsConfig | Data source name: linux.process_stats |
sys_stats_config | SysStatsConfig | Data source name: linux.sys_stats |
heapprofd_config | HeapprofdConfig | Data source name: android.heapprofd Introduced in Android 10. |
java_hprof_config | JavaHprofConfig | Data source name: android.java_hprof Introduced in Android 11. |
android_power_config | AndroidPowerConfig | Data source name: android.power |
android_log_config | AndroidLogConfig | Data source name: android.log |
gpu_counter_config | GpuCounterConfig | |
android_game_intervention_list_config | AndroidGameInterventionListConfig | |
packages_list_config | PackagesListConfig | Data source name: android.packages_list |
perf_event_config | PerfEventConfig | Data source name: linux.perf |
vulkan_memory_config | VulkanMemoryConfig | Data source name: vulkan.memory_tracker |
track_event_config | TrackEventConfig | Data source name: track_event |
android_polled_state_config | AndroidPolledStateConfig | Data source name: android.polled_state |
android_system_property_config | AndroidSystemPropertyConfig | Data source name: android.system_property |
statsd_tracing_config | StatsdTracingConfig | Data source name: android.statsd |
system_info_config | SystemInfoConfig | Data source name: linux.system_info |
chrome_config | ChromeConfig | Chrome is special as it doesn't use the perfetto IPC layer. We want to avoid proto serialization and de-serialization there because that would just add extra hops on top of the Mojo ser/des. Instead we auto-generate a C++ class for it so it can pass around plain C++ objets. |
v8_config | V8Config | Data source name: code.v8.dev |
interceptor_config | InterceptorConfig | If an interceptor is specified here, packets for this data source will be rerouted to the interceptor instead of the main trace buffer. This can be used, for example, to write trace data into ETW or for logging trace points to the console. Note that interceptors are only supported by data sources registered through the Perfetto SDK API. Data sources that don't use that API (e.g., traced_probes) may not support interception. |
network_packet_trace_config | NetworkPacketTraceConfig | Data source name: android.network_packets. Introduced in Android 14 (U). |
surfaceflinger_layers_config | SurfaceFlingerLayersConfig | Data source name: android.surfaceflinger.layers |
surfaceflinger_transactions_config | SurfaceFlingerTransactionsConfig | |
android_sdk_sysprop_guard_config | AndroidSdkSyspropGuardConfig | Data source name: android.sdk_sysprop_guard Introduced in Android 14 (U) QPR1. |
etw_config | EtwConfig | Data source name: windows.etw |
protolog_config | ProtoLogConfig | Data source name: android.protolog |
android_input_event_config | AndroidInputEventConfig | Data source name: android.input.inputevent |
pixel_modem_config | PixelModemConfig | Data source name: android.pixel.modem |
windowmanager_config | WindowManagerConfig | Data source name: android.windowmanager |
chromium_system_metrics | ChromiumSystemMetricsConfig | Data source name: org.chromium.system_metrics |
legacy_config | string | This is a fallback mechanism to send a free-form text config to the producer. In theory this should never be needed. All the code that is part of the platform (i.e. traced service) is supposed to not truncate the trace config proto and propagate unknown fields. However, if anything in the pipeline (client or backend) ends up breaking this forward compat plan, this field will become the escape hatch to allow future data sources to get some meaningful configuration. |
for_testing | TestConfig | This field is only used for testing. |
DataSourceConfig.SessionInitiator
Defined in data_source_config.proto
Enum values:
Name | Value | Description |
---|---|---|
SESSION_INITIATOR_UNSPECIFIED | 0 | |
SESSION_INITIATOR_TRUSTED_SYSTEM | 1 | This trace was initiated from a trusted system app has DUMP and USAGE_STATS permission. This system app is expected to not expose the trace to the user of the device. This is determined by checking the UID initiating the trace. |
FtraceConfig
Defined in ftrace_config.proto
Fields:
Field | Type | Description |
---|---|---|
ftrace_events | string[] | Ftrace events to record, example: "sched/sched_switch". |
kprobe_events | KprobeEvent[] | Ftrace events to record, specific for kprobes and kretprobes |
atrace_categories | string[] | Android-specific event categories: |
atrace_apps | string[] | |
atrace_categories_prefer_sdk | string[] | Some processes can emit data through atrace or through the perfetto SDK via the "track_event" data source. For these categories, the SDK will be preferred, if possible, for this config. |
buffer_size_kb | uint32 | Size of each per-cpu kernel ftrace ring buffer. Not guaranteed if there are multiple concurrent tracing sessions, as the buffers cannot be resized without pausing recording in the kernel. |
drain_period_ms | uint32 | If set, specifies how often the tracing daemon reads from the kernel ring buffer. Not guaranteed if there are multiple concurrent tracing sessions. Leave unset unless you're fine-tuning a local config. |
drain_buffer_percent | uint32 | If set, the tracing daemon will read kernel ring buffers as soon as they're filled past this percentage of occupancy. In other words, a value of 50 means that a read pass is triggered as soon as any per-cpu buffer is half-full. Not guaranteed if there are multiple concurrent tracing sessions. Currently does nothing on Linux kernels below v6.9. Introduced in: perfetto v48. |
compact_sched | CompactSchedConfig | |
print_filter | PrintFilter | |
symbolize_ksyms | bool | Enables symbol name resolution against /proc/kallsyms. It requires that either traced_probes is running as root or that kptr_restrict has been manually lowered. It does not disclose KASLR, symbol addresses are mangled. |
ksyms_mem_policy | KsymsMemPolicy | |
initialize_ksyms_synchronously_for_testing | bool | By default the kernel symbolizer is lazily initialized on a deferred task to reduce ftrace's time-to-start-recording. Unfortunately that makes ksyms integration tests hard. This flag forces the kernel symbolizer to be initialized synchronously on the data source start and hence avoiding timing races in tests. DEPRECATED in v28 / Android U. This is now the default behavior, setting it to true is a no-op. |
throttle_rss_stat | bool | When this boolean is true AND the ftrace_events contains "kmem/rss_stat", this option causes traced_probes to enable the "kmem/rss_stat_throttled" event instead if present, and fall back to "kmem/rss_stat" if not present. The historical context for this is the following: - Up to Android S (12), the rss_stat was internally throttled in its kernel implementation. - A change introduced in the kernels after S has introduced a new "rss_stat_throttled" making the original "rss_stat" event unthrottled (hence very spammy). - Not all Android T/13 devices will receive a new kernel though, hence we need to deal with both cases. For more context: go/rss-stat-throttled. |
disable_generic_events | bool | If true, avoid enabling events that aren't statically known by traced_probes. Otherwise, the default is to emit such events as GenericFtraceEvent protos. Prefer to keep this flag at its default. This was added for Android tracing, where atrace categories and/or atrace HAL requested events can expand to events that aren't of interest to the tracing user. Introduced in: Android T. |
syscall_events | string[] | The subset of syscalls to record. To record all syscalls, leave this unset and add "ftrace_events: raw_syscalls/sys_{enter,exit}" to the config. * before perfetto v43, requires the config to also enable raw_syscalls/sys_{enter,exit}. * perfetto v43+ does the right thing if you set only this field. Example: ["sys_read", "sys_open"]. Introduced in: Android U. |
enable_function_graph | bool | If true, enable the "function_graph" kernel tracer that emits events whenever a kernel function is entered and exited (funcgraph_entry/funcgraph_exit). Notes on use: * Requires symbolize_ksyms for function name resolution.* Use function_filters or function_graph_roots to constrain the traced set of functions, otherwise the event bandwidth will be too high for practical use.* The data source might be rejected if there is already a concurrent ftrace data source that does not use function graph itself, as we do not support switching kernel tracers mid-trace. * Requires a kernel compiled with CONFIG_FUNCTION_GRAPH_TRACER. This is enabled if "cat /sys/kernel/tracing/available_tracers" includes "function_graph". Android: * Available only on debuggable builds. * Introduced in: Android U. |
function_filters | string[] | Constrains the set of functions traced when enable_function_graph is true. Supports globs, e.g. "sched*". You can specify multiple filters, in which case all matching functions will be traced. See kernel documentation on ftrace "set_ftrace_filter" file for more details.Android: * Available only on debuggable builds. * Introduced in: Android U. |
function_graph_roots | string[] | If enable_function_graph is true, trace this set of functions and all of its callees. Supports globs. Can be set together with function_filters , in which case only callees matching the filter will be traced. If setting both, you most likely want all roots to also be included in function_filters .Android: * Available only on debuggable builds. * Introduced in: Android U. |
preserve_ftrace_buffer | bool | If true, does not clear ftrace buffers before the start of the program. This makes sense only if this is the first ftrace data source instance created after the daemon has been started. Can be useful for gathering boot traces, if ftrace has been separately configured (e.g. via kernel commandline). |
use_monotonic_raw_clock | bool | If true, overrides the default timestamp clock and uses a raw hardware based monotonic clock for getting timestamps. * Introduced in: Android U. |
instance_name | string | If instance_name is not empty, then attempt to use that tracefs instance for event recording. Normally, this means /sys/kernel/tracing/instances/$instance_name .The name "hyp" is reserved. The instance must already exist, the tracing daemon will not create it for you as it typically doesn't have such permissions. Only a subset of features is guaranteed to work with non-default instances, at the time of writing: * ftrace_events * buffer_size_kb |
buffer_size_lower_bound | bool | If true, buffer_size_kb is interpreted as a lower bound, allowing the implementation to choose a bigger buffer size.Most configs for perfetto v43+ should simply leave both fields unset. If you need a config compatible with a range of perfetto builds and you used to set a non-default buffer_size_kb, consider setting both fields. Example: buffer_size_kb: 4096 buffer_size_lower_bound: true On older builds, the per-cpu buffers will be exactly 4 MB. On v43+, buffers will be at least 4 MB. In both cases, neither is guaranteed if there are other concurrent perfetto ftrace sessions, as the buffers cannot be resized without pausing the recording in the kernel. Introduced in: perfetto v43. |
FtraceConfig.KprobeEvent
Defined in ftrace_config.proto
Fields:
Field | Type | Description |
---|---|---|
probe | string | Kernel function name to attach to, for example "fuse_file_write_iter" |
type | KprobeType |
FtraceConfig.KprobeEvent.KprobeType
Defined in ftrace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
KPROBE_TYPE_UNKNOWN | 0 | |
KPROBE_TYPE_KPROBE | 1 | |
KPROBE_TYPE_KRETPROBE | 2 | |
KPROBE_TYPE_BOTH | 3 |
FtraceConfig.CompactSchedConfig
Configuration for compact encoding of scheduler events. When enabled (and recording the relevant ftrace events), specific high-volume events are encoded in a denser format than normal.
Defined in ftrace_config.proto
Fields:
Field | Type | Description |
---|---|---|
enabled | bool | If true, and sched_switch or sched_waking ftrace events are enabled, record those events in the compact format. If the field is unset, the default is: * perfetto v42.0+: enabled * before: disabled |
FtraceConfig.PrintFilter
Optional filter for "ftrace/print" events.
The filter consists of multiple rules. As soon as a rule matches (the rules
are processed in order), its allow
field will be used as the outcome: if
allow
is true, the event will be included in the trace, otherwise it will
be discarded. If an event does not match any rule, it will be allowed by
default (a rule with an empty prefix and allow=false, disallows everything
by default).
Defined in ftrace_config.proto
Fields:
Field | Type | Description |
---|---|---|
rules | Rule[] |
FtraceConfig.PrintFilter.Rule
Defined in ftrace_config.proto
Fields:
Field | Type | Description |
---|---|---|
prefix | string | This rule matches if prefix matches exactly with the beginning of the "ftrace/print" "buf" field. |
atrace_msg | AtraceMessage | This rule matches if the "buf" field contains an atrace-style print message as specified in atrace_msg . |
allow | bool |
FtraceConfig.PrintFilter.Rule.AtraceMessage
Matches an atrace message of the form:
pid
Defined in ftrace_config.proto
Fields:
Field | Type | Description |
---|---|---|
type | string | |
prefix | string |
FtraceConfig.KsymsMemPolicy
When symbolize_ksyms=true, determines whether the traced_probes daemon should keep the symbol map in memory (and reuse it for future tracing sessions) or clear it (saving memory) and re-create it on each tracing session (wasting cpu and wall time). The tradeoff is roughly: KSYMS_RETAIN: pay a fixed ~1.2 MB cost after the first trace. KSYMS_CLEANUP_ON_STOP: pay a ~300-500ms cost when starting each trace. Default behavior: KSYMS_CLEANUP_ON_STOP.
Defined in ftrace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
KSYMS_UNSPECIFIED | 0 | |
KSYMS_CLEANUP_ON_STOP | 1 | |
KSYMS_RETAIN | 2 |
InodeFileConfig
Defined in inode_file_config.proto
Fields:
Field | Type | Description |
---|---|---|
scan_interval_ms | uint32 | How long to pause between batches. |
scan_delay_ms | uint32 | How long to wait before the first scan in order to accumulate inodes. |
scan_batch_size | uint32 | How many inodes to scan in one batch. |
do_not_scan | bool | Do not scan for inodes not found in the static map. |
scan_mount_points | string[] | If non-empty, only scan inodes corresponding to block devices named in this list. |
mount_point_mapping | MountPointMappingEntry[] | When encountering an inode belonging to a block device corresponding to one of the mount points in this map, scan its scan_roots instead. |
InodeFileConfig.MountPointMappingEntry
Defined in inode_file_config.proto
Fields:
Field | Type | Description |
---|---|---|
mountpoint | string | |
scan_roots | string[] |
ProcessStatsConfig
Defined in process_stats_config.proto
Fields:
Field | Type | Description |
---|---|---|
quirks | Quirks[] | |
scan_all_processes_on_start | bool | If enabled all processes will be scanned and dumped when the trace starts. |
record_thread_names | bool | If enabled thread names are also recoded (this is redundant if sched_switch is enabled). |
proc_stats_poll_ms | uint32 | If > 0 samples counters (see process_stats.proto) from /proc/pid/status and oom_score_adj every X ms. It will also sample /proc/pid/smaps_rollup if scan_smaps_rollup = true. This is required to be > 100ms to avoid excessive CPU usage. |
proc_stats_cache_ttl_ms | uint32 | This is required to be either = 0 or a multiple of proc_stats_poll_ms (default: proc_stats_poll_ms ). If = 0, will be set to proc_stats_poll_ms . Non-multiples will be rounded down to the nearest multiple. |
resolve_process_fds | bool | Niche feature: If true this will resolve file descriptors for each process so these can be mapped to their actual device or file. Requires raw_syscalls/sys_{enter,exit} ftrace events to be enabled or new fds opened after initially scanning a process will not be recognized. |
scan_smaps_rollup | bool | If true, output will include memory stats from /proc/pid/smaps_rollup. |
record_process_age | bool | If true: process descriptions will include process age (starttime in /proc/pid/stat). Introduced in: perfetto v44. |
record_process_runtime | bool | If true and proc_stats_poll_ms is true, process stats will include time spent running in user/kernel mode (utime/stime in /proc/pid/stat).Introduced in: perfetto v44. |
ProcessStatsConfig.Quirks
Defined in process_stats_config.proto
Enum values:
Name | Value | Description |
---|---|---|
QUIRKS_UNSPECIFIED | 0 | |
DISABLE_INITIAL_DUMP | 1 | This has been deprecated and ignored as per 2018-05-01. Full scan at startup is now disabled by default and can be re-enabled using the scan_all_processes_on_start arg. |
DISABLE_ON_DEMAND | 2 |
SysStatsConfig
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]
Defined in sys_stats_config.proto
Fields:
Field | Type | Description |
---|---|---|
meminfo_period_ms | uint32 | Polls /proc/meminfo every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 0.3 ms [read] + 0.07 ms [parse + trace injection] |
meminfo_counters | MeminfoCounters[] | If empty all known counters are reported. Otherwise, only the counters specified below are reported. |
vmstat_period_ms | uint32 | Polls /proc/vmstat every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 0.2 ms [read] + 0.3 ms [parse + trace injection] |
vmstat_counters | VmstatCounters[] | |
stat_period_ms | uint32 | Pols /proc/stat every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. Cost: 4.1 ms [read] + 1.9 ms [parse + trace injection] |
stat_counters | StatCounters[] | |
devfreq_period_ms | uint32 | Polls /sys/devfreq/*/curfreq every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. This option can be used to record unchanging values. Updates from frequency changes can come from ftrace/set_clock_rate. |
cpufreq_period_ms | uint32 | Polls /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq every X ms. This is required to be > 10ms to avoid excessive CPU usage. |
buddyinfo_period_ms | uint32 | Polls /proc/buddyinfo every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. |
diskstat_period_ms | uint32 | Polls /proc/diskstats every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. |
psi_period_ms | uint32 | Polls /proc/pressure/* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. |
thermal_period_ms | uint32 | Polls /sys/class/thermal/* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. |
cpuidle_period_ms | uint32 | Polls /sys/devices/system/cpu/cpu*/cpuidle/state* every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. |
gpufreq_period_ms | uint32 | Polls device-specific GPU frequency info every X ms, if non-zero. This is required to be > 10ms to avoid excessive CPU usage. |
MeminfoCounters
Counter definitions for Linux's /proc/meminfo.
Defined in sys_stats_counters.proto
Enum values:
Name | Value | Description |
---|---|---|
MEMINFO_UNSPECIFIED | 0 | |
MEMINFO_MEM_TOTAL | 1 | |
MEMINFO_MEM_FREE | 2 | |
MEMINFO_MEM_AVAILABLE | 3 | |
MEMINFO_BUFFERS | 4 | |
MEMINFO_CACHED | 5 | |
MEMINFO_SWAP_CACHED | 6 | |
MEMINFO_ACTIVE | 7 | |
MEMINFO_INACTIVE | 8 | |
MEMINFO_ACTIVE_ANON | 9 | |
MEMINFO_INACTIVE_ANON | 10 | |
MEMINFO_ACTIVE_FILE | 11 | |
MEMINFO_INACTIVE_FILE | 12 | |
MEMINFO_UNEVICTABLE | 13 | |
MEMINFO_MLOCKED | 14 | |
MEMINFO_SWAP_TOTAL | 15 | |
MEMINFO_SWAP_FREE | 16 | |
MEMINFO_DIRTY | 17 | |
MEMINFO_WRITEBACK | 18 | |
MEMINFO_ANON_PAGES | 19 | |
MEMINFO_MAPPED | 20 | |
MEMINFO_SHMEM | 21 | |
MEMINFO_SLAB | 22 | |
MEMINFO_SLAB_RECLAIMABLE | 23 | |
MEMINFO_SLAB_UNRECLAIMABLE | 24 | |
MEMINFO_KERNEL_STACK | 25 | |
MEMINFO_PAGE_TABLES | 26 | |
MEMINFO_COMMIT_LIMIT | 27 | |
MEMINFO_COMMITED_AS | 28 | |
MEMINFO_VMALLOC_TOTAL | 29 | |
MEMINFO_VMALLOC_USED | 30 | |
MEMINFO_VMALLOC_CHUNK | 31 | |
MEMINFO_CMA_TOTAL | 32 | |
MEMINFO_CMA_FREE | 33 | |
MEMINFO_GPU | 34 | |
MEMINFO_ZRAM | 35 | |
MEMINFO_MISC | 36 | |
MEMINFO_ION_HEAP | 37 | |
MEMINFO_ION_HEAP_POOL | 38 |
VmstatCounters
Counter definitions for Linux's /proc/vmstat.
Defined in sys_stats_counters.proto
Enum values:
Name | Value | Description |
---|---|---|
VMSTAT_UNSPECIFIED | 0 | |
VMSTAT_NR_FREE_PAGES | 1 | |
VMSTAT_NR_ALLOC_BATCH | 2 | |
VMSTAT_NR_INACTIVE_ANON | 3 | |
VMSTAT_NR_ACTIVE_ANON | 4 | |
VMSTAT_NR_INACTIVE_FILE | 5 | |
VMSTAT_NR_ACTIVE_FILE | 6 | |
VMSTAT_NR_UNEVICTABLE | 7 | |
VMSTAT_NR_MLOCK | 8 | |
VMSTAT_NR_ANON_PAGES | 9 | |
VMSTAT_NR_MAPPED | 10 | |
VMSTAT_NR_FILE_PAGES | 11 | |
VMSTAT_NR_DIRTY | 12 | |
VMSTAT_NR_WRITEBACK | 13 | |
VMSTAT_NR_SLAB_RECLAIMABLE | 14 | |
VMSTAT_NR_SLAB_UNRECLAIMABLE | 15 | |
VMSTAT_NR_PAGE_TABLE_PAGES | 16 | |
VMSTAT_NR_KERNEL_STACK | 17 | |
VMSTAT_NR_OVERHEAD | 18 | |
VMSTAT_NR_UNSTABLE | 19 | |
VMSTAT_NR_BOUNCE | 20 | |
VMSTAT_NR_VMSCAN_WRITE | 21 | |
VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM | 22 | |
VMSTAT_NR_WRITEBACK_TEMP | 23 | |
VMSTAT_NR_ISOLATED_ANON | 24 | |
VMSTAT_NR_ISOLATED_FILE | 25 | |
VMSTAT_NR_SHMEM | 26 | |
VMSTAT_NR_DIRTIED | 27 | |
VMSTAT_NR_WRITTEN | 28 | |
VMSTAT_NR_PAGES_SCANNED | 29 | |
VMSTAT_WORKINGSET_REFAULT | 30 | |
VMSTAT_WORKINGSET_ACTIVATE | 31 | |
VMSTAT_WORKINGSET_NODERECLAIM | 32 | |
VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES | 33 | |
VMSTAT_NR_FREE_CMA | 34 | |
VMSTAT_NR_SWAPCACHE | 35 | |
VMSTAT_NR_DIRTY_THRESHOLD | 36 | |
VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD | 37 | |
VMSTAT_PGPGIN | 38 | |
VMSTAT_PGPGOUT | 39 | |
VMSTAT_PGPGOUTCLEAN | 40 | |
VMSTAT_PSWPIN | 41 | |
VMSTAT_PSWPOUT | 42 | |
VMSTAT_PGALLOC_DMA | 43 | |
VMSTAT_PGALLOC_NORMAL | 44 | |
VMSTAT_PGALLOC_MOVABLE | 45 | |
VMSTAT_PGFREE | 46 | |
VMSTAT_PGACTIVATE | 47 | |
VMSTAT_PGDEACTIVATE | 48 | |
VMSTAT_PGFAULT | 49 | |
VMSTAT_PGMAJFAULT | 50 | |
VMSTAT_PGREFILL_DMA | 51 | |
VMSTAT_PGREFILL_NORMAL | 52 | |
VMSTAT_PGREFILL_MOVABLE | 53 | |
VMSTAT_PGSTEAL_KSWAPD_DMA | 54 | |
VMSTAT_PGSTEAL_KSWAPD_NORMAL | 55 | |
VMSTAT_PGSTEAL_KSWAPD_MOVABLE | 56 | |
VMSTAT_PGSTEAL_DIRECT_DMA | 57 | |
VMSTAT_PGSTEAL_DIRECT_NORMAL | 58 | |
VMSTAT_PGSTEAL_DIRECT_MOVABLE | 59 | |
VMSTAT_PGSCAN_KSWAPD_DMA | 60 | |
VMSTAT_PGSCAN_KSWAPD_NORMAL | 61 | |
VMSTAT_PGSCAN_KSWAPD_MOVABLE | 62 | |
VMSTAT_PGSCAN_DIRECT_DMA | 63 | |
VMSTAT_PGSCAN_DIRECT_NORMAL | 64 | |
VMSTAT_PGSCAN_DIRECT_MOVABLE | 65 | |
VMSTAT_PGSCAN_DIRECT_THROTTLE | 66 | |
VMSTAT_PGINODESTEAL | 67 | |
VMSTAT_SLABS_SCANNED | 68 | |
VMSTAT_KSWAPD_INODESTEAL | 69 | |
VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY | 70 | |
VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY | 71 | |
VMSTAT_PAGEOUTRUN | 72 | |
VMSTAT_ALLOCSTALL | 73 | |
VMSTAT_PGROTATED | 74 | |
VMSTAT_DROP_PAGECACHE | 75 | |
VMSTAT_DROP_SLAB | 76 | |
VMSTAT_PGMIGRATE_SUCCESS | 77 | |
VMSTAT_PGMIGRATE_FAIL | 78 | |
VMSTAT_COMPACT_MIGRATE_SCANNED | 79 | |
VMSTAT_COMPACT_FREE_SCANNED | 80 | |
VMSTAT_COMPACT_ISOLATED | 81 | |
VMSTAT_COMPACT_STALL | 82 | |
VMSTAT_COMPACT_FAIL | 83 | |
VMSTAT_COMPACT_SUCCESS | 84 | |
VMSTAT_COMPACT_DAEMON_WAKE | 85 | |
VMSTAT_UNEVICTABLE_PGS_CULLED | 86 | |
VMSTAT_UNEVICTABLE_PGS_SCANNED | 87 | |
VMSTAT_UNEVICTABLE_PGS_RESCUED | 88 | |
VMSTAT_UNEVICTABLE_PGS_MLOCKED | 89 | |
VMSTAT_UNEVICTABLE_PGS_MUNLOCKED | 90 | |
VMSTAT_UNEVICTABLE_PGS_CLEARED | 91 | |
VMSTAT_UNEVICTABLE_PGS_STRANDED | 92 | |
VMSTAT_NR_ZSPAGES | 93 | |
VMSTAT_NR_ION_HEAP | 94 | |
VMSTAT_NR_GPU_HEAP | 95 | |
VMSTAT_ALLOCSTALL_DMA | 96 | |
VMSTAT_ALLOCSTALL_MOVABLE | 97 | |
VMSTAT_ALLOCSTALL_NORMAL | 98 | |
VMSTAT_COMPACT_DAEMON_FREE_SCANNED | 99 | |
VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED | 100 | |
VMSTAT_NR_FASTRPC | 101 | |
VMSTAT_NR_INDIRECTLY_RECLAIMABLE | 102 | |
VMSTAT_NR_ION_HEAP_POOL | 103 | |
VMSTAT_NR_KERNEL_MISC_RECLAIMABLE | 104 | |
VMSTAT_NR_SHADOW_CALL_STACK_BYTES | 105 | |
VMSTAT_NR_SHMEM_HUGEPAGES | 106 | |
VMSTAT_NR_SHMEM_PMDMAPPED | 107 | |
VMSTAT_NR_UNRECLAIMABLE_PAGES | 108 | |
VMSTAT_NR_ZONE_ACTIVE_ANON | 109 | |
VMSTAT_NR_ZONE_ACTIVE_FILE | 110 | |
VMSTAT_NR_ZONE_INACTIVE_ANON | 111 | |
VMSTAT_NR_ZONE_INACTIVE_FILE | 112 | |
VMSTAT_NR_ZONE_UNEVICTABLE | 113 | |
VMSTAT_NR_ZONE_WRITE_PENDING | 114 | |
VMSTAT_OOM_KILL | 115 | |
VMSTAT_PGLAZYFREE | 116 | |
VMSTAT_PGLAZYFREED | 117 | |
VMSTAT_PGREFILL | 118 | |
VMSTAT_PGSCAN_DIRECT | 119 | |
VMSTAT_PGSCAN_KSWAPD | 120 | |
VMSTAT_PGSKIP_DMA | 121 | |
VMSTAT_PGSKIP_MOVABLE | 122 | |
VMSTAT_PGSKIP_NORMAL | 123 | |
VMSTAT_PGSTEAL_DIRECT | 124 | |
VMSTAT_PGSTEAL_KSWAPD | 125 | |
VMSTAT_SWAP_RA | 126 | |
VMSTAT_SWAP_RA_HIT | 127 | |
VMSTAT_WORKINGSET_RESTORE | 128 | |
VMSTAT_ALLOCSTALL_DEVICE | 129 | |
VMSTAT_ALLOCSTALL_DMA32 | 130 | |
VMSTAT_BALLOON_DEFLATE | 131 | |
VMSTAT_BALLOON_INFLATE | 132 | |
VMSTAT_BALLOON_MIGRATE | 133 | |
VMSTAT_CMA_ALLOC_FAIL | 134 | |
VMSTAT_CMA_ALLOC_SUCCESS | 135 | |
VMSTAT_NR_FILE_HUGEPAGES | 136 | |
VMSTAT_NR_FILE_PMDMAPPED | 137 | |
VMSTAT_NR_FOLL_PIN_ACQUIRED | 138 | |
VMSTAT_NR_FOLL_PIN_RELEASED | 139 | |
VMSTAT_NR_SEC_PAGE_TABLE_PAGES | 140 | |
VMSTAT_NR_SHADOW_CALL_STACK | 141 | |
VMSTAT_NR_SWAPCACHED | 142 | |
VMSTAT_NR_THROTTLED_WRITTEN | 143 | |
VMSTAT_PGALLOC_DEVICE | 144 | |
VMSTAT_PGALLOC_DMA32 | 145 | |
VMSTAT_PGDEMOTE_DIRECT | 146 | |
VMSTAT_PGDEMOTE_KSWAPD | 147 | |
VMSTAT_PGREUSE | 148 | |
VMSTAT_PGSCAN_ANON | 149 | |
VMSTAT_PGSCAN_FILE | 150 | |
VMSTAT_PGSKIP_DEVICE | 151 | |
VMSTAT_PGSKIP_DMA32 | 152 | |
VMSTAT_PGSTEAL_ANON | 153 | |
VMSTAT_PGSTEAL_FILE | 154 | |
VMSTAT_THP_COLLAPSE_ALLOC | 155 | |
VMSTAT_THP_COLLAPSE_ALLOC_FAILED | 156 | |
VMSTAT_THP_DEFERRED_SPLIT_PAGE | 157 | |
VMSTAT_THP_FAULT_ALLOC | 158 | |
VMSTAT_THP_FAULT_FALLBACK | 159 | |
VMSTAT_THP_FAULT_FALLBACK_CHARGE | 160 | |
VMSTAT_THP_FILE_ALLOC | 161 | |
VMSTAT_THP_FILE_FALLBACK | 162 | |
VMSTAT_THP_FILE_FALLBACK_CHARGE | 163 | |
VMSTAT_THP_FILE_MAPPED | 164 | |
VMSTAT_THP_MIGRATION_FAIL | 165 | |
VMSTAT_THP_MIGRATION_SPLIT | 166 | |
VMSTAT_THP_MIGRATION_SUCCESS | 167 | |
VMSTAT_THP_SCAN_EXCEED_NONE_PTE | 168 | |
VMSTAT_THP_SCAN_EXCEED_SHARE_PTE | 169 | |
VMSTAT_THP_SCAN_EXCEED_SWAP_PTE | 170 | |
VMSTAT_THP_SPLIT_PAGE | 171 | |
VMSTAT_THP_SPLIT_PAGE_FAILED | 172 | |
VMSTAT_THP_SPLIT_PMD | 173 | |
VMSTAT_THP_SWPOUT | 174 | |
VMSTAT_THP_SWPOUT_FALLBACK | 175 | |
VMSTAT_THP_ZERO_PAGE_ALLOC | 176 | |
VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED | 177 | |
VMSTAT_VMA_LOCK_ABORT | 178 | |
VMSTAT_VMA_LOCK_MISS | 179 | |
VMSTAT_VMA_LOCK_RETRY | 180 | |
VMSTAT_VMA_LOCK_SUCCESS | 181 | |
VMSTAT_WORKINGSET_ACTIVATE_ANON | 182 | |
VMSTAT_WORKINGSET_ACTIVATE_FILE | 183 | |
VMSTAT_WORKINGSET_NODES | 184 | |
VMSTAT_WORKINGSET_REFAULT_ANON | 185 | |
VMSTAT_WORKINGSET_REFAULT_FILE | 186 | |
VMSTAT_WORKINGSET_RESTORE_ANON | 187 | |
VMSTAT_WORKINGSET_RESTORE_FILE | 188 |
SysStatsConfig.StatCounters
Defined in sys_stats_config.proto
Enum values:
Name | Value | Description |
---|---|---|
STAT_UNSPECIFIED | 0 | |
STAT_CPU_TIMES | 1 | |
STAT_IRQ_COUNTS | 2 | |
STAT_SOFTIRQ_COUNTS | 3 | |
STAT_FORK_COUNT | 4 |
HeapprofdConfig
Configuration for go/heapprofd.
Defined in heapprofd_config.proto
Fields:
Field | Type | Description |
---|---|---|
sampling_interval_bytes | uint64 | Sampling rate for all heaps not specified via heap_sampling_intervals. These are: * All heaps if heap_sampling_intervals is empty. * Those profiled due to all_heaps and not named in heaps if heap_sampling_intervals is not empty. * The implicit libc.malloc heap if heaps is empty. Set to 1 for perfect accuracy. Otherwise, sample every sample_interval_bytes on average. See https://perfetto.dev/docs/data-sources/native-heap-profiler#sampling-interval for more details. BUGS Before Android 12, setting this to 0 would crash the target process. N.B. This must be explicitly set to a non-zero value for all heaps (with this field or with heap_sampling_intervals), otherwise the producer will not start. |
adaptive_sampling_shmem_threshold | uint64 | If less than the given numbers of bytes are left free in the shared memory buffer, increase sampling interval by a factor of two. Adaptive sampling is disabled when set to 0. |
adaptive_sampling_max_sampling_interval_bytes | uint64 | Stop doubling the sampling_interval once the sampling interval has reached this value. |
process_cmdline | string[] | E.g. surfaceflinger, com.android.phone This input is normalized in the following way: if it contains slashes, everything up to the last slash is discarded. If it contains "@", everything after the first @ is discared. E.g. /system/bin/surfaceflinger@1.0 normalizes to surfaceflinger. This transformation is also applied to the processes' command lines when matching. |
pid | uint64[] | For watermark based triggering or local debugging. |
target_installed_by | string[] | Only profile target if it was installed by one of the packages given. Special values are: * @system: installed on the system partition * @product: installed on the product partition * @null: sideloaded Supported on Android 12+. |
heaps | string[] | Which heaps to sample, e.g. "libc.malloc". If left empty, only samples "malloc". Introduced in Android 12. |
exclude_heaps | string[] | Which heaps not to sample, e.g. "libc.malloc". This is useful when used in combination with all_heaps; Introduced in Android 12. |
stream_allocations | bool | |
heap_sampling_intervals | uint64[] | If given, needs to be the same length as heaps and gives the sampling interval for the respective entry in heaps. Otherwise, sampling_interval_bytes is used. It is recommended to set sampling_interval_bytes to a reasonable default value when using this, as a value of 0 for sampling_interval_bytes will crash the target process before Android 12. Introduced in Android 12. All values must be non-zero or the producer will not start. |
all_heaps | bool | Sample all heaps registered by target process. Introduced in Android 12. |
all | bool | Profile all processes eligible for profiling on the system. See https://perfetto.dev/docs/data-sources/native-heap-profiler#heapprofd-targets for which processes are eligible. On unmodified userdebug builds, this will lead to system crashes. Zygote will crash when trying to launch a new process as it will have an unexpected open socket to heapprofd. heapprofd will likely be overloaded by the amount of data for low sampling intervals. |
min_anonymous_memory_kb | uint32 | Do not profile processes whose anon RSS + swap < given value. Introduced in Android 11. |
max_heapprofd_memory_kb | uint32 | Stop profile if heapprofd memory usage goes beyond the given value. Introduced in Android 11. |
max_heapprofd_cpu_secs | uint64 | Stop profile if heapprofd CPU time since start of this data-source goes beyond given value. Introduced in Android 11. |
skip_symbol_prefix | string[] | Do not emit function names for mappings starting with this prefix. E.g. /system to not emit symbols for any system libraries. |
continuous_dump_config | ContinuousDumpConfig | Dump at a predefined interval. |
shmem_size_bytes | uint64 | Size of the shared memory buffer between the profiled processes and heapprofd. Defaults to 8 MiB. If larger than 500 MiB, truncated to 500 MiB. Needs to be: * at least 8192, * a power of two, * a multiple of 4096. |
block_client | bool | When the shmem buffer is full, block the client instead of ending the trace. Use with caution as this will significantly slow down the target process. |
block_client_timeout_us | uint32 | If set, stop the trace session after blocking the client for this timeout. Needs to be larger than 100 us, otherwise no retries are done. Introduced in Android 11. |
no_startup | bool | Do not profile processes from startup, only match already running processes. Can not be set at the same time as no_running. Introduced in Android 11. |
no_running | bool | Do not profile running processes. Only match processes on startup. Can not be set at the same time as no_startup. Introduced in Android 11. |
dump_at_max | bool | Cause heapprofd to emit a single dump at the end, showing the memory usage at the point in time when the sampled heap usage of the process was at its maximum. This causes ProfilePacket.HeapSample.self_max to be set, and self_allocated and self_freed to not be set. Introduced in Android 11. |
disable_fork_teardown | bool | Escape hatch if the session is being torn down because of a forked child that shares memory space, but is not correctly identified as a vforked child. Introduced in Android 11. |
disable_vfork_detection | bool | We try to automatically detect when a target applicatation vforks but then does a memory allocation (or free). This auto-detection can be disabled with this. Introduced in Android 11. |
HeapprofdConfig.ContinuousDumpConfig
Defined in heapprofd_config.proto
Fields:
Field | Type | Description |
---|---|---|
dump_phase_ms | uint32 | ms to wait before first dump. |
dump_interval_ms | uint32 | ms to wait between following dumps. |
JavaHprofConfig
Configuration for managed app heap graph snapshots.
Defined in java_hprof_config.proto
Fields:
Field | Type | Description |
---|---|---|
process_cmdline | string[] | Command line allowlist, matched against the /proc/ On Android T+ (13+), this field can specify a single wildcard (), and the profiler will attempt to match it in two possible ways: if the pattern starts with a '/', then it is matched against the first segment of the cmdline (i.e. argv0). For example "/bin/e*" would match "/bin/echo". * otherwise the pattern is matched against the part of argv0 corresponding to the binary name (this is unrelated to /proc/pid/exe). For example "echo" would match "/bin/echo". On Android S (12) and below, both this pattern and /proc/pid/cmdline get normalized prior to an exact string comparison. Normalization is as follows: (1) trim everything beyond the first null or "@" byte; (2) if the string contains forward slashes, trim everything up to and including the last one. Implementation note: in either case, at most 511 characters of cmdline are considered. |
pid | uint64[] | For watermark based triggering or local debugging. |
target_installed_by | string[] | Only profile target if it was installed by one of the packages given. Special values are: * @system: installed on the system partition * @product: installed on the product partition * @null: sideloaded Supported on Android 12+. |
continuous_dump_config | ContinuousDumpConfig | Dump at a predefined interval. |
min_anonymous_memory_kb | uint32 | Do not profile processes whose anon RSS + swap < given value. |
dump_smaps | bool | Include the process' /proc/self/smaps. This only shows maps that: * start with /system * start with /vendor * start with /data/app * contain "extracted in memory from Y", where Y matches any of the above |
ignored_types | string[] | Exclude objects of the following types from the profile. This can be useful if lots of uninteresting objects, e.g. "sun.misc.Cleaner". |
JavaHprofConfig.ContinuousDumpConfig
If dump_interval_ms != 0, the following configuration is used.
Defined in java_hprof_config.proto
Fields:
Field | Type | Description |
---|---|---|
dump_phase_ms | uint32 | ms to wait before first continuous dump. A dump is always created at the beginning of the trace. |
dump_interval_ms | uint32 | ms to wait between following dumps. |
scan_pids_only_on_start | bool | If true, scans all the processes to find process_cmdline and filter by min_anonymous_memory_kb only at data source start. Default on Android S-.If false, rescans all the processes to find on every dump. Default on Android T+. |
AndroidPowerConfig
Defined in android_power_config.proto
Fields:
Field | Type | Description |
---|---|---|
battery_poll_ms | uint32 | |
battery_counters | BatteryCounters[] | |
collect_power_rails | bool | Where available enables per-power-rail measurements. |
collect_energy_estimation_breakdown | bool | Provides a breakdown of energy estimation for various subsystem (e.g. GPU). Available from Android S. |
collect_entity_state_residency | bool | Provides a breakdown of time in state for various subsystems. Available from Android U. |
AndroidPowerConfig.BatteryCounters
Defined in android_power_config.proto
Enum values:
Name | Value | Description |
---|---|---|
BATTERY_COUNTER_UNSPECIFIED | 0 | |
BATTERY_COUNTER_CHARGE | 1 | Coulomb counter. |
BATTERY_COUNTER_CAPACITY_PERCENT | 2 | Charge (%). |
BATTERY_COUNTER_CURRENT | 3 | Instantaneous current. |
BATTERY_COUNTER_CURRENT_AVG | 4 | Avg current. |
BATTERY_COUNTER_VOLTAGE | 5 | Instantaneous voltage. |
AndroidLogConfig
Defined in android_log_config.proto
Fields:
Field | Type | Description |
---|---|---|
log_ids | AndroidLogId[] | |
min_prio | AndroidLogPriority | If set ignores all log messages whose prio is < the given value. |
filter_tags | string[] | If non-empty ignores all log messages whose tag doesn't match one of the specified values. |
AndroidLogId
Values from NDK's android/log.h.
Defined in android_log_constants.proto
Enum values:
Name | Value | Description |
---|---|---|
LID_DEFAULT | 0 | MAIN. |
LID_RADIO | 1 | |
LID_EVENTS | 2 | |
LID_SYSTEM | 3 | |
LID_CRASH | 4 | |
LID_STATS | 5 | |
LID_SECURITY | 6 | |
LID_KERNEL | 7 |
AndroidLogPriority
Defined in android_log_constants.proto
Enum values:
Name | Value | Description |
---|---|---|
PRIO_UNSPECIFIED | 0 | |
PRIO_UNUSED | 1 | _DEFAULT, but should never be seen in logs. |
PRIO_VERBOSE | 2 | |
PRIO_DEBUG | 3 | |
PRIO_INFO | 4 | |
PRIO_WARN | 5 | |
PRIO_ERROR | 6 | |
PRIO_FATAL | 7 |
GpuCounterConfig
Defined in gpu_counter_config.proto
Fields:
Field | Type | Description |
---|---|---|
counter_period_ns | uint64 | Desired sampling interval for counters. |
counter_ids | uint32[] | List of counters to be sampled. Counter IDs correspond to the ones described in GpuCounterSpec in the data source descriptor. |
instrumented_sampling | bool | Sample counters by instrumenting command buffers. |
fix_gpu_clock | bool | Fix gpu clock rate during trace session. |
AndroidGameInterventionListConfig
Data source that lists game modes and game interventions of games on an Android device.
Defined in android_game_intervention_list_config.proto
Fields:
Field | Type | Description |
---|---|---|
package_name_filter | string[] | If not empty, emit info about only the following list of package names (exact match, no regex). Otherwise, emit info about all packages. |
PackagesListConfig
Data source that lists details (such as version code) about packages on an Android device.
Defined in packages_list_config.proto
Fields:
Field | Type | Description |
---|---|---|
package_name_filter | string[] | If not empty, emit info about only the following list of package names (exact match, no regex). Otherwise, emit info about all packages. |
PerfEventConfig
Configuration for the traced_perf profiler.
Example config for basic cpu profiling: perf_event_config { timebase { frequency: 80 } callstack_sampling { scope { target_cmdline: "surfaceflinger" target_cmdline: "system_server" } kernel_frames: true } }
Defined in perf_event_config.proto
Fields:
Field | Type | Description |
---|---|---|
timebase | PerfEvents.Timebase | What event to sample on, and how often. Defined in common/perf_events.proto. |
followers | FollowerEvent[] | Other events associated with the leader described in the timebase. |
callstack_sampling | CallstackSampling | If set, the profiler will sample userspace processes' callstacks at the interval specified by the timebase .If unset, the profiler will record only the event counts. |
ring_buffer_read_period_ms | uint32 | How often the per-cpu ring buffers are read by the producer. If unset, an implementation-defined default is used. |
ring_buffer_pages | uint32 | Size (in 4k pages) of each per-cpu ring buffer that is filled by the kernel. If set, must be a power of two. If unset, an implementation-defined default is used. |
max_enqueued_footprint_kb | uint64 | Drop samples if the heap memory held by the samples in the unwinder queue is above the given limit. This counts the memory across all concurrent data sources (not just this one's), and there is no fairness guarantee - the whole quota might be used up by a concurrent source. |
max_daemon_memory_kb | uint32 | Stop the data source if traced_perf's combined {RssAnon + Swap} memory footprint exceeds this value. |
remote_descriptor_timeout_ms | uint32 | Timeout for the remote /proc/ If unset, an implementation-defined default is used. |
unwind_state_clear_period_ms | uint32 | Optional period for clearing state cached by the unwinder. This is a heavy operation that is only necessary for traces that target a wide set of processes, and require the memory footprint to be reset periodically. If unset, the cached state will not be cleared. |
target_installed_by | string[] | If set, only profile target if it was installed by a package with one of these names. Special values: * "@system": installed on the system partition * "@product": installed on the product partition * "@null": sideloaded Supported on Android 12+. |
all_cpus | bool | Note: legacy configs had to set all_cpus to true to pass parsing.We rely on this to detect such configs. |
sampling_frequency | uint32 | |
kernel_frames | bool | |
target_pid | int32[] | |
target_cmdline | string[] | |
exclude_pid | int32[] | |
exclude_cmdline | string[] | |
additional_cmdline_count | uint32 |
PerfEvents.Timebase
What event to sample on, and how often. Commented from the perspective of
its use in PerfEventConfig
.
Defined in perf_events.proto
Fields:
Field | Type | Description |
---|---|---|
frequency | uint64 | Per-cpu sampling frequency in Hz, as requested from the kernel. Not the same as 1/period. Details: the actual sampling will still be based on a period, but the kernel will dynamically adjust it based on the observed event rate, to approximate this frequency. Works best with steady-rate events like timers. |
period | uint64 | Per-cpu sampling will occur every period counts of event .Prefer frequency by default, as it's easier to oversample with a fixed period. |
counter | Counter | |
tracepoint | Tracepoint | |
raw_event | RawEvent | |
timestamp_clock | PerfClock | If set, samples will be timestamped with the given clock. If unset, the clock is chosen by the implementation. For software events, prefer PERF_CLOCK_BOOTTIME. However it cannot be used for hardware events (due to interrupt safety), for which the recommendation is to use one of the monotonic clocks. |
name | string | Optional arbitrary name for the event, to identify it in the parsed trace. Does not affect the profiling itself. If unset, the trace parser will choose a suitable name. |
PerfEvents.Counter
Builtin counter names from the uapi header. Commented with their perf tool aliases. finite), and generally make this list as extensive as possible. Excluding things like dynamic PMUs since those don't fit into a static enum.
Defined in perf_events.proto
Enum values:
Name | Value | Description |
---|---|---|
UNKNOWN_COUNTER | 0 | |
SW_CPU_CLOCK | 1 | cpu-clock |
SW_PAGE_FAULTS | 2 | page-faults, faults |
SW_TASK_CLOCK | 3 | task-clock |
SW_CONTEXT_SWITCHES | 4 | context-switches, cs |
SW_CPU_MIGRATIONS | 5 | cpu-migrations, migrations |
SW_PAGE_FAULTS_MIN | 6 | minor-faults |
SW_PAGE_FAULTS_MAJ | 7 | major-faults |
SW_ALIGNMENT_FAULTS | 8 | alignment-faults |
SW_EMULATION_FAULTS | 9 | emulation-faults |
SW_DUMMY | 20 | dummy |
HW_CPU_CYCLES | 10 | cpu-cycles, cycles |
HW_INSTRUCTIONS | 11 | instructions |
HW_CACHE_REFERENCES | 12 | cache-references |
HW_CACHE_MISSES | 13 | cache-misses |
HW_BRANCH_INSTRUCTIONS | 14 | branch-instructions, branches |
HW_BRANCH_MISSES | 15 | branch-misses |
HW_BUS_CYCLES | 16 | bus-cycles |
HW_STALLED_CYCLES_FRONTEND | 17 | stalled-cycles-frontend, idle-cycles-frontend |
HW_STALLED_CYCLES_BACKEND | 18 | stalled-cycles-backend, idle-cycles-backend |
HW_REF_CPU_CYCLES | 19 | ref-cycles |
PerfEvents.Tracepoint
Defined in perf_events.proto
Fields:
Field | Type | Description |
---|---|---|
name | string | Group and name for the tracepoint, acceptable forms: * "sched/sched_switch" * "sched:sched_switch" |
filter | string | Optional field-level filter for the tracepoint. Only events matching this filter will be counted (and therefore contribute to the sampling period). Example: "prev_pid >= 42 && next_pid == 0". For full syntax, see kernel documentation on "Event filtering": https://www.kernel.org/doc/Documentation/trace/events.txt |
PerfEvents.RawEvent
Syscall-level description of the event, propagated to the perf_event_attr struct. Primarily for local use-cases, since the event availability and encoding is hardware-specific.
Defined in perf_events.proto
Fields:
Field | Type | Description |
---|---|---|
type | uint32 | |
config | uint64 | |
config1 | uint64 | |
config2 | uint64 |
PerfEvents.PerfClock
Subset of clocks that is supported by perf timestamping. CLOCK_TAI is excluded since it's not expected to be used in practice, but would require additions to the trace clock synchronisation logic.
Defined in perf_events.proto
Enum values:
Name | Value | Description |
---|---|---|
UNKNOWN_PERF_CLOCK | 0 | |
PERF_CLOCK_REALTIME | 1 | |
PERF_CLOCK_MONOTONIC | 2 | |
PERF_CLOCK_MONOTONIC_RAW | 3 | |
PERF_CLOCK_BOOTTIME | 4 |
FollowerEvent
Additional events associated with a leader. Configuration is similar to Timebase event. Because data acquisition is driven by the leader there is no option to configure the clock or the frequency.
Defined in perf_events.proto
Fields:
Field | Type | Description |
---|---|---|
counter | PerfEvents.Counter | |
tracepoint | PerfEvents.Tracepoint | |
raw_event | PerfEvents.RawEvent | |
name | string |
PerfEventConfig.CallstackSampling
Defined in perf_event_config.proto
Fields:
Field | Type | Description |
---|---|---|
scope | Scope | Defines a set of processes for which samples are retained/skipped. If unset, all samples are kept, but beware that it will be very heavy on the stack unwinder, which might start dropping samples due to overload. |
kernel_frames | bool | If true, callstacks will include the kernel-space frames. Such frames can be identified by a magical "kernel" string as their mapping name. Requires traced_perf to be running as root, or kptr_restrict to have been manually unrestricted. On Android, the platform should do the right thing on debug builds. This does not disclose KASLR, as only the function names are emitted. |
user_frames | UnwindMode | Whether to record and unwind userspace callstacks. If unset, defaults to including userspace (UNWIND_DWARF) both for backwards compatibility and as the most common default (this defaulting is only applicable if the outer CallstackSampling message is explicitly set). |
PerfEventConfig.Scope
Defined in perf_event_config.proto
Fields:
Field | Type | Description |
---|---|---|
target_pid | int32[] | Process ID (TGID) allowlist. If this list is not empty, only matching samples will be retained. If multiple allow/deny-lists are specified by the config, then all of them are evaluated for each sampled process. |
target_cmdline | string[] | Command line allowlist, matched against the /proc/ On Android T+ (13+), this field can specify a single wildcard (), and the profiler will attempt to match it in two possible ways: if the pattern starts with a '/', then it is matched against the first segment of the cmdline (i.e. argv0). For example "/bin/e*" would match "/bin/echo". * otherwise the pattern is matched against the part of argv0 corresponding to the binary name (this is unrelated to /proc/pid/exe). For example "echo" would match "/bin/echo". On Android S (12) and below, both this pattern and /proc/pid/cmdline get normalized prior to an exact string comparison. Normalization is as follows: (1) trim everything beyond the first null or "@" byte; (2) if the string contains forward slashes, trim everything up to and including the last one. Implementation note: in either case, at most 511 characters of cmdline are considered. |
exclude_pid | int32[] | List of excluded pids. |
exclude_cmdline | string[] | List of excluded cmdlines. See description of target_cmdline for how this is handled. |
additional_cmdline_count | uint32 | Number of additional command lines to sample. Only those which are neither explicitly included nor excluded will be considered. Processes are accepted on a first come, first served basis. |
process_shard_count | uint32 | If set to N, all encountered processes will be put into one of the N possible bins, and only one randomly-chosen bin will be selected for unwinding. The binning is simply "pid % N", under the assumption that low-order bits of pids are roughly uniformly distributed. Other explicit inclusions/exclusions in this Scope message are still respected.The profiler will report the chosen shard in PerfSampleDefaults, and the values will be queryable in trace processor under the "stats" table as "perf_process_shard_count" and "perf_chosen_process_shard". NB: all data sources in a config that set process_shard_count must set it to the same value. The profiler will choose one bin for all those data sources. |
PerfEventConfig.UnwindMode
Userspace unwinding mode. A possible future addition is kernel-unwound callchains for frame pointer based systems.
Defined in perf_event_config.proto
Enum values:
Name | Value | Description |
---|---|---|
UNWIND_UNKNOWN | 0 | |
UNWIND_SKIP | 1 | Do not unwind userspace: |
UNWIND_DWARF | 2 | Use libunwindstack (default): |
UNWIND_FRAME_POINTER | 3 | Use userspace frame pointer unwinder: |
VulkanMemoryConfig
Defined in vulkan_memory_config.proto
Fields:
Field | Type | Description |
---|---|---|
track_driver_memory_usage | bool | Tracking driver memory usage events |
track_device_memory_usage | bool | Tracking device memory usage events |
TrackEventConfig
Defined in track_event_config.proto
Fields:
Field | Type | Description |
---|---|---|
disabled_categories | string[] | Default: [] |
enabled_categories | string[] | Default: [] |
disabled_tags | string[] | Default: ["slow", "debug"] |
enabled_tags | string[] | Default: [] |
disable_incremental_timestamps | bool | Default: false (i.e. enabled by default) |
timestamp_unit_multiplier | uint64 | Allows to specify a custom unit different than the default (ns). Also affects thread timestamps if enable_thread_time_sampling = true. A multiplier of 1000 means that a timestamp = 3 should be interpreted as 3000 ns = 3 us. Default: 1 (if unset, it should be read as 1). |
filter_debug_annotations | bool | Default: false (i.e. debug_annotations is NOT filtered out by default) When true, any debug annotations provided as arguments to the TRACE_EVENT macros are not written into the trace. Typed arguments will still be emitted even if set to true. |
enable_thread_time_sampling | bool | Default : false (i.e. disabled) When true, the SDK samples and emits the current thread time counter value for each event on the current thread's track. This value represents the total CPU time consumed by that thread since its creation. Note that if a thread is not scheduled by OS for some duration, that time won't be included in thread_time. Learn more : "CLOCK_THREAD_CPUTIME_ID" flag at https://linux.die.net/man/3/clock_gettime |
filter_dynamic_event_names | bool | Default: false (i.e. dynamic event names are NOT filtered out by default) When true, event_names wrapped in perfetto::DynamicString will be filtered out. |
AndroidPolledStateConfig
Data source that polls for display state. This should only be used for backward-compatibility; AndroidSystemPropertyConfig should be preferred.
Defined in android_polled_state_config.proto
Fields:
Field | Type | Description |
---|---|---|
poll_ms | uint32 | Frequency of polling. If absent the state will be recorded once, at the start of the trace. This is required to be > 100ms to avoid excessive CPU usage. |
AndroidSystemPropertyConfig
Data source that polls for system properties.
Defined in android_system_property_config.proto
Fields:
Field | Type | Description |
---|---|---|
poll_ms | uint32 | Frequency of polling. If absent the state will be recorded once, at the start of the trace. This is required to be > 100ms to avoid excessive CPU usage. |
property_name | string[] | Properties to poll. All property names must start with "debug.tracing.". |
StatsdTracingConfig
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.
Defined in statsd_tracing_config.proto
Fields:
Field | Type | Description |
---|---|---|
push_atom_id | AtomId[] | This is for the common case of the atom id being known in the enum AtomId. |
raw_push_atom_id | int32[] | Escape hatch for Atom IDs that are not yet in the AtomId enum (e.g. non-upstream atoms that don't exist in AOSP). |
pull_config | StatsdPullAtomConfig[] |
AtomId
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.
Defined in atom_ids.proto
Enum values:
Name | Value | Description |
---|---|---|
ATOM_UNSPECIFIED | 0 | |
ATOM_BLE_SCAN_STATE_CHANGED | 2 | |
ATOM_PROCESS_STATE_CHANGED | 3 | |
ATOM_BLE_SCAN_RESULT_RECEIVED | 4 | |
ATOM_SENSOR_STATE_CHANGED | 5 | |
ATOM_GPS_SCAN_STATE_CHANGED | 6 | |
ATOM_SYNC_STATE_CHANGED | 7 | |
ATOM_SCHEDULED_JOB_STATE_CHANGED | 8 | |
ATOM_SCREEN_BRIGHTNESS_CHANGED | 9 | |
ATOM_WAKELOCK_STATE_CHANGED | 10 | |
ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED | 11 | |
ATOM_MOBILE_RADIO_POWER_STATE_CHANGED | 12 | |
ATOM_WIFI_RADIO_POWER_STATE_CHANGED | 13 | |
ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED | 14 | |
ATOM_MEMORY_FACTOR_STATE_CHANGED | 15 | |
ATOM_EXCESSIVE_CPU_USAGE_REPORTED | 16 | |
ATOM_CACHED_KILL_REPORTED | 17 | |
ATOM_PROCESS_MEMORY_STAT_REPORTED | 18 | |
ATOM_LAUNCHER_EVENT | 19 | |
ATOM_BATTERY_SAVER_MODE_STATE_CHANGED | 20 | |
ATOM_DEVICE_IDLE_MODE_STATE_CHANGED | 21 | |
ATOM_DEVICE_IDLING_MODE_STATE_CHANGED | 22 | |
ATOM_AUDIO_STATE_CHANGED | 23 | |
ATOM_MEDIA_CODEC_STATE_CHANGED | 24 | |
ATOM_CAMERA_STATE_CHANGED | 25 | |
ATOM_FLASHLIGHT_STATE_CHANGED | 26 | |
ATOM_UID_PROCESS_STATE_CHANGED | 27 | |
ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED | 28 | |
ATOM_SCREEN_STATE_CHANGED | 29 | |
ATOM_BATTERY_LEVEL_CHANGED | 30 | |
ATOM_CHARGING_STATE_CHANGED | 31 | |
ATOM_PLUGGED_STATE_CHANGED | 32 | |
ATOM_INTERACTIVE_STATE_CHANGED | 33 | |
ATOM_TOUCH_EVENT_REPORTED | 34 | |
ATOM_WAKEUP_ALARM_OCCURRED | 35 | |
ATOM_KERNEL_WAKEUP_REPORTED | 36 | |
ATOM_WIFI_LOCK_STATE_CHANGED | 37 | |
ATOM_WIFI_SIGNAL_STRENGTH_CHANGED | 38 | |
ATOM_WIFI_SCAN_STATE_CHANGED | 39 | |
ATOM_PHONE_SIGNAL_STRENGTH_CHANGED | 40 | |
ATOM_SETTING_CHANGED | 41 | |
ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED | 42 | |
ATOM_ISOLATED_UID_CHANGED | 43 | |
ATOM_PACKET_WAKEUP_OCCURRED | 44 | |
ATOM_WALL_CLOCK_TIME_SHIFTED | 45 | |
ATOM_ANOMALY_DETECTED | 46 | |
ATOM_APP_BREADCRUMB_REPORTED | 47 | |
ATOM_APP_START_OCCURRED | 48 | |
ATOM_APP_START_CANCELED | 49 | |
ATOM_APP_START_FULLY_DRAWN | 50 | |
ATOM_LMK_KILL_OCCURRED | 51 | |
ATOM_PICTURE_IN_PICTURE_STATE_CHANGED | 52 | |
ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED | 53 | |
ATOM_APP_START_MEMORY_STATE_CAPTURED | 55 | |
ATOM_SHUTDOWN_SEQUENCE_REPORTED | 56 | |
ATOM_BOOT_SEQUENCE_REPORTED | 57 | |
ATOM_OVERLAY_STATE_CHANGED | 59 | |
ATOM_FOREGROUND_SERVICE_STATE_CHANGED | 60 | |
ATOM_CALL_STATE_CHANGED | 61 | |
ATOM_KEYGUARD_STATE_CHANGED | 62 | |
ATOM_KEYGUARD_BOUNCER_STATE_CHANGED | 63 | |
ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED | 64 | |
ATOM_APP_DIED | 65 | |
ATOM_RESOURCE_CONFIGURATION_CHANGED | 66 | |
ATOM_BLUETOOTH_ENABLED_STATE_CHANGED | 67 | |
ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED | 68 | |
ATOM_GPS_SIGNAL_QUALITY_CHANGED | 69 | |
ATOM_USB_CONNECTOR_STATE_CHANGED | 70 | |
ATOM_SPEAKER_IMPEDANCE_REPORTED | 71 | |
ATOM_HARDWARE_FAILED | 72 | |
ATOM_PHYSICAL_DROP_DETECTED | 73 | |
ATOM_CHARGE_CYCLES_REPORTED | 74 | |
ATOM_MOBILE_CONNECTION_STATE_CHANGED | 75 | |
ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED | 76 | |
ATOM_USB_DEVICE_ATTACHED | 77 | |
ATOM_APP_CRASH_OCCURRED | 78 | |
ATOM_ANR_OCCURRED | 79 | |
ATOM_WTF_OCCURRED | 80 | |
ATOM_LOW_MEM_REPORTED | 81 | |
ATOM_GENERIC_ATOM | 82 | |
ATOM_VIBRATOR_STATE_CHANGED | 84 | |
ATOM_DEFERRED_JOB_STATS_REPORTED | 85 | |
ATOM_THERMAL_THROTTLING | 86 | |
ATOM_BIOMETRIC_ACQUIRED | 87 | |
ATOM_BIOMETRIC_AUTHENTICATED | 88 | |
ATOM_BIOMETRIC_ERROR_OCCURRED | 89 | |
ATOM_UI_EVENT_REPORTED | 90 | |
ATOM_BATTERY_HEALTH_SNAPSHOT | 91 | |
ATOM_SLOW_IO | 92 | |
ATOM_BATTERY_CAUSED_SHUTDOWN | 93 | |
ATOM_PHONE_SERVICE_STATE_CHANGED | 94 | |
ATOM_PHONE_STATE_CHANGED | 95 | |
ATOM_USER_RESTRICTION_CHANGED | 96 | |
ATOM_SETTINGS_UI_CHANGED | 97 | |
ATOM_CONNECTIVITY_STATE_CHANGED | 98 | |
ATOM_SERVICE_STATE_CHANGED | 99 | |
ATOM_SERVICE_LAUNCH_REPORTED | 100 | |
ATOM_FLAG_FLIP_UPDATE_OCCURRED | 101 | |
ATOM_BINARY_PUSH_STATE_CHANGED | 102 | |
ATOM_DEVICE_POLICY_EVENT | 103 | |
ATOM_DOCS_UI_FILE_OP_CANCELED | 104 | |
ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED | 105 | |
ATOM_DOCS_UI_FILE_OP_FAILURE | 106 | |
ATOM_DOCS_UI_PROVIDER_FILE_OP | 107 | |
ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST | 108 | |
ATOM_DOCS_UI_LAUNCH_REPORTED | 109 | |
ATOM_DOCS_UI_ROOT_VISITED | 110 | |
ATOM_DOCS_UI_STARTUP_MS | 111 | |
ATOM_DOCS_UI_USER_ACTION_REPORTED | 112 | |
ATOM_WIFI_ENABLED_STATE_CHANGED | 113 | |
ATOM_WIFI_RUNNING_STATE_CHANGED | 114 | |
ATOM_APP_COMPACTED | 115 | |
ATOM_NETWORK_DNS_EVENT_REPORTED | 116 | |
ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED | 117 | |
ATOM_DOCS_UI_PICK_RESULT_REPORTED | 118 | |
ATOM_DOCS_UI_SEARCH_MODE_REPORTED | 119 | |
ATOM_DOCS_UI_SEARCH_TYPE_REPORTED | 120 | |
ATOM_DATA_STALL_EVENT | 121 | |
ATOM_RESCUE_PARTY_RESET_REPORTED | 122 | |
ATOM_SIGNED_CONFIG_REPORTED | 123 | |
ATOM_GNSS_NI_EVENT_REPORTED | 124 | |
ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT | 125 | |
ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED | 126 | |
ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED | 127 | |
ATOM_APP_DOWNGRADED | 128 | |
ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED | 129 | |
ATOM_LOW_STORAGE_STATE_CHANGED | 130 | |
ATOM_GNSS_NFW_NOTIFICATION_REPORTED | 131 | |
ATOM_GNSS_CONFIGURATION_REPORTED | 132 | |
ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED | 133 | |
ATOM_NFC_ERROR_OCCURRED | 134 | |
ATOM_NFC_STATE_CHANGED | 135 | |
ATOM_NFC_BEAM_OCCURRED | 136 | |
ATOM_NFC_CARDEMULATION_OCCURRED | 137 | |
ATOM_NFC_TAG_OCCURRED | 138 | |
ATOM_NFC_HCE_TRANSACTION_OCCURRED | 139 | |
ATOM_SE_STATE_CHANGED | 140 | |
ATOM_SE_OMAPI_REPORTED | 141 | |
ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED | 142 | |
ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED | 143 | |
ATOM_ADB_CONNECTION_CHANGED | 144 | |
ATOM_SPEECH_DSP_STAT_REPORTED | 145 | |
ATOM_USB_CONTAMINANT_REPORTED | 146 | |
ATOM_WATCHDOG_ROLLBACK_OCCURRED | 147 | |
ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED | 148 | |
ATOM_BUBBLE_UI_CHANGED | 149 | |
ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED | 150 | |
ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED | 151 | |
ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED | 152 | |
ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED | 153 | |
ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED | 154 | |
ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED | 155 | |
ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED | 156 | |
ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED | 157 | |
ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED | 158 | |
ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED | 159 | |
ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED | 160 | |
ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED | 161 | |
ATOM_BLUETOOTH_DEVICE_INFO_REPORTED | 162 | |
ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED | 163 | |
ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED | 164 | |
ATOM_BLUETOOTH_BOND_STATE_CHANGED | 165 | |
ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED | 166 | |
ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED | 167 | |
ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED | 168 | |
ATOM_PROCESS_START_TIME | 169 | |
ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED | 170 | |
ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED | 171 | |
ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED | 172 | |
ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED | 173 | |
ATOM_ASSIST_GESTURE_STAGE_REPORTED | 174 | |
ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED | 175 | |
ATOM_ASSIST_GESTURE_PROGRESS_REPORTED | 176 | |
ATOM_TOUCH_GESTURE_CLASSIFIED | 177 | |
ATOM_HIDDEN_API_USED | 178 | |
ATOM_STYLE_UI_CHANGED | 179 | |
ATOM_PRIVACY_INDICATORS_INTERACTED | 180 | |
ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED | 181 | |
ATOM_NETWORK_STACK_REPORTED | 182 | |
ATOM_APP_MOVED_STORAGE_REPORTED | 183 | |
ATOM_BIOMETRIC_ENROLLED | 184 | |
ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED | 185 | |
ATOM_TOMB_STONE_OCCURRED | 186 | |
ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED | 187 | |
ATOM_INTELLIGENCE_EVENT_REPORTED | 188 | |
ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED | 189 | |
ATOM_ROLE_REQUEST_RESULT_REPORTED | 190 | |
ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED | 191 | |
ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED | 192 | |
ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED | 193 | |
ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED | 194 | |
ATOM_MEDIAMETRICS_CODEC_REPORTED | 195 | |
ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED | 196 | |
ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED | 197 | |
ATOM_MEDIAMETRICS_MEDIADRM_REPORTED | 198 | |
ATOM_MEDIAMETRICS_NUPLAYER_REPORTED | 199 | |
ATOM_MEDIAMETRICS_RECORDER_REPORTED | 200 | |
ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED | 201 | |
ATOM_CAR_POWER_STATE_CHANGED | 203 | |
ATOM_GARAGE_MODE_INFO | 204 | |
ATOM_TEST_ATOM_REPORTED | 205 | |
ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED | 206 | |
ATOM_CONTENT_CAPTURE_SERVICE_EVENTS | 207 | |
ATOM_CONTENT_CAPTURE_SESSION_EVENTS | 208 | |
ATOM_CONTENT_CAPTURE_FLUSHED | 209 | |
ATOM_LOCATION_MANAGER_API_USAGE_REPORTED | 210 | |
ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED | 211 | |
ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT | 212 | |
ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS | 213 | |
ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION | 214 | |
ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED | 215 | |
ATOM_APP_PERMISSION_FRAGMENT_VIEWED | 216 | |
ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED | 217 | |
ATOM_PERMISSION_APPS_FRAGMENT_VIEWED | 218 | |
ATOM_TEXT_SELECTION_EVENT | 219 | |
ATOM_TEXT_LINKIFY_EVENT | 220 | |
ATOM_CONVERSATION_ACTIONS_EVENT | 221 | |
ATOM_LANGUAGE_DETECTION_EVENT | 222 | |
ATOM_EXCLUSION_RECT_STATE_CHANGED | 223 | |
ATOM_BACK_GESTURE_REPORTED_REPORTED | 224 | |
ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED | 225 | |
ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED | 226 | |
ATOM_CAMERA_ACTION_EVENT | 227 | |
ATOM_APP_COMPATIBILITY_CHANGE_REPORTED | 228 | |
ATOM_PERFETTO_UPLOADED | 229 | |
ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED | 230 | |
ATOM_MEDIA_PROVIDER_SCAN_OCCURRED | 233 | |
ATOM_MEDIA_CONTENT_DELETED | 234 | |
ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED | 235 | |
ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED | 236 | |
ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED | 237 | |
ATOM_REBOOT_ESCROW_RECOVERY_REPORTED | 238 | |
ATOM_BOOT_TIME_EVENT_DURATION_REPORTED | 239 | |
ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED | 240 | |
ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED | 241 | |
ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED | 242 | |
ATOM_USERSPACE_REBOOT_REPORTED | 243 | |
ATOM_NOTIFICATION_REPORTED | 244 | |
ATOM_NOTIFICATION_PANEL_REPORTED | 245 | |
ATOM_NOTIFICATION_CHANNEL_MODIFIED | 246 | |
ATOM_INTEGRITY_CHECK_RESULT_REPORTED | 247 | |
ATOM_INTEGRITY_RULES_PUSHED | 248 | |
ATOM_CB_MESSAGE_REPORTED | 249 | |
ATOM_CB_MESSAGE_ERROR | 250 | |
ATOM_WIFI_HEALTH_STAT_REPORTED | 251 | |
ATOM_WIFI_FAILURE_STAT_REPORTED | 252 | |
ATOM_WIFI_CONNECTION_RESULT_REPORTED | 253 | |
ATOM_APP_FREEZE_CHANGED | 254 | |
ATOM_SNAPSHOT_MERGE_REPORTED | 255 | |
ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED | 256 | |
ATOM_DISPLAY_JANK_REPORTED | 257 | |
ATOM_APP_STANDBY_BUCKET_CHANGED | 258 | |
ATOM_SHARESHEET_STARTED | 259 | |
ATOM_RANKING_SELECTED | 260 | |
ATOM_TVSETTINGS_UI_INTERACTED | 261 | |
ATOM_LAUNCHER_SNAPSHOT | 262 | |
ATOM_PACKAGE_INSTALLER_V2_REPORTED | 263 | |
ATOM_USER_LIFECYCLE_JOURNEY_REPORTED | 264 | |
ATOM_USER_LIFECYCLE_EVENT_OCCURRED | 265 | |
ATOM_ACCESSIBILITY_SHORTCUT_REPORTED | 266 | |
ATOM_ACCESSIBILITY_SERVICE_REPORTED | 267 | |
ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED | 268 | |
ATOM_APP_USAGE_EVENT_OCCURRED | 269 | |
ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED | 270 | |
ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED | 271 | |
ATOM_AUTO_REVOKED_APP_INTERACTION | 272 | |
ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION | 273 | |
ATOM_EVS_USAGE_STATS_REPORTED | 274 | |
ATOM_AUDIO_POWER_USAGE_DATA_REPORTED | 275 | |
ATOM_TV_TUNER_STATE_CHANGED | 276 | |
ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED | 277 | |
ATOM_CB_MESSAGE_FILTERED | 278 | |
ATOM_TV_TUNER_DVR_STATUS | 279 | |
ATOM_TV_CAS_SESSION_OPEN_STATUS | 280 | |
ATOM_ASSISTANT_INVOCATION_REPORTED | 281 | |
ATOM_DISPLAY_WAKE_REPORTED | 282 | |
ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED | 283 | |
ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED | 284 | |
ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED | 285 | |
ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED | 286 | |
ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED | 287 | |
ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED | 288 | |
ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED | 289 | |
ATOM_NETWORK_IP_PROVISIONING_REPORTED | 290 | |
ATOM_NETWORK_DHCP_RENEW_REPORTED | 291 | |
ATOM_NETWORK_VALIDATION_REPORTED | 292 | |
ATOM_NETWORK_STACK_QUIRK_REPORTED | 293 | |
ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED | 294 | |
ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED | 295 | |
ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED | 296 | |
ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED | 297 | |
ATOM_BLOB_COMMITTED | 298 | |
ATOM_BLOB_LEASED | 299 | |
ATOM_BLOB_OPENED | 300 | |
ATOM_CONTACTS_PROVIDER_STATUS_REPORTED | 301 | |
ATOM_KEYSTORE_KEY_EVENT_REPORTED | 302 | |
ATOM_NETWORK_TETHERING_REPORTED | 303 | |
ATOM_IME_TOUCH_REPORTED | 304 | |
ATOM_UI_INTERACTION_FRAME_INFO_REPORTED | 305 | |
ATOM_UI_ACTION_LATENCY_REPORTED | 306 | |
ATOM_WIFI_DISCONNECT_REPORTED | 307 | |
ATOM_WIFI_CONNECTION_STATE_CHANGED | 308 | |
ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED | 309 | |
ATOM_HDMI_CEC_MESSAGE_REPORTED | 310 | |
ATOM_AIRPLANE_MODE | 311 | |
ATOM_MODEM_RESTART | 312 | |
ATOM_CARRIER_ID_MISMATCH_REPORTED | 313 | |
ATOM_CARRIER_ID_TABLE_UPDATED | 314 | |
ATOM_DATA_STALL_RECOVERY_REPORTED | 315 | |
ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED | 316 | |
ATOM_TLS_HANDSHAKE_REPORTED | 317 | |
ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED | 318 | |
ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED | 319 | |
ATOM_MEDIAMETRICS_PLAYBACK_REPORTED | 320 | |
ATOM_MEDIA_NETWORK_INFO_CHANGED | 321 | |
ATOM_MEDIA_PLAYBACK_STATE_CHANGED | 322 | |
ATOM_MEDIA_PLAYBACK_ERROR_REPORTED | 323 | |
ATOM_MEDIA_PLAYBACK_TRACK_CHANGED | 324 | |
ATOM_WIFI_SCAN_REPORTED | 325 | |
ATOM_WIFI_PNO_SCAN_REPORTED | 326 | |
ATOM_TIF_TUNE_CHANGED | 327 | |
ATOM_AUTO_ROTATE_REPORTED | 328 | |
ATOM_PERFETTO_TRIGGER | 329 | |
ATOM_TRANSCODING_DATA | 330 | |
ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED | 331 | |
ATOM_DEVICE_ROTATED | 333 | |
ATOM_SIM_SPECIFIC_SETTINGS_RESTORED | 334 | |
ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED | 335 | |
ATOM_PIN_STORAGE_EVENT | 336 | |
ATOM_FACE_DOWN_REPORTED | 337 | |
ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED | 338 | |
ATOM_REBOOT_ESCROW_PREPARATION_REPORTED | 339 | |
ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED | 340 | |
ATOM_REBOOT_ESCROW_REBOOT_REPORTED | 341 | |
ATOM_BINDER_LATENCY_REPORTED | 342 | |
ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED | 343 | |
ATOM_MEDIA_TRANSCODING_SESSION_ENDED | 344 | |
ATOM_MAGNIFICATION_USAGE_REPORTED | 345 | |
ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED | 346 | |
ATOM_APP_SEARCH_CALL_STATS_REPORTED | 347 | |
ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED | 348 | |
ATOM_DEVICE_CONTROL_CHANGED | 349 | |
ATOM_DEVICE_STATE_CHANGED | 350 | |
ATOM_INPUTDEVICE_REGISTERED | 351 | |
ATOM_SMARTSPACE_CARD_REPORTED | 352 | |
ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED | 353 | |
ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED | 354 | |
ATOM_AUTH_ENROLL_ACTION_INVOKED | 355 | |
ATOM_AUTH_DEPRECATED_API_USED | 356 | |
ATOM_UNATTENDED_REBOOT_OCCURRED | 357 | |
ATOM_LONG_REBOOT_BLOCKING_REPORTED | 358 | |
ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED | 359 | |
ATOM_FDTRACK_EVENT_OCCURRED | 364 | |
ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED | 365 | |
ATOM_ALARM_BATCH_DELIVERED | 367 | |
ATOM_ALARM_SCHEDULED | 368 | |
ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED | 369 | |
ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED | 370 | |
ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED | 371 | |
ATOM_APP_SEARCH_QUERY_STATS_REPORTED | 372 | |
ATOM_APP_PROCESS_DIED | 373 | |
ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED | 374 | |
ATOM_SLOW_INPUT_EVENT_REPORTED | 375 | |
ATOM_ANR_OCCURRED_PROCESSING_STARTED | 376 | |
ATOM_APP_SEARCH_REMOVE_STATS_REPORTED | 377 | |
ATOM_MEDIA_CODEC_REPORTED | 378 | |
ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION | 379 | |
ATOM_PERMISSION_DETAILS_INTERACTION | 380 | |
ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION | 381 | |
ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION | 382 | |
ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED | 383 | |
ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT | 384 | |
ATOM_APP_COMPAT_STATE_CHANGED | 386 | |
ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED | 387 | |
ATOM_SPLITSCREEN_UI_CHANGED | 388 | |
ATOM_NETWORK_DNS_HANDSHAKE_REPORTED | 389 | |
ATOM_BLUETOOTH_CODE_PATH_COUNTER | 390 | |
ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY | 392 | |
ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED | 393 | |
ATOM_NEURALNETWORKS_COMPILATION_COMPLETED | 394 | |
ATOM_NEURALNETWORKS_EXECUTION_COMPLETED | 395 | |
ATOM_NEURALNETWORKS_COMPILATION_FAILED | 396 | |
ATOM_NEURALNETWORKS_EXECUTION_FAILED | 397 | |
ATOM_CONTEXT_HUB_BOOTED | 398 | |
ATOM_CONTEXT_HUB_RESTARTED | 399 | |
ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED | 400 | |
ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED | 401 | |
ATOM_UWB_SESSION_INITED | 402 | |
ATOM_UWB_SESSION_CLOSED | 403 | |
ATOM_UWB_FIRST_RANGING_RECEIVED | 404 | |
ATOM_UWB_RANGING_MEASUREMENT_RECEIVED | 405 | |
ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED | 406 | |
ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED | 407 | |
ATOM_CLIPBOARD_CLEARED | 408 | |
ATOM_VM_CREATION_REQUESTED | 409 | |
ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED | 410 | |
ATOM_CAMERA_COMPAT_CONTROL_EVENT_REPORTED | 411 | |
ATOM_APPLICATION_LOCALES_CHANGED | 412 | |
ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED | 413 | |
ATOM_FOLD_STATE_DURATION_REPORTED | 414 | |
ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED | 415 | |
ATOM_DISPLAY_HBM_STATE_CHANGED | 416 | |
ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED | 417 | |
ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED | 418 | |
ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED | 419 | |
ATOM_VBMETA_DIGEST_REPORTED | 420 | |
ATOM_APEX_INFO_GATHERED | 421 | |
ATOM_PVM_INFO_GATHERED | 422 | |
ATOM_WEAR_SETTINGS_UI_INTERACTED | 423 | |
ATOM_TRACING_SERVICE_REPORT_EVENT | 424 | |
ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED | 425 | |
ATOM_LAUNCHER_LATENCY | 426 | |
ATOM_DROPBOX_ENTRY_DROPPED | 427 | |
ATOM_WIFI_P2P_CONNECTION_REPORTED | 428 | |
ATOM_GAME_STATE_CHANGED | 429 | |
ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED | 430 | |
ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED | 431 | |
ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED | 432 | |
ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED | 433 | |
ATOM_HOTWORD_DETECTOR_EVENTS | 434 | |
ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED | 437 | |
ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED | 440 | |
ATOM_APP_BACKGROUND_RESTRICTIONS_INFO | 441 | |
ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED | 442 | |
ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED | 443 | |
ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED | 444 | |
ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED | 445 | |
ATOM_GNSS_PSDS_DOWNLOAD_REPORTED | 446 | |
ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED | 447 | |
ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED | 448 | |
ATOM_DREAM_UI_EVENT_REPORTED | 449 | |
ATOM_TASK_MANAGER_EVENT_REPORTED | 450 | |
ATOM_CDM_ASSOCIATION_ACTION | 451 | |
ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED | 452 | |
ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED | 453 | |
ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED | 454 | |
ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED | 455 | |
ATOM_UWB_DEVICE_ERROR_REPORTED | 456 | |
ATOM_ISOLATED_COMPILATION_SCHEDULED | 457 | |
ATOM_ISOLATED_COMPILATION_ENDED | 458 | |
ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE | 459 | |
ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED | 460 | |
ATOM_TELEPHONY_ANOMALY_DETECTED | 461 | |
ATOM_LETTERBOX_POSITION_CHANGED | 462 | |
ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT | 463 | |
ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO | 464 | |
ATOM_REMOTE_KEY_PROVISIONING_TIMING | 465 | |
ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT | 466 | |
ATOM_SYNC_EXEMPTION_OCCURRED | 468 | |
ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED | 469 | |
ATOM_DOCK_STATE_CHANGED | 470 | |
ATOM_SAFETY_SOURCE_STATE_COLLECTED | 471 | |
ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED | 472 | |
ATOM_SAFETY_CENTER_INTERACTION_REPORTED | 473 | |
ATOM_SETTINGS_PROVIDER_SETTING_CHANGED | 474 | |
ATOM_BROADCAST_DELIVERY_EVENT_REPORTED | 475 | |
ATOM_SERVICE_REQUEST_EVENT_REPORTED | 476 | |
ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED | 477 | |
ATOM_BLUETOOTH_DEVICE_NAME_REPORTED | 478 | |
ATOM_CB_CONFIG_UPDATED | 479 | |
ATOM_CB_MODULE_ERROR_REPORTED | 480 | |
ATOM_CB_SERVICE_FEATURE_CHANGED | 481 | |
ATOM_CB_RECEIVER_FEATURE_CHANGED | 482 | |
ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION | 484 | |
ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION | 485 | |
ATOM_PRIVACY_SIGNALS_JOB_FAILURE | 486 | |
ATOM_VIBRATION_REPORTED | 487 | |
ATOM_UWB_RANGING_START | 489 | |
ATOM_APP_COMPACTED_V2 | 491 | |
ATOM_DISPLAY_BRIGHTNESS_CHANGED | 494 | |
ATOM_ACTIVITY_ACTION_BLOCKED | 495 | |
ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED | 504 | |
ATOM_VM_BOOTED | 505 | |
ATOM_VM_EXITED | 506 | |
ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED | 507 | |
ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED | 508 | |
ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED | 509 | |
ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED | 510 | |
ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED | 511 | |
ATOM_HEARING_AID_INFO_REPORTED | 513 | |
ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED | 514 | |
ATOM_AMBIENT_MODE_CHANGED | 515 | |
ATOM_ANR_LATENCY_REPORTED | 516 | |
ATOM_RESOURCE_API_INFO | 517 | |
ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED | 518 | |
ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED | 519 | |
ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED | 520 | |
ATOM_AIRPLANE_MODE_SESSION_REPORTED | 521 | |
ATOM_VM_CPU_STATUS_REPORTED | 522 | |
ATOM_VM_MEM_STATUS_REPORTED | 523 | |
ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED | 524 | |
ATOM_DEFAULT_NETWORK_REMATCH_INFO | 525 | |
ATOM_NETWORK_SELECTION_PERFORMANCE | 526 | |
ATOM_NETWORK_NSD_REPORTED | 527 | |
ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED | 529 | |
ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED | 530 | |
ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED | 531 | |
ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED | 532 | |
ATOM_BLUETOOTH_GATT_APP_INFO | 533 | |
ATOM_BRIGHTNESS_CONFIGURATION_UPDATED | 534 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED | 538 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED | 539 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED | 540 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED | 541 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY | 542 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY | 543 | |
ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED | 544 | |
ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED | 545 | |
ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED | 546 | |
ATOM_LAUNCHER_IMPRESSION_EVENT | 547 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY | 549 | |
ATOM_WS_WATCH_FACE_EDITED | 551 | |
ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED | 552 | |
ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED | 553 | |
ATOM_PACKAGE_UNINSTALLATION_REPORTED | 554 | |
ATOM_GAME_MODE_CHANGED | 555 | |
ATOM_GAME_MODE_CONFIGURATION_CHANGED | 556 | |
ATOM_BEDTIME_MODE_STATE_CHANGED | 557 | |
ATOM_NETWORK_SLICE_SESSION_ENDED | 558 | |
ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED | 559 | |
ATOM_NFC_TAG_TYPE_OCCURRED | 560 | |
ATOM_NFC_AID_CONFLICT_OCCURRED | 561 | |
ATOM_NFC_READER_CONFLICT_OCCURRED | 562 | |
ATOM_WS_TILE_LIST_CHANGED | 563 | |
ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION | 564 | |
ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED | 566 | |
ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED | 567 | |
ATOM_MEDIA_DRM_CREATED | 568 | |
ATOM_MEDIA_DRM_ERRORED | 569 | |
ATOM_MEDIA_DRM_SESSION_OPENED | 570 | |
ATOM_MEDIA_DRM_SESSION_CLOSED | 571 | |
ATOM_USER_SELECTED_RESOLUTION | 572 | |
ATOM_UNSAFE_INTENT_EVENT_REPORTED | 573 | |
ATOM_PERFORMANCE_HINT_SESSION_REPORTED | 574 | |
ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED | 576 | |
ATOM_BIOMETRIC_TOUCH_REPORTED | 577 | |
ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED | 578 | |
ATOM_LOCATION_ENABLED_STATE_CHANGED | 580 | |
ATOM_IME_REQUEST_FINISHED | 581 | |
ATOM_USB_COMPLIANCE_WARNINGS_REPORTED | 582 | |
ATOM_APP_SUPPORTED_LOCALES_CHANGED | 583 | |
ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED | 586 | |
ATOM_BIOMETRIC_PROPERTIES_COLLECTED | 587 | |
ATOM_KERNEL_WAKEUP_ATTRIBUTED | 588 | |
ATOM_SCREEN_STATE_CHANGED_V2 | 589 | |
ATOM_WS_BACKUP_ACTION_REPORTED | 590 | |
ATOM_WS_RESTORE_ACTION_REPORTED | 591 | |
ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED | 592 | |
ATOM_MEDIA_SESSION_UPDATED | 594 | |
ATOM_WEAR_OOBE_STATE_CHANGED | 595 | |
ATOM_WS_NOTIFICATION_UPDATED | 596 | |
ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED | 601 | |
ATOM_WS_COMPLICATION_TAPPED | 602 | |
ATOM_WS_NOTIFICATION_BLOCKING | 780 | |
ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED | 822 | |
ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED | 823 | |
ATOM_WS_NOTIFICATION_ACTIONED | 824 | |
ATOM_WS_NOTIFICATION_LATENCY | 880 | |
ATOM_WIFI_BYTES_TRANSFER | 10000 | |
ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG | 10001 | |
ATOM_MOBILE_BYTES_TRANSFER | 10002 | |
ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG | 10003 | |
ATOM_BLUETOOTH_BYTES_TRANSFER | 10006 | |
ATOM_KERNEL_WAKELOCK | 10004 | |
ATOM_SUBSYSTEM_SLEEP_STATE | 10005 | |
ATOM_CPU_TIME_PER_UID | 10009 | |
ATOM_CPU_TIME_PER_UID_FREQ | 10010 | |
ATOM_WIFI_ACTIVITY_INFO | 10011 | |
ATOM_MODEM_ACTIVITY_INFO | 10012 | |
ATOM_BLUETOOTH_ACTIVITY_INFO | 10007 | |
ATOM_PROCESS_MEMORY_STATE | 10013 | |
ATOM_SYSTEM_ELAPSED_REALTIME | 10014 | |
ATOM_SYSTEM_UPTIME | 10015 | |
ATOM_CPU_ACTIVE_TIME | 10016 | |
ATOM_CPU_CLUSTER_TIME | 10017 | |
ATOM_DISK_SPACE | 10018 | |
ATOM_REMAINING_BATTERY_CAPACITY | 10019 | |
ATOM_FULL_BATTERY_CAPACITY | 10020 | |
ATOM_TEMPERATURE | 10021 | |
ATOM_BINDER_CALLS | 10022 | |
ATOM_BINDER_CALLS_EXCEPTIONS | 10023 | |
ATOM_LOOPER_STATS | 10024 | |
ATOM_DISK_STATS | 10025 | |
ATOM_DIRECTORY_USAGE | 10026 | |
ATOM_APP_SIZE | 10027 | |
ATOM_CATEGORY_SIZE | 10028 | |
ATOM_PROC_STATS | 10029 | |
ATOM_BATTERY_VOLTAGE | 10030 | |
ATOM_NUM_FINGERPRINTS_ENROLLED | 10031 | |
ATOM_DISK_IO | 10032 | |
ATOM_POWER_PROFILE | 10033 | |
ATOM_PROC_STATS_PKG_PROC | 10034 | |
ATOM_PROCESS_CPU_TIME | 10035 | |
ATOM_CPU_TIME_PER_THREAD_FREQ | 10037 | |
ATOM_ON_DEVICE_POWER_MEASUREMENT | 10038 | |
ATOM_DEVICE_CALCULATED_POWER_USE | 10039 | |
ATOM_PROCESS_MEMORY_HIGH_WATER_MARK | 10042 | |
ATOM_BATTERY_LEVEL | 10043 | |
ATOM_BUILD_INFORMATION | 10044 | |
ATOM_BATTERY_CYCLE_COUNT | 10045 | |
ATOM_DEBUG_ELAPSED_CLOCK | 10046 | |
ATOM_DEBUG_FAILING_ELAPSED_CLOCK | 10047 | |
ATOM_NUM_FACES_ENROLLED | 10048 | |
ATOM_ROLE_HOLDER | 10049 | |
ATOM_DANGEROUS_PERMISSION_STATE | 10050 | |
ATOM_TRAIN_INFO | 10051 | |
ATOM_TIME_ZONE_DATA_INFO | 10052 | |
ATOM_EXTERNAL_STORAGE_INFO | 10053 | |
ATOM_GPU_STATS_GLOBAL_INFO | 10054 | |
ATOM_GPU_STATS_APP_INFO | 10055 | |
ATOM_SYSTEM_ION_HEAP_SIZE | 10056 | |
ATOM_APPS_ON_EXTERNAL_STORAGE_INFO | 10057 | |
ATOM_FACE_SETTINGS | 10058 | |
ATOM_COOLING_DEVICE | 10059 | |
ATOM_APP_OPS | 10060 | |
ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE | 10061 | |
ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO | 10062 | |
ATOM_SURFACEFLINGER_STATS_LAYER_INFO | 10063 | |
ATOM_PROCESS_MEMORY_SNAPSHOT | 10064 | |
ATOM_VMS_CLIENT_STATS | 10065 | |
ATOM_NOTIFICATION_REMOTE_VIEWS | 10066 | |
ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED | 10067 | |
ATOM_GRAPHICS_STATS | 10068 | |
ATOM_RUNTIME_APP_OP_ACCESS | 10069 | |
ATOM_ION_HEAP_SIZE | 10070 | |
ATOM_PACKAGE_NOTIFICATION_PREFERENCES | 10071 | |
ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES | 10072 | |
ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES | 10073 | |
ATOM_GNSS_STATS | 10074 | |
ATOM_ATTRIBUTED_APP_OPS | 10075 | |
ATOM_VOICE_CALL_SESSION | 10076 | |
ATOM_VOICE_CALL_RAT_USAGE | 10077 | |
ATOM_SIM_SLOT_STATE | 10078 | |
ATOM_SUPPORTED_RADIO_ACCESS_FAMILY | 10079 | |
ATOM_SETTING_SNAPSHOT | 10080 | |
ATOM_BLOB_INFO | 10081 | |
ATOM_DATA_USAGE_BYTES_TRANSFER | 10082 | |
ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED | 10083 | |
ATOM_DND_MODE_RULE | 10084 | |
ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS | 10085 | |
ATOM_INCOMING_SMS | 10086 | |
ATOM_OUTGOING_SMS | 10087 | |
ATOM_CARRIER_ID_TABLE_VERSION | 10088 | |
ATOM_DATA_CALL_SESSION | 10089 | |
ATOM_CELLULAR_SERVICE_STATE | 10090 | |
ATOM_CELLULAR_DATA_SERVICE_SWITCH | 10091 | |
ATOM_SYSTEM_MEMORY | 10092 | |
ATOM_IMS_REGISTRATION_TERMINATION | 10093 | |
ATOM_IMS_REGISTRATION_STATS | 10094 | |
ATOM_CPU_TIME_PER_CLUSTER_FREQ | 10095 | |
ATOM_CPU_CYCLES_PER_UID_CLUSTER | 10096 | |
ATOM_DEVICE_ROTATED_DATA | 10097 | |
ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER | 10098 | |
ATOM_MEDIA_DRM_ACTIVITY_INFO | 10099 | |
ATOM_OEM_MANAGED_BYTES_TRANSFER | 10100 | |
ATOM_GNSS_POWER_STATS | 10101 | |
ATOM_TIME_ZONE_DETECTOR_STATE | 10102 | |
ATOM_KEYSTORE2_STORAGE_STATS | 10103 | |
ATOM_RKP_POOL_STATS | 10104 | |
ATOM_PROCESS_DMABUF_MEMORY | 10105 | |
ATOM_PENDING_ALARM_INFO | 10106 | |
ATOM_USER_LEVEL_HIBERNATED_APPS | 10107 | |
ATOM_LAUNCHER_LAYOUT_SNAPSHOT | 10108 | |
ATOM_GLOBAL_HIBERNATED_APPS | 10109 | |
ATOM_INPUT_EVENT_LATENCY_SKETCH | 10110 | |
ATOM_BATTERY_USAGE_STATS_BEFORE_RESET | 10111 | |
ATOM_BATTERY_USAGE_STATS_SINCE_RESET | 10112 | |
ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL | 10113 | |
ATOM_INSTALLED_INCREMENTAL_PACKAGE | 10114 | |
ATOM_TELEPHONY_NETWORK_REQUESTS | 10115 | |
ATOM_APP_SEARCH_STORAGE_INFO | 10116 | |
ATOM_VMSTAT | 10117 | |
ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO | 10118 | |
ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO | 10119 | |
ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO | 10120 | |
ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW | 10121 | |
ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO | 10122 | |
ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO | 10123 | |
ATOM_RKP_ERROR_STATS | 10124 | |
ATOM_KEYSTORE2_CRASH_STATS | 10125 | |
ATOM_VENDOR_APEX_INFO | 10126 | |
ATOM_ACCESSIBILITY_SHORTCUT_STATS | 10127 | |
ATOM_ACCESSIBILITY_FLOATING_MENU_STATS | 10128 | |
ATOM_DATA_USAGE_BYTES_TRANSFER_V2 | 10129 | |
ATOM_MEDIA_CAPABILITIES | 10130 | |
ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY | 10131 | |
ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY | 10132 | |
ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS | 10133 | |
ATOM_RCS_CLIENT_PROVISIONING_STATS | 10134 | |
ATOM_RCS_ACS_PROVISIONING_STATS | 10135 | |
ATOM_SIP_DELEGATE_STATS | 10136 | |
ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS | 10137 | |
ATOM_SIP_MESSAGE_RESPONSE | 10138 | |
ATOM_SIP_TRANSPORT_SESSION | 10139 | |
ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT | 10140 | |
ATOM_IMS_DEDICATED_BEARER_EVENT | 10141 | |
ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS | 10142 | |
ATOM_UCE_EVENT_STATS | 10143 | |
ATOM_PRESENCE_NOTIFY_EVENT | 10144 | |
ATOM_GBA_EVENT | 10145 | |
ATOM_PER_SIM_STATUS | 10146 | |
ATOM_GPU_WORK_PER_UID | 10147 | |
ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE | 10148 | |
ATOM_SIGNED_PARTITION_INFO | 10149 | |
ATOM_PINNED_FILE_SIZES_PER_PACKAGE | 10150 | |
ATOM_PENDING_INTENTS_PER_PACKAGE | 10151 | |
ATOM_USER_INFO | 10152 | |
ATOM_TELEPHONY_NETWORK_REQUESTS_V2 | 10153 | |
ATOM_DEVICE_TELEPHONY_PROPERTIES | 10154 | |
ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS | 10155 | |
ATOM_SAFETY_STATE | 10156 | |
ATOM_INCOMING_MMS | 10157 | |
ATOM_OUTGOING_MMS | 10158 | |
ATOM_MULTI_USER_INFO | 10160 | |
ATOM_NETWORK_BPF_MAP_INFO | 10161 | |
ATOM_OUTGOING_SHORT_CODE_SMS | 10162 | |
ATOM_CONNECTIVITY_STATE_SAMPLE | 10163 | |
ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO | 10164 | |
ATOM_GAME_MODE_INFO | 10165 | |
ATOM_GAME_MODE_CONFIGURATION | 10166 | |
ATOM_GAME_MODE_LISTENER | 10167 | |
ATOM_NETWORK_SLICE_REQUEST_COUNT | 10168 | |
ATOM_WS_TILE_SNAPSHOT | 10169 | |
ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT | 10170 | |
ATOM_PROCESS_STATE | 10171 | |
ATOM_PROCESS_ASSOCIATION | 10172 | |
ATOM_ADPF_SYSTEM_COMPONENT_INFO | 10173 | |
ATOM_NOTIFICATION_MEMORY_USE | 10174 | |
ATOM_HDR_CAPABILITIES | 10175 | |
ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT | 10176 | |
ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED | 820 | |
ATOM_THERMAL_STATUS_CALLED | 772 | |
ATOM_THERMAL_HEADROOM_CALLED | 773 | |
ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED | 774 | |
ATOM_ADPF_HINT_SESSION_TID_CLEANUP | 839 | |
ATOM_THERMAL_HEADROOM_THRESHOLDS | 10201 | |
ATOM_ADPF_SESSION_SNAPSHOT | 10218 | |
ATOM_JSSCRIPTENGINE_LATENCY_REPORTED | 483 | |
ATOM_AD_SERVICES_API_CALLED | 435 | |
ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED | 436 | |
ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED | 490 | |
ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED | 502 | |
ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED | 493 | |
ATOM_BACKGROUND_FETCH_PROCESS_REPORTED | 496 | |
ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED | 497 | |
ATOM_RUN_AD_BIDDING_PROCESS_REPORTED | 498 | |
ATOM_RUN_AD_SCORING_PROCESS_REPORTED | 499 | |
ATOM_RUN_AD_SELECTION_PROCESS_REPORTED | 500 | |
ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED | 501 | |
ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED | 503 | |
ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS | 512 | |
ATOM_AD_SERVICES_GET_TOPICS_REPORTED | 535 | |
ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED | 536 | |
ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED | 537 | |
ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED | 598 | |
ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED | 599 | |
ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS | 640 | |
ATOM_AD_SERVICES_ERROR_REPORTED | 662 | |
ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED | 663 | |
ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION | 673 | |
ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION | 674 | |
ATOM_AD_SERVICES_MEASUREMENT_JOBS | 675 | |
ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT | 676 | |
ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS | 695 | |
ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED | 697 | |
ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED | 698 | |
ATOM_AD_SERVICES_ENROLLMENT_MATCHED | 699 | |
ATOM_AD_SERVICES_CONSENT_MIGRATED | 702 | |
ATOM_AD_SERVICES_ENROLLMENT_FAILED | 714 | |
ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION | 756 | |
ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED | 765 | |
ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED | 766 | |
ATOM_DESTINATION_REGISTERED_BEACONS | 767 | |
ATOM_REPORT_INTERACTION_API_CALLED | 768 | |
ATOM_INTERACTION_REPORTING_TABLE_CLEARED | 769 | |
ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED | 788 | |
ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED | 793 | |
ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED | 794 | |
ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED | 795 | |
ATOM_SIGNATURE_VERIFICATION | 807 | |
ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED | 808 | |
ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED | 809 | |
ATOM_K_ANON_INITIALIZE_STATUS_REPORTED | 810 | |
ATOM_K_ANON_SIGN_STATUS_REPORTED | 811 | |
ATOM_K_ANON_JOIN_STATUS_REPORTED | 812 | |
ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED | 813 | |
ATOM_GET_AD_SELECTION_DATA_API_CALLED | 814 | |
ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED | 815 | |
ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED | 834 | |
ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED | 840 | |
ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED | 841 | |
ATOM_ADSERVICES_SHELL_COMMAND_CALLED | 842 | |
ATOM_UPDATE_SIGNALS_API_CALLED | 843 | |
ATOM_ENCODING_JOB_RUN | 844 | |
ATOM_ENCODING_JS_FETCH | 845 | |
ATOM_ENCODING_JS_EXECUTION | 846 | |
ATOM_PERSIST_AD_SELECTION_RESULT_CALLED | 847 | |
ATOM_SERVER_AUCTION_KEY_FETCH_CALLED | 848 | |
ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED | 849 | |
ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION | 864 | |
ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP | 865 | |
ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED | 876 | |
ATOM_REPORT_IMPRESSION_API_CALLED | 877 | |
ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS | 885 | |
ATOM_AI_WALLPAPERS_BUTTON_PRESSED | 706 | |
ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED | 707 | |
ATOM_AI_WALLPAPERS_TERM_SELECTED | 708 | |
ATOM_AI_WALLPAPERS_WALLPAPER_SET | 709 | |
ATOM_AI_WALLPAPERS_SESSION_SUMMARY | 710 | |
ATOM_APEX_INSTALLATION_REQUESTED | 732 | |
ATOM_APEX_INSTALLATION_STAGED | 733 | |
ATOM_APEX_INSTALLATION_ENDED | 734 | |
ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED | 385 | |
ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED | 579 | |
ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED | 825 | |
ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED | 826 | |
ATOM_ART_DATUM_REPORTED | 332 | |
ATOM_ART_DEVICE_DATUM_REPORTED | 550 | |
ATOM_ART_DATUM_DELTA_REPORTED | 565 | |
ATOM_ART_DEX2OAT_REPORTED | 929 | |
ATOM_ART_DEVICE_STATUS | 10205 | |
ATOM_BACKGROUND_DEXOPT_JOB_ENDED | 467 | |
ATOM_PREREBOOT_DEXOPT_JOB_ENDED | 883 | |
ATOM_ODREFRESH_REPORTED | 366 | |
ATOM_ODSIGN_REPORTED | 548 | |
ATOM_AUTOFILL_UI_EVENT_REPORTED | 603 | |
ATOM_AUTOFILL_FILL_REQUEST_REPORTED | 604 | |
ATOM_AUTOFILL_FILL_RESPONSE_REPORTED | 605 | |
ATOM_AUTOFILL_SAVE_EVENT_REPORTED | 606 | |
ATOM_AUTOFILL_SESSION_COMMITTED | 607 | |
ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED | 659 | |
ATOM_CAR_RECENTS_EVENT_REPORTED | 770 | |
ATOM_CAR_CALM_MODE_EVENT_REPORTED | 797 | |
ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED | 852 | |
ATOM_PLUGIN_INITIALIZED | 655 | |
ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED | 613 | |
ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION | 614 | |
ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION | 615 | |
ATOM_BLUETOOTH_LE_SESSION_CONNECTED | 656 | |
ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED | 666 | |
ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED | 696 | |
ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED | 781 | |
ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED | 782 | |
ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID | 862 | |
ATOM_LE_APP_SCAN_STATE_CHANGED | 870 | |
ATOM_LE_RADIO_SCAN_STOPPED | 871 | |
ATOM_LE_SCAN_RESULT_RECEIVED | 872 | |
ATOM_LE_SCAN_ABUSED | 873 | |
ATOM_LE_ADV_STATE_CHANGED | 874 | |
ATOM_LE_ADV_ERROR_REPORTED | 875 | |
ATOM_A2DP_SESSION_REPORTED | 904 | |
ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED | 916 | |
ATOM_BROADCAST_AUDIO_SESSION_REPORTED | 927 | |
ATOM_BROADCAST_AUDIO_SYNC_REPORTED | 928 | |
ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE | 982 | |
ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT | 900 | |
ATOM_DAILY_KEEPALIVE_INFO_REPORTED | 650 | |
ATOM_NETWORK_REQUEST_STATE_CHANGED | 779 | |
ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED | 925 | |
ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED | 783 | |
ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED | 979 | |
ATOM_APF_SESSION_INFO_REPORTED | 777 | |
ATOM_IP_CLIENT_RA_INFO_REPORTED | 778 | |
ATOM_VPN_CONNECTION_STATE_CHANGED | 850 | |
ATOM_VPN_CONNECTION_REPORTED | 851 | |
ATOM_CPU_POLICY | 10199 | |
ATOM_CREDENTIAL_MANAGER_API_CALLED | 585 | |
ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED | 651 | |
ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED | 652 | |
ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED | 653 | |
ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED | 667 | |
ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED | 668 | |
ATOM_CREDENTIAL_MANAGER_GET_REPORTED | 669 | |
ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED | 670 | |
ATOM_CREDENTIAL_MANAGER_APIV2_CALLED | 671 | |
ATOM_CRONET_ENGINE_CREATED | 703 | |
ATOM_CRONET_TRAFFIC_REPORTED | 704 | |
ATOM_CRONET_ENGINE_BUILDER_INITIALIZED | 762 | |
ATOM_CRONET_HTTP_FLAGS_INITIALIZED | 763 | |
ATOM_CRONET_INITIALIZED | 764 | |
ATOM_DESKTOP_MODE_UI_CHANGED | 818 | |
ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE | 819 | |
ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED | 726 | |
ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED | 727 | |
ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED | 728 | |
ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED | 789 | |
ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED | 790 | |
ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED | 791 | |
ATOM_DEVICE_POLICY_MANAGEMENT_MODE | 10216 | |
ATOM_DEVICE_POLICY_STATE | 10217 | |
ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED | 792 | |
ATOM_EXTERNAL_DISPLAY_STATE_CHANGED | 806 | |
ATOM_DND_STATE_CHANGED | 657 | |
ATOM_DREAM_SETTING_CHANGED | 705 | |
ATOM_DREAM_SETTING_SNAPSHOT | 10192 | |
ATOM_EXPRESS_EVENT_REPORTED | 528 | |
ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED | 593 | |
ATOM_EXPRESS_UID_EVENT_REPORTED | 644 | |
ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED | 658 | |
ATOM_FEDERATED_COMPUTE_API_CALLED | 712 | |
ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED | 771 | |
ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED | 838 | |
ATOM_FULL_SCREEN_INTENT_LAUNCHED | 631 | |
ATOM_BAL_ALLOWED | 632 | |
ATOM_IN_TASK_ACTIVITY_STARTED | 685 | |
ATOM_CACHED_APPS_HIGH_WATERMARK | 10189 | |
ATOM_STYLUS_PREDICTION_METRICS_REPORTED | 718 | |
ATOM_USER_RISK_EVENT_REPORTED | 725 | |
ATOM_MEDIA_PROJECTION_STATE_CHANGED | 729 | |
ATOM_MEDIA_PROJECTION_TARGET_CHANGED | 730 | |
ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED | 853 | |
ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG | 10200 | |
ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE | 10204 | |
ATOM_BIOMETRIC_FRR_NOTIFICATION | 817 | |
ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION | 830 | |
ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION | 831 | |
ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED | 832 | |
ATOM_SENSITIVE_NOTIFICATION_REDACTION | 833 | |
ATOM_SENSITIVE_CONTENT_APP_PROTECTION | 835 | |
ATOM_APP_RESTRICTION_STATE_CHANGED | 866 | |
ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED | 584 | |
ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED | 816 | |
ATOM_HDMI_EARC_STATUS_REPORTED | 701 | |
ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED | 724 | |
ATOM_HEALTH_CONNECT_API_CALLED | 616 | |
ATOM_HEALTH_CONNECT_USAGE_STATS | 617 | |
ATOM_HEALTH_CONNECT_STORAGE_STATS | 618 | |
ATOM_HEALTH_CONNECT_API_INVOKED | 643 | |
ATOM_EXERCISE_ROUTE_API_CALLED | 654 | |
ATOM_HEALTH_CONNECT_UI_IMPRESSION | 623 | |
ATOM_HEALTH_CONNECT_UI_INTERACTION | 624 | |
ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED | 625 | |
ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED | 761 | |
ATOM_IKE_SESSION_TERMINATED | 678 | |
ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED | 760 | |
ATOM_NEGOTIATED_SECURITY_ASSOCIATION | 821 | |
ATOM_KEYBOARD_CONFIGURED | 682 | |
ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED | 683 | |
ATOM_INPUTDEVICE_USAGE_REPORTED | 686 | |
ATOM_TOUCHPAD_USAGE | 10191 | |
ATOM_KERNEL_OOM_KILL_OCCURRED | 754 | |
ATOM_EMERGENCY_STATE_CHANGED | 633 | |
ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED | 868 | |
ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED | 600 | |
ATOM_MEDIA_CODEC_STARTED | 641 | |
ATOM_MEDIA_CODEC_STOPPED | 642 | |
ATOM_MEDIA_CODEC_RENDERED | 684 | |
ATOM_MEDIA_EDITING_ENDED_REPORTED | 798 | |
ATOM_MTE_STATE | 10181 | |
ATOM_NFC_OBSERVE_MODE_STATE_CHANGED | 855 | |
ATOM_NFC_FIELD_CHANGED | 856 | |
ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED | 857 | |
ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED | 858 | |
ATOM_ONDEVICEPERSONALIZATION_API_CALLED | 711 | |
ATOM_COMPONENT_STATE_CHANGED_REPORTED | 863 | |
ATOM_PDF_LOAD_REPORTED | 859 | |
ATOM_PDF_API_USAGE_REPORTED | 860 | |
ATOM_PDF_SEARCH_REPORTED | 861 | |
ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED | 645 | |
ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED | 646 | |
ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION | 647 | |
ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED | 648 | |
ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED | 649 | |
ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED | 827 | |
ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED | 828 | |
ATOM_PHOTOPICKER_SESSION_INFO_REPORTED | 886 | |
ATOM_PHOTOPICKER_API_INFO_REPORTED | 887 | |
ATOM_PHOTOPICKER_UI_EVENT_LOGGED | 888 | |
ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED | 889 | |
ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED | 890 | |
ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED | 891 | |
ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED | 892 | |
ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED | 893 | |
ATOM_PHOTOPICKER_PAGE_INFO_LOGGED | 894 | |
ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED | 895 | |
ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED | 896 | |
ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED | 897 | |
ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED | 898 | |
ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED | 899 | |
ATOM_ATOM_9999 | 9999 | |
ATOM_ATOM_99999 | 99999 | |
ATOM_SCREEN_OFF_REPORTED | 776 | |
ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED | 836 | |
ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED | 837 | |
ATOM_SCREEN_DIM_REPORTED | 867 | |
ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED | 784 | |
ATOM_BACKUP_SETUP_STATUS_REPORTED | 785 | |
ATOM_RKPD_POOL_STATS | 664 | |
ATOM_RKPD_CLIENT_OPERATION | 665 | |
ATOM_SANDBOX_API_CALLED | 488 | |
ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED | 735 | |
ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION | 796 | |
ATOM_SANDBOX_SDK_STORAGE | 10159 | |
ATOM_SELINUX_AUDIT_LOG | 799 | |
ATOM_SETTINGS_SPA_REPORTED | 622 | |
ATOM_TEST_EXTENSION_ATOM_REPORTED | 660 | |
ATOM_TEST_RESTRICTED_ATOM_REPORTED | 672 | |
ATOM_STATS_SOCKET_LOSS_REPORTED | 752 | |
ATOM_LOCKSCREEN_SHORTCUT_SELECTED | 611 | |
ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED | 612 | |
ATOM_LAUNCHER_IMPRESSION_EVENT_V2 | 716 | |
ATOM_DISPLAY_SWITCH_LATENCY_TRACKED | 753 | |
ATOM_NOTIFICATION_LISTENER_SERVICE | 829 | |
ATOM_NAV_HANDLE_TOUCH_POINTS | 869 | |
ATOM_EMERGENCY_NUMBER_DIALED | 637 | |
ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED | 713 | |
ATOM_EMERGENCY_NUMBERS_INFO | 10180 | |
ATOM_DATA_NETWORK_VALIDATION | 10207 | |
ATOM_DATA_RAT_STATE_CHANGED | 854 | |
ATOM_CONNECTED_CHANNEL_CHANGED | 882 | |
ATOM_QUALIFIED_RAT_LIST_CHANGED | 634 | |
ATOM_QNS_IMS_CALL_DROP_STATS | 635 | |
ATOM_QNS_FALLBACK_RESTRICTION_CHANGED | 636 | |
ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO | 10177 | |
ATOM_QNS_HANDOVER_TIME_MILLIS | 10178 | |
ATOM_QNS_HANDOVER_PINGPONG | 10179 | |
ATOM_SATELLITE_CONTROLLER | 10182 | |
ATOM_SATELLITE_SESSION | 10183 | |
ATOM_SATELLITE_INCOMING_DATAGRAM | 10184 | |
ATOM_SATELLITE_OUTGOING_DATAGRAM | 10185 | |
ATOM_SATELLITE_PROVISION | 10186 | |
ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER | 10187 | |
ATOM_CARRIER_ROAMING_SATELLITE_SESSION | 10211 | |
ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS | 10212 | |
ATOM_CONTROLLER_STATS_PER_PACKAGE | 10213 | |
ATOM_SATELLITE_ENTITLEMENT | 10214 | |
ATOM_SATELLITE_CONFIG_UPDATER | 10215 | |
ATOM_SATELLITE_ACCESS_CONTROLLER | 10219 | |
ATOM_CELLULAR_IDENTIFIER_DISCLOSED | 800 | |
ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED | 738 | |
ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED | 739 | |
ATOM_THREADNETWORK_DEVICE_INFO_REPORTED | 740 | |
ATOM_BOOT_INTEGRITY_INFO_REPORTED | 775 | |
ATOM_TV_LOW_POWER_STANDBY_POLICY | 679 | |
ATOM_EXTERNAL_TV_INPUT_EVENT | 717 | |
ATOM_UWB_ACTIVITY_INFO | 10188 | |
ATOM_MEDIATOR_UPDATED | 721 | |
ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER | 10196 | |
ATOM_SYSPROXY_CONNECTION_UPDATED | 786 | |
ATOM_MEDIA_ACTION_REPORTED | 608 | |
ATOM_MEDIA_CONTROLS_LAUNCHED | 609 | |
ATOM_MEDIA_SESSION_STATE_CHANGED | 677 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY | 757 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE | 758 | |
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT | 759 | |
ATOM_WEAR_MODE_STATE_CHANGED | 715 | |
ATOM_RENDERER_INITIALIZED | 736 | |
ATOM_SCHEMA_VERSION_RECEIVED | 737 | |
ATOM_LAYOUT_INSPECTED | 741 | |
ATOM_LAYOUT_EXPRESSION_INSPECTED | 742 | |
ATOM_LAYOUT_ANIMATIONS_INSPECTED | 743 | |
ATOM_MATERIAL_COMPONENTS_INSPECTED | 744 | |
ATOM_TILE_REQUESTED | 745 | |
ATOM_STATE_RESPONSE_RECEIVED | 746 | |
ATOM_TILE_RESPONSE_RECEIVED | 747 | |
ATOM_INFLATION_FINISHED | 748 | |
ATOM_INFLATION_FAILED | 749 | |
ATOM_IGNORED_INFLATION_FAILURES_REPORTED | 750 | |
ATOM_DRAWABLE_RENDERED | 751 | |
ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED | 619 | |
ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED | 620 | |
ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED | 621 | |
ATOM_WS_WEAR_TIME_SESSION | 610 | |
ATOM_WS_INCOMING_CALL_ACTION_REPORTED | 626 | |
ATOM_WS_CALL_DISCONNECTION_REPORTED | 627 | |
ATOM_WS_CALL_DURATION_REPORTED | 628 | |
ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED | 629 | |
ATOM_WS_CALL_INTERACTION_REPORTED | 630 | |
ATOM_WS_ON_BODY_STATE_CHANGED | 787 | |
ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED | 802 | |
ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED | 803 | |
ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED | 804 | |
ATOM_WS_STANDALONE_MODE_SNAPSHOT | 10197 | |
ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT | 10206 | |
ATOM_WEAR_POWER_MENU_OPENED | 731 | |
ATOM_WEAR_ASSISTANT_OPENED | 755 | |
ATOM_WIFI_AWARE_NDP_REPORTED | 638 | |
ATOM_WIFI_AWARE_ATTACH_REPORTED | 639 | |
ATOM_WIFI_SELF_RECOVERY_TRIGGERED | 661 | |
ATOM_SOFT_AP_STARTED | 680 | |
ATOM_SOFT_AP_STOPPED | 681 | |
ATOM_WIFI_LOCK_RELEASED | 687 | |
ATOM_WIFI_LOCK_DEACTIVATED | 688 | |
ATOM_WIFI_CONFIG_SAVED | 689 | |
ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED | 690 | |
ATOM_WIFI_AWARE_HAL_API_CALLED | 691 | |
ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED | 692 | |
ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED | 693 | |
ATOM_WIFI_THREAD_TASK_EXECUTED | 694 | |
ATOM_WIFI_STATE_CHANGED | 700 | |
ATOM_PNO_SCAN_STARTED | 719 | |
ATOM_PNO_SCAN_STOPPED | 720 | |
ATOM_WIFI_IS_UNUSABLE_REPORTED | 722 | |
ATOM_WIFI_AP_CAPABILITIES_REPORTED | 723 | |
ATOM_SOFT_AP_STATE_CHANGED | 805 | |
ATOM_SCORER_PREDICTION_RESULT_REPORTED | 884 | |
ATOM_WIFI_AWARE_CAPABILITIES | 10190 | |
ATOM_WIFI_MODULE_INFO | 10193 | |
ATOM_WIFI_SETTING_INFO | 10194 | |
ATOM_WIFI_COMPLEX_SETTING_INFO | 10195 | |
ATOM_WIFI_CONFIGURED_NETWORK_INFO | 10198 |
StatsdPullAtomConfig
Defined in statsd_tracing_config.proto
Fields:
Field | Type | Description |
---|---|---|
pull_atom_id | AtomId[] | |
raw_pull_atom_id | int32[] | |
pull_frequency_ms | int32 | |
packages | string[] |
SystemInfoConfig
This data-source does a one-off recording of system information when the trace starts. Currently this includes:
- Values of /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies This datasource has no configuration options at present.
Defined in system_info.proto
Fields:
Field | Type | Description |
---|
ChromeConfig
Defined in chrome_config.proto
Fields:
Field | Type | Description |
---|---|---|
trace_config | string | |
privacy_filtering_enabled | bool | When enabled, the data source should only fill in fields in the output that are not potentially privacy sensitive. |
convert_to_legacy_json | bool | Instead of emitting binary protobuf, convert the trace data to the legacy JSON format. Note that the trace data will still be returned as a series of TracePackets, but the embedded data will be JSON instead of serialized protobuf. |
client_priority | ClientPriority | |
json_agent_label_filter | string | Applicable only when using legacy JSON format. If json_agent_label_filter is not empty, only data pertaining to the specified tracing agent label (e.g. "traceEvents") will be returned. |
ChromeConfig.ClientPriority
Priority of the tracing session client. A higher priority session may preempt a lower priority one in configurations where concurrent sessions aren't supported.
Defined in chrome_config.proto
Enum values:
Name | Value | Description |
---|---|---|
UNKNOWN | 0 | |
BACKGROUND | 1 | |
USER_INITIATED | 2 |
V8Config
Defined in v8_config.proto
Fields:
Field | Type | Description |
---|---|---|
log_script_sources | bool | Whether to log the actual content of scripts (e.g. content of the JS file that was compiled to generate code). ATTENTION: This could considerably increase the size of the resuling trace file. |
log_instructions | bool | Whether to log the generated code for jitted functions (machine code or bytecode). ATTENTION: This could considerably increase the size of the resuling trace file. |
InterceptorConfig
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.
Defined in interceptor_config.proto
Fields:
Field | Type | Description |
---|---|---|
name | string | Matches the name given to RegisterInterceptor(). |
console_config | ConsoleConfig |
ConsoleConfig
Defined in console_config.proto
Fields:
Field | Type | Description |
---|---|---|
output | Output | |
enable_colors | bool |
ConsoleConfig.Output
Defined in console_config.proto
Enum values:
Name | Value | Description |
---|---|---|
OUTPUT_UNSPECIFIED | 0 | |
OUTPUT_STDOUT | 1 | |
OUTPUT_STDERR | 2 |
NetworkPacketTraceConfig
Network tracing data source that records details on all packets sent or received by the network.
Defined in network_trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
poll_ms | uint32 | Polling frequency in milliseconds. Network tracing writes to a fixed size ring buffer. The polling interval should be such that the ring buffer is unlikely to fill in that interval (or that filling is an acceptable risk). The minimum polling rate is 100ms (values below this are ignored). Introduced in Android 14 (U). |
aggregation_threshold | uint32 | The aggregation_threshold is the number of packets at which an event will switch from per-packet details to aggregate details. For example, a value of 50 means that if a particular event (grouped by the unique combinations of metadata fields: {interface, direction, uid, etc}) has fewer than 50 packets, the exact timestamp and length are recorded for each packet. If there were 50 or more packets in an event, it would only record the total duration, packets, and length. A value of zero or unspecified will always record per-packet details. A value of 1 always records aggregate details. |
intern_limit | uint32 | Specifies the maximum number of packet contexts to intern at a time. This prevents the interning table from growing too large and controls whether interning is enabled or disabled (a value of zero disables interning and is the default). When a data sources interning table reaches this amount, packet contexts will be inlined into NetworkPacketEvents. |
drop_local_port | bool | The following fields specify whether certain fields should be dropped from the output. Dropping fields improves normalization results, reduces the size of the interning table, and slightly reduces event size. |
drop_remote_port | bool | |
drop_tcp_flags | bool |
SurfaceFlingerLayersConfig
Custom configuration for the "android.surfaceflinger.layers" data source.
Defined in surfaceflinger_layers_config.proto
Fields:
Field | Type | Description |
---|---|---|
mode | Mode | |
trace_flags | TraceFlag[] |
SurfaceFlingerLayersConfig.Mode
Defined in surfaceflinger_layers_config.proto
Enum values:
Name | Value | Description |
---|---|---|
MODE_UNSPECIFIED | 0 | |
MODE_ACTIVE | 1 | Trace layers snapshots. A snapshot is taken every time a layers change occurs. |
MODE_GENERATED | 2 | Generate layers snapshots from the transactions kept in the SurfaceFlinger's internal ring buffer. The layers snapshots generation occurs when this data source is flushed. |
MODE_DUMP | 3 | Trace a single layers snapshot. |
MODE_GENERATED_BUGREPORT_ONLY | 4 | Default mode (applied by SurfaceFlinger if no mode is specified). Same as MODE_GENERATED, but triggers the layers snapshots generation only when a bugreport is taken. |
SurfaceFlingerLayersConfig.TraceFlag
Defined in surfaceflinger_layers_config.proto
Enum values:
Name | Value | Description |
---|---|---|
TRACE_FLAG_UNSPECIFIED | 0 | |
TRACE_FLAG_INPUT | 2 | |
TRACE_FLAG_COMPOSITION | 4 | |
TRACE_FLAG_EXTRA | 8 | |
TRACE_FLAG_HWC | 16 | |
TRACE_FLAG_BUFFERS | 32 | |
TRACE_FLAG_VIRTUAL_DISPLAYS | 64 | |
TRACE_FLAG_ALL | 14 | INPUT |
SurfaceFlingerTransactionsConfig
Custom configuration for the "android.surfaceflinger.transactions" data source.
Defined in surfaceflinger_transactions_config.proto
Fields:
Field | Type | Description |
---|---|---|
mode | Mode |
SurfaceFlingerTransactionsConfig.Mode
Defined in surfaceflinger_transactions_config.proto
Enum values:
Name | Value | Description |
---|---|---|
MODE_UNSPECIFIED | 0 | |
MODE_CONTINUOUS | 1 | Default mode (applied by SurfaceFlinger if no mode is specified). SurfaceFlinger writes its internal ring buffer of transactions every time the data source is flushed. The ring buffer contains the SurfaceFlinger's initial state and the latest transactions. |
MODE_ACTIVE | 2 | SurfaceFlinger writes the initial state and then each incoming transaction until the data source is stopped. |
AndroidSdkSyspropGuardConfig
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.
This data source only tells Skia to initialized the Perfetto SDK and start routing data to the Track Event system instead of ATrace. For those events to actually show up in a trace, the track_event data source must be used as well. The Perfetto SDK cannot be de-initialized, so some long-lived apps and processes may need to be restarted for Skia to revert to using ATrace if Track Events are no longer desired.
In addition to switching Skia to use Perfetto's track_event data source, this "guard" also controls Skia's "broad tracing", which removes Skia's internal tracing constraints and allows the track_event config to specify which categories should be traced. Filtering to the "skia.always" category tag in a track_event config can be used to re-enable the standard constraints typically used with ATrace.
Data source name: android.sdk_sysprop_guard Introduced in Android 14 (U) QPR1.
Defined in android_sdk_sysprop_guard_config.proto
Fields:
Field | Type | Description |
---|---|---|
surfaceflinger_skia_track_events | bool | If true, configures SurfaceFlinger to initialize Skia's Perfetto integration with the track_event data source in RenderEngine. If false or omitted, the simpler ATrace fallback is used. NOTE: once enabled, Skia will only revert to ATrace if SurfaceFlinger is restarted. Specifically this sets the following system properties: - debug.tracing.ctl.renderengine.skia_tracing_enabled - debug.tracing.ctl.renderengine.skia_use_perfetto_track_events Does not affect actual track_event data collection, which must be configured separately. |
hwui_skia_track_events | bool | If true, configures HWUI apps to initialize Skia's Perfetto integration with the track_event data source. hwui_package_name_filter can be used to control which apps are affected. If false or omitted, the simpler ATrace fallback is used. NOTE: once enabled, Skia will only revert to ATrace if the app is restarted. ATTENTION: affects ALL HWUI APPS if hwui_package_name_filter is not set! If filtering is NOT set, this controls these GLOBAL system properties: - debug.tracing.ctl.hwui.skia_tracing_enabled - debug.tracing.ctl.hwui.skia_use_perfetto_track_events If filtering IS set, this controls these APP-SPECIFIC system properties, for each package listed in the filter: - debug.tracing.ctl.hwui.skia_tracing_enabled.<package.name> - debug.tracing.ctl.hwui.skia_use_perfetto_track_events.<package.name> Does not affect actual track_event data collection, which must be configured separately. |
hwui_package_name_filter | string[] | If non-empty, hwui_skia_track_events applies to only the packages listed. Otherwise, hwui_skia_track_events applies globally to all HWUI apps. |
EtwConfig
Proto definition based on the struct _EVENT_TRACE_PROPERTIES definition See: https://learn.microsoft.com/en-us/windows/win32/api/evntrace/ ns-evntrace-event_trace_properties
Defined in etw_config.proto
Fields:
Field | Type | Description |
---|---|---|
kernel_flags | KernelFlag[] | The kernel_flags determines the flags that will be used by the etw tracing session. These kernel flags have been built to expose the useful events captured from the kernel mode only. |
EtwConfig.KernelFlag
The KernelFlag represent list of kernel flags that we are intrested in. To get a more extensive list run 'xperf -providers k'.
Defined in etw_config.proto
Enum values:
Name | Value | Description |
---|---|---|
CSWITCH | 0 | |
DISPATCHER | 1 |
ProtoLogConfig
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.
Defined in protolog_config.proto
Fields:
Field | Type | Description |
---|---|---|
group_overrides | ProtoLogGroup[] | Specified the configurations for each of the logging groups. If none is specified for a group the defaults will be used. |
tracing_mode | TracingMode | Specified what tracing mode to use for the tracing instance. |
default_log_from_level | ProtoLogLevel | If set, any message with log level higher than this level (inclusive) will be traced. Group overrides take precedence over this value. |
ProtoLogGroup
Defined in protolog_config.proto
Fields:
Field | Type | Description |
---|---|---|
group_name | string | The ProtoLog group name this configuration entry applies to. |
log_from | ProtoLogLevel | Specify the level from which to start capturing protologs. e.g. if ProtoLogLevel.WARN is specified only warning, errors and fatal log message will be traced. |
collect_stacktrace | bool | When set to true we will collect the stacktrace for each protolog message in this group that we are tracing. |
ProtoLogLevel
Defined in protolog_common.proto
Enum values:
Name | Value | Description |
---|---|---|
PROTOLOG_LEVEL_UNDEFINED | 0 | |
PROTOLOG_LEVEL_DEBUG | 1 | |
PROTOLOG_LEVEL_VERBOSE | 2 | |
PROTOLOG_LEVEL_INFO | 3 | |
PROTOLOG_LEVEL_WARN | 4 | |
PROTOLOG_LEVEL_ERROR | 5 | |
PROTOLOG_LEVEL_WTF | 6 |
ProtoLogConfig.TracingMode
Defined in protolog_config.proto
Enum values:
Name | Value | Description |
---|---|---|
DEFAULT | 0 | When using the DEFAULT tracing mode, only log groups and levels specified in the group_overrides are traced. |
ENABLE_ALL | 1 | When using the ENABLE_ALL tracing mode, all log groups and levels are traced, unless specified in the group_overrides. |
AndroidInputEventConfig
Custom configuration for the "android.input.inputevent" data source.
NOTE: Input traces can only be taken on debuggable (userdebug/eng) builds!
Defined in android_input_event_config.proto
Fields:
Field | Type | Description |
---|---|---|
mode | TraceMode | The tracing mode to use. If unspecified, it will default to TRACE_MODE_USE_RULES. |
rules | TraceRule[] | The list of rules to use to determine the trace level of events. Each event will be traced using the TraceLevel of the first rule that it triggers from this list. The rules are evaluated in the order in which they are specified. If an event does not match any of the rules, TRACE_LEVEL_NONE will be used by default. |
trace_dispatcher_input_events | bool | Trace input events processed by the system as they are being dispatched to application windows. All trace rules will apply. - If this flag is used without enabling trace_dispatcher_window_dispatch, it will trace InputDispatcher's inbound events (which does not include events synthesized within InputDispatcher) that match the rules. - If used with trace_dispatcher_window_dispatch, all inbound and outbound events matching the rules, including all events synthesized within InputDispatcher, will be traced. |
trace_dispatcher_window_dispatch | bool | Trace details about which windows the system is sending each input event to. All trace rules will apply. |
AndroidInputEventConfig.TraceMode
Trace modes are tracing presets that are included in the system.
Defined in android_input_event_config.proto
Enum values:
Name | Value | Description |
---|---|---|
TRACE_MODE_TRACE_ALL | 0 | Preset mode for maximal tracing. WARNING: This will bypass all privacy measures on debuggable builds, and will record all input events processed by the system, regardless of the context in which they were processed. It should only be used for tracing on a local device or for tests. It should NEVER be used for field tracing. |
TRACE_MODE_USE_RULES | 1 | Use the tracing rules defined in this config to specify what events to trace. |
AndroidInputEventConfig.TraceRule
A rule that specifies the TraceLevel for an event based on matching conditions. All matchers in the rule are optional. To trigger this rule, an event must match all of its specified matchers (i.e. the matchers function like a series of conditions connected by a logical 'AND' operator). A rule with no specified matchers will match all events. Next ID: 6
Defined in android_input_event_config.proto
Fields:
Field | Type | Description |
---|---|---|
trace_level | TraceLevel | The trace level to be used for events that trigger this rule. If unspecified, TRACE_LEVEL_NONE will be used by default. |
match_all_packages | string[] | Package matchers Respectively matches if all or any of the target apps for this event are contained in the specified list of package names. Intended usage: - Use match_all_packages to selectively allow tracing for the listed packages. - Use match_any_packages to selectively deny tracing for certain packages. WARNING: Great care must be taken when designing rules for field tracing! This is because each event is almost always sent to more than one app. For example, when allowing tracing for a package that has a spy window over the display (e.g. SystemUI) using match_any_packages, essentially all input will be recorded on that display. This is because the events will be sent to the spy as well as the foreground app, and regardless of what the foreground app is, the event will end up being traced. Alternatively, when attempting to block tracing for specific packages using match_all_packages, no events will likely be blocked. This is because the event will also be sent to other apps (such as, but not limited to, ones with spy windows), so the matcher will not match unless all other targets are also listed under the match_all_packages list. |
match_any_packages | string[] | |
match_secure | bool | Matches if the event is secure, which means that at least one of the targets of this event is using the window flag FLAG_SECURE. |
match_ime_connection_active | bool | Matches if there was an active IME connection while this event was being processed. |
AndroidInputEventConfig.TraceLevel
The level of tracing that should be applied to an event.
Defined in android_input_event_config.proto
Enum values:
Name | Value | Description |
---|---|---|
TRACE_LEVEL_NONE | 0 | Do not trace the input event. |
TRACE_LEVEL_REDACTED | 1 | Trace the event as a redacted event, where certain sensitive fields are omitted from the trace, including the coordinates of pointer events and the key/scan codes of key events. |
TRACE_LEVEL_COMPLETE | 2 | Trace the complete event. |
PixelModemConfig
Data source that records events from the modem.
Defined in pixel_modem_config.proto
Fields:
Field | Type | Description |
---|---|---|
event_group | EventGroup | |
pigweed_hash_allow_list | int64[] | If set, record only events with these hashes. |
pigweed_hash_deny_list | int64[] | If set and allow_list is not set, deny events with these hashes. |
PixelModemConfig.EventGroup
Event group to record, as defined by the modem.
Defined in pixel_modem_config.proto
Enum values:
Name | Value | Description |
---|---|---|
EVENT_GROUP_UNKNOWN | 0 | |
EVENT_GROUP_LOW_BANDWIDTH | 1 | Events suitable for low bandwidth tracing only. |
EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH | 2 | Events suitable for high and low bandwidth tracing. |
WindowManagerConfig
Custom configuration for the "android.windowmanager" data source.
Defined in windowmanager_config.proto
Fields:
Field | Type | Description |
---|---|---|
log_frequency | LogFrequency | |
log_level | LogLevel |
WindowManagerConfig.LogFrequency
Defined in windowmanager_config.proto
Enum values:
Name | Value | Description |
---|---|---|
LOG_FREQUENCY_UNSPECIFIED | 0 | |
LOG_FREQUENCY_FRAME | 1 | Trace state snapshots when a frame is committed. |
LOG_FREQUENCY_TRANSACTION | 2 | Trace state snapshots every time a transaction is committed. |
LOG_FREQUENCY_SINGLE_DUMP | 3 | Trace single state snapshots when the data source is started. |
WindowManagerConfig.LogLevel
Defined in windowmanager_config.proto
Enum values:
Name | Value | Description |
---|---|---|
LOG_LEVEL_UNSPECIFIED | 0 | |
LOG_LEVEL_VERBOSE | 1 | Logs all elements with maximum amount of information. |
LOG_LEVEL_DEBUG | 2 | Logs all elements but doesn't write all configuration data. |
LOG_LEVEL_CRITICAL | 3 | Logs only visible elements, with the minimum amount of performance overhead |
ChromiumSystemMetricsConfig
Defined in system_metrics.proto
Fields:
Field | Type | Description |
---|---|---|
sampling_interval_ms | uint32 | Samples counters every X ms. |
TestConfig
The configuration for a fake producer used in tests.
Defined in test_config.proto
Fields:
Field | Type | Description |
---|---|---|
message_count | uint32 | The number of messages the fake producer should send. |
max_messages_per_second | uint32 | The maximum number of messages which should be sent each second. The actual obserced speed may be lower if the producer is unable to work fast enough. If this is zero or unset, the producer will send as fast as possible. |
seed | uint32 | The seed value for a simple multiplicative congruential pseudo-random number sequence. |
message_size | uint32 | The size of each message in bytes. Should be greater than or equal 5 to account for the number of bytes needed to encode the random number and a null byte for the string. |
send_batch_on_register | bool | Whether the producer should send a event batch when the data source is is initially registered. |
dummy_fields | DummyFields |
TestConfig.DummyFields
Defined in test_config.proto
Fields:
Field | Type | Description |
---|---|---|
field_uint32 | uint32 | |
field_int32 | int32 | |
field_uint64 | uint64 | |
field_int64 | int64 | |
field_fixed64 | fixed64 | |
field_sfixed64 | sfixed64 | |
field_fixed32 | fixed32 | |
field_sfixed32 | sfixed32 | |
field_double | double | |
field_float | float | |
field_sint64 | sint64 | |
field_sint32 | sint32 | |
field_string | string | |
field_bytes | bytes |
TraceConfig.BuiltinDataSource
Config for disabling builtin data sources in the tracing service.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
disable_clock_snapshotting | bool | Disable emitting clock timestamps into the trace. |
disable_trace_config | bool | Disable echoing the original trace config in the trace. |
disable_system_info | bool | Disable emitting system info (build fingerprint, cpuinfo, etc). |
disable_service_events | bool | Disable emitting events for data-source state changes (e.g. the marker for all data sources having ACKed the start of the trace). |
primary_trace_clock | BuiltinClock | The authoritative clock domain for the trace. Defaults to BOOTTIME. See also ClockSnapshot's primary_trace_clock. The configured value is written into the trace as part of the ClockSnapshots emitted by the service. Trace processor will attempt to translate packet/event timestamps from various data sources (and their chosen clock domains) to this domain during import. Added in Android R. |
snapshot_interval_ms | uint32 | Time interval in between snapshotting of sync markers, clock snapshots, stats, and other periodic service-emitted events. Note that the service only keeps track of the first and the most recent snapshot until ReadBuffers() is called. |
prefer_suspend_clock_for_snapshot | bool | Hints to the service that a suspend-aware (i.e. counting time in suspend) clock should be used for periodic snapshots of service-emitted events. This means, if a snapshot should have happened during suspend, it will happen immediately after the device resumes. Choosing a clock like this is done on best-effort basis; not all platforms (e.g. Windows) expose a clock which can be used for periodic tasks counting suspend. If such a clock is not available, the service falls back to the best-available alternative. Introduced in Android S. crashes in S. |
disable_chunk_usage_histograms | bool | Disables the reporting of per-trace-writer histograms in TraceStats. |
BuiltinClock
Defined in builtin_clock.proto
Enum values:
Name | Value | Description |
---|---|---|
BUILTIN_CLOCK_UNKNOWN | 0 | |
BUILTIN_CLOCK_REALTIME | 1 | |
BUILTIN_CLOCK_REALTIME_COARSE | 2 | |
BUILTIN_CLOCK_MONOTONIC | 3 | |
BUILTIN_CLOCK_MONOTONIC_COARSE | 4 | |
BUILTIN_CLOCK_MONOTONIC_RAW | 5 | |
BUILTIN_CLOCK_BOOTTIME | 6 | |
BUILTIN_CLOCK_TSC | 9 | |
BUILTIN_CLOCK_PERF | 10 | |
BUILTIN_CLOCK_MAX_ID | 63 |
TraceConfig.LockdownModeOperation
Defined in trace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
LOCKDOWN_UNCHANGED | 0 | |
LOCKDOWN_CLEAR | 1 | |
LOCKDOWN_SET | 2 |
TraceConfig.ProducerConfig
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
producer_name | string | Identifies the producer for which this config is for. |
shm_size_kb | uint32 | Specifies the preferred size of the shared memory buffer. If the size is larger than the max size, the max will be used. If it is smaller than the page size or doesn't fit pages evenly into it, it will fall back to the size specified by the producer or finally the default shared memory size. |
page_size_kb | uint32 | Specifies the preferred size of each page in the shared memory buffer. Must be an integer multiple of 4K. |
TraceConfig.StatsdMetadata
Contains statsd-specific metadata about an alert associated with the trace.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
triggering_alert_id | int64 | The identifier of the alert which triggered this trace. |
triggering_config_uid | int32 | The uid which registered the triggering configuration with statsd. |
triggering_config_id | int64 | The identifier of the config which triggered the alert. |
triggering_subscription_id | int64 | The identifier of the subscription which triggered this trace. |
TraceConfig.GuardrailOverrides
Contains flags which override the default values of the guardrails inside Perfetto.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
max_upload_per_day_bytes | uint64 | Override the default limit (in bytes) for uploading data to server within a 24 hour period. On R-, this override only affected userdebug builds. Since S, it also affects user builds. In 24Q3+ (V+), this override is a noop because upload guardrail logic was removed from Perfetto. |
max_tracing_buffer_size_kb | uint32 | Overrides the guardrail for maximum trace buffer size. Available on U+ |
TraceConfig.TriggerConfig
Triggers allow producers to start or stop the tracing session when an event occurs.
For example if we are tracing probabilistically, most traces will be uninteresting. Triggers allow us to keep only the interesting ones such as those traces during which the device temperature reached a certain threshold. In this case the producer can activate a trigger to keep (STOP_TRACING) the trace, otherwise it can also begin a trace (START_TRACING) because it knows something is about to happen.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
trigger_mode | TriggerMode | |
use_clone_snapshot_if_available | bool | This flag is really a workaround for b/274931668. This is needed only when deploying configs to different versions of the tracing service. When this is set to true this has the same effect of setting trigger_mode to CLONE_SNAPSHOT on newer versions of the service. This boolean has been introduced to allow to have configs that use CLONE_SNAPSHOT on newer versions of Android and fall back to STOP_TRACING on older versions where CLONE_SNAPSHOT did not exist. When using this flag, trigger_mode must be set to STOP_TRACING. |
triggers | Trigger[] | A list of triggers which are related to this configuration. If ANY trigger is seen then an action will be performed based on trigger_mode . |
trigger_timeout_ms | uint32 | Required and must be positive if a TriggerConfig is specified. This is how long this TraceConfig should wait for a trigger to arrive. After this period of time if no trigger is seen the TracingSession will be cleaned up. |
TraceConfig.TriggerConfig.TriggerMode
Defined in trace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
UNSPECIFIED | 0 | |
START_TRACING | 1 | When this mode is chosen, data sources are not started until one of the triggers are received. This supports early initialization and fast starting of the tracing system. On triggering, the session will then record for stop_delay_ms . However if no trigger is seen after trigger_timeout_ms the session will be stopped and no data will be returned. |
STOP_TRACING | 2 | When this mode is chosen, the session will be started via the normal EnableTracing() & StartTracing(). If no trigger is ever seen the session will be stopped after trigger_timeout_ms and no data will be returned. However if triggered the trace will stop after stop_delay_ms and any data in the buffer will be returned to the consumer. |
CLONE_SNAPSHOT | 4 | When this mode is chosen, this causes a snapshot of the current tracing session to be created after stop_delay_ms while the current tracing session continues undisturbed (% an extra flush). This mode can be used only when the tracing session is handled by the "perfetto" cmdline client (which is true in 90% of cases). Part of the business logic necessary for this behavior, and ensuing file handling, lives in perfetto_cmd.cc . On other consumers, this causes only a notification of the trigger through a CloneTriggerHit ObservableEvent. The custom consumer is supposed to call CloneSession() itself after the event.Use use_clone_snapshot_if_available=true when targeting older versions of perfetto. |
TraceConfig.TriggerConfig.Trigger
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
name | string | The producer must specify this name to activate the trigger. |
producer_name_regex | string | An std::regex that will match the producer that can activate this trigger. This is optional. If unset any producers can activate this trigger. |
stop_delay_ms | uint32 | After a trigger is received either in START_TRACING or STOP_TRACING mode then the trace will end stop_delay_ms after triggering.In CLONE_SNAPSHOT mode, this is the delay between the trigger and the snapshot. If prefer_suspend_clock_for_duration is set, the duration will be based on wall-clock, counting also time in suspend. |
max_per_24_h | uint32 | Limits the number of traces this trigger can start/stop in a rolling 24 hour window. If this field is unset or zero, no limit is applied and activiation of this trigger always starts/stops the trace. |
skip_probability | double | A value between 0 and 1 which encodes the probability of skipping a trigger with this name. This is useful for reducing the probability of high-frequency triggers from dominating trace finaization. If this field is unset or zero, the trigger will never be skipped. If this field is greater than or equal to 1, this trigger will always be skipped i.e. it will be as if this trigger was never included in the first place. This probability check is applied before any other limits. For example, if max_per_24_h is also set, first we will check if the probability bar is met and only then will we check the max_per_24_h limit. |
TraceConfig.IncrementalStateConfig
Configuration for trace contents that reference earlier trace data. For example, a data source might intern strings, and emit packets containing {interned id : string} pairs. Future packets from that data source can then use the interned ids instead of duplicating the raw string contents. The trace parser will then need to use that interning table to fully interpret the rest of the trace.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
clear_period_ms | uint32 | If nonzero, notify eligible data sources to clear their incremental state periodically, with the given period. The notification is sent only to data sources that have handles_incremental_state_clear set in their DataSourceDescriptor. The notification requests that the data source stops referring to past trace contents. This is particularly useful when tracing in ring buffer mode, where it is not exceptional to overwrite old trace data.Warning: this time-based global clearing is likely to be removed in the future, to be replaced with a smarter way of sending the notifications only when necessary. |
TraceConfig.CompressionType
Compress trace with the given method. Best effort.
Defined in trace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
COMPRESSION_TYPE_UNSPECIFIED | 0 | |
COMPRESSION_TYPE_DEFLATE | 1 |
TraceConfig.IncidentReportConfig
Android-only. Not for general use. If set, saves the trace into an incident. This field is read by perfetto_cmd, rather than the tracing service. This field must be set when passing the --upload flag to perfetto_cmd.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
destination_package | string | |
destination_class | string | |
privacy_level | int32 | Level of filtering in the requested incident. See Destination in frameworks/base/core/proto/android/privacy.proto. |
skip_incidentd | bool | If true, then skips saving the trace to incidentd. This flag is useful in testing (e.g. Perfetto-statsd integration tests) or when we explicitly don't want traces to go to incidentd even when they usually would (e.g. configs deployed using statsd but only used for inclusion in bugreports using bugreport_score ).The motivation for having this flag, instead of just not setting incident_report_config , is prevent accidents where incident_report_config is omitted by mistake. |
skip_dropbox | bool | If true, do not write the trace into dropbox (i.e. incident only). Otherwise, write to both dropbox and incident. |
TraceConfig.StatsdLogging
Defined in trace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
STATSD_LOGGING_UNSPECIFIED | 0 | |
STATSD_LOGGING_ENABLED | 1 | |
STATSD_LOGGING_DISABLED | 2 |
TraceConfig.TraceFilter
When set applies a post-filter to the trace contents using the filter
provided. The filter is applied at ReadBuffers() time and works both in the
case of IPC readback and write_into_file. This filter can be generated
using tools/proto_filter -s schema.proto -F filter_out.bytes
or
-T filter_out.escaped_string
(for .pbtx). See go/trace-filtering for
design.
Introduced in Android S, but it was broken (b/195065199). Reintroduced in Android T with a different field number. Updated in Android U with a new bytecode version which supports string filtering.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
bytecode | bytes | The bytecode as implemented in Android T. |
bytecode_v2 | bytes | The bytecode as implemented in Android U. Adds support for string filtering. |
string_filter_chain | StringFilterChain |
TraceConfig.TraceFilter.StringFilterChain
A chain is a list of rules which string will be sequentially checked against.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
rules | StringFilterRule[] |
TraceConfig.TraceFilter.StringFilterRule
A rule specifies how strings should be filtered.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
policy | StringFilterPolicy | The policy (i.e. algorithm) dictating how strings matching this rule should be handled. |
regex_pattern | string | The regex pattern used to match against each string. |
atrace_payload_starts_with | string | The string which should appear after the tgid in atrace tracepoint strings. |
TraceConfig.TraceFilter.StringFilterPolicy
A policy specifies which algorithm should be used for filtering the string.
Defined in trace_config.proto
Enum values:
Name | Value | Description |
---|---|---|
SFP_UNSPECIFIED | 0 | |
SFP_MATCH_REDACT_GROUPS | 1 | Tries to match the string field against regex_pattern . If it matches, all matching groups are "redacted" (i.e. replaced with a constant string) and filtering is terminated (i.e. no further rules are checked). If it doesn't match, the string is left unchanged and the next rule in chain is considered. |
SFP_ATRACE_MATCH_REDACT_GROUPS | 2 | Like SFP_MATCH_REDACT_GROUPS but tries to do some pre-work before checking the regex. Specifically, it tries to parse the string field as an atrace tracepoint and checks if the post-tgid field starts with atrace_post_tgid_starts_with . The regex matching is only performed if this check succeeds. |
SFP_MATCH_BREAK | 3 | Tries to match the string field against regex_pattern . If it matches, filtering is terminated (i.e. no further rules are checked).If it doesn't match, the string is left unchanged and the next rule in chain is considered. |
SFP_ATRACE_MATCH_BREAK | 4 | Like SFP_MATCH_BREAK but tries to do some pre-work before checking the regex. Specifically, it tries to parse the string field as an atrace tracepoint and checks if the post-tgid field starts with atrace_post_tgid_starts_with . The regex matching is only performed if this check succeeds. |
SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS | 5 | Tries to repeatedly search (i.e. find substrings of) the string field with regex_pattern . For each match, redacts any matching groups (i.e.replaced with a constant string). Once there are no further matches, filtering is terminated (i.e. no further rules are checked). Note that this is policy is a "search" policy not a "match" policy unlike the above policies: * Match policies require matching the full string i.e. there is an implicit leading ^ and trailing $ .* Search policies perform repeated partial matching of the string e.g. - String: foo=aaa,bar=123,foo=bbb,baz=456 - Pattern: foo=(\d+) - Output: foo=P6O,bar=123,foo=P6O,baz=456 where P6O is the redaction string All of this is only performed after some pre-work where we try to parse the string field as an atrace tracepoint and check if the post-tgid field starts with atrace_post_tgid_starts_with .If there are no partial matches, the string is left unchanged and the next rule in chain is considered. |
TraceConfig.AndroidReportConfig
Android-only. Not for general use. If set, reports the trace to the Android framework. This field is read by perfetto_cmd, rather than the tracing service. This field must be set when passing the --upload flag to perfetto_cmd.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
reporter_service_package | string | |
reporter_service_class | string | |
skip_report | bool | If true, then skips reporting the trace to Android framework. This flag is useful in testing (e.g. Perfetto-statsd integration tests) or when we explicitly don't want to report traces to the framework even when they usually would (e.g. configs deployed using statsd but only used for inclusion in bugreports using bugreport_score ).The motivation for having this flag, instead of just not setting framework_report_config , is prevent accidents where framework_report_config is omitted by mistake. |
use_pipe_in_framework_for_testing | bool | If true, will direct the Android framework to read the data in trace file and pass it to the reporter class over a pipe instead of passing the file descriptor directly. This flag is needed because the Android test framework does not currently support priv-app helper apps (in terms of SELinux) and we really don't want to add an allow rule for untrusted_app to receive trace fds. Because of this, we instead will direct the framework to create a new pipe and pass this to the reporter process instead. As the pipe is created by the framework, we won't have any problems with SELinux (system_server is already allowed to pass pipe fds, even to untrusted apps). As the name suggests this option MUST only be used for testing. Note that the framework will reject (and drop) files which are too large both for simplicity and to be minimize the amount of data we pass to a non-priv app (note that the framework will still check manifest permissions even though SELinux permissions are worked around). |
TraceConfig.CmdTraceStartDelay
If set, delays the start of tracing by a random duration. The duration is chosen from a uniform distribution between the specified minimum and maximum. Note: this delay is implemented by perfetto_cmd not by traced so will not work if you communicate with traced directly over the consumer API. Introduced in Android T.
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
min_delay_ms | uint32 | |
max_delay_ms | uint32 |
TraceConfig.SessionSemaphore
When non-empty, ensures that for a each semaphore named name at most
max_other_session_count`` other sessions (whose value is taken of the
minimum of all values specified by this config or any already-running
session) can be be running.
If a semaphore "acquisition" fails, EnableTracing will return an error and the tracing session will not be started (or elgible to start in the case of deferred sessions).
This is easiest to explain with an example. Suppose the tracing service has the following active tracing sessions: S1 = [{name=foo, max_other_session_count=2}, {name=bar, max_other_session_count=0}] S2 = [{name=foo, max_other_session_count=1}, {name=baz, max_other_session_count=1}]
Then, for a new session, the following would be the expected behaviour of
EnableSession given the state of session_semaphores
.
Q: session_semaphores = []
A: Allowed because it does not specify any semaphores. Will be allowed
no matter the state of any other tracing session.
Q: session_semaphores = [{name=baz, max_other_session_count=1}]
A: Allowed because both S2 and this config specify
max_other_session_count=1 for baz.
Q: session_semaphores = [{name=foo, max_other_session_count=3}]
A: Denied because S2 specified max_other_session_count=1 for foo and S1
takes that slot.
Q: session_semaphores = [{name=bar, max_other_session_count=0}]
A: Denied because S1 takes the the slot specified by both S1 and
this config.
Introduced in 24Q3 (Android V).
Defined in trace_config.proto
Fields:
Field | Type | Description |
---|---|---|
name | string | The name of the semaphore. Acts as a unique identifier across all tracing sessions (including the one being started). |
max_other_session_count | uint64 | The maximum number of other sesssions which specify the same semaphore which can be active. The minimum of this value across all tracing sessions and the value specified by the config is used when deciding whether the tracing session can be started. |