blob: 4ee0a5d84455434ab255c1dbfae48f3ed802ced4 [file] [log] [blame]
/*
* Copyright (C) 2018 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;
import "protos/perfetto/common/android_log_constants.proto";
message AndroidLogPacket {
message LogEvent {
// The log buffer (e.g. MAIN, SYSTEM, RADIO) the event comes from.
optional AndroidLogId log_id = 1;
// PID (TGID), TID and UID of the task that emitted the event.
optional int32 pid = 2;
optional int32 tid = 3;
optional int32 uid = 4;
// Timestamp [ns]. The clock source is CLOCK_REALTIME, unlike many other
// Perfetto trace events that instead use CLOCK_BOOTTIME. The trace
// processor will take care of realigning clocks using the ClockSnapshot(s).
optional uint64 timestamp = 5;
// When log_id == LID_EVENTS, |tag| corresponds to the event name defined in
// the second column of /system/etc/event-log-tags. For all other events,
// |tag| is the app-specified argument passed to __android_log_write().
optional string tag = 6;
// Empty when log_id == LID_EVENTS.
optional AndroidLogPriority prio = 7;
// Empty when log_id == LID_EVENTS.
optional string message = 8;
message Arg {
optional string name = 1;
oneof value {
int64 int_value = 2;
float float_value = 3;
string string_value = 4;
}
}
// Only populated when log_id == LID_EVENTS.
repeated Arg args = 9;
}
repeated LogEvent events = 1;
// Stats are emitted only upon Flush() and are monotonic (i.e. they are
// absolute counters since the beginning of the lifetime of the tracing
// session and NOT relative to the previous Stats snapshot).
message Stats {
// Total number of log events seen, including errors and skipped entries
// (num of events stored in the trace = total - failed - skipped).
optional uint64 num_total = 1;
// Parser failures.
optional uint64 num_failed = 2;
// Messages skipped due to filters.
optional uint64 num_skipped = 3;
}
optional Stats stats = 2;
}