// Copyright 2018 The Bazel Authors. All rights reserved. // // 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 remote_logging; import "google/protobuf/timestamp.proto"; import "google/bytestream/bytestream.proto"; import "google/devtools/remoteexecution/v1test/remote_execution.proto"; import "google/longrunning/operations.proto"; import "google/rpc/status.proto"; import "google/watcher/v1/watch.proto"; option java_package = "com.google.devtools.build.lib.remote.logging"; // A single log entry for gRPC calls related to remote execution. message LogEntry { // Request metadata included in call. google.devtools.remoteexecution.v1test.RequestMetadata metadata = 1; // Status of the call on close. google.rpc.Status status = 2; // Full method name of the method called as returned from // io.grpc.MethodDescriptor.getFullMethodName() (i.e. in format // $FULL_SERVICE_NAME/$METHOD_NAME). string method_name = 3; // Method specific details for this call. RpcCallDetails details = 4; // Time the call started. google.protobuf.Timestamp start_time = 5; // Time the call closed. google.protobuf.Timestamp end_time = 6; } // Details for a call to // google.devtools.remoteexecution.v1test.Execution.Execute. message ExecuteDetails { // The google.devtools.remoteexecution.v1test.ExecuteRequest sent by the // call. google.devtools.remoteexecution.v1test.ExecuteRequest request = 1; // The google.longrunning.Operation received by the Execute call. google.longrunning.Operation response = 2; } // Details for a call to // google.devtools.remoteexecution.v1test.ActionCache.GetActionResult. message GetActionResultDetails { // The google.devtools.remoteexecution.v1test.GetActionResultRequest sent by // the call. google.devtools.remoteexecution.v1test.GetActionResultRequest request = 1; // The received google.devtools.remoteexecution.v1test.ActionResult. google.devtools.remoteexecution.v1test.ActionResult response = 2; } // Details for a call to google.watcher.v1.Watch. message WatchDetails { // The google.watcher.v1.Request sent by the Watch call. google.watcher.v1.Request request = 1; // Each google.watcher.v1.ChangeBatch response received from the // Watch call in order. repeated google.watcher.v1.ChangeBatch responses = 2; } // Details for a call to // google.devtools.remoteexecution.v1test.ContentAddressableStorage.FindMissingBlobs. message FindMissingBlobsDetails { // The google.devtools.remoteexecution.v1test.FindMissingBlobsRequest request // sent. google.devtools.remoteexecution.v1test.FindMissingBlobsRequest request = 1; // The google.devtools.remoteexecution.v1test.FindMissingBlobsResponse // received. google.devtools.remoteexecution.v1test.FindMissingBlobsResponse response = 2; } // Details for a call to google.bytestream.Read. message ReadDetails { // The google.bytestream.ReadRequest sent. google.bytestream.ReadRequest request = 1; // The number of reads performed in this call. int64 num_reads = 2; // The total number of bytes read totalled over all stream responses. int64 bytes_read = 3; } // Details for a call to google.bytestream.Write. message WriteDetails { // The names of resources requested to be written to in this call in the order // they were first requested in. If the ByteStream protocol is followed // according to specification, this should only contain have a single element, // which is the resource name specified in the first message of the stream. repeated string resource_names = 1; // The number of writes performed in this call. int64 num_writes = 2; // The total number of bytes sent over the stream. int64 bytes_sent = 3; // The received google.bytestream.WriteResponse. google.bytestream.WriteResponse response = 4; } // Contains details for specific types of calls. message RpcCallDetails { oneof details { ExecuteDetails execute = 1; GetActionResultDetails get_action_result = 2; WatchDetails watch = 3; FindMissingBlobsDetails find_missing_blobs = 4; ReadDetails read = 5; WriteDetails write = 6; } }