perfetto-protos
Version:
Perfetto protos exposed via protobuf-es for browser and node
358 lines • 15.3 kB
TypeScript
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { AndroidGameInterventionListConfig } from "./android/android_game_intervention_list_config_pb";
import type { AndroidInputEventConfig } from "./android/android_input_event_config_pb";
import type { AndroidLogConfig } from "./android/android_log_config_pb";
import type { AndroidPolledStateConfig } from "./android/android_polled_state_config_pb";
import type { AndroidSystemPropertyConfig } from "./android/android_system_property_config_pb";
import type { AndroidSdkSyspropGuardConfig } from "./android/android_sdk_sysprop_guard_config_pb";
import type { NetworkPacketTraceConfig } from "./android/network_trace_config_pb";
import type { PackagesListConfig } from "./android/packages_list_config_pb";
import type { PixelModemConfig } from "./android/pixel_modem_config_pb";
import type { ProtoLogConfig } from "./android/protolog_config_pb";
import type { SurfaceFlingerLayersConfig } from "./android/surfaceflinger_layers_config_pb";
import type { SurfaceFlingerTransactionsConfig } from "./android/surfaceflinger_transactions_config_pb";
import type { WindowManagerConfig } from "./android/windowmanager_config_pb";
import type { ChromeConfig } from "./chrome/chrome_config_pb";
import type { V8Config } from "./chrome/v8_config_pb";
import type { EtwConfig } from "./etw/etw_config_pb";
import type { ChromiumSystemMetricsConfig } from "./chrome/system_metrics_pb";
import type { FtraceConfig } from "./ftrace/ftrace_config_pb";
import type { GpuCounterConfig } from "./gpu/gpu_counter_config_pb";
import type { VulkanMemoryConfig } from "./gpu/vulkan_memory_config_pb";
import type { InodeFileConfig } from "./inode_file/inode_file_config_pb";
import type { InterceptorConfig } from "./interceptor_config_pb";
import type { AndroidPowerConfig } from "./power/android_power_config_pb";
import type { StatsdTracingConfig } from "./statsd/statsd_tracing_config_pb";
import type { ProcessStatsConfig } from "./process_stats/process_stats_config_pb";
import type { HeapprofdConfig } from "./profiling/heapprofd_config_pb";
import type { JavaHprofConfig } from "./profiling/java_hprof_config_pb";
import type { PerfEventConfig } from "./profiling/perf_event_config_pb";
import type { SysStatsConfig } from "./sys_stats/sys_stats_config_pb";
import type { TestConfig } from "./test_config_pb";
import type { TrackEventConfig } from "./track_event/track_event_config_pb";
import type { SystemInfoConfig } from "./system_info/system_info_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file protos/perfetto/config/data_source_config.proto.
*/
export declare const file_protos_perfetto_config_data_source_config: GenFile;
/**
* The configuration that is passed to each data source when starting tracing.
* Next id: 132
*
* @generated from message perfetto.protos.DataSourceConfig
*/
export type DataSourceConfig = Message<"perfetto.protos.DataSourceConfig"> & {
/**
* Data source unique name, e.g., "linux.ftrace". This must match
* the name passed by the data source when it registers (see
* RegisterDataSource()).
*
* @generated from field: optional string name = 1;
*/
name: string;
/**
* The index of the logging buffer where TracePacket(s) will be stored.
* This field doesn't make a major difference for the Producer(s). The final
* logging buffers, in fact, are completely owned by the Service. We just ask
* the Producer to copy this number into the chunk headers it emits, so that
* the Service can quickly identify the buffer where to move the chunks into
* without expensive lookups on its fastpath.
*
* @generated from field: optional uint32 target_buffer = 2;
*/
targetBuffer: number;
/**
* Set by the service to indicate the duration of the trace.
* DO NOT SET in consumer as this will be overridden by the service.
*
* @generated from field: optional uint32 trace_duration_ms = 3;
*/
traceDurationMs: number;
/**
* If true, |trace_duration_ms| should count also time in suspend. This
* is propagated from TraceConfig.prefer_suspend_clock_for_duration.
*
* @generated from field: optional bool prefer_suspend_clock_for_duration = 122;
*/
preferSuspendClockForDuration: boolean;
/**
* Set by the service to indicate how long it waits after StopDataSource.
* DO NOT SET in consumer as this will be overridden by the service.
*
* @generated from field: optional uint32 stop_timeout_ms = 7;
*/
stopTimeoutMs: number;
/**
* Set by the service to indicate whether this tracing session has extra
* guardrails.
* DO NOT SET in consumer as this will be overridden by the service.
*
* @generated from field: optional bool enable_extra_guardrails = 6;
*/
enableExtraGuardrails: boolean;
/**
* Set by the service to indicate which user initiated this trace.
* DO NOT SET in consumer as this will be overridden by the service.
*
* @generated from field: optional perfetto.protos.DataSourceConfig.SessionInitiator session_initiator = 8;
*/
sessionInitiator: DataSourceConfig_SessionInitiator;
/**
* Set by the service to indicate which tracing session the data source
* belongs to. The intended use case for this is checking if two data sources,
* one of which produces metadata for the other one, belong to the same trace
* session and hence should be linked together.
* This field was introduced in Aug 2018 after Android P.
* DO NOT SET in consumer as this will be overridden by the service.
*
* @generated from field: optional uint64 tracing_session_id = 4;
*/
tracingSessionId: bigint;
/**
* Data source name: linux.ftrace
*
* @generated from field: optional perfetto.protos.FtraceConfig ftrace_config = 100;
*/
ftraceConfig?: FtraceConfig;
/**
* Data source name: linux.inode_file_map
*
* @generated from field: optional perfetto.protos.InodeFileConfig inode_file_config = 102;
*/
inodeFileConfig?: InodeFileConfig;
/**
* Data source name: linux.process_stats
*
* @generated from field: optional perfetto.protos.ProcessStatsConfig process_stats_config = 103;
*/
processStatsConfig?: ProcessStatsConfig;
/**
* Data source name: linux.sys_stats
*
* @generated from field: optional perfetto.protos.SysStatsConfig sys_stats_config = 104;
*/
sysStatsConfig?: SysStatsConfig;
/**
* Data source name: android.heapprofd
* Introduced in Android 10.
*
* @generated from field: optional perfetto.protos.HeapprofdConfig heapprofd_config = 105;
*/
heapprofdConfig?: HeapprofdConfig;
/**
* Data source name: android.java_hprof
* Introduced in Android 11.
*
* @generated from field: optional perfetto.protos.JavaHprofConfig java_hprof_config = 110;
*/
javaHprofConfig?: JavaHprofConfig;
/**
* Data source name: android.power
*
* @generated from field: optional perfetto.protos.AndroidPowerConfig android_power_config = 106;
*/
androidPowerConfig?: AndroidPowerConfig;
/**
* Data source name: android.log
*
* @generated from field: optional perfetto.protos.AndroidLogConfig android_log_config = 107;
*/
androidLogConfig?: AndroidLogConfig;
/**
* TODO(fmayer): Add data source name for this.
*
* @generated from field: optional perfetto.protos.GpuCounterConfig gpu_counter_config = 108;
*/
gpuCounterConfig?: GpuCounterConfig;
/**
* Data source name: android.game_interventions
*
* @generated from field: optional perfetto.protos.AndroidGameInterventionListConfig android_game_intervention_list_config = 116;
*/
androidGameInterventionListConfig?: AndroidGameInterventionListConfig;
/**
* Data source name: android.packages_list
*
* @generated from field: optional perfetto.protos.PackagesListConfig packages_list_config = 109;
*/
packagesListConfig?: PackagesListConfig;
/**
* Data source name: linux.perf
*
* @generated from field: optional perfetto.protos.PerfEventConfig perf_event_config = 111;
*/
perfEventConfig?: PerfEventConfig;
/**
* Data source name: vulkan.memory_tracker
*
* @generated from field: optional perfetto.protos.VulkanMemoryConfig vulkan_memory_config = 112;
*/
vulkanMemoryConfig?: VulkanMemoryConfig;
/**
* Data source name: track_event
*
* @generated from field: optional perfetto.protos.TrackEventConfig track_event_config = 113;
*/
trackEventConfig?: TrackEventConfig;
/**
* Data source name: android.polled_state
*
* @generated from field: optional perfetto.protos.AndroidPolledStateConfig android_polled_state_config = 114;
*/
androidPolledStateConfig?: AndroidPolledStateConfig;
/**
* Data source name: android.system_property
*
* @generated from field: optional perfetto.protos.AndroidSystemPropertyConfig android_system_property_config = 118;
*/
androidSystemPropertyConfig?: AndroidSystemPropertyConfig;
/**
* Data source name: android.statsd
*
* @generated from field: optional perfetto.protos.StatsdTracingConfig statsd_tracing_config = 117;
*/
statsdTracingConfig?: StatsdTracingConfig;
/**
* Data source name: linux.system_info
*
* @generated from field: optional perfetto.protos.SystemInfoConfig system_info_config = 119;
*/
systemInfoConfig?: SystemInfoConfig;
/**
* Chrome is special as it doesn't use the perfetto IPC layer. We want to
* avoid proto serialization and de-serialization there because that would
* just add extra hops on top of the Mojo ser/des. Instead we auto-generate a
* C++ class for it so it can pass around plain C++ objets.
*
* @generated from field: optional perfetto.protos.ChromeConfig chrome_config = 101;
*/
chromeConfig?: ChromeConfig;
/**
* Data source name: code.v8.dev
*
* @generated from field: optional perfetto.protos.V8Config v8_config = 127;
*/
v8Config?: V8Config;
/**
* If an interceptor is specified here, packets for this data source will be
* rerouted to the interceptor instead of the main trace buffer. This can be
* used, for example, to write trace data into ETW or for logging trace points
* to the console.
*
* Note that interceptors are only supported by data sources registered
* through the Perfetto SDK API. Data sources that don't use that API (e.g.,
* traced_probes) may not support interception.
*
* @generated from field: optional perfetto.protos.InterceptorConfig interceptor_config = 115;
*/
interceptorConfig?: InterceptorConfig;
/**
* Data source name: android.network_packets.
* Introduced in Android 14 (U).
*
* @generated from field: optional perfetto.protos.NetworkPacketTraceConfig network_packet_trace_config = 120;
*/
networkPacketTraceConfig?: NetworkPacketTraceConfig;
/**
* Data source name: android.surfaceflinger.layers
*
* @generated from field: optional perfetto.protos.SurfaceFlingerLayersConfig surfaceflinger_layers_config = 121;
*/
surfaceflingerLayersConfig?: SurfaceFlingerLayersConfig;
/**
* Data source name: android.surfaceflinger.transactions
*
* @generated from field: optional perfetto.protos.SurfaceFlingerTransactionsConfig surfaceflinger_transactions_config = 123;
*/
surfaceflingerTransactionsConfig?: SurfaceFlingerTransactionsConfig;
/**
* Data source name: android.sdk_sysprop_guard
* Introduced in Android 14 (U) QPR1.
*
* @generated from field: optional perfetto.protos.AndroidSdkSyspropGuardConfig android_sdk_sysprop_guard_config = 124;
*/
androidSdkSyspropGuardConfig?: AndroidSdkSyspropGuardConfig;
/**
* Data source name: windows.etw
*
* @generated from field: optional perfetto.protos.EtwConfig etw_config = 125;
*/
etwConfig?: EtwConfig;
/**
* Data source name: android.protolog
*
* @generated from field: optional perfetto.protos.ProtoLogConfig protolog_config = 126;
*/
protologConfig?: ProtoLogConfig;
/**
* Data source name: android.input.inputevent
*
* @generated from field: optional perfetto.protos.AndroidInputEventConfig android_input_event_config = 128;
*/
androidInputEventConfig?: AndroidInputEventConfig;
/**
* Data source name: android.pixel.modem
*
* @generated from field: optional perfetto.protos.PixelModemConfig pixel_modem_config = 129;
*/
pixelModemConfig?: PixelModemConfig;
/**
* Data source name: android.windowmanager
*
* @generated from field: optional perfetto.protos.WindowManagerConfig windowmanager_config = 130;
*/
windowmanagerConfig?: WindowManagerConfig;
/**
* Data source name: org.chromium.system_metrics
*
* @generated from field: optional perfetto.protos.ChromiumSystemMetricsConfig chromium_system_metrics = 131;
*/
chromiumSystemMetrics?: ChromiumSystemMetricsConfig;
/**
* This is a fallback mechanism to send a free-form text config to the
* producer. In theory this should never be needed. All the code that
* is part of the platform (i.e. traced service) is supposed to *not* truncate
* the trace config proto and propagate unknown fields. However, if anything
* in the pipeline (client or backend) ends up breaking this forward compat
* plan, this field will become the escape hatch to allow future data sources
* to get some meaningful configuration.
*
* @generated from field: optional string legacy_config = 1000;
*/
legacyConfig: string;
/**
* This field is only used for testing.
*
* @generated from field: optional perfetto.protos.TestConfig for_testing = 1001;
*/
forTesting?: TestConfig;
};
/**
* Describes the message perfetto.protos.DataSourceConfig.
* Use `create(DataSourceConfigSchema)` to create a new message.
*/
export declare const DataSourceConfigSchema: GenMessage<DataSourceConfig>;
/**
* @generated from enum perfetto.protos.DataSourceConfig.SessionInitiator
*/
export declare enum DataSourceConfig_SessionInitiator {
/**
* @generated from enum value: SESSION_INITIATOR_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* This trace was initiated from a trusted system app has DUMP and
* USAGE_STATS permission. This system app is expected to not expose the
* trace to the user of the device.
* This is determined by checking the UID initiating the trace.
*
* @generated from enum value: SESSION_INITIATOR_TRUSTED_SYSTEM = 1;
*/
TRUSTED_SYSTEM = 1
}
/**
* Describes the enum perfetto.protos.DataSourceConfig.SessionInitiator.
*/
export declare const DataSourceConfig_SessionInitiatorSchema: GenEnum<DataSourceConfig_SessionInitiator>;
//# sourceMappingURL=data_source_config_pb.d.ts.map