TrackEvent class

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:

  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:

  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:

  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: 50.

Inheritance
  • Object
  • GeneratedMessage
  • TrackEvent
Available extensions

Constructors

TrackEvent.new({Iterable<Int64>? categoryIids, Iterable<DebugAnnotation>? debugAnnotations, TrackEvent_Type? type, Int64? nameIid, Int64? trackUuid, Iterable<String>? categories, String? name, Iterable<Int64>? flowIds, Iterable<Int64>? terminatingFlowIds})
factory
TrackEvent.fromBuffer(List<int> i, [ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
factory
TrackEvent.fromJson(String i, [ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY])
factory

Properties

categories → PbList<String>
non-interned variant.
no setter
categoryIids → PbList<Int64>
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.
no setter
debugAnnotations → PbList<DebugAnnotation>
Unstable key/value annotations shown in the trace viewer but not intended for metrics use.
no setter
flowIds → PbList<Int64>
IDs of flows originating, passing through, or ending at this event. Flow IDs are global within a trace.
no setter
hashCode int
Calculates a hash code based on the contents of the protobuf.
no setterinherited
info_ → BuilderInfo
no setteroverride
isFrozen bool
Returns true if this message is marked read-only. Otherwise false.
no setterinherited
name String
non-interned variant.
getter/setter pair
nameIid ↔ Int64
interned EventName.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
terminatingFlowIds → PbList<Int64>
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.
no setter
trackUuid ↔ Int64
Identifies the track of the event. The default value may be overridden using TrackEventDefaults, e.g., to specify the track of the TraceWriter's sequence (in most cases sequence = one thread). If no value is specified here or in TrackEventDefaults, the TrackEvent will be associated with an implicit trace-global track (uuid 0). See TrackDescriptor::uuid.
getter/setter pair
type TrackEvent_Type
getter/setter pair
unknownFields → UnknownFieldSet
no setterinherited

Methods

addExtension(Extension extension, Object? value) → void
Adds an extension field value to a repeated field.
inherited
check() → void
Throws a StateError if the message has required fields without a value.
inherited
clear() → void
Clears all data that was set in this message.
inherited
clearExtension(Extension extension) → void
Clears an extension field and also removes the extension.
inherited
clearField(int tagNumber) → void
Clears the contents of a given field.
inherited
clearName() → void
clearNameField() → void
clearNameIid() → void
clearTrackUuid() → void
clearType() → void
clone() TrackEvent
Creates a deep copy of the fields in this message. (The generated code uses mergeFromMessage.)
override
copyWith(void updates(TrackEvent)) TrackEvent
Apply updates to a copy of this message.
override
createEmptyInstance() TrackEvent
Creates an empty instance of the same message type as this.
override
deepCopy() → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Returns a writable deep copy of this message.
extensionsAreInitialized() bool
inherited
freeze() → GeneratedMessage
Make this message read-only.
inherited
getDefaultForField(int tagNumber) → dynamic
Returns the default value for the given field.
inherited
getExtension(Extension extension) → dynamic
Returns the value of extension.
inherited
getField(int tagNumber) → dynamic
Returns the value of the field associated with tagNumber, or the default value if it is not set.
inherited
getFieldOrNull(int tagNumber) → dynamic
Returns the value of a field, ignoring any defaults.
inherited
getTagNumber(String fieldName) int?
inherited
hasExtension(Extension extension) bool
Returns true if a value of extension is present.
inherited
hasField(int tagNumber) bool
Whether this message has a field associated with tagNumber.
inherited
hasName() bool
hasNameIid() bool
hasRequiredFields() bool
Whether the message has required fields.
inherited
hasTrackUuid() bool
hasType() bool
isInitialized() bool
Whether all required fields in the message and embedded messages are set.
inherited
mergeFromBuffer(List<int> input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges serialized protocol buffer data into this message.
inherited
mergeFromCodedBufferReader(CodedBufferReader input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Same as mergeFromBuffer, but takes a CodedBufferReader input.
inherited
mergeFromJson(String data, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from data, a JSON object, encoded as described by GeneratedMessage.writeToJson.
inherited
mergeFromJsonMap(Map<String, dynamic> json, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from a JSON object represented as a Dart map.
inherited
mergeFromMessage(GeneratedMessage other) → void
Merges the contents of the other into this message.
inherited
mergeFromProto3Json(Object? json, {TypeRegistry typeRegistry = const TypeRegistry.empty(), bool ignoreUnknownFields = false, bool supportNamesWithUnderscores = true, bool permissiveEnums = false}) → void
Merges field values from json, a JSON object using proto3 encoding.
inherited
mergeUnknownFields(UnknownFieldSet unknownFieldSet) → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
rebuild(void updates(T)) → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Apply updates to a copy of this message.
setExtension(Extension extension, Object value) → void
Sets the value of a non-repeated extension field to value.
inherited
setField(int tagNumber, Object value) → void
Sets the value of a field by its tagNumber.
inherited
toBuilder() → GeneratedMessage
Creates a writable, shallow copy of this message.
inherited
toDebugString() String
Returns a String representation of this message.
inherited
toProto3Json({TypeRegistry typeRegistry = const TypeRegistry.empty()}) Object?
Returns an Object representing Proto3 JSON serialization of this.
inherited
toString() String
Returns a String representation of this message.
inherited
whichNameField() TrackEvent_NameField
writeToBuffer() Uint8List
Serialize the message as the protobuf binary format.
inherited
writeToCodedBufferWriter(CodedBufferWriter output) → void
Same as writeToBuffer, but serializes to the given CodedBufferWriter.
inherited
writeToJson() String
Returns a JSON string that encodes this message.
inherited
writeToJsonMap() Map<String, dynamic>
Returns the JSON encoding of this message as a Dart Map.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

create() TrackEvent
createRepeated() → PbList<TrackEvent>
getDefault() TrackEvent