aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/logging/v2/log_entry.proto
blob: a767a9983f12104c12d1c74ef7622b7e89de9cab (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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// Copyright 2017 Google Inc.
//
// 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 google.logging.v2;

import "google/api/annotations.proto";
import "google/api/monitored_resource.proto";
import "google/logging/type/http_request.proto";
import "google/logging/type/log_severity.proto";
import "google/protobuf/any.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";

option cc_enable_arenas = true;
option csharp_namespace = "Google.Cloud.Logging.V2";
option go_package = "google.golang.org/genproto/googleapis/logging/v2;logging";
option java_multiple_files = true;
option java_outer_classname = "LogEntryProto";
option java_package = "com.google.logging.v2";


// An individual entry in a log.
message LogEntry {
  // Required. The resource name of the log to which this log entry belongs:
  //
  //     "projects/[PROJECT_ID]/logs/[LOG_ID]"
  //     "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
  //     "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
  //     "folders/[FOLDER_ID]/logs/[LOG_ID]"
  //
  // `[LOG_ID]` must be URL-encoded within `log_name`. Example:
  // `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`.
  // `[LOG_ID]` must be less than 512 characters long and can only include the
  // following characters: upper and lower case alphanumeric characters,
  // forward-slash, underscore, hyphen, and period.
  //
  // For backward compatibility, if `log_name` begins with a forward-slash, such
  // as `/projects/...`, then the log entry is ingested as usual but the
  // forward-slash is removed. Listing the log entry will not show the leading
  // slash and filtering for a log name with a leading slash will never return
  // any results.
  string log_name = 12;

  // Required. The monitored resource associated with this log entry.
  // Example: a log entry that reports a database error would be
  // associated with the monitored resource designating the particular
  // database that reported the error.
  google.api.MonitoredResource resource = 8;

  // Optional. The log entry payload, which can be one of multiple types.
  oneof payload {
    // The log entry payload, represented as a protocol buffer.  Some
    // Google Cloud Platform services use this field for their log
    // entry payloads.
    google.protobuf.Any proto_payload = 2;

    // The log entry payload, represented as a Unicode string (UTF-8).
    string text_payload = 3;

    // The log entry payload, represented as a structure that is
    // expressed as a JSON object.
    google.protobuf.Struct json_payload = 6;
  }

  // Optional. The time the event described by the log entry occurred.  If
  // omitted in a new log entry, Stackdriver Logging will insert the time the
  // log entry is received.  Stackdriver Logging might reject log entries whose
  // time stamps are more than a couple of hours in the future. Log entries
  // with time stamps in the past are accepted.
  google.protobuf.Timestamp timestamp = 9;

  // Optional. The severity of the log entry. The default value is
  // `LogSeverity.DEFAULT`.
  google.logging.type.LogSeverity severity = 10;

  // Optional. A unique identifier for the log entry. If you provide a value,
  // then Stackdriver Logging considers other log entries in the same project,
  // with the same `timestamp`, and with the same `insert_id` to be duplicates
  // which can be removed.  If omitted in new log entries, then Stackdriver
  // Logging will insert its own unique identifier. The `insert_id` is used
  // to order log entries that have the same `timestamp` value.
  string insert_id = 4;

  // Optional. Information about the HTTP request associated with this
  // log entry, if applicable.
  google.logging.type.HttpRequest http_request = 7;

  // Optional. A set of user-defined (key, value) data that provides additional
  // information about the log entry.
  map<string, string> labels = 11;

  // Optional. Information about an operation associated with the log entry, if
  // applicable.
  LogEntryOperation operation = 15;

  // Optional. Resource name of the trace associated with the log entry, if any.
  // If it contains a relative resource name, the name is assumed to be relative
  // to `//tracing.googleapis.com`. Example:
  // `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`
  string trace = 22;

  // Optional. Source code location information associated with the log entry,
  // if any.
  LogEntrySourceLocation source_location = 23;
}

// Additional information about a potentially long-running operation with which
// a log entry is associated.
message LogEntryOperation {
  // Optional. An arbitrary operation identifier. Log entries with the
  // same identifier are assumed to be part of the same operation.
  string id = 1;

  // Optional. An arbitrary producer identifier. The combination of
  // `id` and `producer` must be globally unique.  Examples for `producer`:
  // `"MyDivision.MyBigCompany.com"`, `"github.com/MyProject/MyApplication"`.
  string producer = 2;

  // Optional. Set this to True if this is the first log entry in the operation.
  bool first = 3;

  // Optional. Set this to True if this is the last log entry in the operation.
  bool last = 4;
}

// Additional information about the source code location that produced the log
// entry.
message LogEntrySourceLocation {
  // Optional. Source file name. Depending on the runtime environment, this
  // might be a simple name or a fully-qualified name.
  string file = 1;

  // Optional. Line within the source file. 1-based; 0 indicates no line number
  // available.
  int64 line = 2;

  // Optional. Human-readable name of the function or method being invoked, with
  // optional context such as the class or package name. This information may be
  // used in contexts such as the logs viewer, where a file and line number are
  // less meaningful. The format can vary by language. For example:
  // `qual.if.ied.Class.method` (Java), `dir/package.func` (Go), `function`
  // (Python).
  string function = 3;
}