Get desktop application:
View/edit binary Protocol Buffers messages
Used in:
Battery counters info for each ts of the trace. This should only be extracted for short traces.
Used in:
Field numbers for these 3 == the int values from Android
Total time a wakelock was held
Amount of time the device was suspended. Depends on the ftrace source "power/suspend_resume".
Used in:
Timestamp measured from boot time [ns].
Fields 2-5 are the same as in BatteryCounters proto in TracePacket.
Period of time during the trace that the device went to sleep completely.
Used in:
This metric provides per-process Binder statistics for traces with binder_driver enabled Specifically, transactions are categorized and counted
Used in:
Used in:
Used in:
Counter for the sum of DMA and RSS across GCA, cameraserver and HAL. This provides a single number for the memory pressure using the camera is putting on the rest of the system. Note: this number assumes that all DMA pressure is coming from the camera as this is usually a pretty good approximation. Being more accurate here would increase the complexity of the metric significantly. Note: if there are multiple GCA/cameraserver/HAL processes in the trace, this metric will simply take the latest one in the trace and ignore the others.
Used in:
Used in:
Timeseries for the sum of DMA and RSS across GCA, cameraserver and HAL. This provides a single number for the memory pressure using the camera is putting on the rest of the system. Note: this number assumes that all DMA pressure is coming from the camera as this is usually a pretty good approximation. Being more accurate here would increase the complexity of the metric significantly. Note: if there are multiple GCA/cameraserver/HAL processes in the trace, this metric will simply take the latest one in the trace and ignore the others.
Used in:
Used in:
Next id: 7
Used in: ,
Next id: 3
Used in: ,
Next id: 6
Used in: , , ,
CPU megacycles (i.e. cycles divided by 1e6).
Total time the thread was running for this breakdown in nanoseconds.
Min/max/average CPU frequency weighted by the time the CPU was running at each frequency in this breakdown.
Next id: 8
Used in:
Breakdowns of above metrics.
Next id: 7
Used in:
Breakdowns of above metrics.
Used in:
Stat that reports the number of duplicate frames submitted to the display for rendering. That is frames that have the same pixels values but where still submitted. It is tracked based on comparing the MISR of the current frame vs previous frame.
Stat reports whether there is any duplicate_frames tracked
Stat that reports the number of dpu underrrun occurs count.
Calculate the total number of refresh rate changes
The statistics for each refresh rate value
Used in:
The refresh rate value (the number of frames per second)
Calculate the number of refresh rate switches to this fps
Calculate the total duration of refresh rate stays at this fps
Calculate the average duration of refresh rate stays at this fps
dma-buf heap memory stats on Android.
Used in:
Total allocation size. Essentially the sum of positive allocs.
Used in:
Frequency residency metrics from clock_set_rate ftrace event.
Used in:
Operating frequency
Percentage of duration in this operating frequency compared to all frequencies
Total duration in ns when the state was in this operating frequency
Used in:
Frequency representative name
Each band statistics meta
fastrpc memory stats on Android.
Used in:
Used in:
Total allocation size. Essentially the sum of positive allocs.
Used in:
Used in:
Used in:
GPU metric for processes using GPU.
max/min/avg GPU memory used by the entire system.
GPU frequency metric for each gpu_id
Used in:
Identifier for GPU in a multi-gpu device.
max/min/avg GPU frequency for this gpu_id the calculation of avg is weighted by the duration of each frequency
Metrics for each used GPU frequency
Used in:
Used frequency
Total duration in ms when the state of GPU was in this frequency
Percentage of duration in this frequency compared to all frequencies in this gpu_id
Used in:
Process name.
max/min/avg GPU memory used by this process.
Used in:
Counts the number of composition total layers in the trace. (non-weighted average)
Counts the number of composition dpu layers in the trace. (non-weighted average)
Counts the number of composition gpu layers in the trace. (non-weighted average)
Counts the number of composition dpu cached layers in the trace. (non-weighted average)
Counts the number of composition surfaceflinger cached layers in the trace. (non-weighted average)
Counts how many times validateDisplay is skipped.
Counts how many times validateDisplay cannot be skipped.
Counts how many times validateDisplay is already separated from presentDisplay since the beginning.
Counts how many unhandled validation cases which might be caused by errors.
the average of overall hwcomposer execution time.
the average of hwcomposer execution time for skipped validation cases.
the average of hwcomposer execution time for unskipped validation cases.
the average of hwcomposer execution time for separated validation cases.
DPU Vote Metrics for each thread track
Used in:
the thread ID that handles this track
the weighted average of DPU Vote Clock
the weighted average of DPU Vote Avg Bandwidth
the weighted average of DPU Vote Peak Bandwidth
the weighted average of DPU Vote RT (Real Time) Bandwidth
Used in:
HWUI metrics for processes that have a RenderThread.
ion memory stats on Android.
Used in:
Used in:
Total allocation size. Essentially the sum of positive allocs (-> new buffers).
measure max IRQ runtime and IRQ tasks running over threshold.
Used in:
metrics for hardirq and softirq
Used in:
max runtime of IRQ tasks
total IRQ tasks
over threshold metric
information for top 10 IRQ tasks
Used in:
IRQ name
timestamp
runtime of IRQ task
Used in:
Threshold value
over threshold count
anomaly ratio (over threshold count / total count)
Used in:
Next id: 11
Used in:
ID of the CUJ that is unique within the trace.
Name of the CUJ, extracted from the CUJ trace marker. For example SHADE_EXPAND_COLLAPSE from J<SHADE_EXPAND_COLLAPSE>.
Details about the process (uid, version, etc)
ts of the CUJ trace marker slice.
dur of the CUJ trace marker slice.
Details about each of the frames within the CUJ.
Details about each of the SF frames within the CUJ.
Metrics extracted from the counters output by FrameTracker Does not contain the frame_dur percentile information.
Metrics extracted from the frame timeline.
Metrics extracted from the trace slices.
Next id: 8
Used in:
Index of the frame within the single user journey.
VSYNC ID of the frame.
Whether the app process missed the frame deadline. Only set for the App frames. Always left unset for SF frames.
Whether SF missed the frame deadline.
Next id: 12
Used in:
Overall number of frames within the CUJ.
Number of missed frames.
Number of frames missed due to the app missing the deadline.
Number of frames missed due to SF.
Number of successive frames missed. Not available in timeline_metrics and trace_metrics.
Max frame duration. Not available in counter_metrics.
Average frame duration. Not available in counter_metrics.
Median frame duration. Not available in counter_metrics.
P90 frame duration. Not available in counter_metrics.
P95 frame duration. Not available in counter_metrics.
P99 frame duration. Not available in counter_metrics.
LMK stats on Android.
Used in:
Total count of LMK events observed in the trace.
OOM reaper kills. Enabled via the oom/mark_victim point. Should never happen.
Used in:
Global process state at LMK time, used to identify potential culprits. TODO: rename to AndroidLmkProcessState
Used in:
LMKs present in the trace, ordered on their timestamp.
Used in:
OOM score adj of the LMK'ed process.
Total size of the ION heap in bytes during this LMK.
Deprecated. Prefer ion_heaps_bytes.
Processes present during this LMK.
Used in:
OOM score adj of the process.
RSS + swap.
Memory metrics on Android.
Used in:
Process metrics, grouped by process name
Used in:
Memory growth observed in the counter sequence. In case of multiple processes with the same name, break ties using max.
Used in:
Used in: ,
Available when ART trace events are available.
Used in:
Unaggregated memory metrics on Android.
Used in:
Process metrics for every process instance in trace.
Used in:
Used in:
Used in:
Metrics for Multiuser events, such as switching users.
Used in:
Metrics for a user switch.
Holds the data for a Multiuser event.
Used in:
Duration of the event (in milliseconds).
CPU usage of each process during the event.
Used in:
The userId of the process (e.g. 0 or 10).
The name of the process.
The number of CPU cycles (in megacycles) spent by that process during the event.
The ratio of this process's cycles to the total for all processes, expressed as a percentage.
General identifier for this usage source: determined from the process name, user, etc. Should be stable across multiple runs (i.e. does not print the user_id directly).
Used in:
Network device metrics.
SoftIrq NET_RX action metrics.
Packet retransmission rate.
Kfree Skb rate (i.e. kfree_skb count divided by the packet count from all net devices).
SoftIrq NET_TX action metrics.
SoftIrq IPI action metrics.
Used in:
Used in:
Used in: ,
Used in:
Total IPI action statistics.
Used in:
SoftIrq IPI action count.
SoftIrq IPI action was running in millisecond.
SoftIrq IPI action average running time.
Used in:
Network device name.
Ingress traffic statistic.
Egress traffic statistic
Used in:
Total NET_RX action statistics.
Per core NET_RX action statistics.
The average packet time moves through the kernel stack.
Used in: ,
SoftIrq NET_RX action count.
SoftIrq NET_RX action was running in millisecond.
SoftIrq NET_RX action average running time.
CPU megacycles (i.e. cycles divided by 1e6).
Average weighted CPU frequency by the time the NET_RX Action running at each frequency.
Used in:
Total NET_TX action statistics.
Per core NET_TX action statistics.
Used in: ,
SoftIrq NET_TX action count.
SoftIrq NET_TX action was running in millisecond.
SoftIrq NET_TX action average running time.
CPU megacycles (i.e. cycles divided by 1e6).
Average weighted CPU frequency by the time the NET_TX Action running at each frequency.
Used in: , ,
Packet count.
Packet Bytes.
Timestamp when first packet received or transmitted.
Timestamp when last packet received or transmitted.
Interval between first & last packet. The minimum interval is 10ms.
Data Speed.
Used in:
Total packets statistic.
Per core packets statistic.
GRO aggregation ratio.
Used in:
Total packets statistic.
Per core packets statistic.
Used in:
Uuids of other traces being finalized while the current trace was being recorded.
Used in:
Used in:
Used in:
Energy data per Power Rail.
The average used power between the first and last sampled rail across all the rails in milliwatts (mw).
Energy data per Power Rail at given ts.
Used in:
Time since device boot(CLOCK_BOTTOMTIME) in milli-seconds.
Accumulated energy since device boot in microwatt-seconds(uws).
Used in:
Name of the rail.
Energy data for given rail and for all samples in the trace.
The average used power between the first and the last sampled energy data in miliwatt (mw)
Used in: , , , , , , ,
Process name. Usually, cmdline or <package_name>(:<custom_name>)?.
User id under which this process runs.
Package that this process belongs to. If this process shares its uid (see `packages_for_uid` field), the package is determined based on the process name and package name. If there is no match this field is empty.
All packages using this uid. Shared uid documentation: https://developer.android.com/guide/topics/manifest/manifest-element#uid
Package metadata from Android package list.
Used in:
measure max RT runtime and RT tasks running over 5ms.
Used in:
max runtime of RT tasks
how many RT tasks are over 5ms.
information for top 10 RT tasks
Used in:
thread name
timestamp
runtime of RT task
Metric that stores information related to atrace events generated by simpleperf tool
Used in:
Used in:
Simpleperf event name
Metrics for each process
Total counter value over all processes and threads
Used in:
Process ID
Process name
Metrics for each thread in this process.
Total counter value over all threads in this process
Used in:
Thread ID
Thread name
CPU ID
Total counter value
Android app startup metrics.
Used in:
Used in:
Used in:
From https://cs.android.com/android/platform/superproject/+/master:external/perfetto/protos/perfetto/trace/ftrace/binder.proto;l=15;drc=7b6a788162a30802f4c9d8d7a30a54e25edd30f1
From https://cs.android.com/android/platform/superproject/+/master:external/perfetto/protos/perfetto/trace/ftrace/binder.proto;l=14;drc=7b6a788162a30802f4c9d8d7a30a54e25edd30f1
From https://cs.android.com/android/platform/superproject/+/master:external/perfetto/protos/perfetto/trace/ftrace/binder.proto;l=37;drc=7b6a788162a30802f4c9d8d7a30a54e25edd30f1
Contains timestamps of important events which occurred during the startup.
Used in:
Metrics about startup which were developed by looking at experiments using high-speed cameras (HSC).
Used in:
The duration of the full "startup" as defined by HSC tests.
Used in:
Metrics with information about the status of odex files and the outcome of the loading process. Multiple files might be loaded for a single startup. Platform might also decide to discard an odex file and instead load a fallback, for example in case the OS or apk were updated.
Used in:
Used in: , , ,
Next id: 18
Used in:
Random id uniquely identifying an app startup in this trace.
Startup type (cold / warm / hot)
Name of the package launched
Name of the process launched
Details about the activities launched
Details about slow binder transactions during the startup. The definition of a slow transaction is an implementation detail.
Did we ask the zygote for a new process
Number of processes hosting the activity involved in the launch. This will usually be 1. If it is 0, it is indicative of a data / process error. If > 1, the process died during startup and the system respawned it.
Contains timestamps of important events which happened during the startup.
Timing information spanning the intent received by the activity manager to the first frame drawn.
Details about the process (uid, version, etc)
Metrics about startup which were developed by looking at experiments using high-speed cameras (HSC).
The time taken in the startup from intent received to the start time of the reportFullyDrawn slice. This should be longer than the time to first frame as the application decides this after it starts rendering.
Contains information about the status of odex files.
Contains information about the state of the rest of the system during the startup. This is useful for getting context about why a startup might be slow beyond just what the app is doing.
A list of identified potential causes for slow startup. Optional.
Contains information about the state of a system during the app startup. Useful to put the startup in context.
Used in:
Whether the dex2oat64 process was running concurrent to the startup.
Whether the installd process was running concurrent to the startup.
The number of broadcasts dispatched by the system during the app launch.
The number of broadcasts received by an app or the system during the app launch. Note that multiple packages can be subscribed to the same broadcast so a single dsipatch can cause multiple packages to receive and process a broadcast.
The most active (i.e. consuming the most mcycles) processes during the app launch excluding the process(es) being launched. Note: the exact number of returned is an implementation detail and will likely change over time.
A simplified view of the task state durations for a thread and a span of time.
Used in:
Timing information spanning the intent received by the activity manager to the first frame drawn. Next id: 33.
Used in:
The duration between the intent received and first frame.
Breakdown of time to first frame by task state for the main thread of the process starting up.
The mcycles taken by this startup across all CPUs (broken down by core type).
In this timespan, how many processes (apart from the main activity) were spawned.
Total time spent in activity manager between the initial intent and the end of the activity starter.
The following slices follow the typical steps post-fork.
If we are starting a new process, record the duration from the intent being received to the time we call the zygote.
The actual duration of the process start (based on the zygote slice).
The total time spent on opening dex files.
Total time spent verifying classes during app startup.
Number of methods that were compiled by JIT during app startup.
Time spent running CPU on jit thread pool.
Time spent on garbage collection.
Time spent in lock contention on the main thread of the process being started up. This includes *all* types of lock contention not just monitor contention.
Time spent in monitor lock contention on the main thread of the process being started up. This will be a subset of the time counted by |time_lock_contention_thread_main|.
Used in:
Counts the number of missed frames in the trace.
Counts the number of missed HWC frames in the trace.
Counts the number of missed GPU frames in the trace.
Calculate the number of missed frames divided by total frames
Calculate the number of missed HWC frames divided by total HWC frames
Calculate the number of missed GPU frames divided by total GPU frames
Count the number of times SurfaceFlinger needs to invoke GPU for rendering some layers
Calculate the average duration of GPU request by SurfaceFlinger since it enters the FenceMonitor's queue until it gets completed
Calculate the total duration when there is at least one GPU request by SurfaceFlinger that is still waiting for GPU to complete the request. This also equals to the total duration of "waiting for GPU completion <fence_num>" in SurfaceFlinger.
Metric that stores frame information and potential jank root causes for a single Android system UI interaction/user journey.
Used in:
A list of all frames within the SysUi user journey.
Details about the process (uid, version, etc)
Used in:
Index of the frame within the single user journey.
A list of identified potential causes for jank. Optional.
Used in:
Used in:
Process name.
Names of all threads for this process.
User id under which this process runs.
Packages matching the process uid.
Metric which checks the data in the trace processor tables is "reasonble" (i.e. we would expect to see it from a real device). This is useful to reject traces which may be valid (so no stat would be recorded) but a human would find the trace nonsensical.
Used in:
Used in:
The name of the failed check.
Metric used to generate a simplified view of the Trusty kworker events.
Used in:
(message has no fields)
Used in:
Input for the /compute_metric endpoint.
Used in:
Used in:
Output for the /compute_metric endpoint.
Used in:
This is meant to contain a perfetto.protos.TraceMetrics. We're using bytes instead of the actual type because we do not want to generate protozero code for the metrics protos. We always encode/decode metrics using a reflection based mechanism that does not require the compiled C++ code. This allows us to read in new protos at runtime.
A perfetto.protos.TraceMetrics formatted as prototext.
Describes a message type.
Used in: ,
Reserved field names, which may not be used by fields in the same message. A given name may only be reserved once.
Range of reserved tag numbers. Reserved tag numbers may not be used by fields or extension ranges in the same message. Reserved ranges may not overlap.
Used in:
Inclusive.
Exclusive.
Convenience wrapper for multiple descriptors, similar to FileDescriptorSet in descriptor.proto.
Used in:
Input for the /disable_and_read_metatrace endpoint.
(message has no fields)
Output for the /disable_and_read_metatrace endpoint.
Used in:
Bytes of perfetto.protos.Trace message. Stored as bytes to avoid adding a dependency on trace.proto.
Input for the /enable_metatrace endpoint.
(message has no fields)
Output for the /enable_metatrace endpoint.
(message has no fields)
Describes an enum type.
Used in: ,
Reserved enum value names, which may not be reused. A given name may only be reserved once.
Describes a value within an enum.
Used in:
Describes a field within a message.
Used in: ,
If type_name is set, this need not be set. If both this and type_name are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
For message and enum types, this is the name of the type. If the name starts with a '.', it is fully-qualified. Otherwise, C++-like scoping rules are used to find the type (i.e. first the nested types within this message are searched, then within the parent, on up to the root namespace).
For extensions, this is the name of the type being extended. It is resolved in the same manner as type_name.
For numeric types, contains the original text representation of the value. For booleans, "true" or "false". For strings, contains the default text contents (not escaped in any way). For bytes, contains the C escaped value. All bytes >= 128 are escaped. TODO(kenton): Base-64 encode?
If set, gives the index of a oneof in the containing type's oneof_decl list. This field is a member of that oneof.
Used in:
0 is reserved for errors
Used in:
0 is reserved for errors. Order is weird for historical reasons.
Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if negative values are likely.
Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if negative values are likely.
Tag-delimited aggregate. Group type is deprecated and not supported in proto3. However, Proto3 implementations should still be able to parse the group wire format and treat group fields as unknown fields.
Length-delimited aggregate.
New in version 2.
Uses ZigZag encoding.
Uses ZigZag encoding.
Describes a complete .proto file.
Used in:
file name, relative to root of source tree
e.g. "foo", "foo.bar", etc.
Names of files imported by this file.
Indexes of the public imported files in the dependency list above.
Indexes of the weak imported files in the dependency list. For Google-internal migration only. Do not use.
All top-level definitions in this file.
The protocol compiler can output a FileDescriptorSet containing the .proto files it parses.
Used in:
Used in:
G2d name.
Used in:
G2D Metric for each G2D Instance.
the number of frames processed by G2D
the number of error events
max/min/avg G2d frame durations for all instances.
Used in:
Heap stats per process. One sample per dump (with continuous dump you can have more samples differentiated by ts).
Used in:
Used in:
Next id: 9
Used in:
Used in:
Used in:
Heap stats per process. One sample per dump (can be > 1 if continuous dump is enabled).
Used in:
Next id: 10
Used in:
Size of the Java heap in bytes
Native size of all the objects (not included in heap_size)
Size of the reachable objects in bytes.
Native size of all the reachable objects (not included in reachable_heap_size)
Sum of anonymous RSS + swap pages in bytes.
ART root objects
Describes a oneof.
Used in:
Used in:
(message has no fields)
Android HWUI graphics performance and graphics memory usage metrics.
Used in:
Name of the package launched
CPU time spent on RenderThread in milliseconds.
Number of frames drawn on RenderThread, followed by max/min/avg CPU time to draw a frame in nanoseconds.
Number of GPU commands flushes and max/min/avg time per flush in nanoseconds.
Number of View tree preparation counts and max/min/avg time to traverse the tree in nanoseconds.
Number of times the GPU rendered a frame and max/min/avg time for GPU to finish rendering in in nanoseconds.
Number of times a frame was recorded/serialized in a display list on the UI thread with max/min/avg time in nanoseconds.
number of unique shader programs that were used to render frames, followed by total and average times to prepare a shader in nanoseconds.
number of shader programs loaded from the disk cache, followed by total time and average time to prepare a shader in nanoseconds.
number of shader programs compiled/linked, followed by total time and average time to prepare a shader in nanoseconds.
max/min/avg CPU memory used for graphics by HWUI at the end of a frame.
max/min/avg GPU memory used by HWUI at the end of a frame excluding textures.
max/min/avg memory used for GPU textures by HWUI at the end of a frame.
max/min/avg memory used by HWUI at the end of a frame. This is a sum of previous 3 categories.
Used in:
Used in:
Used in:
Used in:
Output for the /query endpoint. Returns a query result set, grouping cells into batches. Batching allows a more efficient encoding of results, at the same time allowing to return O(M) results in a pipelined fashion, without full-memory buffering. Batches are split when either a large number of cells (~thousands) is reached or the string/blob payload becomes too large (~hundreds of KB). Data is batched in cells, scanning results by row -> column. e.g. if a query returns 3 columns and 2 rows, the cells will be emitted in this order: R0C0, R0C1, R0C2, R1C0, R1C1, R1C2.
Used in:
This determines the number and names of columns.
If non-emty the query returned an error. Note that some cells might still be present, if the error happened while iterating.
The number of statements in the provided SQL.
The number of statements which produced output rows in the provided SQL.
A batch contains an array of cell headers, stating the type of each cell. The payload of each cell is stored in the corresponding xxx_cells field below (unless the cell is NULL). So if |cells| contains: [VARINT, FLOAT64, VARINT, STRING], the results will be available as: [varint_cells[0], float64_cells[0], varint_cells[1], string_cells[0]].
Used in:
The string cells are concatenated in a single field. Each cell is NUL-terminated. This is because JS incurs into a non-negligible overhead when decoding strings and one decode + split('\0') is measurably faster than decoding N strings. See goto.google.com/postmessage-benchmark .
If true this is the last batch for the query result.
Used in:
Input for the /status endpoint.
(message has no fields)
Output for the /status endpoint.
Used in:
If present and not empty, a trace is already loaded already. This happens when using the HTTP+RPC mode nad passing a trace file to the shell, via trace_processor_shell -D trace_file.pftrace .
Typically something like "v11.0.123", but could be just "v11" or "unknown", for binaries built from Bazel or other build configurations. This is for human presentation only, don't attempt to parse and reason on it.
The API version is incremented every time a change that the UI depends on is introduced (e.g. adding a new table that the UI queries).
Stats counters for the trace. Defined in src/trace_processor/storage/stats.h
Used in:
Used in:
Used in:
Used in:
Trace processor metadata
Used in:
Root message for all Perfetto-based metrics. Next id: 49
Battery counters metric on Android.
CPU usage per trace, process and thread.
Memory metrics on Android (owned by the Android Telemetry team).
Memory metrics on Android in unaggregated form. (owned by the Android Telemetry team). Note: this generates a lot of data so should not be requested unless it is clear that this data is necessary.
Package list.
ion buffer memory metrics.
fastrpc subsystem memory metrics.
Statistics about low memory kills.
Power Rails metrics on Android.
Startup metrics on Android (owned by the Android Telemetry team).
Trace metadata (applicable to all traces).
Trace stats (applicable to all traces).
Returns stack frames missing symbols.
If the trace contains a heap graph, output allocation statistics.
If the trace contains a heap graph, output histogram.
Metrics used to find potential culprits of low-memory kills.
Metric associated with surfaceflinger.
GPU metrics on Android.
Frame timing and jank root causes for system UI interactions.
Interaction and frame timings for CUJs (important UI transitions).
Metric associated with hwcomposer.
G2D metrics.
Dmabuf heap metrics.
Metric to verify the quality of the trace.
Profiler smaps
Multiuser - metrics for switching users.
Metrics related to simpleperf tool
Metrics for the Camera team.
Metrics for dynamic voltage and frequency scaling.
Metrics for network performance.
Metrics for the Camera team. Note: this generates a lot of data so should not be requested unless it is clear that this data is necessary.
Metrics for RT runtime.
Metrics for IRQ runtime.
Metrics for the Trusty team.
Summary of other concurrent trace recording.
Per-process Binder transaction metrics.
Metrics for app deadline missed.
This variable has been introduced in v15 and is used to deal with API mismatches between UI and trace_processor_shell --httpd. Increment this every time a new feature that the UI depends on is being introduced (e.g. new tables, new SQL operators, metrics that are required by the UI). See also StatusResult.api_version (below).
Used in:
A monotonic counter used only for debugging purposes, to detect if the underlying stream is missing or duping data. The counter starts at 0 on each side of the pipe and is incremented on each message. Do NOT expect that a response has the same |seq| of its corresponding request: some requests (e.g., a query returning many rows) can yield more than one response message, bringing the tx and rq seq our of sync.
This is returned when some unrecoverable error has been detected by the peer. The typical case is TraceProcessor detecting that the |seq| sequence is broken (e.g. when having two tabs open with the same --httpd instance).
Client -> TraceProcessor requests.
TraceProcessor -> Client responses.
This is sent back instead of filling |response| when the client sends a |request| which is not known by the TraceProcessor service. This can happen when the client is newer than the service.
TraceProcessorMethod request args.
For TPM_APPEND_TRACE_DATA.
For TPM_QUERY_STREAMING.
For TPM_COMPUTE_METRIC.
TraceProcessorMethod response args. For TPM_APPEND_TRACE_DATA.
For TPM_QUERY_STREAMING.
For TPM_COMPUTE_METRIC.
For TPM_GET_METRIC_DESCRIPTORS.
For TPM_DISABLE_AND_READ_METATRACE.
For TPM_GET_STATUS.
Used in:
Used in:
Used in:
In some cases (Chrome/Webview) the ID that should be used to query symbols in Google's internal tera-scale symbolization service is != `build_id` and requires some mangling. This field is == 'build_id` for non-chromium cases, and is the breakpad module ID (with lowercase hex digics) for chromium cases.