perfetto-protos
Version:
Perfetto protos exposed via protobuf-es for browser and node
1,156 lines (1,041 loc) • 58.1 kB
text/typescript
//
// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/config/trace_config.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { BuiltinClock } from "../common/builtin_clock_pb";
import { file_protos_perfetto_common_builtin_clock } from "../common/builtin_clock_pb";
import type { DataSourceConfig } from "./data_source_config_pb";
import { file_protos_perfetto_config_data_source_config } from "./data_source_config_pb";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file protos/perfetto/config/trace_config.proto.
*/
export const file_protos_perfetto_config_trace_config: GenFile = /*@__PURE__*/
fileDesc("Cilwcm90b3MvcGVyZmV0dG8vY29uZmlnL3RyYWNlX2NvbmZpZy5wcm90bxIPcGVyZmV0dG8ucHJvdG9zIu0jCgtUcmFjZUNvbmZpZxI6CgdidWZmZXJzGAEgAygLMikucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLkJ1ZmZlckNvbmZpZxI9CgxkYXRhX3NvdXJjZXMYAiADKAsyJy5wZXJmZXR0by5wcm90b3MuVHJhY2VDb25maWcuRGF0YVNvdXJjZRJMChRidWlsdGluX2RhdGFfc291cmNlcxgUIAEoCzIuLnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5CdWlsdGluRGF0YVNvdXJjZRITCgtkdXJhdGlvbl9tcxgDIAEoDRIpCiFwcmVmZXJfc3VzcGVuZF9jbG9ja19mb3JfZHVyYXRpb24YJCABKAgSHwoXZW5hYmxlX2V4dHJhX2d1YXJkcmFpbHMYBCABKAgSSQoNbG9ja2Rvd25fbW9kZRgFIAEoDjIyLnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5Mb2NrZG93bk1vZGVPcGVyYXRpb24SPgoJcHJvZHVjZXJzGAYgAygLMisucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLlByb2R1Y2VyQ29uZmlnEkQKD3N0YXRzZF9tZXRhZGF0YRgHIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5TdGF0c2RNZXRhZGF0YRIXCg93cml0ZV9pbnRvX2ZpbGUYCCABKAgSEwoLb3V0cHV0X3BhdGgYHSABKAkSHAoUZmlsZV93cml0ZV9wZXJpb2RfbXMYCSABKA0SGwoTbWF4X2ZpbGVfc2l6ZV9ieXRlcxgKIAEoBBJMChNndWFyZHJhaWxfb3ZlcnJpZGVzGAsgASgLMi8ucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLkd1YXJkcmFpbE92ZXJyaWRlcxIWCg5kZWZlcnJlZF9zdGFydBgMIAEoCBIXCg9mbHVzaF9wZXJpb2RfbXMYDSABKA0SGAoQZmx1c2hfdGltZW91dF9tcxgOIAEoDRIjChtkYXRhX3NvdXJjZV9zdG9wX3RpbWVvdXRfbXMYFyABKA0SFgoObm90aWZ5X3RyYWNldXIYECABKAgSFwoPYnVncmVwb3J0X3Njb3JlGB4gASgFEhoKEmJ1Z3JlcG9ydF9maWxlbmFtZRgmIAEoCRJCCg50cmlnZ2VyX2NvbmZpZxgRIAEoCzIqLnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5UcmlnZ2VyQ29uZmlnEhkKEWFjdGl2YXRlX3RyaWdnZXJzGBIgAygJElUKGGluY3JlbWVudGFsX3N0YXRlX2NvbmZpZxgVIAEoCzIzLnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5JbmNyZW1lbnRhbFN0YXRlQ29uZmlnEiQKGGFsbG93X3VzZXJfYnVpbGRfdHJhY2luZxgTIAEoCEICGAESGwoTdW5pcXVlX3Nlc3Npb25fbmFtZRgWIAEoCRJGChBjb21wcmVzc2lvbl90eXBlGBggASgOMiwucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLkNvbXByZXNzaW9uVHlwZRJRChZpbmNpZGVudF9yZXBvcnRfY29uZmlnGBkgASgLMjEucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLkluY2lkZW50UmVwb3J0Q29uZmlnEkIKDnN0YXRzZF9sb2dnaW5nGB8gASgOMioucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLlN0YXRzZExvZ2dpbmcSGgoOdHJhY2VfdXVpZF9tc2IYGyABKANCAhgBEhoKDnRyYWNlX3V1aWRfbHNiGBwgASgDQgIYARI+Cgx0cmFjZV9maWx0ZXIYISABKAsyKC5wZXJmZXR0by5wcm90b3MuVHJhY2VDb25maWcuVHJhY2VGaWx0ZXISTwoVYW5kcm9pZF9yZXBvcnRfY29uZmlnGCIgASgLMjAucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLkFuZHJvaWRSZXBvcnRDb25maWcSTgoVY21kX3RyYWNlX3N0YXJ0X2RlbGF5GCMgASgLMi8ucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLkNtZFRyYWNlU3RhcnREZWxheRJJChJzZXNzaW9uX3NlbWFwaG9yZXMYJyADKAsyLS5wZXJmZXR0by5wcm90b3MuVHJhY2VDb25maWcuU2Vzc2lvblNlbWFwaG9yZRrqAQoMQnVmZmVyQ29uZmlnEg8KB3NpemVfa2IYASABKA0SSQoLZmlsbF9wb2xpY3kYBCABKA4yNC5wZXJmZXR0by5wcm90b3MuVHJhY2VDb25maWcuQnVmZmVyQ29uZmlnLkZpbGxQb2xpY3kSGQoRdHJhbnNmZXJfb25fY2xvbmUYBSABKAgSGgoSY2xlYXJfYmVmb3JlX2Nsb25lGAYgASgIIjsKCkZpbGxQb2xpY3kSDwoLVU5TUEVDSUZJRUQQABIPCgtSSU5HX0JVRkZFUhABEgsKB0RJU0NBUkQQAkoECAIQA0oECAMQBBqBAQoKRGF0YVNvdXJjZRIxCgZjb25maWcYASABKAsyIS5wZXJmZXR0by5wcm90b3MuRGF0YVNvdXJjZUNvbmZpZxIcChRwcm9kdWNlcl9uYW1lX2ZpbHRlchgCIAMoCRIiChpwcm9kdWNlcl9uYW1lX3JlZ2V4X2ZpbHRlchgDIAMoCRq/AgoRQnVpbHRpbkRhdGFTb3VyY2USIgoaZGlzYWJsZV9jbG9ja19zbmFwc2hvdHRpbmcYASABKAgSHAoUZGlzYWJsZV90cmFjZV9jb25maWcYAiABKAgSGwoTZGlzYWJsZV9zeXN0ZW1faW5mbxgDIAEoCBIeChZkaXNhYmxlX3NlcnZpY2VfZXZlbnRzGAQgASgIEjoKE3ByaW1hcnlfdHJhY2VfY2xvY2sYBSABKA4yHS5wZXJmZXR0by5wcm90b3MuQnVpbHRpbkNsb2NrEhwKFHNuYXBzaG90X2ludGVydmFsX21zGAYgASgNEikKIXByZWZlcl9zdXNwZW5kX2Nsb2NrX2Zvcl9zbmFwc2hvdBgHIAEoCBImCh5kaXNhYmxlX2NodW5rX3VzYWdlX2hpc3RvZ3JhbXMYCCABKAgaUgoOUHJvZHVjZXJDb25maWcSFQoNcHJvZHVjZXJfbmFtZRgBIAEoCRITCgtzaG1fc2l6ZV9rYhgCIAEoDRIUCgxwYWdlX3NpemVfa2IYAyABKA0ajgEKDlN0YXRzZE1ldGFkYXRhEhsKE3RyaWdnZXJpbmdfYWxlcnRfaWQYASABKAMSHQoVdHJpZ2dlcmluZ19jb25maWdfdWlkGAIgASgFEhwKFHRyaWdnZXJpbmdfY29uZmlnX2lkGAMgASgDEiIKGnRyaWdnZXJpbmdfc3Vic2NyaXB0aW9uX2lkGAQgASgDGl4KEkd1YXJkcmFpbE92ZXJyaWRlcxIkChhtYXhfdXBsb2FkX3Blcl9kYXlfYnl0ZXMYASABKARCAhgBEiIKGm1heF90cmFjaW5nX2J1ZmZlcl9zaXplX2tiGAIgASgNGsoDCg1UcmlnZ2VyQ29uZmlnEkwKDHRyaWdnZXJfbW9kZRgBIAEoDjI2LnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5UcmlnZ2VyQ29uZmlnLlRyaWdnZXJNb2RlEicKH3VzZV9jbG9uZV9zbmFwc2hvdF9pZl9hdmFpbGFibGUYBSABKAgSRAoIdHJpZ2dlcnMYAiADKAsyMi5wZXJmZXR0by5wcm90b3MuVHJhY2VDb25maWcuVHJpZ2dlckNvbmZpZy5UcmlnZ2VyEhoKEnRyaWdnZXJfdGltZW91dF9tcxgDIAEoDRp7CgdUcmlnZ2VyEgwKBG5hbWUYASABKAkSGwoTcHJvZHVjZXJfbmFtZV9yZWdleBgCIAEoCRIVCg1zdG9wX2RlbGF5X21zGAMgASgNEhQKDG1heF9wZXJfMjRfaBgEIAEoDRIYChBza2lwX3Byb2JhYmlsaXR5GAUgASgBIl0KC1RyaWdnZXJNb2RlEg8KC1VOU1BFQ0lGSUVEEAASEQoNU1RBUlRfVFJBQ0lORxABEhAKDFNUT1BfVFJBQ0lORxACEhIKDkNMT05FX1NOQVBTSE9UEAQiBAgDEANKBAgEEAUaMQoWSW5jcmVtZW50YWxTdGF0ZUNvbmZpZxIXCg9jbGVhcl9wZXJpb2RfbXMYASABKA0alwEKFEluY2lkZW50UmVwb3J0Q29uZmlnEhsKE2Rlc3RpbmF0aW9uX3BhY2thZ2UYASABKAkSGQoRZGVzdGluYXRpb25fY2xhc3MYAiABKAkSFQoNcHJpdmFjeV9sZXZlbBgDIAEoBRIWCg5za2lwX2luY2lkZW50ZBgFIAEoCBIYCgxza2lwX2Ryb3Bib3gYBCABKAhCAhgBGtUECgtUcmFjZUZpbHRlchIQCghieXRlY29kZRgBIAEoDBITCgtieXRlY29kZV92MhgCIAEoDBJXChNzdHJpbmdfZmlsdGVyX2NoYWluGAMgASgLMjoucGVyZmV0dG8ucHJvdG9zLlRyYWNlQ29uZmlnLlRyYWNlRmlsdGVyLlN0cmluZ0ZpbHRlckNoYWluGpoBChBTdHJpbmdGaWx0ZXJSdWxlEksKBnBvbGljeRgBIAEoDjI7LnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5UcmFjZUZpbHRlci5TdHJpbmdGaWx0ZXJQb2xpY3kSFQoNcmVnZXhfcGF0dGVybhgCIAEoCRIiChphdHJhY2VfcGF5bG9hZF9zdGFydHNfd2l0aBgDIAEoCRpdChFTdHJpbmdGaWx0ZXJDaGFpbhJICgVydWxlcxgBIAMoCzI5LnBlcmZldHRvLnByb3Rvcy5UcmFjZUNvbmZpZy5UcmFjZUZpbHRlci5TdHJpbmdGaWx0ZXJSdWxlIskBChJTdHJpbmdGaWx0ZXJQb2xpY3kSEwoPU0ZQX1VOU1BFQ0lGSUVEEAASGwoXU0ZQX01BVENIX1JFREFDVF9HUk9VUFMQARIiCh5TRlBfQVRSQUNFX01BVENIX1JFREFDVF9HUk9VUFMQAhITCg9TRlBfTUFUQ0hfQlJFQUsQAxIaChZTRlBfQVRSQUNFX01BVENIX0JSRUFLEAQSLAooU0ZQX0FUUkFDRV9SRVBFQVRFRF9TRUFSQ0hfUkVEQUNUX0dST1VQUxAFGpcBChNBbmRyb2lkUmVwb3J0Q29uZmlnEiAKGHJlcG9ydGVyX3NlcnZpY2VfcGFja2FnZRgBIAEoCRIeChZyZXBvcnRlcl9zZXJ2aWNlX2NsYXNzGAIgASgJEhMKC3NraXBfcmVwb3J0GAMgASgIEikKIXVzZV9waXBlX2luX2ZyYW1ld29ya19mb3JfdGVzdGluZxgEIAEoCBpAChJDbWRUcmFjZVN0YXJ0RGVsYXkSFAoMbWluX2RlbGF5X21zGAEgASgNEhQKDG1heF9kZWxheV9tcxgCIAEoDRpBChBTZXNzaW9uU2VtYXBob3JlEgwKBG5hbWUYASABKAkSHwoXbWF4X290aGVyX3Nlc3Npb25fY291bnQYAiABKAQiVQoVTG9ja2Rvd25Nb2RlT3BlcmF0aW9uEhYKEkxPQ0tET1dOX1VOQ0hBTkdFRBAAEhIKDkxPQ0tET1dOX0NMRUFSEAESEAoMTE9DS0RPV05fU0VUEAIiUQoPQ29tcHJlc3Npb25UeXBlEiAKHENPTVBSRVNTSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIcChhDT01QUkVTU0lPTl9UWVBFX0RFRkxBVEUQASJoCg1TdGF0c2RMb2dnaW5nEh4KGlNUQVRTRF9MT0dHSU5HX1VOU1BFQ0lGSUVEEAASGgoWU1RBVFNEX0xPR0dJTkdfRU5BQkxFRBABEhsKF1NUQVRTRF9MT0dHSU5HX0RJU0FCTEVEEAJKBAgPEBBKBAglECZKBAgaEBtKBAggECE", [file_protos_perfetto_common_builtin_clock, file_protos_perfetto_config_data_source_config]);
/**
* The overall config that is used when starting a new tracing session through
* ProducerPort::StartTracing().
* It contains the general config for the logging buffer(s) and the configs for
* all the data source being enabled.
*
* Next id: 40.
*
* @generated from message perfetto.protos.TraceConfig
*/
export type TraceConfig = Message<"perfetto.protos.TraceConfig"> & {
/**
* @generated from field: repeated perfetto.protos.TraceConfig.BufferConfig buffers = 1;
*/
buffers: TraceConfig_BufferConfig[];
/**
* @generated from field: repeated perfetto.protos.TraceConfig.DataSource data_sources = 2;
*/
dataSources: TraceConfig_DataSource[];
/**
* @generated from field: optional perfetto.protos.TraceConfig.BuiltinDataSource builtin_data_sources = 20;
*/
builtinDataSources?: TraceConfig_BuiltinDataSource;
/**
* If specified, the trace will be stopped |duration_ms| after starting.
* This does *not* count the time the system is suspended, so we will run
* for duration_ms of system activity, not wall time.
*
* However in case of traces with triggers, see
* TriggerConfig.trigger_timeout_ms instead.
*
* @generated from field: optional uint32 duration_ms = 3;
*/
durationMs: number;
/**
* If true, tries to use CLOCK_BOOTTIME for duration_ms rather than
* CLOCK_MONOTONIC (which doesn't count time in suspend). Supported only on
* Linux/Android, no-op on other platforms. This is used when dealing with
* long (e.g. 24h) traces, where suspend can inflate them to weeks of
* wall-time, making them more likely to hit device reboots (and hence loss).
* This option also changes consistently the semantic of
* TriggerConfig.stop_delay_ms.
*
* @generated from field: optional bool prefer_suspend_clock_for_duration = 36;
*/
preferSuspendClockForDuration: boolean;
/**
* This is set when --dropbox is passed to the Perfetto command line client
* and enables guardrails that limit resource usage for traces requested
* by statsd.
*
* @generated from field: optional bool enable_extra_guardrails = 4;
*/
enableExtraGuardrails: boolean;
/**
* Reject producers that are not running under the same UID as the tracing
* service.
*
* @generated from field: optional perfetto.protos.TraceConfig.LockdownModeOperation lockdown_mode = 5;
*/
lockdownMode: TraceConfig_LockdownModeOperation;
/**
* @generated from field: repeated perfetto.protos.TraceConfig.ProducerConfig producers = 6;
*/
producers: TraceConfig_ProducerConfig[];
/**
* Statsd-specific metadata.
*
* @generated from field: optional perfetto.protos.TraceConfig.StatsdMetadata statsd_metadata = 7;
*/
statsdMetadata?: TraceConfig_StatsdMetadata;
/**
* When true && |output_path| is empty, the EnableTracing() request must
* provide a file descriptor. The service will then periodically read packets
* out of the trace buffer and store it into the passed file.
* If |output_path| is not empty no fd should be passed, the service
* will create a new file and write into that (see comment below).
*
* @generated from field: optional bool write_into_file = 8;
*/
writeIntoFile: boolean;
/**
* This must point to a non-existing file. If the file exists the service
* will NOT overwrite and will fail instead as a security precaution.
* On Android, when this is used with the system traced, the path must be
* within /data/misc/perfetto-traces/ or the trace will fail.
* This option has been introduced in Android R. Before R write_into_file
* can be used only with the "pass a file descriptor over IPC" mode.
*
* @generated from field: optional string output_path = 29;
*/
outputPath: string;
/**
* Optional. If non-zero tunes the write period. A min value of 100ms is
* enforced (i.e. smaller values are ignored).
*
* @generated from field: optional uint32 file_write_period_ms = 9;
*/
fileWritePeriodMs: number;
/**
* Optional. When non zero the periodic write stops once at most X bytes
* have been written into the file. Tracing is disabled when this limit is
* reached, even if |duration_ms| has not been reached yet.
*
* @generated from field: optional uint64 max_file_size_bytes = 10;
*/
maxFileSizeBytes: bigint;
/**
* @generated from field: optional perfetto.protos.TraceConfig.GuardrailOverrides guardrail_overrides = 11;
*/
guardrailOverrides?: TraceConfig_GuardrailOverrides;
/**
* When true, data sources are not started until an explicit call to
* StartTracing() on the consumer port. This is to support early
* initialization and fast trace triggering. This can be used only when the
* Consumer explicitly triggers the StartTracing() method.
* This should not be used in a remote trace config via statsd, doing so will
* result in a hung trace session.
*
* @generated from field: optional bool deferred_start = 12;
*/
deferredStart: boolean;
/**
* When set, it periodically issues a Flush() to all data source, forcing them
* to commit their data into the tracing service. This can be used for
* quasi-real-time streaming mode and to guarantee some partial ordering of
* events in the trace in windows of X ms.
*
* @generated from field: optional uint32 flush_period_ms = 13;
*/
flushPeriodMs: number;
/**
* Wait for this long for producers to acknowledge flush requests.
* Default 5s.
*
* @generated from field: optional uint32 flush_timeout_ms = 14;
*/
flushTimeoutMs: number;
/**
* Wait for this long for producers to acknowledge stop requests.
* Default 5s.
*
* @generated from field: optional uint32 data_source_stop_timeout_ms = 23;
*/
dataSourceStopTimeoutMs: number;
/**
* Android-only. If set, sends an intent to the Traceur system app when the
* trace ends to notify it about the trace readiness.
*
* @generated from field: optional bool notify_traceur = 16;
*/
notifyTraceur: boolean;
/**
* This field was introduced in Android S.
* Android-only. If set to a value > 0, marks the trace session as a candidate
* for being attached to a bugreport. This field effectively acts as a z-index
* for bugreports. When Android's dumpstate runs perfetto
* --save-for-bugreport, traced will pick the tracing session with the highest
* score (score <= 0 is ignored) and:
* On Android S, T: will steal its contents, save the trace into
* a known path and stop prematurely.
* On Android U+: will create a read-only snapshot and save that into a known
* path, without stoppin the original tracing session.
* When this field is set the tracing session becomes eligible to be cloned
* by other UIDs.
*
* @generated from field: optional int32 bugreport_score = 30;
*/
bugreportScore: number;
/**
* When set, defines name of the file that will be saved under
* /data/misc/perfetto-traces/bugreport/ when using --save-all-for-bugreport.
* If omitted, traces will be named systrace.pftrace, systrace_1.pftrace, etc,
* starting from the highest `bugreport_score`.
* Introduced in v42 / Android V.
*
* @generated from field: optional string bugreport_filename = 38;
*/
bugreportFilename: string;
/**
* @generated from field: optional perfetto.protos.TraceConfig.TriggerConfig trigger_config = 17;
*/
triggerConfig?: TraceConfig_TriggerConfig;
/**
* When this is non-empty the perfetto command line tool will ignore the rest
* of this TraceConfig and instead connect to the perfetto service as a
* producer and send these triggers, potentially stopping or starting traces
* that were previous configured to use a TriggerConfig.
*
* @generated from field: repeated string activate_triggers = 18;
*/
activateTriggers: string[];
/**
* @generated from field: optional perfetto.protos.TraceConfig.IncrementalStateConfig incremental_state_config = 21;
*/
incrementalStateConfig?: TraceConfig_IncrementalStateConfig;
/**
* No longer needed as we unconditionally allow tracing on user builds.
*
* @generated from field: optional bool allow_user_build_tracing = 19 [deprecated = true];
* @deprecated
*/
allowUserBuildTracing: boolean;
/**
* If set the tracing service will ensure there is at most one tracing session
* with this key.
*
* @generated from field: optional string unique_session_name = 22;
*/
uniqueSessionName: string;
/**
* @generated from field: optional perfetto.protos.TraceConfig.CompressionType compression_type = 24;
*/
compressionType: TraceConfig_CompressionType;
/**
* @generated from field: optional perfetto.protos.TraceConfig.IncidentReportConfig incident_report_config = 25;
*/
incidentReportConfig?: TraceConfig_IncidentReportConfig;
/**
* Android-only. Not for general use. If specified, sets the logging to statsd
* of guardrails and checkpoints in the tracing service. perfetto_cmd sets
* this to enabled (if not explicitly set in the config) when specifying
* --upload.
*
* @generated from field: optional perfetto.protos.TraceConfig.StatsdLogging statsd_logging = 31;
*/
statsdLogging: TraceConfig_StatsdLogging;
/**
* An identifier clients can use to tie this trace to other logging.
* DEPRECATED as per v32. See TracePacket.trace_uuid for the authoritative
* Trace UUID. If this field is set, the tracing service will respect the
* requested UUID (i.e. TracePacket.trace_uuid == this field) but only if
* gap-less snapshotting is not used.
*
* @generated from field: optional int64 trace_uuid_msb = 27 [deprecated = true];
* @deprecated
*/
traceUuidMsb: bigint;
/**
* @generated from field: optional int64 trace_uuid_lsb = 28 [deprecated = true];
* @deprecated
*/
traceUuidLsb: bigint;
/**
* @generated from field: optional perfetto.protos.TraceConfig.TraceFilter trace_filter = 33;
*/
traceFilter?: TraceConfig_TraceFilter;
/**
* @generated from field: optional perfetto.protos.TraceConfig.AndroidReportConfig android_report_config = 34;
*/
androidReportConfig?: TraceConfig_AndroidReportConfig;
/**
* @generated from field: optional perfetto.protos.TraceConfig.CmdTraceStartDelay cmd_trace_start_delay = 35;
*/
cmdTraceStartDelay?: TraceConfig_CmdTraceStartDelay;
/**
* @generated from field: repeated perfetto.protos.TraceConfig.SessionSemaphore session_semaphores = 39;
*/
sessionSemaphores: TraceConfig_SessionSemaphore[];
};
/**
* Describes the message perfetto.protos.TraceConfig.
* Use `create(TraceConfigSchema)` to create a new message.
*/
export const TraceConfigSchema: GenMessage<TraceConfig> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0);
/**
* @generated from message perfetto.protos.TraceConfig.BufferConfig
*/
export type TraceConfig_BufferConfig = Message<"perfetto.protos.TraceConfig.BufferConfig"> & {
/**
* @generated from field: optional uint32 size_kb = 1;
*/
sizeKb: number;
/**
* @generated from field: optional perfetto.protos.TraceConfig.BufferConfig.FillPolicy fill_policy = 4;
*/
fillPolicy: TraceConfig_BufferConfig_FillPolicy;
/**
* When true the buffer is moved (rather than copied) onto the cloned
* session, and an empty buffer of the same size is allocated in the source
* tracing session. This feature will likely get deprecated in the future.
* It been introduced mainly to support the surfaceflinger snapshot dump
* for bugreports, where SF can dumps O(400MB) into the bugreport trace. In
* that case we don't want to retain another in-memory copy of the buffer.
*
* @generated from field: optional bool transfer_on_clone = 5;
*/
transferOnClone: boolean;
/**
* Used in conjunction with transfer_on_clone. When true the buffer is
* cleared before issuing the Flush(reason=kTraceClone). This is to ensure
* that if the data source took too long to write the data in a previous
* clone-related flush, we don't end up with a mixture of leftovers from
* the previous write and new data.
*
* @generated from field: optional bool clear_before_clone = 6;
*/
clearBeforeClone: boolean;
};
/**
* Describes the message perfetto.protos.TraceConfig.BufferConfig.
* Use `create(TraceConfig_BufferConfigSchema)` to create a new message.
*/
export const TraceConfig_BufferConfigSchema: GenMessage<TraceConfig_BufferConfig> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 0);
/**
* @generated from enum perfetto.protos.TraceConfig.BufferConfig.FillPolicy
*/
export enum TraceConfig_BufferConfig_FillPolicy {
/**
* @generated from enum value: UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* Default behavior. The buffer operates as a conventional ring buffer.
* If the writer is faster than the reader (or if the reader reads only
* after tracing is stopped) newly written packets will overwrite old
* packets.
*
* @generated from enum value: RING_BUFFER = 1;
*/
RING_BUFFER = 1,
/**
* Behaves like RING_BUFFER as long as there is space in the buffer or
* the reader catches up with the writer. As soon as the writer hits
* an unread chunk, it stops accepting new data in the buffer.
*
* @generated from enum value: DISCARD = 2;
*/
DISCARD = 2,
}
/**
* Describes the enum perfetto.protos.TraceConfig.BufferConfig.FillPolicy.
*/
export const TraceConfig_BufferConfig_FillPolicySchema: GenEnum<TraceConfig_BufferConfig_FillPolicy> = /*@__PURE__*/
enumDesc(file_protos_perfetto_config_trace_config, 0, 0, 0);
/**
* @generated from message perfetto.protos.TraceConfig.DataSource
*/
export type TraceConfig_DataSource = Message<"perfetto.protos.TraceConfig.DataSource"> & {
/**
* Filters and data-source specific config. It contains also the unique name
* of the data source, the one passed in the DataSourceDescriptor when they
* register on the service.
*
* @generated from field: optional perfetto.protos.DataSourceConfig config = 1;
*/
config?: DataSourceConfig;
/**
* Optional. If multiple producers (~processes) expose the same data source
* and either |producer_name_filter| or |producer_name_regex_filter| is set,
* the data source is enabled only for producers whose names match any of
* the filters.
* |producer_name_filter| has to be an exact match, while
* |producer_name_regex_filter| is a regular expression.
* This allows to enable a data source only for specific processes.
* The "repeated" fields have OR semantics: specifying a filter ["foo",
* "bar"] will enable data sources on both "foo" and "bar" (if they exist).
*
* @generated from field: repeated string producer_name_filter = 2;
*/
producerNameFilter: string[];
/**
* @generated from field: repeated string producer_name_regex_filter = 3;
*/
producerNameRegexFilter: string[];
};
/**
* Describes the message perfetto.protos.TraceConfig.DataSource.
* Use `create(TraceConfig_DataSourceSchema)` to create a new message.
*/
export const TraceConfig_DataSourceSchema: GenMessage<TraceConfig_DataSource> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 1);
/**
* Config for disabling builtin data sources in the tracing service.
*
* @generated from message perfetto.protos.TraceConfig.BuiltinDataSource
*/
export type TraceConfig_BuiltinDataSource = Message<"perfetto.protos.TraceConfig.BuiltinDataSource"> & {
/**
* Disable emitting clock timestamps into the trace.
*
* @generated from field: optional bool disable_clock_snapshotting = 1;
*/
disableClockSnapshotting: boolean;
/**
* Disable echoing the original trace config in the trace.
*
* @generated from field: optional bool disable_trace_config = 2;
*/
disableTraceConfig: boolean;
/**
* Disable emitting system info (build fingerprint, cpuinfo, etc).
*
* @generated from field: optional bool disable_system_info = 3;
*/
disableSystemInfo: boolean;
/**
* Disable emitting events for data-source state changes (e.g. the marker
* for all data sources having ACKed the start of the trace).
*
* @generated from field: optional bool disable_service_events = 4;
*/
disableServiceEvents: boolean;
/**
* The authoritative clock domain for the trace. Defaults to BOOTTIME. See
* also ClockSnapshot's primary_trace_clock. The configured value is written
* into the trace as part of the ClockSnapshots emitted by the service.
* Trace processor will attempt to translate packet/event timestamps from
* various data sources (and their chosen clock domains) to this domain
* during import. Added in Android R.
*
* @generated from field: optional perfetto.protos.BuiltinClock primary_trace_clock = 5;
*/
primaryTraceClock: BuiltinClock;
/**
* Time interval in between snapshotting of sync markers, clock snapshots,
* stats, and other periodic service-emitted events. Note that the service
* only keeps track of the first and the most recent snapshot until
* ReadBuffers() is called.
*
* @generated from field: optional uint32 snapshot_interval_ms = 6;
*/
snapshotIntervalMs: number;
/**
* Hints to the service that a suspend-aware (i.e. counting time in suspend)
* clock should be used for periodic snapshots of service-emitted events.
* This means, if a snapshot *should* have happened during suspend, it will
* happen immediately after the device resumes.
*
* Choosing a clock like this is done on best-effort basis; not all
* platforms (e.g. Windows) expose a clock which can be used for periodic
* tasks counting suspend. If such a clock is not available, the service
* falls back to the best-available alternative.
*
* Introduced in Android S.
* TODO(lalitm): deprecate this in T and make this the default if nothing
* crashes in S.
*
* @generated from field: optional bool prefer_suspend_clock_for_snapshot = 7;
*/
preferSuspendClockForSnapshot: boolean;
/**
* Disables the reporting of per-trace-writer histograms in TraceStats.
*
* @generated from field: optional bool disable_chunk_usage_histograms = 8;
*/
disableChunkUsageHistograms: boolean;
};
/**
* Describes the message perfetto.protos.TraceConfig.BuiltinDataSource.
* Use `create(TraceConfig_BuiltinDataSourceSchema)` to create a new message.
*/
export const TraceConfig_BuiltinDataSourceSchema: GenMessage<TraceConfig_BuiltinDataSource> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 2);
/**
* @generated from message perfetto.protos.TraceConfig.ProducerConfig
*/
export type TraceConfig_ProducerConfig = Message<"perfetto.protos.TraceConfig.ProducerConfig"> & {
/**
* Identifies the producer for which this config is for.
*
* @generated from field: optional string producer_name = 1;
*/
producerName: string;
/**
* Specifies the preferred size of the shared memory buffer. If the size is
* larger than the max size, the max will be used. If it is smaller than
* the page size or doesn't fit pages evenly into it, it will fall back to
* the size specified by the producer or finally the default shared memory
* size.
*
* @generated from field: optional uint32 shm_size_kb = 2;
*/
shmSizeKb: number;
/**
* Specifies the preferred size of each page in the shared memory buffer.
* Must be an integer multiple of 4K.
*
* @generated from field: optional uint32 page_size_kb = 3;
*/
pageSizeKb: number;
};
/**
* Describes the message perfetto.protos.TraceConfig.ProducerConfig.
* Use `create(TraceConfig_ProducerConfigSchema)` to create a new message.
*/
export const TraceConfig_ProducerConfigSchema: GenMessage<TraceConfig_ProducerConfig> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 3);
/**
* Contains statsd-specific metadata about an alert associated with the trace.
*
* @generated from message perfetto.protos.TraceConfig.StatsdMetadata
*/
export type TraceConfig_StatsdMetadata = Message<"perfetto.protos.TraceConfig.StatsdMetadata"> & {
/**
* The identifier of the alert which triggered this trace.
*
* @generated from field: optional int64 triggering_alert_id = 1;
*/
triggeringAlertId: bigint;
/**
* The uid which registered the triggering configuration with statsd.
*
* @generated from field: optional int32 triggering_config_uid = 2;
*/
triggeringConfigUid: number;
/**
* The identifier of the config which triggered the alert.
*
* @generated from field: optional int64 triggering_config_id = 3;
*/
triggeringConfigId: bigint;
/**
* The identifier of the subscription which triggered this trace.
*
* @generated from field: optional int64 triggering_subscription_id = 4;
*/
triggeringSubscriptionId: bigint;
};
/**
* Describes the message perfetto.protos.TraceConfig.StatsdMetadata.
* Use `create(TraceConfig_StatsdMetadataSchema)` to create a new message.
*/
export const TraceConfig_StatsdMetadataSchema: GenMessage<TraceConfig_StatsdMetadata> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 4);
/**
* Contains flags which override the default values of the guardrails inside
* Perfetto.
*
* @generated from message perfetto.protos.TraceConfig.GuardrailOverrides
*/
export type TraceConfig_GuardrailOverrides = Message<"perfetto.protos.TraceConfig.GuardrailOverrides"> & {
/**
* Override the default limit (in bytes) for uploading data to server within
* a 24 hour period.
* On R-, this override only affected userdebug builds. Since S, it also
* affects user builds.
* In 24Q3+ (V+), this override is a noop because upload guardrail logic
* was removed from Perfetto.
*
* @generated from field: optional uint64 max_upload_per_day_bytes = 1 [deprecated = true];
* @deprecated
*/
maxUploadPerDayBytes: bigint;
/**
* Overrides the guardrail for maximum trace buffer size.
* Available on U+
*
* @generated from field: optional uint32 max_tracing_buffer_size_kb = 2;
*/
maxTracingBufferSizeKb: number;
};
/**
* Describes the message perfetto.protos.TraceConfig.GuardrailOverrides.
* Use `create(TraceConfig_GuardrailOverridesSchema)` to create a new message.
*/
export const TraceConfig_GuardrailOverridesSchema: GenMessage<TraceConfig_GuardrailOverrides> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 5);
/**
* Triggers allow producers to start or stop the tracing session when an event
* occurs.
*
* For example if we are tracing probabilistically, most traces will be
* uninteresting. Triggers allow us to keep only the interesting ones such as
* those traces during which the device temperature reached a certain
* threshold. In this case the producer can activate a trigger to keep
* (STOP_TRACING) the trace, otherwise it can also begin a trace
* (START_TRACING) because it knows something is about to happen.
*
* @generated from message perfetto.protos.TraceConfig.TriggerConfig
*/
export type TraceConfig_TriggerConfig = Message<"perfetto.protos.TraceConfig.TriggerConfig"> & {
/**
* @generated from field: optional perfetto.protos.TraceConfig.TriggerConfig.TriggerMode trigger_mode = 1;
*/
triggerMode: TraceConfig_TriggerConfig_TriggerMode;
/**
* This flag is really a workaround for b/274931668. This is needed only
* when deploying configs to different versions of the tracing service.
* When this is set to true this has the same effect of setting trigger_mode
* to CLONE_SNAPSHOT on newer versions of the service. This boolean has been
* introduced to allow to have configs that use CLONE_SNAPSHOT on newer
* versions of Android and fall back to STOP_TRACING on older versions where
* CLONE_SNAPSHOT did not exist.
* When using this flag, trigger_mode must be set to STOP_TRACING.
*
* @generated from field: optional bool use_clone_snapshot_if_available = 5;
*/
useCloneSnapshotIfAvailable: boolean;
/**
* A list of triggers which are related to this configuration. If ANY
* trigger is seen then an action will be performed based on |trigger_mode|.
*
* @generated from field: repeated perfetto.protos.TraceConfig.TriggerConfig.Trigger triggers = 2;
*/
triggers: TraceConfig_TriggerConfig_Trigger[];
/**
* Required and must be positive if a TriggerConfig is specified. This is
* how long this TraceConfig should wait for a trigger to arrive. After this
* period of time if no trigger is seen the TracingSession will be cleaned
* up.
*
* @generated from field: optional uint32 trigger_timeout_ms = 3;
*/
triggerTimeoutMs: number;
};
/**
* Describes the message perfetto.protos.TraceConfig.TriggerConfig.
* Use `create(TraceConfig_TriggerConfigSchema)` to create a new message.
*/
export const TraceConfig_TriggerConfigSchema: GenMessage<TraceConfig_TriggerConfig> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 6);
/**
* @generated from message perfetto.protos.TraceConfig.TriggerConfig.Trigger
*/
export type TraceConfig_TriggerConfig_Trigger = Message<"perfetto.protos.TraceConfig.TriggerConfig.Trigger"> & {
/**
* The producer must specify this name to activate the trigger.
*
* @generated from field: optional string name = 1;
*/
name: string;
/**
* An std::regex that will match the producer that can activate this
* trigger. This is optional. If unset any producers can activate this
* trigger.
*
* @generated from field: optional string producer_name_regex = 2;
*/
producerNameRegex: string;
/**
* After a trigger is received either in START_TRACING or STOP_TRACING
* mode then the trace will end |stop_delay_ms| after triggering.
* In CLONE_SNAPSHOT mode, this is the delay between the trigger and the
* snapshot.
* If |prefer_suspend_clock_for_duration| is set, the duration will be
* based on wall-clock, counting also time in suspend.
*
* @generated from field: optional uint32 stop_delay_ms = 3;
*/
stopDelayMs: number;
/**
* Limits the number of traces this trigger can start/stop in a rolling
* 24 hour window. If this field is unset or zero, no limit is applied and
* activiation of this trigger *always* starts/stops the trace.
*
* @generated from field: optional uint32 max_per_24_h = 4;
*/
maxPer24H: number;
/**
* A value between 0 and 1 which encodes the probability of skipping a
* trigger with this name. This is useful for reducing the probability
* of high-frequency triggers from dominating trace finaization. If this
* field is unset or zero, the trigger will *never* be skipped. If this
* field is greater than or equal to 1, this trigger will *always* be
* skipped i.e. it will be as if this trigger was never included in the
* first place.
* This probability check is applied *before* any other limits. For
* example, if |max_per_24_h| is also set, first we will check if the
* probability bar is met and only then will we check the |max_per_24_h|
* limit.
*
* @generated from field: optional double skip_probability = 5;
*/
skipProbability: number;
};
/**
* Describes the message perfetto.protos.TraceConfig.TriggerConfig.Trigger.
* Use `create(TraceConfig_TriggerConfig_TriggerSchema)` to create a new message.
*/
export const TraceConfig_TriggerConfig_TriggerSchema: GenMessage<TraceConfig_TriggerConfig_Trigger> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 6, 0);
/**
* @generated from enum perfetto.protos.TraceConfig.TriggerConfig.TriggerMode
*/
export enum TraceConfig_TriggerConfig_TriggerMode {
/**
* @generated from enum value: UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
/**
* When this mode is chosen, data sources are not started until one of the
* |triggers| are received. This supports early initialization and fast
* starting of the tracing system. On triggering, the session will then
* record for |stop_delay_ms|. However if no trigger is seen
* after |trigger_timeout_ms| the session will be stopped and no data will
* be returned.
*
* @generated from enum value: START_TRACING = 1;
*/
START_TRACING = 1,
/**
* When this mode is chosen, the session will be started via the normal
* EnableTracing() & StartTracing(). If no trigger is ever seen
* the session will be stopped after |trigger_timeout_ms| and no data will
* be returned. However if triggered the trace will stop after
* |stop_delay_ms| and any data in the buffer will be returned to the
* consumer.
*
* @generated from enum value: STOP_TRACING = 2;
*/
STOP_TRACING = 2,
/**
* When this mode is chosen, this causes a snapshot of the current tracing
* session to be created after |stop_delay_ms| while the current tracing
* session continues undisturbed (% an extra flush). This mode can be
* used only when the tracing session is handled by the "perfetto" cmdline
* client (which is true in 90% of cases). Part of the business logic
* necessary for this behavior, and ensuing file handling, lives in
* perfetto_cmd.cc . On other consumers, this causes only a notification
* of the trigger through a CloneTriggerHit ObservableEvent. The custom
* consumer is supposed to call CloneSession() itself after the event.
* Use use_clone_snapshot_if_available=true when targeting older versions
* of perfetto.
*
* @generated from enum value: CLONE_SNAPSHOT = 4;
*/
CLONE_SNAPSHOT = 4,
}
/**
* Describes the enum perfetto.protos.TraceConfig.TriggerConfig.TriggerMode.
*/
export const TraceConfig_TriggerConfig_TriggerModeSchema: GenEnum<TraceConfig_TriggerConfig_TriggerMode> = /*@__PURE__*/
enumDesc(file_protos_perfetto_config_trace_config, 0, 6, 0);
/**
* Configuration for trace contents that reference earlier trace data. For
* example, a data source might intern strings, and emit packets containing
* {interned id : string} pairs. Future packets from that data source can then
* use the interned ids instead of duplicating the raw string contents. The
* trace parser will then need to use that interning table to fully interpret
* the rest of the trace.
*
* @generated from message perfetto.protos.TraceConfig.IncrementalStateConfig
*/
export type TraceConfig_IncrementalStateConfig = Message<"perfetto.protos.TraceConfig.IncrementalStateConfig"> & {
/**
* If nonzero, notify eligible data sources to clear their incremental state
* periodically, with the given period. The notification is sent only to
* data sources that have |handles_incremental_state_clear| set in their
* DataSourceDescriptor. The notification requests that the data source
* stops referring to past trace contents. This is particularly useful when
* tracing in ring buffer mode, where it is not exceptional to overwrite old
* trace data.
*
* Warning: this time-based global clearing is likely to be removed in the
* future, to be replaced with a smarter way of sending the notifications
* only when necessary.
*
* @generated from field: optional uint32 clear_period_ms = 1;
*/
clearPeriodMs: number;
};
/**
* Describes the message perfetto.protos.TraceConfig.IncrementalStateConfig.
* Use `create(TraceConfig_IncrementalStateConfigSchema)` to create a new message.
*/
export const TraceConfig_IncrementalStateConfigSchema: GenMessage<TraceConfig_IncrementalStateConfig> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 7);
/**
* Android-only. Not for general use. If set, saves the trace into an
* incident. This field is read by perfetto_cmd, rather than the tracing
* service. This field must be set when passing the --upload flag to
* perfetto_cmd.
*
* In this message, either:
* * all of |destination_package|, |destination_class| and |privacy_level|
* must be set.
* * |skip_incidentd| must be explicitly set to true.
*
* @generated from message perfetto.protos.TraceConfig.IncidentReportConfig
*/
export type TraceConfig_IncidentReportConfig = Message<"perfetto.protos.TraceConfig.IncidentReportConfig"> & {
/**
* @generated from field: optional string destination_package = 1;
*/
destinationPackage: string;
/**
* @generated from field: optional string destination_class = 2;
*/
destinationClass: string;
/**
* Level of filtering in the requested incident. See |Destination| in
* frameworks/base/core/proto/android/privacy.proto.
*
* @generated from field: optional int32 privacy_level = 3;
*/
privacyLevel: number;
/**
* If true, then skips saving the trace to incidentd.
*
* This flag is useful in testing (e.g. Perfetto-statsd integration tests)
* or when we explicitly don't want traces to go to incidentd even when they
* usually would (e.g. configs deployed using statsd but only used for
* inclusion in bugreports using |bugreport_score|).
*
* The motivation for having this flag, instead of just not setting
* |incident_report_config|, is prevent accidents where
* |incident_report_config| is omitted by mistake.
*
* @generated from field: optional bool skip_incidentd = 5;
*/
skipIncidentd: boolean;
/**
* If true, do not write the trace into dropbox (i.e. incident only).
* Otherwise, write to both dropbox and incident.
* TODO(lalitm): remove this field as we no longer use Dropbox.
*
* @generated from field: optional bool skip_dropbox = 4 [deprecated = true];
* @deprecated
*/
skipDropbox: boolean;
};
/**
* Describes the message perfetto.protos.TraceConfig.IncidentReportConfig.
* Use `create(TraceConfig_IncidentReportConfigSchema)` to create a new message.
*/
export const TraceConfig_IncidentReportConfigSchema: GenMessage<TraceConfig_IncidentReportConfig> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 8);
/**
* When set applies a post-filter to the trace contents using the filter
* provided. The filter is applied at ReadBuffers() time and works both in the
* case of IPC readback and write_into_file. This filter can be generated
* using `tools/proto_filter -s schema.proto -F filter_out.bytes` or
* `-T filter_out.escaped_string` (for .pbtx). See go/trace-filtering for
* design.
*
* Introduced in Android S, but it was broken (b/195065199). Reintroduced in
* Android T with a different field number. Updated in Android U with a new
* bytecode version which supports string filtering.
*
* =========================
* Filter bytecode.
* =========================
*
* @generated from message perfetto.protos.TraceConfig.TraceFilter
*/
export type TraceConfig_TraceFilter = Message<"perfetto.protos.TraceConfig.TraceFilter"> & {
/**
* The bytecode as implemented in Android T.
*
* @generated from field: optional bytes bytecode = 1;
*/
bytecode: Uint8Array;
/**
* The bytecode as implemented in Android U. Adds support for string
* filtering.
*
* @generated from field: optional bytes bytecode_v2 = 2;
*/
bytecodeV2: Uint8Array;
/**
* @generated from field: optional perfetto.protos.TraceConfig.TraceFilter.StringFilterChain string_filter_chain = 3;
*/
stringFilterChain?: TraceConfig_TraceFilter_StringFilterChain;
};
/**
* Describes the message perfetto.protos.TraceConfig.TraceFilter.
* Use `create(TraceConfig_TraceFilterSchema)` to create a new message.
*/
export const TraceConfig_TraceFilterSchema: GenMessage<TraceConfig_TraceFilter> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 9);
/**
* A rule specifies how strings should be filtered.
*
* @generated from message perfetto.protos.TraceConfig.TraceFilter.StringFilterRule
*/
export type TraceConfig_TraceFilter_StringFilterRule = Message<"perfetto.protos.TraceConfig.TraceFilter.StringFilterRule"> & {
/**
* The policy (i.e. algorithm) dictating how strings matching this rule
* should be handled.
*
* @generated from field: optional perfetto.protos.TraceConfig.TraceFilter.StringFilterPolicy policy = 1;
*/
policy: TraceConfig_TraceFilter_StringFilterPolicy;
/**
* The regex pattern used to match against each string.
*
* @generated from field: optional string regex_pattern = 2;
*/
regexPattern: string;
/**
* The string which should appear after the tgid in atrace tracepoint
* strings.
*
* @generated from field: optional string atrace_payload_starts_with = 3;
*/
atracePayloadStartsWith: string;
};
/**
* Describes the message perfetto.protos.TraceConfig.TraceFilter.StringFilterRule.
* Use `create(TraceConfig_TraceFilter_StringFilterRuleSchema)` to create a new message.
*/
export const TraceConfig_TraceFilter_StringFilterRuleSchema: GenMessage<TraceConfig_TraceFilter_StringFilterRule> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 9, 0);
/**
* A chain is a list of rules which string will be sequentially checked
* against.
*
* @generated from message perfetto.protos.TraceConfig.TraceFilter.StringFilterChain
*/
export type TraceConfig_TraceFilter_StringFilterChain = Message<"perfetto.protos.TraceConfig.TraceFilter.StringFilterChain"> & {
/**
* @generated from field: repeated perfetto.protos.TraceConfig.TraceFilter.StringFilterRule rules = 1;
*/
rules: TraceConfig_TraceFilter_StringFilterRule[];
};
/**
* Describes the message perfetto.protos.TraceConfig.TraceFilter.StringFilterChain.
* Use `create(TraceConfig_TraceFilter_StringFilterChainSchema)` to create a new message.
*/
export const TraceConfig_TraceFilter_StringFilterChainSchema: GenMessage<TraceConfig_TraceFilter_StringFilterChain> = /*@__PURE__*/
messageDesc(file_protos_perfetto_config_trace_config, 0, 9, 1);
/**
* A policy specifies which algorithm should be used for filtering the
* string.
*
* @generated from enum perfetto.protos.TraceConfig.TraceFilter.StringFilterPolicy
*/
export enum TraceConfig_TraceFilter_StringFilterPolicy {
/**
* @generated from enum value: SFP_UNSPECIFIED = 0;
*/
SFP_UNSPECIFIED = 0,
/**
* Tries to match the string field against |regex_pattern|. If it
* matches, all matching groups are "redacted" (i.e. replaced with a
* constant string) and filtering is terminated (i.e. no further rules are
* checked). If it doesn't match, the string is left unchanged and the
* next rule in chain is considered.
*
* @generated from enum value: SFP_MATCH_REDACT_GROUPS = 1;
*/
SFP_MATCH_REDACT_GROUPS = 1,
/**
* Like |SFP_MATCH_REDACT_GROUPS| but tries to do some pre-work before
* checking the regex. Specifically, it tries to parse the string field as
* an atrace tracepoint and checks if the post-tgid field starts with
* |atrace_post_tgid_starts_with|. The regex matching is only performed if
* this check succeeds.
*
* @generated from enum value: SFP_ATRACE_MATCH_REDACT_GROUPS = 2;
*/
SFP_ATRACE_MATCH_REDACT_GROUPS = 2,
/**
* Tries to match the string field against |regex_pattern|. If it
* matches, filtering is terminated (i.e. no further rules are checked).
* If it doesn't match, the string is left unchanged and the next rule in
* chain is considered.
*
* @generated from enum value: SFP_MATCH_BREAK = 3;
*/
SFP_MATCH_BREAK = 3,
/**
* Like |SFP_MATCH_BREAK| but tries to do some pre-work before checking
* the regex. Specifically, it tries to parse the string field as an
* atrace tracepoint and checks if the post-tgid field starts with
* |atrace_post_tgid_starts_with|. The regex matching is only performed if
* this check succeeds.
*
* @generated from enum value: SFP_ATRACE_MATCH_BREAK = 4;
*/
SFP_ATRACE_MATCH_BREAK = 4,
/**
* Tries to repeatedly search (i.e. find substrings of) the string field
* with |regex_pattern|. For each match, redacts any matching groups (i.e.
* replaced with a constant string). Once there are no further matches,
* filtering is terminated (i.e. no further rules are checked).
*
* Note that this is policy is a "search" policy not a "match" policy
* unlike the above policies:
* * Match policies require matching the full string i.e. there is an
* implicit leading `^` and trailing `$`.
* * Search policies perform repeated partial matching of the string
* e.g.
* - String: `foo=aaa,bar=123,foo=bbb,baz=456`
* - Pattern: `foo=(\d+)`
* - Output: `foo=P6O,bar=123,foo=P6O,baz=456`
* where P6O is the redaction string
*
* All of this is only performed after some pre-work where we try to parse
* the string field as an atrace tracepoint and check if the post-tgid
* field starts with |atrace_post_tgid_starts_with|.
*
* If there are no partial matches, the string is left unchanged and the
* next rule in chain is considered.
*
* @generated from enum value: SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS = 5;
*/
SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS = 5,
}
/**
* Describes the enum perfetto.protos.TraceConfig.TraceFilter.StringFilterPolicy.
*/
export const TraceConfig_TraceFilter_StringFilterPolicySchema: GenEnum<TraceConfig_TraceFilter_StringFilterPolicy> = /*@__PURE__*/
enumDesc(file_protos_perfetto_config_trace_config, 0, 9, 0);
/**
* Android-only. Not for general use. If set, reports the trace to the
* Android framework. This field is read by perfetto_cmd, rather than the
* tracing service. This field must be set when passing the --upload flag to
* perfetto_cmd.
*
* In this message, either:
* * |reporter_service_package| and |reporter_service_class| must be set.
* * |skip_reporting| must be explicitly set to true.
*
* @generated from message perfetto.protos.TraceConfig.AndroidReportConfig
*/
export type TraceConfig_AndroidReportConfig = Message<"perfetto.protos.TraceConfig.AndroidReportConfig"> & {
/**
* @generated from field: optional string reporte