/* * Copyright (C) 2020 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. */ syntax = "proto2"; package perfetto.protos; message TrackEventConfig { // The following fields define the set of enabled trace categories. Each list // item is a glob. // // To determine if category is enabled, it is checked against the filters in // the following order: // // 1. Exact matches in enabled categories. // 2. Exact matches in enabled tags. // 3. Exact matches in disabled categories. // 4. Exact matches in disabled tags. // 5. Pattern matches in enabled categories. // 6. Pattern matches in enabled tags. // 7. Pattern matches in disabled categories. // 8. Pattern matches in disabled tags. // // If none of the steps produced a match: // - In the C++ SDK (`perfetto::Category`), categories are enabled by // default. // - In the C SDK (`PerfettoTeCategory`), categories are disabled by default. // // Examples: // // - To enable all non-slow/debug categories: // // enabled_categories: "*" // // - To enable specific categories: // // disabled_categories: "*" // enabled_categories: "my_category" // enabled_categories: "my_category2" // // - To enable only categories with a specific tag: // // disabled_tags: "*" // enabled_tags: "my_tag" // // Default: [] repeated string disabled_categories = 1; // Default: [] repeated string enabled_categories = 2; // Default: ["slow", "debug"] repeated string disabled_tags = 3; // Default: [] repeated string enabled_tags = 4; // Default: false (i.e. enabled by default) optional bool disable_incremental_timestamps = 5; // Allows to specify a custom unit different than the default (ns). // Also affects thread timestamps if enable_thread_time_sampling = true. // A multiplier of 1000 means that a timestamp = 3 should be interpreted as // 3000 ns = 3 us. // Default: 1 (if unset, it should be read as 1). optional uint64 timestamp_unit_multiplier = 6; // Default: false (i.e. debug_annotations is NOT filtered out by default) // When true, any debug annotations provided as arguments to the // TRACE_EVENT macros are not written into the trace. Typed arguments will // still be emitted even if set to true. optional bool filter_debug_annotations = 7; // Default : false (i.e. disabled) // When true, the SDK samples and emits the current thread time counter value // for each event on the current thread's track. This value represents the // total CPU time consumed by that thread since its creation. Note that if a // thread is not scheduled by OS for some duration, that time won't be // included in thread_time. // Learn more : "CLOCK_THREAD_CPUTIME_ID" flag at // https://linux.die.net/man/3/clock_gettime optional bool enable_thread_time_sampling = 8; // Default: false (i.e. dynamic event names are NOT filtered out by default) // When true, event_names wrapped in perfetto::DynamicString will be filtered // out. optional bool filter_dynamic_event_names = 9; }