package cactus_tracing.vendor.perfetto.protos

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message CounterDescriptor

counter_descriptor.proto:39

Defines properties of a counter track, e.g. for built-in counters (thread time, instruction count, ..) or user-specified counters (e.g. memory usage of a specific app component). Counter tracks only support TYPE_COUNTER track events, which specify new values for the counter. For counters that require per-slice values, counter values can instead be provided in a more efficient encoding via TrackEvent's |extra_counter_track_uuids| and |extra_counter_values| fields. However, slice-type events cannot be emitted onto a counter track. Values for counters that are only emitted on a single packet sequence can optionally be delta-encoded, see |is_incremental|. Next id: 7.

Used in: TrackDescriptor

enum CounterDescriptor.BuiltinCounterType

counter_descriptor.proto:43

Built-in counters, usually with special meaning in the client library, trace processor, legacy JSON format, or UI. Trace processor will infer a track name from the enum value if none is provided in TrackDescriptor.

Used in: CounterDescriptor

enum CounterDescriptor.Unit

counter_descriptor.proto:58

Type of the values for the counters - to supply lower granularity units, see also |unit_multiplier|.

Used in: CounterDescriptor

message EventCategory

track_event.proto:221

Used in: InternedData

message EventName

track_event.proto:226

Used in: InternedData

message InternedData

interned_data.proto:56

Message that contains new entries for the interning indices of a packet sequence. The writer will usually emit new entries in the same TracePacket that first refers to them (since the last reset of interning state). They may also be emitted proactively in advance of referring to them in later packets. Next reserved id: 8 (up to 15). Next id: 36.

TODO(eseckler): Replace iid fields inside interned messages with map<iid, message> type fields in InternedData.

Used in: TracePacket

message ProcessDescriptor

process_descriptor.proto:29

Describes a process's attributes. Emitted as part of a TrackDescriptor, usually by the process's main thread. Next id: 9.

Used in: TrackDescriptor

message SourceLocation

source_location.proto:37

Used in: InternedData, TrackEvent

message ThreadDescriptor

thread_descriptor.proto:29

Describes a thread's attributes. Emitted as part of a TrackDescriptor, usually by the thread's trace writer. Next id: 9.

Used in: TrackDescriptor

message Trace

trace.proto:27

message TracePacket

trace_packet.proto:50

TracePacket is the root object of a Perfetto trace. A Perfetto trace is a linear sequence of TracePacket(s). The tracing service guarantees that all TracePacket(s) written by a given TraceWriter are seen in-order, without gaps or duplicates. If, for any reason, a TraceWriter sequence becomes invalid, no more packets are returned to the Consumer (or written into the trace file). TracePacket(s) written by different TraceWriter(s), hence even different data sources, can be seen in arbitrary order. The consumer can re-establish a total order, if interested, using the packet timestamps, after having synchronized the different clocks onto a global clock. The tracing service is agnostic of the content of TracePacket, with the exception of few fields (e.g.. trusted_*, trace_config) that are written by the service itself. See the [Buffers and Dataflow](/docs/concepts/buffers.md) doc for details. Next reserved id: 14 (up to 15). Next id: 95.

Used in: Trace

enum TracePacket.SequenceFlags

trace_packet.proto:103

message TrackDescriptor

track_descriptor.proto:43

Defines a track for TrackEvents. Slices and instant events on the same track will be nested based on their timestamps, see TrackEvent::Type. A TrackDescriptor only needs to be emitted by one trace writer / producer and is valid for the entirety of the trace. To ensure the descriptor isn't lost when the ring buffer wraps, it should be reemitted whenever incremental state is cleared. As a fallback, TrackEvents emitted without an explicit track association will be associated with an implicit trace-global track (uuid = 0), see also |TrackEvent::track_uuid|. It is possible but not necessary to emit a TrackDescriptor for this implicit track. Next id: 10.

Used in: TracePacket

message TrackEvent

track_event.proto:90

Trace events emitted by client instrumentation library (TRACE_EVENT macros), which describe activity on a track, such as a thread or asynchronous event track. The track is specified using separate TrackDescriptor messages and referred to via the track's UUID. A simple TrackEvent packet specifies a timestamp, category, name and type: ```protobuf trace_packet { timestamp: 1000 track_event { categories: ["my_cat"] name: "my_event" type: TYPE_INSTANT } } ``` To associate an event with a custom track (e.g. a thread), the track is defined in a separate packet and referred to from the TrackEvent by its UUID: ```protobuf trace_packet { track_descriptor { track_uuid: 1234 name: "my_track" // Optionally, associate the track with a thread. thread_descriptor { pid: 10 tid: 10 .. } } } ``` A pair of TYPE_SLICE_BEGIN and _END events form a slice on the track: ```protobuf trace_packet { timestamp: 1200 track_event { track_uuid: 1234 categories: ["my_cat"] name: "my_slice" type: TYPE_SLICE_BEGIN } } trace_packet { timestamp: 1400 track_event { track_uuid: 1234 type: TYPE_SLICE_END } } ``` TrackEvents also support optimizations to reduce data repetition and encoded data size, e.g. through data interning (names, categories, ...) and delta encoding of timestamps/counters. For details, see the InternedData message. Further, default values for attributes of events on the same sequence (e.g. their default track association) can be emitted as part of a TrackEventDefaults message. Next reserved id: 13 (up to 15). Next id: 51.

Used in: TracePacket

enum TrackEvent.Type

track_event.proto:112

Type of the TrackEvent (required if |phase| in LegacyEvent is not set).

Used in: TrackEvent

message UnsymbolizedSourceLocation

source_location.proto:31

A source location, represented as a native symbol. This is similar to `message Frame` from protos/perfetto/trace/profiling/profile_common.proto, but for abitrary source code locations (for example in track event args), not stack frames.