xref: /aosp_15_r20/external/googleapis/google/logging/v2/log_entry.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 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.logging.v2;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/monitored_resource.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/logging/type/http_request.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/logging/type/log_severity.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/any.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
27*d5c09012SAndroid Build Coastguard Worker
28*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
29*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.Logging.V2";
30*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/logging/apiv2/loggingpb;loggingpb";
31*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
32*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "LogEntryProto";
33*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.logging.v2";
34*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\Logging\\V2";
35*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::Logging::V2";
36*d5c09012SAndroid Build Coastguard Worker
37*d5c09012SAndroid Build Coastguard Worker// An individual entry in a log.
38*d5c09012SAndroid Build Coastguard Workermessage LogEntry {
39*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
40*d5c09012SAndroid Build Coastguard Worker    type: "logging.googleapis.com/Log"
41*d5c09012SAndroid Build Coastguard Worker    pattern: "projects/{project}/logs/{log}"
42*d5c09012SAndroid Build Coastguard Worker    pattern: "organizations/{organization}/logs/{log}"
43*d5c09012SAndroid Build Coastguard Worker    pattern: "folders/{folder}/logs/{log}"
44*d5c09012SAndroid Build Coastguard Worker    pattern: "billingAccounts/{billing_account}/logs/{log}"
45*d5c09012SAndroid Build Coastguard Worker    name_field: "log_name"
46*d5c09012SAndroid Build Coastguard Worker  };
47*d5c09012SAndroid Build Coastguard Worker
48*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the log to which this log entry belongs:
49*d5c09012SAndroid Build Coastguard Worker  //
50*d5c09012SAndroid Build Coastguard Worker  //     "projects/[PROJECT_ID]/logs/[LOG_ID]"
51*d5c09012SAndroid Build Coastguard Worker  //     "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
52*d5c09012SAndroid Build Coastguard Worker  //     "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
53*d5c09012SAndroid Build Coastguard Worker  //     "folders/[FOLDER_ID]/logs/[LOG_ID]"
54*d5c09012SAndroid Build Coastguard Worker  //
55*d5c09012SAndroid Build Coastguard Worker  // A project number may be used in place of PROJECT_ID. The project number is
56*d5c09012SAndroid Build Coastguard Worker  // translated to its corresponding PROJECT_ID internally and the `log_name`
57*d5c09012SAndroid Build Coastguard Worker  // field will contain PROJECT_ID in queries and exports.
58*d5c09012SAndroid Build Coastguard Worker  //
59*d5c09012SAndroid Build Coastguard Worker  // `[LOG_ID]` must be URL-encoded within `log_name`. Example:
60*d5c09012SAndroid Build Coastguard Worker  // `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`.
61*d5c09012SAndroid Build Coastguard Worker  //
62*d5c09012SAndroid Build Coastguard Worker  // `[LOG_ID]` must be less than 512 characters long and can only include the
63*d5c09012SAndroid Build Coastguard Worker  // following characters: upper and lower case alphanumeric characters,
64*d5c09012SAndroid Build Coastguard Worker  // forward-slash, underscore, hyphen, and period.
65*d5c09012SAndroid Build Coastguard Worker  //
66*d5c09012SAndroid Build Coastguard Worker  // For backward compatibility, if `log_name` begins with a forward-slash, such
67*d5c09012SAndroid Build Coastguard Worker  // as `/projects/...`, then the log entry is ingested as usual, but the
68*d5c09012SAndroid Build Coastguard Worker  // forward-slash is removed. Listing the log entry will not show the leading
69*d5c09012SAndroid Build Coastguard Worker  // slash and filtering for a log name with a leading slash will never return
70*d5c09012SAndroid Build Coastguard Worker  // any results.
71*d5c09012SAndroid Build Coastguard Worker  string log_name = 12 [(google.api.field_behavior) = REQUIRED];
72*d5c09012SAndroid Build Coastguard Worker
73*d5c09012SAndroid Build Coastguard Worker  // Required. The monitored resource that produced this log entry.
74*d5c09012SAndroid Build Coastguard Worker  //
75*d5c09012SAndroid Build Coastguard Worker  // Example: a log entry that reports a database error would be associated with
76*d5c09012SAndroid Build Coastguard Worker  // the monitored resource designating the particular database that reported
77*d5c09012SAndroid Build Coastguard Worker  // the error.
78*d5c09012SAndroid Build Coastguard Worker  google.api.MonitoredResource resource = 8
79*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = REQUIRED];
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker  // The log entry payload, which can be one of multiple types.
82*d5c09012SAndroid Build Coastguard Worker  oneof payload {
83*d5c09012SAndroid Build Coastguard Worker    // The log entry payload, represented as a protocol buffer. Some Google
84*d5c09012SAndroid Build Coastguard Worker    // Cloud Platform services use this field for their log entry payloads.
85*d5c09012SAndroid Build Coastguard Worker    //
86*d5c09012SAndroid Build Coastguard Worker    // The following protocol buffer types are supported; user-defined types
87*d5c09012SAndroid Build Coastguard Worker    // are not supported:
88*d5c09012SAndroid Build Coastguard Worker    //
89*d5c09012SAndroid Build Coastguard Worker    //   "type.googleapis.com/google.cloud.audit.AuditLog"
90*d5c09012SAndroid Build Coastguard Worker    //   "type.googleapis.com/google.appengine.logging.v1.RequestLog"
91*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Any proto_payload = 2;
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker    // The log entry payload, represented as a Unicode string (UTF-8).
94*d5c09012SAndroid Build Coastguard Worker    string text_payload = 3;
95*d5c09012SAndroid Build Coastguard Worker
96*d5c09012SAndroid Build Coastguard Worker    // The log entry payload, represented as a structure that is
97*d5c09012SAndroid Build Coastguard Worker    // expressed as a JSON object.
98*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Struct json_payload = 6;
99*d5c09012SAndroid Build Coastguard Worker  }
100*d5c09012SAndroid Build Coastguard Worker
101*d5c09012SAndroid Build Coastguard Worker  // Optional. The time the event described by the log entry occurred. This time
102*d5c09012SAndroid Build Coastguard Worker  // is used to compute the log entry's age and to enforce the logs retention
103*d5c09012SAndroid Build Coastguard Worker  // period. If this field is omitted in a new log entry, then Logging assigns
104*d5c09012SAndroid Build Coastguard Worker  // it the current time. Timestamps have nanosecond accuracy, but trailing
105*d5c09012SAndroid Build Coastguard Worker  // zeros in the fractional seconds might be omitted when the timestamp is
106*d5c09012SAndroid Build Coastguard Worker  // displayed.
107*d5c09012SAndroid Build Coastguard Worker  //
108*d5c09012SAndroid Build Coastguard Worker  // Incoming log entries must have timestamps that don't exceed the
109*d5c09012SAndroid Build Coastguard Worker  // [logs retention
110*d5c09012SAndroid Build Coastguard Worker  // period](https://cloud.google.com/logging/quotas#logs_retention_periods) in
111*d5c09012SAndroid Build Coastguard Worker  // the past, and that don't exceed 24 hours in the future. Log entries outside
112*d5c09012SAndroid Build Coastguard Worker  // those time boundaries aren't ingested by Logging.
113*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp timestamp = 9
114*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
115*d5c09012SAndroid Build Coastguard Worker
116*d5c09012SAndroid Build Coastguard Worker  // Output only. The time the log entry was received by Logging.
117*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp receive_timestamp = 24
118*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Optional. The severity of the log entry. The default value is
121*d5c09012SAndroid Build Coastguard Worker  // `LogSeverity.DEFAULT`.
122*d5c09012SAndroid Build Coastguard Worker  google.logging.type.LogSeverity severity = 10
123*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
124*d5c09012SAndroid Build Coastguard Worker
125*d5c09012SAndroid Build Coastguard Worker  // Optional. A unique identifier for the log entry. If you provide a value,
126*d5c09012SAndroid Build Coastguard Worker  // then Logging considers other log entries in the same project, with the same
127*d5c09012SAndroid Build Coastguard Worker  // `timestamp`, and with the same `insert_id` to be duplicates which are
128*d5c09012SAndroid Build Coastguard Worker  // removed in a single query result. However, there are no guarantees of
129*d5c09012SAndroid Build Coastguard Worker  // de-duplication in the export of logs.
130*d5c09012SAndroid Build Coastguard Worker  //
131*d5c09012SAndroid Build Coastguard Worker  // If the `insert_id` is omitted when writing a log entry, the Logging API
132*d5c09012SAndroid Build Coastguard Worker  // assigns its own unique identifier in this field.
133*d5c09012SAndroid Build Coastguard Worker  //
134*d5c09012SAndroid Build Coastguard Worker  // In queries, the `insert_id` is also used to order log entries that have
135*d5c09012SAndroid Build Coastguard Worker  // the same `log_name` and `timestamp` values.
136*d5c09012SAndroid Build Coastguard Worker  string insert_id = 4 [(google.api.field_behavior) = OPTIONAL];
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker  // Optional. Information about the HTTP request associated with this log
139*d5c09012SAndroid Build Coastguard Worker  // entry, if applicable.
140*d5c09012SAndroid Build Coastguard Worker  google.logging.type.HttpRequest http_request = 7
141*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker  // Optional. A map of key, value pairs that provides additional information
144*d5c09012SAndroid Build Coastguard Worker  // about the log entry. The labels can be user-defined or system-defined.
145*d5c09012SAndroid Build Coastguard Worker  //
146*d5c09012SAndroid Build Coastguard Worker  // User-defined labels are arbitrary key, value pairs that you can use to
147*d5c09012SAndroid Build Coastguard Worker  // classify logs.
148*d5c09012SAndroid Build Coastguard Worker  //
149*d5c09012SAndroid Build Coastguard Worker  // System-defined labels are defined by GCP services for platform logs.
150*d5c09012SAndroid Build Coastguard Worker  // They have two components - a service namespace component and the
151*d5c09012SAndroid Build Coastguard Worker  // attribute name. For example: `compute.googleapis.com/resource_name`.
152*d5c09012SAndroid Build Coastguard Worker  //
153*d5c09012SAndroid Build Coastguard Worker  // Cloud Logging truncates label keys that exceed 512 B and label
154*d5c09012SAndroid Build Coastguard Worker  // values that exceed 64 KB upon their associated log entry being
155*d5c09012SAndroid Build Coastguard Worker  // written. The truncation is indicated by an ellipsis at the
156*d5c09012SAndroid Build Coastguard Worker  // end of the character string.
157*d5c09012SAndroid Build Coastguard Worker  map<string, string> labels = 11 [(google.api.field_behavior) = OPTIONAL];
158*d5c09012SAndroid Build Coastguard Worker
159*d5c09012SAndroid Build Coastguard Worker  // Optional. Information about an operation associated with the log entry, if
160*d5c09012SAndroid Build Coastguard Worker  // applicable.
161*d5c09012SAndroid Build Coastguard Worker  LogEntryOperation operation = 15 [(google.api.field_behavior) = OPTIONAL];
162*d5c09012SAndroid Build Coastguard Worker
163*d5c09012SAndroid Build Coastguard Worker  // Optional. The REST resource name of the trace being written to
164*d5c09012SAndroid Build Coastguard Worker  // [Cloud Trace](https://cloud.google.com/trace) in
165*d5c09012SAndroid Build Coastguard Worker  // association with this log entry. For example, if your trace data is stored
166*d5c09012SAndroid Build Coastguard Worker  // in the Cloud project "my-trace-project" and if the service that is creating
167*d5c09012SAndroid Build Coastguard Worker  // the log entry receives a trace header that includes the trace ID "12345",
168*d5c09012SAndroid Build Coastguard Worker  // then the service should use "projects/my-tracing-project/traces/12345".
169*d5c09012SAndroid Build Coastguard Worker  //
170*d5c09012SAndroid Build Coastguard Worker  // The `trace` field provides the link between logs and traces. By using
171*d5c09012SAndroid Build Coastguard Worker  // this field, you can navigate from a log entry to a trace.
172*d5c09012SAndroid Build Coastguard Worker  string trace = 22 [(google.api.field_behavior) = OPTIONAL];
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker  // Optional. The ID of the [Cloud Trace](https://cloud.google.com/trace) span
175*d5c09012SAndroid Build Coastguard Worker  // associated with the current operation in which the log is being written.
176*d5c09012SAndroid Build Coastguard Worker  // For example, if a span has the REST resource name of
177*d5c09012SAndroid Build Coastguard Worker  // "projects/some-project/traces/some-trace/spans/some-span-id", then the
178*d5c09012SAndroid Build Coastguard Worker  // `span_id` field is "some-span-id".
179*d5c09012SAndroid Build Coastguard Worker  //
180*d5c09012SAndroid Build Coastguard Worker  // A
181*d5c09012SAndroid Build Coastguard Worker  // [Span](https://cloud.google.com/trace/docs/reference/v2/rest/v2/projects.traces/batchWrite#Span)
182*d5c09012SAndroid Build Coastguard Worker  // represents a single operation within a trace. Whereas a trace may involve
183*d5c09012SAndroid Build Coastguard Worker  // multiple different microservices running on multiple different machines,
184*d5c09012SAndroid Build Coastguard Worker  // a span generally corresponds to a single logical operation being performed
185*d5c09012SAndroid Build Coastguard Worker  // in a single instance of a microservice on one specific machine. Spans
186*d5c09012SAndroid Build Coastguard Worker  // are the nodes within the tree that is a trace.
187*d5c09012SAndroid Build Coastguard Worker  //
188*d5c09012SAndroid Build Coastguard Worker  // Applications that are [instrumented for
189*d5c09012SAndroid Build Coastguard Worker  // tracing](https://cloud.google.com/trace/docs/setup) will generally assign a
190*d5c09012SAndroid Build Coastguard Worker  // new, unique span ID on each incoming request. It is also common to create
191*d5c09012SAndroid Build Coastguard Worker  // and record additional spans corresponding to internal processing elements
192*d5c09012SAndroid Build Coastguard Worker  // as well as issuing requests to dependencies.
193*d5c09012SAndroid Build Coastguard Worker  //
194*d5c09012SAndroid Build Coastguard Worker  // The span ID is expected to be a 16-character, hexadecimal encoding of an
195*d5c09012SAndroid Build Coastguard Worker  // 8-byte array and should not be zero. It should be unique within the trace
196*d5c09012SAndroid Build Coastguard Worker  // and should, ideally, be generated in a manner that is uniformly random.
197*d5c09012SAndroid Build Coastguard Worker  //
198*d5c09012SAndroid Build Coastguard Worker  // Example values:
199*d5c09012SAndroid Build Coastguard Worker  //
200*d5c09012SAndroid Build Coastguard Worker  //   - `000000000000004a`
201*d5c09012SAndroid Build Coastguard Worker  //   - `7a2190356c3fc94b`
202*d5c09012SAndroid Build Coastguard Worker  //   - `0000f00300090021`
203*d5c09012SAndroid Build Coastguard Worker  //   - `d39223e101960076`
204*d5c09012SAndroid Build Coastguard Worker  string span_id = 27 [(google.api.field_behavior) = OPTIONAL];
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker  // Optional. The sampling decision of the trace associated with the log entry.
207*d5c09012SAndroid Build Coastguard Worker  //
208*d5c09012SAndroid Build Coastguard Worker  // True means that the trace resource name in the `trace` field was sampled
209*d5c09012SAndroid Build Coastguard Worker  // for storage in a trace backend. False means that the trace was not sampled
210*d5c09012SAndroid Build Coastguard Worker  // for storage when this log entry was written, or the sampling decision was
211*d5c09012SAndroid Build Coastguard Worker  // unknown at the time. A non-sampled `trace` value is still useful as a
212*d5c09012SAndroid Build Coastguard Worker  // request correlation identifier. The default is False.
213*d5c09012SAndroid Build Coastguard Worker  bool trace_sampled = 30 [(google.api.field_behavior) = OPTIONAL];
214*d5c09012SAndroid Build Coastguard Worker
215*d5c09012SAndroid Build Coastguard Worker  // Optional. Source code location information associated with the log entry,
216*d5c09012SAndroid Build Coastguard Worker  // if any.
217*d5c09012SAndroid Build Coastguard Worker  LogEntrySourceLocation source_location = 23
218*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OPTIONAL];
219*d5c09012SAndroid Build Coastguard Worker
220*d5c09012SAndroid Build Coastguard Worker  // Optional. Information indicating this LogEntry is part of a sequence of
221*d5c09012SAndroid Build Coastguard Worker  // multiple log entries split from a single LogEntry.
222*d5c09012SAndroid Build Coastguard Worker  LogSplit split = 35 [(google.api.field_behavior) = OPTIONAL];
223*d5c09012SAndroid Build Coastguard Worker}
224*d5c09012SAndroid Build Coastguard Worker
225*d5c09012SAndroid Build Coastguard Worker// Additional information about a potentially long-running operation with which
226*d5c09012SAndroid Build Coastguard Worker// a log entry is associated.
227*d5c09012SAndroid Build Coastguard Workermessage LogEntryOperation {
228*d5c09012SAndroid Build Coastguard Worker  // Optional. An arbitrary operation identifier. Log entries with the same
229*d5c09012SAndroid Build Coastguard Worker  // identifier are assumed to be part of the same operation.
230*d5c09012SAndroid Build Coastguard Worker  string id = 1 [(google.api.field_behavior) = OPTIONAL];
231*d5c09012SAndroid Build Coastguard Worker
232*d5c09012SAndroid Build Coastguard Worker  // Optional. An arbitrary producer identifier. The combination of `id` and
233*d5c09012SAndroid Build Coastguard Worker  // `producer` must be globally unique. Examples for `producer`:
234*d5c09012SAndroid Build Coastguard Worker  // `"MyDivision.MyBigCompany.com"`, `"github.com/MyProject/MyApplication"`.
235*d5c09012SAndroid Build Coastguard Worker  string producer = 2 [(google.api.field_behavior) = OPTIONAL];
236*d5c09012SAndroid Build Coastguard Worker
237*d5c09012SAndroid Build Coastguard Worker  // Optional. Set this to True if this is the first log entry in the operation.
238*d5c09012SAndroid Build Coastguard Worker  bool first = 3 [(google.api.field_behavior) = OPTIONAL];
239*d5c09012SAndroid Build Coastguard Worker
240*d5c09012SAndroid Build Coastguard Worker  // Optional. Set this to True if this is the last log entry in the operation.
241*d5c09012SAndroid Build Coastguard Worker  bool last = 4 [(google.api.field_behavior) = OPTIONAL];
242*d5c09012SAndroid Build Coastguard Worker}
243*d5c09012SAndroid Build Coastguard Worker
244*d5c09012SAndroid Build Coastguard Worker// Additional information about the source code location that produced the log
245*d5c09012SAndroid Build Coastguard Worker// entry.
246*d5c09012SAndroid Build Coastguard Workermessage LogEntrySourceLocation {
247*d5c09012SAndroid Build Coastguard Worker  // Optional. Source file name. Depending on the runtime environment, this
248*d5c09012SAndroid Build Coastguard Worker  // might be a simple name or a fully-qualified name.
249*d5c09012SAndroid Build Coastguard Worker  string file = 1 [(google.api.field_behavior) = OPTIONAL];
250*d5c09012SAndroid Build Coastguard Worker
251*d5c09012SAndroid Build Coastguard Worker  // Optional. Line within the source file. 1-based; 0 indicates no line number
252*d5c09012SAndroid Build Coastguard Worker  // available.
253*d5c09012SAndroid Build Coastguard Worker  int64 line = 2 [(google.api.field_behavior) = OPTIONAL];
254*d5c09012SAndroid Build Coastguard Worker
255*d5c09012SAndroid Build Coastguard Worker  // Optional. Human-readable name of the function or method being invoked, with
256*d5c09012SAndroid Build Coastguard Worker  // optional context such as the class or package name. This information may be
257*d5c09012SAndroid Build Coastguard Worker  // used in contexts such as the logs viewer, where a file and line number are
258*d5c09012SAndroid Build Coastguard Worker  // less meaningful. The format can vary by language. For example:
259*d5c09012SAndroid Build Coastguard Worker  // `qual.if.ied.Class.method` (Java), `dir/package.func` (Go), `function`
260*d5c09012SAndroid Build Coastguard Worker  // (Python).
261*d5c09012SAndroid Build Coastguard Worker  string function = 3 [(google.api.field_behavior) = OPTIONAL];
262*d5c09012SAndroid Build Coastguard Worker}
263*d5c09012SAndroid Build Coastguard Worker
264*d5c09012SAndroid Build Coastguard Worker// Additional information used to correlate multiple log entries. Used when a
265*d5c09012SAndroid Build Coastguard Worker// single LogEntry would exceed the Google Cloud Logging size limit and is
266*d5c09012SAndroid Build Coastguard Worker// split across multiple log entries.
267*d5c09012SAndroid Build Coastguard Workermessage LogSplit {
268*d5c09012SAndroid Build Coastguard Worker  // A globally unique identifier for all log entries in a sequence of split log
269*d5c09012SAndroid Build Coastguard Worker  // entries. All log entries with the same |LogSplit.uid| are assumed to be
270*d5c09012SAndroid Build Coastguard Worker  // part of the same sequence of split log entries.
271*d5c09012SAndroid Build Coastguard Worker  string uid = 1;
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker  // The index of this LogEntry in the sequence of split log entries. Log
274*d5c09012SAndroid Build Coastguard Worker  // entries are given |index| values 0, 1, ..., n-1 for a sequence of n log
275*d5c09012SAndroid Build Coastguard Worker  // entries.
276*d5c09012SAndroid Build Coastguard Worker  int32 index = 2;
277*d5c09012SAndroid Build Coastguard Worker
278*d5c09012SAndroid Build Coastguard Worker  // The total number of log entries that the original LogEntry was split into.
279*d5c09012SAndroid Build Coastguard Worker  int32 total_splits = 3;
280*d5c09012SAndroid Build Coastguard Worker}
281