1syntax = "proto2";
2option go_package = "log";
3
4package appengine;
5
6message LogServiceError {
7  enum ErrorCode {
8    OK  = 0;
9    INVALID_REQUEST = 1;
10    STORAGE_ERROR = 2;
11  }
12}
13
14message UserAppLogLine {
15  required int64 timestamp_usec = 1;
16  required int64 level = 2;
17  required string message = 3;
18}
19
20message UserAppLogGroup {
21  repeated UserAppLogLine log_line = 2;
22}
23
24message FlushRequest {
25  optional bytes logs = 1;
26}
27
28message SetStatusRequest {
29  required string status = 1;
30}
31
32
33message LogOffset {
34  optional bytes request_id = 1;
35}
36
37message LogLine {
38  required int64 time = 1;
39  required int32 level = 2;
40  required string log_message = 3;
41}
42
43message RequestLog {
44  required string app_id = 1;
45  optional string module_id = 37 [default="default"];
46  required string version_id = 2;
47  required bytes request_id = 3;
48  optional LogOffset offset = 35;
49  required string ip = 4;
50  optional string nickname = 5;
51  required int64 start_time = 6;
52  required int64 end_time = 7;
53  required int64 latency = 8;
54  required int64 mcycles = 9;
55  required string method = 10;
56  required string resource = 11;
57  required string http_version = 12;
58  required int32 status = 13;
59  required int64 response_size = 14;
60  optional string referrer = 15;
61  optional string user_agent = 16;
62  required string url_map_entry = 17;
63  required string combined = 18;
64  optional int64 api_mcycles = 19;
65  optional string host = 20;
66  optional double cost = 21;
67
68  optional string task_queue_name = 22;
69  optional string task_name = 23;
70
71  optional bool was_loading_request = 24;
72  optional int64 pending_time = 25;
73  optional int32 replica_index = 26 [default = -1];
74  optional bool finished = 27 [default = true];
75  optional bytes clone_key = 28;
76
77  repeated LogLine line = 29;
78
79  optional bool lines_incomplete = 36;
80  optional bytes app_engine_release = 38;
81
82  optional int32 exit_reason = 30;
83  optional bool was_throttled_for_time = 31;
84  optional bool was_throttled_for_requests = 32;
85  optional int64 throttled_time = 33;
86
87  optional bytes server_name = 34;
88}
89
90message LogModuleVersion {
91  optional string module_id = 1 [default="default"];
92  optional string version_id = 2;
93}
94
95message LogReadRequest {
96  required string app_id = 1;
97  repeated string version_id = 2;
98  repeated LogModuleVersion module_version = 19;
99
100  optional int64 start_time = 3;
101  optional int64 end_time = 4;
102  optional LogOffset offset = 5;
103  repeated bytes request_id = 6;
104
105  optional int32 minimum_log_level = 7;
106  optional bool include_incomplete = 8;
107  optional int64 count = 9;
108
109  optional string combined_log_regex = 14;
110  optional string host_regex = 15;
111  optional int32 replica_index = 16;
112
113  optional bool include_app_logs = 10;
114  optional int32 app_logs_per_request = 17;
115  optional bool include_host = 11;
116  optional bool include_all = 12;
117  optional bool cache_iterator = 13;
118  optional int32 num_shards = 18;
119}
120
121message LogReadResponse {
122  repeated RequestLog log = 1;
123  optional LogOffset offset = 2;
124  optional int64 last_end_time = 3;
125}
126
127message LogUsageRecord {
128  optional string version_id = 1;
129  optional int32 start_time = 2;
130  optional int32 end_time = 3;
131  optional int64 count = 4;
132  optional int64 total_size = 5;
133  optional int32 records = 6;
134}
135
136message LogUsageRequest {
137  required string app_id = 1;
138  repeated string version_id = 2;
139  optional int32 start_time = 3;
140  optional int32 end_time = 4;
141  optional uint32 resolution_hours = 5 [default = 1];
142  optional bool combine_versions = 6;
143  optional int32 usage_version = 7;
144  optional bool versions_only = 8;
145}
146
147message LogUsageResponse {
148  repeated LogUsageRecord usage = 1;
149  optional LogUsageRecord summary = 2;
150}
151