aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/protobuf/remote_execution_log.proto
blob: 32d76946e85d4192a94b903e368c2d0c6631fb75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// 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;
  }
}