blob: e4c0e4db8c3061278a09792d644408000b85021e [file] [log] [blame]
/*
* 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, the category is enabled by default.
//
// Examples:
//
// - To enable all non-slow/debug categories:
//
// No configuration needed, happens by default.
//
// - To enable a specific category:
//
// disabled_categories = ["*"]
// enabled_categories = ["my_category"]
//
// - 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;
}