xref: /aosp_15_r20/external/googleapis/google/devtools/cloudtrace/v1/trace.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2020 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.devtools.cloudtrace.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
24*d5c09012SAndroid Build Coastguard Worker
25*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Trace.V1";
26*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/trace/apiv1/tracepb;tracepb";
27*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
28*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "TraceProto";
29*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.devtools.cloudtrace.v1";
30*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Trace\\V1";
31*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Trace::V1";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Worker// This file describes an API for collecting and viewing traces and spans
34*d5c09012SAndroid Build Coastguard Worker// within a trace.  A Trace is a collection of spans corresponding to a single
35*d5c09012SAndroid Build Coastguard Worker// operation or set of operations for an application. A span is an individual
36*d5c09012SAndroid Build Coastguard Worker// timed event which forms a node of the trace tree. Spans for a single trace
37*d5c09012SAndroid Build Coastguard Worker// may span multiple services.
38*d5c09012SAndroid Build Coastguard Workerservice TraceService {
39*d5c09012SAndroid Build Coastguard Worker  option (google.api.default_host) = "cloudtrace.googleapis.com";
40*d5c09012SAndroid Build Coastguard Worker  option (google.api.oauth_scopes) =
41*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/cloud-platform,"
42*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/trace.append,"
43*d5c09012SAndroid Build Coastguard Worker      "https://www.googleapis.com/auth/trace.readonly";
44*d5c09012SAndroid Build Coastguard Worker
45*d5c09012SAndroid Build Coastguard Worker  // Returns of a list of traces that match the specified filter conditions.
46*d5c09012SAndroid Build Coastguard Worker  rpc ListTraces(ListTracesRequest) returns (ListTracesResponse) {
47*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
48*d5c09012SAndroid Build Coastguard Worker      get: "/v1/projects/{project_id}/traces"
49*d5c09012SAndroid Build Coastguard Worker    };
50*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id";
51*d5c09012SAndroid Build Coastguard Worker  }
52*d5c09012SAndroid Build Coastguard Worker
53*d5c09012SAndroid Build Coastguard Worker  // Gets a single trace by its ID.
54*d5c09012SAndroid Build Coastguard Worker  rpc GetTrace(GetTraceRequest) returns (Trace) {
55*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
56*d5c09012SAndroid Build Coastguard Worker      get: "/v1/projects/{project_id}/traces/{trace_id}"
57*d5c09012SAndroid Build Coastguard Worker    };
58*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,trace_id";
59*d5c09012SAndroid Build Coastguard Worker  }
60*d5c09012SAndroid Build Coastguard Worker
61*d5c09012SAndroid Build Coastguard Worker  // Sends new traces to Stackdriver Trace or updates existing traces. If the ID
62*d5c09012SAndroid Build Coastguard Worker  // of a trace that you send matches that of an existing trace, any fields
63*d5c09012SAndroid Build Coastguard Worker  // in the existing trace and its spans are overwritten by the provided values,
64*d5c09012SAndroid Build Coastguard Worker  // and any new fields provided are merged with the existing trace data. If the
65*d5c09012SAndroid Build Coastguard Worker  // ID does not match, a new trace is created.
66*d5c09012SAndroid Build Coastguard Worker  rpc PatchTraces(PatchTracesRequest) returns (google.protobuf.Empty) {
67*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
68*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/projects/{project_id}/traces"
69*d5c09012SAndroid Build Coastguard Worker      body: "traces"
70*d5c09012SAndroid Build Coastguard Worker    };
71*d5c09012SAndroid Build Coastguard Worker    option (google.api.method_signature) = "project_id,traces";
72*d5c09012SAndroid Build Coastguard Worker  }
73*d5c09012SAndroid Build Coastguard Worker}
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker// A trace describes how long it takes for an application to perform an
76*d5c09012SAndroid Build Coastguard Worker// operation. It consists of a set of spans, each of which represent a single
77*d5c09012SAndroid Build Coastguard Worker// timed event within the operation.
78*d5c09012SAndroid Build Coastguard Workermessage Trace {
79*d5c09012SAndroid Build Coastguard Worker  // Project ID of the Cloud project where the trace data is stored.
80*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
81*d5c09012SAndroid Build Coastguard Worker
82*d5c09012SAndroid Build Coastguard Worker  // Globally unique identifier for the trace. This identifier is a 128-bit
83*d5c09012SAndroid Build Coastguard Worker  // numeric value formatted as a 32-byte hex string. For example,
84*d5c09012SAndroid Build Coastguard Worker  // `382d4f4c6b7bb2f4a972559d9085001d`.
85*d5c09012SAndroid Build Coastguard Worker  string trace_id = 2;
86*d5c09012SAndroid Build Coastguard Worker
87*d5c09012SAndroid Build Coastguard Worker  // Collection of spans in the trace.
88*d5c09012SAndroid Build Coastguard Worker  repeated TraceSpan spans = 3;
89*d5c09012SAndroid Build Coastguard Worker}
90*d5c09012SAndroid Build Coastguard Worker
91*d5c09012SAndroid Build Coastguard Worker// List of new or updated traces.
92*d5c09012SAndroid Build Coastguard Workermessage Traces {
93*d5c09012SAndroid Build Coastguard Worker  // List of traces.
94*d5c09012SAndroid Build Coastguard Worker  repeated Trace traces = 1;
95*d5c09012SAndroid Build Coastguard Worker}
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker// A span represents a single timed event within a trace. Spans can be nested
98*d5c09012SAndroid Build Coastguard Worker// and form a trace tree. Often, a trace contains a root span that describes the
99*d5c09012SAndroid Build Coastguard Worker// end-to-end latency of an operation and, optionally, one or more subspans for
100*d5c09012SAndroid Build Coastguard Worker// its suboperations. Spans do not need to be contiguous. There may be gaps
101*d5c09012SAndroid Build Coastguard Worker// between spans in a trace.
102*d5c09012SAndroid Build Coastguard Workermessage TraceSpan {
103*d5c09012SAndroid Build Coastguard Worker  // Type of span. Can be used to specify additional relationships between spans
104*d5c09012SAndroid Build Coastguard Worker  // in addition to a parent/child relationship.
105*d5c09012SAndroid Build Coastguard Worker  enum SpanKind {
106*d5c09012SAndroid Build Coastguard Worker    // Unspecified.
107*d5c09012SAndroid Build Coastguard Worker    SPAN_KIND_UNSPECIFIED = 0;
108*d5c09012SAndroid Build Coastguard Worker
109*d5c09012SAndroid Build Coastguard Worker    // Indicates that the span covers server-side handling of an RPC or other
110*d5c09012SAndroid Build Coastguard Worker    // remote network request.
111*d5c09012SAndroid Build Coastguard Worker    RPC_SERVER = 1;
112*d5c09012SAndroid Build Coastguard Worker
113*d5c09012SAndroid Build Coastguard Worker    // Indicates that the span covers the client-side wrapper around an RPC or
114*d5c09012SAndroid Build Coastguard Worker    // other remote request.
115*d5c09012SAndroid Build Coastguard Worker    RPC_CLIENT = 2;
116*d5c09012SAndroid Build Coastguard Worker  }
117*d5c09012SAndroid Build Coastguard Worker
118*d5c09012SAndroid Build Coastguard Worker  // Identifier for the span. Must be a 64-bit integer other than 0 and
119*d5c09012SAndroid Build Coastguard Worker  // unique within a trace. For example, `2205310701640571284`.
120*d5c09012SAndroid Build Coastguard Worker  fixed64 span_id = 1;
121*d5c09012SAndroid Build Coastguard Worker
122*d5c09012SAndroid Build Coastguard Worker  // Distinguishes between spans generated in a particular context. For example,
123*d5c09012SAndroid Build Coastguard Worker  // two spans with the same name may be distinguished using `RPC_CLIENT`
124*d5c09012SAndroid Build Coastguard Worker  // and `RPC_SERVER` to identify queueing latency associated with the span.
125*d5c09012SAndroid Build Coastguard Worker  SpanKind kind = 2;
126*d5c09012SAndroid Build Coastguard Worker
127*d5c09012SAndroid Build Coastguard Worker  // Name of the span. Must be less than 128 bytes. The span name is sanitized
128*d5c09012SAndroid Build Coastguard Worker  // and displayed in the Stackdriver Trace tool in the
129*d5c09012SAndroid Build Coastguard Worker  // Google Cloud Platform Console.
130*d5c09012SAndroid Build Coastguard Worker  // The name may be a method name or some other per-call site name.
131*d5c09012SAndroid Build Coastguard Worker  // For the same executable and the same call point, a best practice is
132*d5c09012SAndroid Build Coastguard Worker  // to use a consistent name, which makes it easier to correlate
133*d5c09012SAndroid Build Coastguard Worker  // cross-trace spans.
134*d5c09012SAndroid Build Coastguard Worker  string name = 3;
135*d5c09012SAndroid Build Coastguard Worker
136*d5c09012SAndroid Build Coastguard Worker  // Start time of the span in nanoseconds from the UNIX epoch.
137*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 4;
138*d5c09012SAndroid Build Coastguard Worker
139*d5c09012SAndroid Build Coastguard Worker  // End time of the span in nanoseconds from the UNIX epoch.
140*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp end_time = 5;
141*d5c09012SAndroid Build Coastguard Worker
142*d5c09012SAndroid Build Coastguard Worker  // Optional. ID of the parent span, if any.
143*d5c09012SAndroid Build Coastguard Worker  fixed64 parent_span_id = 6 [(google.api.field_behavior) = OPTIONAL];
144*d5c09012SAndroid Build Coastguard Worker
145*d5c09012SAndroid Build Coastguard Worker  // Collection of labels associated with the span. Label keys must be less than
146*d5c09012SAndroid Build Coastguard Worker  // 128 bytes. Label values must be less than 16 kilobytes (10MB for
147*d5c09012SAndroid Build Coastguard Worker  // `/stacktrace` values).
148*d5c09012SAndroid Build Coastguard Worker  //
149*d5c09012SAndroid Build Coastguard Worker  // Some predefined label keys exist, or you may create your own. When creating
150*d5c09012SAndroid Build Coastguard Worker  // your own, we recommend the following formats:
151*d5c09012SAndroid Build Coastguard Worker  //
152*d5c09012SAndroid Build Coastguard Worker  // * `/category/product/key` for agents of well-known products (e.g.
153*d5c09012SAndroid Build Coastguard Worker  //   `/db/mongodb/read_size`).
154*d5c09012SAndroid Build Coastguard Worker  // * `short_host/path/key` for domain-specific keys (e.g.
155*d5c09012SAndroid Build Coastguard Worker  //   `foo.com/myproduct/bar`)
156*d5c09012SAndroid Build Coastguard Worker  //
157*d5c09012SAndroid Build Coastguard Worker  // Predefined labels include:
158*d5c09012SAndroid Build Coastguard Worker  //
159*d5c09012SAndroid Build Coastguard Worker  // *   `/agent`
160*d5c09012SAndroid Build Coastguard Worker  // *   `/component`
161*d5c09012SAndroid Build Coastguard Worker  // *   `/error/message`
162*d5c09012SAndroid Build Coastguard Worker  // *   `/error/name`
163*d5c09012SAndroid Build Coastguard Worker  // *   `/http/client_city`
164*d5c09012SAndroid Build Coastguard Worker  // *   `/http/client_country`
165*d5c09012SAndroid Build Coastguard Worker  // *   `/http/client_protocol`
166*d5c09012SAndroid Build Coastguard Worker  // *   `/http/client_region`
167*d5c09012SAndroid Build Coastguard Worker  // *   `/http/host`
168*d5c09012SAndroid Build Coastguard Worker  // *   `/http/method`
169*d5c09012SAndroid Build Coastguard Worker  // *   `/http/path`
170*d5c09012SAndroid Build Coastguard Worker  // *   `/http/redirected_url`
171*d5c09012SAndroid Build Coastguard Worker  // *   `/http/request/size`
172*d5c09012SAndroid Build Coastguard Worker  // *   `/http/response/size`
173*d5c09012SAndroid Build Coastguard Worker  // *   `/http/route`
174*d5c09012SAndroid Build Coastguard Worker  // *   `/http/status_code`
175*d5c09012SAndroid Build Coastguard Worker  // *   `/http/url`
176*d5c09012SAndroid Build Coastguard Worker  // *   `/http/user_agent`
177*d5c09012SAndroid Build Coastguard Worker  // *   `/pid`
178*d5c09012SAndroid Build Coastguard Worker  // *   `/stacktrace`
179*d5c09012SAndroid Build Coastguard Worker  // *   `/tid`
180*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 7;
181*d5c09012SAndroid Build Coastguard Worker}
182*d5c09012SAndroid Build Coastguard Worker
183*d5c09012SAndroid Build Coastguard Worker// The request message for the `ListTraces` method. All fields are required
184*d5c09012SAndroid Build Coastguard Worker// unless specified.
185*d5c09012SAndroid Build Coastguard Workermessage ListTracesRequest {
186*d5c09012SAndroid Build Coastguard Worker  // Type of data returned for traces in the list.
187*d5c09012SAndroid Build Coastguard Worker  enum ViewType {
188*d5c09012SAndroid Build Coastguard Worker    // Default is `MINIMAL` if unspecified.
189*d5c09012SAndroid Build Coastguard Worker    VIEW_TYPE_UNSPECIFIED = 0;
190*d5c09012SAndroid Build Coastguard Worker
191*d5c09012SAndroid Build Coastguard Worker    // Minimal view of the trace record that contains only the project
192*d5c09012SAndroid Build Coastguard Worker    // and trace IDs.
193*d5c09012SAndroid Build Coastguard Worker    MINIMAL = 1;
194*d5c09012SAndroid Build Coastguard Worker
195*d5c09012SAndroid Build Coastguard Worker    // Root span view of the trace record that returns the root spans along
196*d5c09012SAndroid Build Coastguard Worker    // with the minimal trace data.
197*d5c09012SAndroid Build Coastguard Worker    ROOTSPAN = 2;
198*d5c09012SAndroid Build Coastguard Worker
199*d5c09012SAndroid Build Coastguard Worker    // Complete view of the trace record that contains the actual trace data.
200*d5c09012SAndroid Build Coastguard Worker    // This is equivalent to calling the REST `get` or RPC `GetTrace` method
201*d5c09012SAndroid Build Coastguard Worker    // using the ID of each listed trace.
202*d5c09012SAndroid Build Coastguard Worker    COMPLETE = 3;
203*d5c09012SAndroid Build Coastguard Worker  }
204*d5c09012SAndroid Build Coastguard Worker
205*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the Cloud project where the trace data is stored.
206*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
207*d5c09012SAndroid Build Coastguard Worker
208*d5c09012SAndroid Build Coastguard Worker  // Optional. Type of data returned for traces in the list. Default is
209*d5c09012SAndroid Build Coastguard Worker  // `MINIMAL`.
210*d5c09012SAndroid Build Coastguard Worker  ViewType view = 2 [(google.api.field_behavior) = OPTIONAL];
211*d5c09012SAndroid Build Coastguard Worker
212*d5c09012SAndroid Build Coastguard Worker  // Optional. Maximum number of traces to return. If not specified or <= 0, the
213*d5c09012SAndroid Build Coastguard Worker  // implementation selects a reasonable value.  The implementation may
214*d5c09012SAndroid Build Coastguard Worker  // return fewer traces than the requested page size.
215*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
216*d5c09012SAndroid Build Coastguard Worker
217*d5c09012SAndroid Build Coastguard Worker  // Token identifying the page of results to return. If provided, use the
218*d5c09012SAndroid Build Coastguard Worker  // value of the `next_page_token` field from a previous request.
219*d5c09012SAndroid Build Coastguard Worker  string page_token = 4;
220*d5c09012SAndroid Build Coastguard Worker
221*d5c09012SAndroid Build Coastguard Worker  // Start of the time interval (inclusive) during which the trace data was
222*d5c09012SAndroid Build Coastguard Worker  // collected from the application.
223*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp start_time = 5;
224*d5c09012SAndroid Build Coastguard Worker
225*d5c09012SAndroid Build Coastguard Worker  // End of the time interval (inclusive) during which the trace data was
226*d5c09012SAndroid Build Coastguard Worker  // collected from the application.
227*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp end_time = 6;
228*d5c09012SAndroid Build Coastguard Worker
229*d5c09012SAndroid Build Coastguard Worker  // Optional. A filter against labels for the request.
230*d5c09012SAndroid Build Coastguard Worker  //
231*d5c09012SAndroid Build Coastguard Worker  // By default, searches use prefix matching. To specify exact match, prepend
232*d5c09012SAndroid Build Coastguard Worker  // a plus symbol (`+`) to the search term.
233*d5c09012SAndroid Build Coastguard Worker  // Multiple terms are ANDed. Syntax:
234*d5c09012SAndroid Build Coastguard Worker  //
235*d5c09012SAndroid Build Coastguard Worker  // *   `root:NAME_PREFIX` or `NAME_PREFIX`: Return traces where any root
236*d5c09012SAndroid Build Coastguard Worker  //     span starts with `NAME_PREFIX`.
237*d5c09012SAndroid Build Coastguard Worker  // *   `+root:NAME` or `+NAME`: Return traces where any root span's name is
238*d5c09012SAndroid Build Coastguard Worker  //     exactly `NAME`.
239*d5c09012SAndroid Build Coastguard Worker  // *   `span:NAME_PREFIX`: Return traces where any span starts with
240*d5c09012SAndroid Build Coastguard Worker  //     `NAME_PREFIX`.
241*d5c09012SAndroid Build Coastguard Worker  // *   `+span:NAME`: Return traces where any span's name is exactly
242*d5c09012SAndroid Build Coastguard Worker  //     `NAME`.
243*d5c09012SAndroid Build Coastguard Worker  // *   `latency:DURATION`: Return traces whose overall latency is
244*d5c09012SAndroid Build Coastguard Worker  //     greater or equal to than `DURATION`. Accepted units are nanoseconds
245*d5c09012SAndroid Build Coastguard Worker  //     (`ns`), milliseconds (`ms`), and seconds (`s`). Default is `ms`. For
246*d5c09012SAndroid Build Coastguard Worker  //     example, `latency:24ms` returns traces whose overall latency
247*d5c09012SAndroid Build Coastguard Worker  //     is greater than or equal to 24 milliseconds.
248*d5c09012SAndroid Build Coastguard Worker  // *   `label:LABEL_KEY`: Return all traces containing the specified
249*d5c09012SAndroid Build Coastguard Worker  //     label key (exact match, case-sensitive) regardless of the key:value
250*d5c09012SAndroid Build Coastguard Worker  //     pair's value (including empty values).
251*d5c09012SAndroid Build Coastguard Worker  // *   `LABEL_KEY:VALUE_PREFIX`: Return all traces containing the specified
252*d5c09012SAndroid Build Coastguard Worker  //     label key (exact match, case-sensitive) whose value starts with
253*d5c09012SAndroid Build Coastguard Worker  //     `VALUE_PREFIX`. Both a key and a value must be specified.
254*d5c09012SAndroid Build Coastguard Worker  // *   `+LABEL_KEY:VALUE`: Return all traces containing a key:value pair
255*d5c09012SAndroid Build Coastguard Worker  //     exactly matching the specified text. Both a key and a value must be
256*d5c09012SAndroid Build Coastguard Worker  //     specified.
257*d5c09012SAndroid Build Coastguard Worker  // *   `method:VALUE`: Equivalent to `/http/method:VALUE`.
258*d5c09012SAndroid Build Coastguard Worker  // *   `url:VALUE`: Equivalent to `/http/url:VALUE`.
259*d5c09012SAndroid Build Coastguard Worker  string filter = 7 [(google.api.field_behavior) = OPTIONAL];
260*d5c09012SAndroid Build Coastguard Worker
261*d5c09012SAndroid Build Coastguard Worker  // Optional. Field used to sort the returned traces.
262*d5c09012SAndroid Build Coastguard Worker  // Can be one of the following:
263*d5c09012SAndroid Build Coastguard Worker  //
264*d5c09012SAndroid Build Coastguard Worker  // *   `trace_id`
265*d5c09012SAndroid Build Coastguard Worker  // *   `name` (`name` field of root span in the trace)
266*d5c09012SAndroid Build Coastguard Worker  // *   `duration` (difference between `end_time` and `start_time` fields of
267*d5c09012SAndroid Build Coastguard Worker  //      the root span)
268*d5c09012SAndroid Build Coastguard Worker  // *   `start` (`start_time` field of the root span)
269*d5c09012SAndroid Build Coastguard Worker  //
270*d5c09012SAndroid Build Coastguard Worker  // Descending order can be specified by appending `desc` to the sort field
271*d5c09012SAndroid Build Coastguard Worker  // (for example, `name desc`).
272*d5c09012SAndroid Build Coastguard Worker  //
273*d5c09012SAndroid Build Coastguard Worker  // Only one sort field is permitted.
274*d5c09012SAndroid Build Coastguard Worker  string order_by = 8 [(google.api.field_behavior) = OPTIONAL];
275*d5c09012SAndroid Build Coastguard Worker}
276*d5c09012SAndroid Build Coastguard Worker
277*d5c09012SAndroid Build Coastguard Worker// The response message for the `ListTraces` method.
278*d5c09012SAndroid Build Coastguard Workermessage ListTracesResponse {
279*d5c09012SAndroid Build Coastguard Worker  // List of trace records as specified by the view parameter.
280*d5c09012SAndroid Build Coastguard Worker  repeated Trace traces = 1;
281*d5c09012SAndroid Build Coastguard Worker
282*d5c09012SAndroid Build Coastguard Worker  // If defined, indicates that there are more traces that match the request
283*d5c09012SAndroid Build Coastguard Worker  // and that this value should be passed to the next request to continue
284*d5c09012SAndroid Build Coastguard Worker  // retrieving additional traces.
285*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
286*d5c09012SAndroid Build Coastguard Worker}
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker// The request message for the `GetTrace` method.
289*d5c09012SAndroid Build Coastguard Workermessage GetTraceRequest {
290*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the Cloud project where the trace data is stored.
291*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
292*d5c09012SAndroid Build Coastguard Worker
293*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the trace to return.
294*d5c09012SAndroid Build Coastguard Worker  string trace_id = 2 [(google.api.field_behavior) = REQUIRED];
295*d5c09012SAndroid Build Coastguard Worker}
296*d5c09012SAndroid Build Coastguard Worker
297*d5c09012SAndroid Build Coastguard Worker// The request message for the `PatchTraces` method.
298*d5c09012SAndroid Build Coastguard Workermessage PatchTracesRequest {
299*d5c09012SAndroid Build Coastguard Worker  // Required. ID of the Cloud project where the trace data is stored.
300*d5c09012SAndroid Build Coastguard Worker  string project_id = 1 [(google.api.field_behavior) = REQUIRED];
301*d5c09012SAndroid Build Coastguard Worker
302*d5c09012SAndroid Build Coastguard Worker  // Required. The body of the message.
303*d5c09012SAndroid Build Coastguard Worker  Traces traces = 2 [(google.api.field_behavior) = REQUIRED];
304*d5c09012SAndroid Build Coastguard Worker}
305