Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Side by Side Diff: components/browser_watcher/stability_report.proto

Issue 2966563004: StabilityReport proto changes for multi-process support (Closed)
Patch Set: Merge Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 syntax = "proto2"; 5 syntax = "proto2";
6 6
7 option optimize_for = LITE_RUNTIME; 7 option optimize_for = LITE_RUNTIME;
8 8
9 package browser_watcher; 9 package browser_watcher;
10 10
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 string string_value = 3; 80 string string_value = 3;
81 Reference string_reference = 4; 81 Reference string_reference = 4;
82 string char_value = 5; 82 string char_value = 5;
83 bool bool_value = 6; 83 bool bool_value = 6;
84 int64 signed_value = 7; 84 int64 signed_value = 7;
85 uint64 unsigned_value = 8; 85 uint64 unsigned_value = 8;
86 } 86 }
87 } 87 }
88 88
89 // An activity represents information about something of interest on a thread. 89 // An activity represents information about something of interest on a thread.
90 // Next id: 14 90 // Next id: 18
91 message Activity { 91 message Activity {
92 enum Type { 92 enum Type {
93 UNKNOWN = 0; 93 UNKNOWN = 0;
94 ACT_TASK_RUN = 1; 94 ACT_TASK_RUN = 1;
95 ACT_LOCK_ACQUIRE = 2; 95 ACT_LOCK_ACQUIRE = 2;
96 ACT_EVENT_WAIT = 3; 96 ACT_EVENT_WAIT = 3;
97 ACT_THREAD_JOIN = 4; 97 ACT_THREAD_JOIN = 4;
98 ACT_PROCESS_WAIT = 5; 98 ACT_PROCESS_WAIT = 5;
99 ACT_GENERIC = 6; 99 ACT_GENERIC = 6;
100 } 100 }
(...skipping 28 matching lines...) Expand all
129 129
130 // A unique identifier for a process. 130 // A unique identifier for a process.
131 optional int64 process_id = 8; 131 optional int64 process_id = 8;
132 132
133 // An arbitrary identifier used for association. 133 // An arbitrary identifier used for association.
134 optional uint32 generic_id = 12; 134 optional uint32 generic_id = 12;
135 135
136 // An arbitrary value used for information purposes. 136 // An arbitrary value used for information purposes.
137 optional int32 generic_data = 13; 137 optional int32 generic_data = 13;
138 138
139 // Tag id 10 is reserved for server side augmentation. 139 // Tag ids 10 and 14-17 are reserved for server side augmentation.
140 140
141 // A key-value store. 141 // A key-value store.
142 map<string, TypedValue> user_data = 9; 142 map<string, TypedValue> user_data = 9;
143 } 143 }
144 144
145 // Details about an exception. 145 // Details about an exception.
146 // Next id: 5 146 // Next id: 5
147 message Exception { 147 message Exception {
148 optional uint32 code = 1; 148 optional uint32 code = 1;
149 optional uint64 program_counter = 2; 149 optional uint64 program_counter = 2;
(...skipping 14 matching lines...) Expand all
164 // stack and |activities| holds the base of the stack (up to a maximum size). 164 // stack and |activities| holds the base of the stack (up to a maximum size).
165 optional int32 activity_count = 3; 165 optional int32 activity_count = 3;
166 repeated Activity activities = 4; 166 repeated Activity activities = 4;
167 167
168 // The last exception to be successfully captured. Note this exception may 168 // The last exception to be successfully captured. Note this exception may
169 // have been recovered from. 169 // have been recovered from.
170 optional Exception exception = 5; 170 optional Exception exception = 5;
171 } 171 }
172 172
173 // The state of a process. 173 // The state of a process.
174 // Next id: 5 174 // Next id: 7
175 message ProcessState { 175 message ProcessState {
176 enum Type {
177 UNKNOWN_PROCESS = 0;
178 BROWSER_PROCESS = 1;
179 WATCHER_PROCESS = 2;
180 }
181
176 message MemoryState { 182 message MemoryState {
177 message WindowsMemory { 183 message WindowsMemory {
178 // The private byte usage of the process. Unit is 4K pages. 184 // The private byte usage of the process. Unit is 4K pages.
179 optional uint32 process_private_usage = 1; 185 optional uint32 process_private_usage = 1;
180 // The peak working set usage of the process. Unit is 4K pages. 186 // The peak working set usage of the process. Unit is 4K pages.
181 optional uint32 process_peak_workingset_size = 2; 187 optional uint32 process_peak_workingset_size = 2;
182 // The peak pagefile usage of the process. Unit is 4K pages. 188 // The peak pagefile usage of the process. Unit is 4K pages.
183 optional uint32 process_peak_pagefile_usage = 3; 189 optional uint32 process_peak_pagefile_usage = 3;
184 // The allocation request that caused OOM, bytes. 190 // The allocation request that caused OOM, bytes.
185 optional uint32 process_allocation_attempt = 4; 191 optional uint32 process_allocation_attempt = 4;
186 } 192 }
187 193
188 optional WindowsMemory windows_memory = 1; 194 optional WindowsMemory windows_memory = 1;
189 } 195 }
190 196
191 // The identifier of the process. 197 // The identifier of the process.
192 optional int64 process_id = 3; 198 optional int64 process_id = 3;
199 optional Type process_type = 5;
193 200
194 // Note: likely only a subset of modules of interest (e.g. Chromium's own 201 // Note: likely only a subset of modules of interest (e.g. Chromium's own
195 // modules). 202 // modules).
196 repeated CodeModule modules = 1; 203 repeated CodeModule modules = 1;
197 repeated ThreadState threads = 2; 204 repeated ThreadState threads = 2;
198 // TODO(manzagop): add experiment state.
199 205
200 optional MemoryState memory_state = 4; 206 optional MemoryState memory_state = 4;
207
208 // A key-value store global to the process.
209 map<string, TypedValue> data = 6;
201 } 210 }
202 211
203 // Description of a field trial or experiment that the user is currently 212 // Description of a field trial or experiment that the user is currently
204 // enrolled in. This message is an analogue of the UMA proto in 213 // enrolled in. This message is an analogue of the UMA proto in
205 // components/metrics/proto/system_profile.proto. For details about generating 214 // components/metrics/proto/system_profile.proto. For details about generating
206 // the identifiers from the field trial and group names, see 215 // the identifiers from the field trial and group names, see
207 // variations::MakeActiveGroupId(). 216 // variations::MakeActiveGroupId().
208 // Next id: 3 217 // Next id: 3
209 message FieldTrial { 218 message FieldTrial {
210 // A 32-bit identifier for the name of the field trial. 219 // A 32-bit identifier for the name of the field trial.
(...skipping 12 matching lines...) Expand all
223 // The amount of system commit remaining. Unit is number of 4K pages. 232 // The amount of system commit remaining. Unit is number of 4K pages.
224 optional uint32 system_commit_remaining = 2; 233 optional uint32 system_commit_remaining = 2;
225 } 234 }
226 235
227 optional WindowsMemory windows_memory = 1; 236 optional WindowsMemory windows_memory = 1;
228 } 237 }
229 238
230 // A stability report contains information pertaining to the execution of a 239 // A stability report contains information pertaining to the execution of a
231 // single logical instance of a "chrome browser". It is comprised of information 240 // single logical instance of a "chrome browser". It is comprised of information
232 // about the system state and about the chrome browser's processes. 241 // about the system state and about the chrome browser's processes.
233 // Next id: 8 242 // Next id: 9
234 message StabilityReport { 243 message StabilityReport {
235 // Whether the report is complete. Reports can be incomplete when the 244 // Whether the report is complete. Reports can be incomplete when the
236 // recording size quota is hit. 245 // recording size quota is hit.
237 optional bool is_complete = 6; 246 optional bool is_complete = 6;
238 247
248 // The process identifier of the crashed process.
249 optional int64 crashed_process_id = 8;
250
251 // State pertaining to the system.
239 optional SystemState system_state = 1; 252 optional SystemState system_state = 1;
240 // TODO(manzagop): revisit whether a single repeated field should contain all 253
241 // processes, or whether it's preferable to have separate fields per type. 254 // State pertaining to Chrome's processes.
242 // TODO(manzagop): add information about the type of process, pid, process
243 // times (e.g. start time), hierarchical relationships (e.g. parent pid),
244 // command line, etc.
245 repeated ProcessState process_states = 2; 255 repeated ProcessState process_states = 2;
246 // TODO(manzagop): if/when reports contain multiple processes, attribute and 256
247 // relocate these to their process (and perhaps thread). 257 // Log messages. This is empty on official builds.
258 // TODO(manzagop): attribute messages to their process.
248 repeated string log_messages = 3; 259 repeated string log_messages = 3;
260
261 // A global key-value store.
249 map<string, TypedValue> global_data = 4; 262 map<string, TypedValue> global_data = 4;
250 263
251 // The field trials the user is currently enrolled in. 264 // The field trials the user is currently enrolled in.
252 repeated FieldTrial field_trials = 5; 265 repeated FieldTrial field_trials = 5;
253 266
254 optional SystemMemoryState system_memory_state = 7; 267 optional SystemMemoryState system_memory_state = 7;
255 } 268 }
OLDNEW
« no previous file with comments | « components/browser_watcher/stability_data_names.cc ('k') | components/browser_watcher/stability_report_extractor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698