aboutsummaryrefslogtreecommitdiff
path: root/protos/perfetto/trace/track_event/track_event.proto
diff options
context:
space:
mode:
Diffstat (limited to 'protos/perfetto/trace/track_event/track_event.proto')
-rw-r--r--protos/perfetto/trace/track_event/track_event.proto102
1 files changed, 10 insertions, 92 deletions
diff --git a/protos/perfetto/trace/track_event/track_event.proto b/protos/perfetto/trace/track_event/track_event.proto
index 9c2952fd9..3825b768f 100644
--- a/protos/perfetto/trace/track_event/track_event.proto
+++ b/protos/perfetto/trace/track_event/track_event.proto
@@ -19,20 +19,12 @@ syntax = "proto2";
import "protos/perfetto/trace/track_event/debug_annotation.proto";
import "protos/perfetto/trace/track_event/log_message.proto";
import "protos/perfetto/trace/track_event/task_execution.proto";
-import "protos/perfetto/trace/track_event/chrome_application_state_info.proto";
import "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto";
-import "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto";
-import "protos/perfetto/trace/track_event/chrome_frame_reporter.proto";
import "protos/perfetto/trace/track_event/chrome_histogram_sample.proto";
import "protos/perfetto/trace/track_event/chrome_keyed_service.proto";
import "protos/perfetto/trace/track_event/chrome_latency_info.proto";
import "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto";
-import "protos/perfetto/trace/track_event/chrome_message_pump.proto";
-import "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto";
-import "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto";
import "protos/perfetto/trace/track_event/chrome_user_event.proto";
-import "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto";
-import "protos/perfetto/trace/track_event/source_location.proto";
package perfetto.protos;
@@ -45,7 +37,6 @@ package perfetto.protos;
// 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 {
@@ -54,11 +45,9 @@ package perfetto.protos;
// 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
@@ -72,11 +61,8 @@ package perfetto.protos;
// }
// }
// }
-// ```
//
// A pair of TYPE_SLICE_BEGIN and _END events form a slice on the track:
-//
-// ```protobuf
// trace_packet {
// timestamp: 1200
// track_event {
@@ -93,7 +79,7 @@ package perfetto.protos;
// 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.
@@ -101,14 +87,12 @@ package perfetto.protos;
// their default track association) can be emitted as part of a
// TrackEventDefaults message.
//
-// Next reserved id: 13 (up to 15). Next id: 47.
+// Next reserved id: 13 (up to 15). Next id: 32.
message TrackEvent {
// Names of categories of the event. In the client library, categories are a
// way to turn groups of individual events on or off.
- // interned EventCategoryName.
- repeated uint64 category_iids = 3;
- // non-interned variant.
- repeated string categories = 22;
+ repeated uint64 category_iids = 3; // interned EventCategoryName.
+ repeated string categories = 22; // non-interned variant.
// Optional name of the event for its display in trace viewer. May be left
// unspecified for events with typed arguments.
@@ -117,10 +101,8 @@ message TrackEvent {
// changing. Instead, they should use typed arguments to identify the events
// they are interested in.
oneof name_field {
- // interned EventName.
- uint64 name_iid = 10;
- // non-interned variant.
- string name = 23;
+ uint64 name_iid = 10; // interned EventName.
+ string name = 23; // non-interned variant.
}
// TODO(eseckler): Support using binary symbols for category/event names.
@@ -173,10 +155,7 @@ message TrackEvent {
// of a slice, see |extra_counter_values| and |extra_counter_track_uuids|.
// Counter values can optionally be encoded in as delta values (positive or
// negative) on each packet sequence (see CounterIncrementalBase).
- oneof counter_value_field {
- int64 counter_value = 30;
- double double_counter_value = 44;
- }
+ optional int64 counter_value = 30;
// To encode counter values more efficiently, we support attaching additional
// counter values to a TrackEvent of any type. All values will share the same
@@ -195,31 +174,7 @@ message TrackEvent {
repeated uint64 extra_counter_track_uuids = 31;
repeated int64 extra_counter_values = 12;
- // Counter snapshots using floating point instead of integer values.
- repeated uint64 extra_double_counter_track_uuids = 45;
- repeated double extra_double_counter_values = 46;
-
- // IDs of flows originating, passing through, or ending at this event.
- // Flow IDs are global within a trace.
- //
- // A flow connects a sequence of TrackEvents within or across tracks, e.g.
- // an input event may be handled on one thread but cause another event on
- // a different thread - a flow between the two events can associate them.
- //
- // The direction of the flows between events is inferred from the events'
- // timestamps. The earliest event with the same flow ID becomes the source
- // of the flow. Any events thereafter are intermediate steps of the flow,
- // until the flow terminates at the last event with the flow ID.
- //
- // Flows can also be explicitly terminated (see |terminating_flow_ids|), so
- // that the same ID can later be reused for another flow.
- repeated uint64 flow_ids = 36;
-
- // List of flow ids which should terminate on this event, otherwise same as
- // |flow_ids|.
- // Any one flow ID should be either listed as part of |flow_ids| OR
- // |terminating_flow_ids|, not both.
- repeated uint64 terminating_flow_ids = 42;
+ // TODO(eseckler): Add flow event support.
// ---------------------------------------------------------------------------
// TrackEvent arguments:
@@ -238,42 +193,8 @@ message TrackEvent {
optional ChromeLegacyIpc chrome_legacy_ipc = 27;
optional ChromeHistogramSample chrome_histogram_sample = 28;
optional ChromeLatencyInfo chrome_latency_info = 29;
- optional ChromeFrameReporter chrome_frame_reporter = 32;
- optional ChromeApplicationStateInfo chrome_application_state_info = 39;
- optional ChromeRendererSchedulerState chrome_renderer_scheduler_state = 40;
- optional ChromeWindowHandleEventInfo chrome_window_handle_event_info = 41;
- optional ChromeContentSettingsEventInfo chrome_content_settings_event_info =
- 43;
-
- // This field is used only if the source location represents the function that
- // executes during this event.
- oneof source_location_field {
- // Non-interned field.
- SourceLocation source_location = 33;
- // Interned field.
- uint64 source_location_iid = 34;
- }
-
- optional ChromeMessagePump chrome_message_pump = 35;
- optional ChromeMojoEventInfo chrome_mojo_event_info = 38;
-
// New argument types go here :)
- // Extension range for typed events defined externally.
- // See docs/design-docs/extensions.md for more details.
- //
- // Extension support is work-in-progress, in the future the way to reserve a
- // subrange for a particular project will be described here and in the design
- // document linked above.
- //
- // Contact perfetto-dev@googlegroups.com if you are interested in a subrange
- // for your project.
-
- // Extension range for future use.
- extensions 1000 to 9899;
- // Reserved for Perfetto unit and integration tests.
- extensions 9900 to 10000;
-
// ---------------------------------------------------------------------------
// Deprecated / legacy event fields, which will be removed in the future:
// ---------------------------------------------------------------------------
@@ -332,8 +253,7 @@ message TrackEvent {
// Next id: 20.
message LegacyEvent {
// Deprecated, use TrackEvent::name(_iid) instead.
- // interned EventName.
- optional uint64 name_iid = 1;
+ optional uint64 name_iid = 1; // interned EventName.
optional int32 phase = 2;
optional int64 duration_us = 3;
optional int64 thread_duration_us = 4;
@@ -341,8 +261,7 @@ message TrackEvent {
// Elapsed retired instruction count during the event.
optional int64 thread_instruction_delta = 15;
- // used to be |flags|.
- reserved 5;
+ reserved 5; // used to be |flags|.
oneof id {
uint64 unscoped_id = 6;
@@ -395,7 +314,6 @@ message TrackEvent {
message TrackEventDefaults {
optional uint64 track_uuid = 11;
repeated uint64 extra_counter_track_uuids = 31;
- repeated uint64 extra_double_counter_track_uuids = 45;
// TODO(eseckler): Support default values for more TrackEvent fields.
}