perfetto-protos
Version:
Perfetto protos exposed via protobuf-es for browser and node
818 lines • 31.5 kB
TypeScript
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { TraceStats } from "../common/trace_stats_pb";
import type { TraceConfig } from "../config/trace_config_pb";
import type { ExtensionDescriptor } from "./extension_descriptor_pb";
import type { AndroidGameInterventionList } from "./android/android_game_intervention_list_pb";
import type { AndroidLogPacket } from "./android/android_log_pb";
import type { AndroidSystemProperty } from "./android/android_system_property_pb";
import type { AndroidCameraFrameEvent, AndroidCameraSessionStats } from "./android/camera_event_pb";
import type { FrameTimelineEvent } from "./android/frame_timeline_event_pb";
import type { GpuMemTotalEvent } from "./android/gpu_mem_event_pb";
import type { GraphicsFrameEvent } from "./android/graphics_frame_event_pb";
import type { InitialDisplayState } from "./android/initial_display_state_pb";
import type { NetworkPacketBundle, NetworkPacketEvent } from "./android/network_trace_pb";
import type { PackagesList } from "./android/packages_list_pb";
import type { PixelModemEvents, PixelModemTokenDatabase } from "./android/pixel_modem_events_pb";
import type { ProtoLogMessage, ProtoLogViewerConfig } from "./android/protolog_pb";
import type { ShellHandlerMappings, ShellTransition } from "./android/shell_transition_pb";
import type { LayersSnapshotProto } from "./android/surfaceflinger_layers_pb";
import type { TransactionTraceEntry } from "./android/surfaceflinger_transactions_pb";
import type { WinscopeExtensions } from "./android/winscope_extensions_pb";
import type { ChromeBenchmarkMetadata } from "./chrome/chrome_benchmark_metadata_pb";
import type { ChromeMetadataPacket } from "./chrome/chrome_metadata_pb";
import type { ChromeEventBundle } from "./chrome/chrome_trace_event_pb";
import type { ChromeTrigger } from "./chrome/chrome_trigger_pb";
import type { V8CodeMove, V8InternalCode, V8JsCode, V8RegExpCode, V8WasmCode } from "./chrome/v8_pb";
import type { ClockSnapshot } from "./clock_snapshot_pb";
import type { EtwTraceEventBundle } from "./etw/etw_event_bundle_pb";
import type { InodeFileMap } from "./filesystem/inode_file_map_pb";
import type { FtraceEventBundle } from "./ftrace/ftrace_event_bundle_pb";
import type { FtraceStats } from "./ftrace/ftrace_stats_pb";
import type { GpuCounterEvent } from "./gpu/gpu_counter_event_pb";
import type { GpuLog } from "./gpu/gpu_log_pb";
import type { GpuRenderStageEvent } from "./gpu/gpu_render_stage_event_pb";
import type { VulkanMemoryEvent } from "./gpu/vulkan_memory_event_pb";
import type { VulkanApiEvent } from "./gpu/vulkan_api_event_pb";
import type { InternedData } from "./interned_data/interned_data_pb";
import type { MemoryTrackerSnapshot } from "./memory_graph_pb";
import type { PerfettoMetatrace } from "./perfetto/perfetto_metatrace_pb";
import type { TracingServiceEvent } from "./perfetto/tracing_service_event_pb";
import type { AndroidEnergyEstimationBreakdown } from "./power/android_energy_estimation_breakdown_pb";
import type { EntityStateResidency } from "./power/android_entity_state_residency_pb";
import type { BatteryCounters } from "./power/battery_counters_pb";
import type { PowerRails } from "./power/power_rails_pb";
import type { StatsdAtom } from "./statsd/statsd_atom_pb";
import type { DeobfuscationMapping } from "./profiling/deobfuscation_pb";
import type { HeapGraph } from "./profiling/heap_graph_pb";
import type { ModuleSymbols, ProfiledFrameSymbols } from "./profiling/profile_common_pb";
import type { PerfSample, ProfilePacket, StreamingAllocation, StreamingFree, StreamingProfilePacket } from "./profiling/profile_packet_pb";
import type { SmapsPacket } from "./profiling/smaps_pb";
import type { ProcessStats } from "./ps/process_stats_pb";
import type { ProcessTree } from "./ps/process_tree_pb";
import type { RemoteClockSync } from "./remote_clock_sync_pb";
import type { SysStats } from "./sys_stats/sys_stats_pb";
import type { SystemInfo } from "./system_info_pb";
import type { CpuInfo } from "./system_info/cpu_info_pb";
import type { TracePacketDefaults } from "./trace_packet_defaults_pb";
import type { ProcessDescriptor } from "./track_event/process_descriptor_pb";
import type { TrackEventRangeOfInterest } from "./track_event/range_of_interest_pb";
import type { ThreadDescriptor } from "./track_event/thread_descriptor_pb";
import type { TrackDescriptor } from "./track_event/track_descriptor_pb";
import type { TrackEvent } from "./track_event/track_event_pb";
import type { TranslationTable } from "./translation/translation_table_pb";
import type { TraceUuid } from "./trace_uuid_pb";
import type { Trigger } from "./trigger_pb";
import type { TestEvent } from "./test_event_pb";
import type { UiState } from "./ui_state_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file protos/perfetto/trace/trace_packet.proto.
*/
export declare const file_protos_perfetto_trace_trace_packet: GenFile;
/**
* 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: 114.
*
* @generated from message perfetto.protos.TracePacket
*/
export type TracePacket = Message<"perfetto.protos.TracePacket"> & {
/**
* The timestamp of the TracePacket.
* By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on
* Android). It can be overridden using a different timestamp_clock_id.
* The clock domain definition in ClockSnapshot can also override:
* - The unit (default: 1ns).
* - The absolute vs delta encoding (default: absolute timestamp).
*
* @generated from field: optional uint64 timestamp = 8;
*/
timestamp: bigint;
/**
* Specifies the ID of the clock used for the TracePacket |timestamp|. Can be
* one of the built-in types from ClockSnapshot::BuiltinClocks, or a
* producer-defined clock id.
* If unspecified and if no default per-sequence value has been provided via
* TracePacketDefaults, it defaults to BuiltinClocks::BOOTTIME.
*
* @generated from field: optional uint32 timestamp_clock_id = 58;
*/
timestampClockId: number;
/**
* @generated from oneof perfetto.protos.TracePacket.data
*/
data: {
/**
* @generated from field: perfetto.protos.ProcessTree process_tree = 2;
*/
value: ProcessTree;
case: "processTree";
} | {
/**
* @generated from field: perfetto.protos.ProcessStats process_stats = 9;
*/
value: ProcessStats;
case: "processStats";
} | {
/**
* @generated from field: perfetto.protos.InodeFileMap inode_file_map = 4;
*/
value: InodeFileMap;
case: "inodeFileMap";
} | {
/**
* @generated from field: perfetto.protos.ChromeEventBundle chrome_events = 5;
*/
value: ChromeEventBundle;
case: "chromeEvents";
} | {
/**
* @generated from field: perfetto.protos.ClockSnapshot clock_snapshot = 6;
*/
value: ClockSnapshot;
case: "clockSnapshot";
} | {
/**
* @generated from field: perfetto.protos.SysStats sys_stats = 7;
*/
value: SysStats;
case: "sysStats";
} | {
/**
* @generated from field: perfetto.protos.TrackEvent track_event = 11;
*/
value: TrackEvent;
case: "trackEvent";
} | {
/**
* @generated from field: perfetto.protos.TraceUuid trace_uuid = 89;
*/
value: TraceUuid;
case: "traceUuid";
} | {
/**
* @generated from field: perfetto.protos.TraceConfig trace_config = 33;
*/
value: TraceConfig;
case: "traceConfig";
} | {
/**
* @generated from field: perfetto.protos.FtraceStats ftrace_stats = 34;
*/
value: FtraceStats;
case: "ftraceStats";
} | {
/**
* @generated from field: perfetto.protos.TraceStats trace_stats = 35;
*/
value: TraceStats;
case: "traceStats";
} | {
/**
* @generated from field: perfetto.protos.ProfilePacket profile_packet = 37;
*/
value: ProfilePacket;
case: "profilePacket";
} | {
/**
* @generated from field: perfetto.protos.StreamingAllocation streaming_allocation = 74;
*/
value: StreamingAllocation;
case: "streamingAllocation";
} | {
/**
* @generated from field: perfetto.protos.StreamingFree streaming_free = 75;
*/
value: StreamingFree;
case: "streamingFree";
} | {
/**
* @generated from field: perfetto.protos.BatteryCounters battery = 38;
*/
value: BatteryCounters;
case: "battery";
} | {
/**
* @generated from field: perfetto.protos.PowerRails power_rails = 40;
*/
value: PowerRails;
case: "powerRails";
} | {
/**
* @generated from field: perfetto.protos.AndroidLogPacket android_log = 39;
*/
value: AndroidLogPacket;
case: "androidLog";
} | {
/**
* @generated from field: perfetto.protos.SystemInfo system_info = 45;
*/
value: SystemInfo;
case: "systemInfo";
} | {
/**
* @generated from field: perfetto.protos.Trigger trigger = 46;
*/
value: Trigger;
case: "trigger";
} | {
/**
* @generated from field: perfetto.protos.ChromeTrigger chrome_trigger = 109;
*/
value: ChromeTrigger;
case: "chromeTrigger";
} | {
/**
* @generated from field: perfetto.protos.PackagesList packages_list = 47;
*/
value: PackagesList;
case: "packagesList";
} | {
/**
* @generated from field: perfetto.protos.ChromeBenchmarkMetadata chrome_benchmark_metadata = 48;
*/
value: ChromeBenchmarkMetadata;
case: "chromeBenchmarkMetadata";
} | {
/**
* @generated from field: perfetto.protos.PerfettoMetatrace perfetto_metatrace = 49;
*/
value: PerfettoMetatrace;
case: "perfettoMetatrace";
} | {
/**
* @generated from field: perfetto.protos.ChromeMetadataPacket chrome_metadata = 51;
*/
value: ChromeMetadataPacket;
case: "chromeMetadata";
} | {
/**
* @generated from field: perfetto.protos.GpuCounterEvent gpu_counter_event = 52;
*/
value: GpuCounterEvent;
case: "gpuCounterEvent";
} | {
/**
* @generated from field: perfetto.protos.GpuRenderStageEvent gpu_render_stage_event = 53;
*/
value: GpuRenderStageEvent;
case: "gpuRenderStageEvent";
} | {
/**
* @generated from field: perfetto.protos.StreamingProfilePacket streaming_profile_packet = 54;
*/
value: StreamingProfilePacket;
case: "streamingProfilePacket";
} | {
/**
* @generated from field: perfetto.protos.HeapGraph heap_graph = 56;
*/
value: HeapGraph;
case: "heapGraph";
} | {
/**
* @generated from field: perfetto.protos.GraphicsFrameEvent graphics_frame_event = 57;
*/
value: GraphicsFrameEvent;
case: "graphicsFrameEvent";
} | {
/**
* @generated from field: perfetto.protos.VulkanMemoryEvent vulkan_memory_event = 62;
*/
value: VulkanMemoryEvent;
case: "vulkanMemoryEvent";
} | {
/**
* @generated from field: perfetto.protos.GpuLog gpu_log = 63;
*/
value: GpuLog;
case: "gpuLog";
} | {
/**
* @generated from field: perfetto.protos.VulkanApiEvent vulkan_api_event = 65;
*/
value: VulkanApiEvent;
case: "vulkanApiEvent";
} | {
/**
* @generated from field: perfetto.protos.PerfSample perf_sample = 66;
*/
value: PerfSample;
case: "perfSample";
} | {
/**
* @generated from field: perfetto.protos.CpuInfo cpu_info = 67;
*/
value: CpuInfo;
case: "cpuInfo";
} | {
/**
* @generated from field: perfetto.protos.SmapsPacket smaps_packet = 68;
*/
value: SmapsPacket;
case: "smapsPacket";
} | {
/**
* @generated from field: perfetto.protos.TracingServiceEvent service_event = 69;
*/
value: TracingServiceEvent;
case: "serviceEvent";
} | {
/**
* @generated from field: perfetto.protos.InitialDisplayState initial_display_state = 70;
*/
value: InitialDisplayState;
case: "initialDisplayState";
} | {
/**
* @generated from field: perfetto.protos.GpuMemTotalEvent gpu_mem_total_event = 71;
*/
value: GpuMemTotalEvent;
case: "gpuMemTotalEvent";
} | {
/**
* @generated from field: perfetto.protos.MemoryTrackerSnapshot memory_tracker_snapshot = 73;
*/
value: MemoryTrackerSnapshot;
case: "memoryTrackerSnapshot";
} | {
/**
* @generated from field: perfetto.protos.FrameTimelineEvent frame_timeline_event = 76;
*/
value: FrameTimelineEvent;
case: "frameTimelineEvent";
} | {
/**
* @generated from field: perfetto.protos.AndroidEnergyEstimationBreakdown android_energy_estimation_breakdown = 77;
*/
value: AndroidEnergyEstimationBreakdown;
case: "androidEnergyEstimationBreakdown";
} | {
/**
* @generated from field: perfetto.protos.UiState ui_state = 78;
*/
value: UiState;
case: "uiState";
} | {
/**
* @generated from field: perfetto.protos.AndroidCameraFrameEvent android_camera_frame_event = 80;
*/
value: AndroidCameraFrameEvent;
case: "androidCameraFrameEvent";
} | {
/**
* @generated from field: perfetto.protos.AndroidCameraSessionStats android_camera_session_stats = 81;
*/
value: AndroidCameraSessionStats;
case: "androidCameraSessionStats";
} | {
/**
* @generated from field: perfetto.protos.TranslationTable translation_table = 82;
*/
value: TranslationTable;
case: "translationTable";
} | {
/**
* @generated from field: perfetto.protos.AndroidGameInterventionList android_game_intervention_list = 83;
*/
value: AndroidGameInterventionList;
case: "androidGameInterventionList";
} | {
/**
* @generated from field: perfetto.protos.StatsdAtom statsd_atom = 84;
*/
value: StatsdAtom;
case: "statsdAtom";
} | {
/**
* @generated from field: perfetto.protos.AndroidSystemProperty android_system_property = 86;
*/
value: AndroidSystemProperty;
case: "androidSystemProperty";
} | {
/**
* @generated from field: perfetto.protos.EntityStateResidency entity_state_residency = 91;
*/
value: EntityStateResidency;
case: "entityStateResidency";
} | {
/**
* Only used in profile packets.
*
* @generated from field: perfetto.protos.ProfiledFrameSymbols profiled_frame_symbols = 55;
*/
value: ProfiledFrameSymbols;
case: "profiledFrameSymbols";
} | {
/**
* @generated from field: perfetto.protos.ModuleSymbols module_symbols = 61;
*/
value: ModuleSymbols;
case: "moduleSymbols";
} | {
/**
* @generated from field: perfetto.protos.DeobfuscationMapping deobfuscation_mapping = 64;
*/
value: DeobfuscationMapping;
case: "deobfuscationMapping";
} | {
/**
* Only used by TrackEvent.
*
* @generated from field: perfetto.protos.TrackDescriptor track_descriptor = 60;
*/
value: TrackDescriptor;
case: "trackDescriptor";
} | {
/**
* Deprecated, use TrackDescriptor instead.
*
* @generated from field: perfetto.protos.ProcessDescriptor process_descriptor = 43;
*/
value: ProcessDescriptor;
case: "processDescriptor";
} | {
/**
* Deprecated, use TrackDescriptor instead.
*
* @generated from field: perfetto.protos.ThreadDescriptor thread_descriptor = 44;
*/
value: ThreadDescriptor;
case: "threadDescriptor";
} | {
/**
* Events from the Linux kernel ftrace infrastructure.
*
* @generated from field: perfetto.protos.FtraceEventBundle ftrace_events = 1;
*/
value: FtraceEventBundle;
case: "ftraceEvents";
} | {
/**
* This field is emitted at periodic intervals (~10s) and
* contains always the binary representation of the UUID
* {82477a76-b28d-42ba-81dc-33326d57a079}. This is used to be able to
* efficiently partition long traces without having to fully parse them.
*
* @generated from field: bytes synchronization_marker = 36;
*/
value: Uint8Array;
case: "synchronizationMarker";
} | {
/**
* Zero or more proto encoded trace packets compressed using deflate.
* Each compressed_packets TracePacket (including the two field ids and
* sizes) should be less than 512KB.
*
* @generated from field: bytes compressed_packets = 50;
*/
value: Uint8Array;
case: "compressedPackets";
} | {
/**
* Data sources can extend the trace proto with custom extension protos (see
* docs/design-docs/extensions.md). When they do that, the descriptor of
* their extension proto descriptor is serialized in this packet. This
* allows trace_processor to deserialize extended messages using reflection
* even if the extension proto is not checked in the Perfetto repo.
*
* @generated from field: perfetto.protos.ExtensionDescriptor extension_descriptor = 72;
*/
value: ExtensionDescriptor;
case: "extensionDescriptor";
} | {
/**
* Represents a single packet sent or received by the network.
*
* @generated from field: perfetto.protos.NetworkPacketEvent network_packet = 88;
*/
value: NetworkPacketEvent;
case: "networkPacket";
} | {
/**
* Represents one or more packets sent or received by the network.
*
* @generated from field: perfetto.protos.NetworkPacketBundle network_packet_bundle = 92;
*/
value: NetworkPacketBundle;
case: "networkPacketBundle";
} | {
/**
* The "range of interest" for track events. See the message definition
* comments for more details.
*
* @generated from field: perfetto.protos.TrackEventRangeOfInterest track_event_range_of_interest = 90;
*/
value: TrackEventRangeOfInterest;
case: "trackEventRangeOfInterest";
} | {
/**
* Winscope traces
*
* @generated from field: perfetto.protos.LayersSnapshotProto surfaceflinger_layers_snapshot = 93;
*/
value: LayersSnapshotProto;
case: "surfaceflingerLayersSnapshot";
} | {
/**
* @generated from field: perfetto.protos.TransactionTraceEntry surfaceflinger_transactions = 94;
*/
value: TransactionTraceEntry;
case: "surfaceflingerTransactions";
} | {
/**
* @generated from field: perfetto.protos.ShellTransition shell_transition = 96;
*/
value: ShellTransition;
case: "shellTransition";
} | {
/**
* @generated from field: perfetto.protos.ShellHandlerMappings shell_handler_mappings = 97;
*/
value: ShellHandlerMappings;
case: "shellHandlerMappings";
} | {
/**
* @generated from field: perfetto.protos.ProtoLogMessage protolog_message = 104;
*/
value: ProtoLogMessage;
case: "protologMessage";
} | {
/**
* @generated from field: perfetto.protos.ProtoLogViewerConfig protolog_viewer_config = 105;
*/
value: ProtoLogViewerConfig;
case: "protologViewerConfig";
} | {
/**
* @generated from field: perfetto.protos.WinscopeExtensions winscope_extensions = 112;
*/
value: WinscopeExtensions;
case: "winscopeExtensions";
} | {
/**
* Events from the Windows etw infrastructure.
*
* @generated from field: perfetto.protos.EtwTraceEventBundle etw_events = 95;
*/
value: EtwTraceEventBundle;
case: "etwEvents";
} | {
/**
* @generated from field: perfetto.protos.V8JsCode v8_js_code = 99;
*/
value: V8JsCode;
case: "v8JsCode";
} | {
/**
* @generated from field: perfetto.protos.V8InternalCode v8_internal_code = 100;
*/
value: V8InternalCode;
case: "v8InternalCode";
} | {
/**
* @generated from field: perfetto.protos.V8WasmCode v8_wasm_code = 101;
*/
value: V8WasmCode;
case: "v8WasmCode";
} | {
/**
* @generated from field: perfetto.protos.V8RegExpCode v8_reg_exp_code = 102;
*/
value: V8RegExpCode;
case: "v8RegExpCode";
} | {
/**
* @generated from field: perfetto.protos.V8CodeMove v8_code_move = 103;
*/
value: V8CodeMove;
case: "v8CodeMove";
} | {
/**
* Clock synchronization with remote machines.
*
* @generated from field: perfetto.protos.RemoteClockSync remote_clock_sync = 107;
*/
value: RemoteClockSync;
case: "remoteClockSync";
} | {
/**
* @generated from field: perfetto.protos.PixelModemEvents pixel_modem_events = 110;
*/
value: PixelModemEvents;
case: "pixelModemEvents";
} | {
/**
* @generated from field: perfetto.protos.PixelModemTokenDatabase pixel_modem_token_database = 111;
*/
value: PixelModemTokenDatabase;
case: "pixelModemTokenDatabase";
} | {
/**
* @generated from field: perfetto.protos.Trigger clone_snapshot_trigger = 113;
*/
value: Trigger;
case: "cloneSnapshotTrigger";
} | {
/**
* This field is only used for testing.
* In previous versions of this proto this field had the id 268435455
* This caused many problems:
* - protozero decoder does not handle field ids larger than 999.
* - old versions of protoc produce Java bindings with syntax errors when
* the field id is large enough.
*
* @generated from field: perfetto.protos.TestEvent for_testing = 900;
*/
value: TestEvent;
case: "forTesting";
} | {
case: undefined;
value?: undefined;
};
/**
* Trusted user id of the producer which generated this packet. Keep in sync
* with TrustedPacket.trusted_uid.
*
* TODO(eseckler): Emit this field in a PacketSequenceDescriptor message
* instead.
*
* @generated from oneof perfetto.protos.TracePacket.optional_trusted_uid
*/
optionalTrustedUid: {
/**
* @generated from field: int32 trusted_uid = 3;
*/
value: number;
case: "trustedUid";
} | {
case: undefined;
value?: undefined;
};
/**
* Service-assigned identifier of the packet sequence this packet belongs to.
* Uniquely identifies a producer + writer pair within the tracing session. A
* value of zero denotes an invalid ID. Keep in sync with
* TrustedPacket.trusted_packet_sequence_id.
*
* @generated from oneof perfetto.protos.TracePacket.optional_trusted_packet_sequence_id
*/
optionalTrustedPacketSequenceId: {
/**
* @generated from field: uint32 trusted_packet_sequence_id = 10;
*/
value: number;
case: "trustedPacketSequenceId";
} | {
case: undefined;
value?: undefined;
};
/**
* Trusted process id of the producer which generated this packet, written by
* the service.
*
* @generated from field: optional int32 trusted_pid = 79;
*/
trustedPid: number;
/**
* Incrementally emitted interned data, valid only on the packet's sequence
* (packets with the same |trusted_packet_sequence_id|). The writer will
* usually emit new interned data in the same TracePacket that first refers to
* it (since the last reset of interning state). It may also be emitted
* proactively in advance of referring to them in later packets.
*
* @generated from field: optional perfetto.protos.InternedData interned_data = 12;
*/
internedData?: InternedData;
/**
* @generated from field: optional uint32 sequence_flags = 13;
*/
sequenceFlags: number;
/**
* DEPRECATED. Moved to SequenceFlags::SEQ_INCREMENTAL_STATE_CLEARED.
*
* @generated from field: optional bool incremental_state_cleared = 41;
*/
incrementalStateCleared: boolean;
/**
* Default values for fields of later TracePackets emitted on this packet's
* sequence (TracePackets with the same |trusted_packet_sequence_id|).
* It must be reemitted when incremental state is cleared (see
* |incremental_state_cleared|).
* Requires that any future packet emitted on the same sequence specifies
* the SEQ_NEEDS_INCREMENTAL_STATE flag.
* TracePacketDefaults always override the global defaults for any future
* packet on this sequence (regardless of SEQ_NEEDS_INCREMENTAL_STATE).
*
* @generated from field: optional perfetto.protos.TracePacketDefaults trace_packet_defaults = 59;
*/
tracePacketDefaults?: TracePacketDefaults;
/**
* Flag set by the service if, for the current packet sequence (see
* |trusted_packet_sequence_id|), either:
* * this is the first packet, or
* * one or multiple packets were dropped since the last packet that the
* consumer read from the sequence. This can happen if chunks in the trace
* buffer are overridden before the consumer could read them when the trace
* is configured in ring buffer mode.
*
* When packet loss occurs, incrementally emitted data (including interned
* data) on the sequence should be considered invalid up until the next packet
* with SEQ_INCREMENTAL_STATE_CLEARED set.
*
* @generated from field: optional bool previous_packet_dropped = 42;
*/
previousPacketDropped: boolean;
/**
* Flag set by a producer (starting from SDK v29) if, for the current packet
* sequence (see |trusted_packet_sequence_id|), this is the first packet.
*
* This flag can be used for distinguishing the two situations when
* processing the trace:
* 1. There are no prior events for the sequence because of data loss, e.g.
* due to ring buffer wrapping.
* 2. There are no prior events for the sequence because it didn't start
* before this packet (= there's definitely no preceding data loss).
*
* Given that older SDK versions do not support this flag, this flag not
* being present for a particular sequence does not necessarily imply data
* loss.
*
* @generated from field: optional bool first_packet_on_sequence = 87;
*/
firstPacketOnSequence: boolean;
/**
* The machine ID for identifying trace packets in a multi-machine tracing
* session. Is emitted by the tracing service for producers running on a
* remote host (e.g. a VM guest). For more context: go/crosetto-vm-tracing.
*
* @generated from field: optional uint32 machine_id = 98;
*/
machineId: number;
};
/**
* Describes the message perfetto.protos.TracePacket.
* Use `create(TracePacketSchema)` to create a new message.
*/
export declare const TracePacketSchema: GenMessage<TracePacket>;
/**
* @generated from enum perfetto.protos.TracePacket.SequenceFlags
*/
export declare enum TracePacket_SequenceFlags {
/**
* @generated from enum value: SEQ_UNSPECIFIED = 0;
*/
SEQ_UNSPECIFIED = 0,
/**
* Set by the writer to indicate that it will re-emit any incremental data
* for the packet's sequence before referring to it again. This includes
* interned data as well as periodically emitted data like
* Process/ThreadDescriptors. This flag only affects the current packet
* sequence (see |trusted_packet_sequence_id|).
*
* When set, this TracePacket and subsequent TracePackets on the same
* sequence will not refer to any incremental data emitted before this
* TracePacket. For example, previously emitted interned data will be
* re-emitted if it is referred to again.
*
* When the reader detects packet loss (|previous_packet_dropped|), it needs
* to skip packets in the sequence until the next one with this flag set, to
* ensure intact incremental data.
*
* @generated from enum value: SEQ_INCREMENTAL_STATE_CLEARED = 1;
*/
SEQ_INCREMENTAL_STATE_CLEARED = 1,
/**
* This packet requires incremental state, such as TracePacketDefaults or
* InternedData, to be parsed correctly. The trace reader should skip this
* packet if incremental state is not valid on this sequence, i.e. if no
* packet with the SEQ_INCREMENTAL_STATE_CLEARED flag has been seen on the
* current |trusted_packet_sequence_id|.
*
* @generated from enum value: SEQ_NEEDS_INCREMENTAL_STATE = 2;
*/
SEQ_NEEDS_INCREMENTAL_STATE = 2
}
/**
* Describes the enum perfetto.protos.TracePacket.SequenceFlags.
*/
export declare const TracePacket_SequenceFlagsSchema: GenEnum<TracePacket_SequenceFlags>;
//# sourceMappingURL=trace_packet_pb.d.ts.map