blob: c7e369876259fe3d8ebcb4ea46c35dbde8d917e3 [file] [log] [blame] [edit]
/*
* 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;
// Events emitted by the tracing service.
message TracingServiceEvent {
message DataSources {
message DataSource {
optional string producer_name = 1;
optional string data_source_name = 2;
}
repeated DataSource data_source = 1;
}
oneof event_type {
// When each of the following booleans are set to true, they report the
// point in time (through TracePacket's timestamp) where the condition
// they describe happened.
// The order of the booleans below matches the timestamp ordering
// they would generally be expected to have.
// Emitted when we start tracing and specifically, this will be before any
// producer is notified about the existence of this trace. This is always
// emitted before the all_data_sources_started event. This event is also
// guaranteed to be seen (byte-offset wise) before any data packets from
// producers.
bool tracing_started = 2;
// Emitted after all data sources saw the start event and ACKed it.
// This identifies the point in time when it's safe to assume that all data
// sources have been recording events.
bool all_data_sources_started = 1;
// Emitted when all data sources have been flushed successfully or with an
// error (including timeouts). This can generally happen many times over the
// course of the trace.
bool all_data_sources_flushed = 3;
// Emitted when reading back the central tracing buffers has been completed.
// If |write_into_file| is specified, this can happen many times over the
// course of the trace.
bool read_tracing_buffers_completed = 4;
// Emitted after tracing has been disabled and specifically, this will be
// after all packets from producers have been included in the central
// tracing buffer.
bool tracing_disabled = 5;
// Emitted if perfetto --save-for-bugreport was invoked while the current
// tracing session was running and it had the highest bugreport_score. In
// this case the original consumer will see a nearly empty trace, because
// the contents are routed onto the bugreport file. This event flags the
// situation explicitly. Traces that contain this marker should be discarded
// by test infrastructures / pipelines.
// Deprecated since Android U, where --save-for-bugreport uses
// non-destructive cloning.
bool seized_for_bugreport = 6;
// Emitted when not all data sources in all producers reply to a start
// request after some time.
DataSources slow_starting_data_sources = 7;
// Emitted when the last flush request has failed. Lists data sources that
// did not reply on time.
DataSources last_flush_slow_data_sources = 8;
}
}