blob: 71d977bd7653c632873bfb55a9d9b634564b3e66 [file] [log] [blame]
// Copyright (C) 2024 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.
import {time} from '../base/time';
export interface TraceInfo {
readonly traceTitle: string; // File name and size of the current trace.
readonly traceUrl: string; // URL of the Trace.
readonly start: time;
readonly end: time;
// This is the ts value at the time of the Unix epoch.
// Normally some large negative value, because the unix epoch is normally in
// the past compared to ts=0.
readonly realtimeOffset: time;
// This is the timestamp that we should use for our offset when in UTC mode.
// Usually the most recent UTC midnight compared to the trace start time.
readonly utcOffset: time;
// Trace TZ is like UTC but keeps into account also the timezone_off_mins
// recorded into the trace, to show timestamps in the device local time.
readonly traceTzOffset: time;
// The list of CPUs in the trace
readonly cpus: number[];
// The number of import/analysis errors present in the `stats` table.
readonly importErrors: number;
// The trace type inferred by TraceProcessor (e.g. 'proto', 'json, ...).
// See TraceTypeToString() in src/trace_processor/util/trace_type.cc for
// all the available types.
readonly traceType?: string;
// True if the trace contains any ftrace data (sched or other ftrace events).
readonly hasFtrace: boolean;
// The UUID of the trace. This is generated by TraceProcessor by either
// looking at the TraceUuid packet emitted by traced or, as a fallback, by
// hashing the first KB of the trace. This can be an empty string in rare
// cases (e.g., opening an empty trace).
readonly uuid: string;
// Wheteher the current trace has been successfully stored into cache storage.
readonly cached: boolean;
// Returns true if the current trace can be downloaded via getTraceFile().
// The trace isn't downloadable in the following cases:
// - It comes from a source (e.g. HTTP+RPC) that doesn't support re-download
// due to technical limitations.
// - Download is disabled because the trace was pushed via postMessage and
// the caller has asked to disable downloads.
readonly downloadable: boolean;
}