/* * 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. */ syntax = "proto3"; package perfetto.protos; import "protos/perfetto/trace_processor/trace_processor.proto"; // gRPC Interface for a Bigtrace Orchestrator // Each Bigtrace instance has an orchestrator which is responsible for receiving // requests from the client and loading and querying traces by sharding them // across a set of "Workers" service BigtraceOrchestrator { // Executes a SQL query on the specified list of traces and returns a stream // of the result of the query for a given trace rpc Query(BigtraceQueryArgs) returns (stream BigtraceQueryResponse) {} } // Request/Response for TraceListQuery message BigtraceQueryArgs { repeated string traces = 1; optional string sql_query = 2; } message BigtraceQueryResponse { optional string trace = 1; repeated QueryResult result = 2; }