blob: db7e680f1d3752bb0ee552bde80cb181f7911fe7 [file] [log] [blame]
Yao Chenab273e22017-09-06 12:53:50 -07001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070016
Yao Chenab273e22017-09-06 12:53:50 -070017syntax = "proto2";
18
19package android.os.statsd;
20
Yao Chenab273e22017-09-06 12:53:50 -070021option java_package = "com.android.os";
22option java_outer_classname = "StatsLog";
23
Joe Onorato62c220b2017-11-18 20:32:56 -080024import "frameworks/base/cmds/statsd/src/atoms.proto";
Yao Chenab273e22017-09-06 12:53:50 -070025
Yangster-mac20877162017-12-22 17:19:39 -080026message DimensionsValue {
27 optional int32 field = 1;
Yao Chenab273e22017-09-06 12:53:50 -070028
yro00698da2017-09-15 10:06:40 -070029 oneof value {
30 string value_str = 2;
Chenjie Yud9dfda72017-12-11 17:41:20 -080031 int32 value_int = 3;
32 int64 value_long = 4;
33 bool value_bool = 5;
34 float value_float = 6;
Yangster-mac20877162017-12-22 17:19:39 -080035 DimensionsValueTuple value_tuple = 7;
Yangster-mac9def8e32018-04-17 13:55:51 -070036 uint64 value_str_hash = 8;
Yao Chenab273e22017-09-06 12:53:50 -070037 }
Yao Chenab273e22017-09-06 12:53:50 -070038}
39
Yangster-mac20877162017-12-22 17:19:39 -080040message DimensionsValueTuple {
41 repeated DimensionsValue dimensions_value = 1;
42}
43
yro00698da2017-09-15 10:06:40 -070044message EventMetricData {
Yangster-mac330af582018-02-08 15:24:38 -080045 optional int64 elapsed_timestamp_nanos = 1;
yro00698da2017-09-15 10:06:40 -070046
Stefan Lafonae2df012017-11-14 09:17:21 -080047 optional Atom atom = 2;
Yangster-mac330af582018-02-08 15:24:38 -080048
Yangster-mac3fa5d7f2018-03-10 21:50:27 -080049 optional int64 wall_clock_timestamp_nanos = 3;
yro00698da2017-09-15 10:06:40 -070050}
51
52message CountBucketInfo {
Yangster-mac330af582018-02-08 15:24:38 -080053 optional int64 start_bucket_elapsed_nanos = 1;
yro00698da2017-09-15 10:06:40 -070054
Yangster-mac330af582018-02-08 15:24:38 -080055 optional int64 end_bucket_elapsed_nanos = 2;
yro00698da2017-09-15 10:06:40 -070056
57 optional int64 count = 3;
Yangster-mac9def8e32018-04-17 13:55:51 -070058
59 optional int64 bucket_num = 4;
60
61 optional int64 start_bucket_elapsed_millis = 5;
62
63 optional int64 end_bucket_elapsed_millis = 6;
yro00698da2017-09-15 10:06:40 -070064}
65
66message CountMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -080067 optional DimensionsValue dimensions_in_what = 1;
68
Yangster-mac16fc72f2018-01-18 13:18:01 -080069 optional DimensionsValue dimensions_in_condition = 2;
yro00698da2017-09-15 10:06:40 -070070
Yangster-mac16fc72f2018-01-18 13:18:01 -080071 repeated CountBucketInfo bucket_info = 3;
Yangster-mac9def8e32018-04-17 13:55:51 -070072
73 repeated DimensionsValue dimension_leaf_values_in_what = 4;
74
75 repeated DimensionsValue dimension_leaf_values_in_condition = 5;
yro00698da2017-09-15 10:06:40 -070076}
77
Yao Chencaf339d2017-10-06 16:01:10 -070078message DurationBucketInfo {
Yangster-mac330af582018-02-08 15:24:38 -080079 optional int64 start_bucket_elapsed_nanos = 1;
Yao Chencaf339d2017-10-06 16:01:10 -070080
Yangster-mac330af582018-02-08 15:24:38 -080081 optional int64 end_bucket_elapsed_nanos = 2;
Yao Chencaf339d2017-10-06 16:01:10 -070082
83 optional int64 duration_nanos = 3;
Yangster-mac9def8e32018-04-17 13:55:51 -070084
85 optional int64 bucket_num = 4;
86
87 optional int64 start_bucket_elapsed_millis = 5;
88
89 optional int64 end_bucket_elapsed_millis = 6;
Yao Chencaf339d2017-10-06 16:01:10 -070090}
91
92message DurationMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -080093 optional DimensionsValue dimensions_in_what = 1;
94
Yangster-mac16fc72f2018-01-18 13:18:01 -080095 optional DimensionsValue dimensions_in_condition = 2;
Yao Chencaf339d2017-10-06 16:01:10 -070096
Yangster-mac16fc72f2018-01-18 13:18:01 -080097 repeated DurationBucketInfo bucket_info = 3;
Yangster-mac9def8e32018-04-17 13:55:51 -070098
99 repeated DimensionsValue dimension_leaf_values_in_what = 4;
100
101 repeated DimensionsValue dimension_leaf_values_in_condition = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700102}
103
Yangsterfa28aec2017-10-30 10:29:52 -0700104message ValueBucketInfo {
Yangster-mac330af582018-02-08 15:24:38 -0800105 optional int64 start_bucket_elapsed_nanos = 1;
Yangsterfa28aec2017-10-30 10:29:52 -0700106
Yangster-mac330af582018-02-08 15:24:38 -0800107 optional int64 end_bucket_elapsed_nanos = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700108
Chenjie Yuc3f00772018-07-26 13:50:58 -0700109 optional int64 value = 3 [deprecated = true];
Chenjie Yua0f02242018-07-06 16:14:34 -0700110
Chenjie Yuc3f00772018-07-26 13:50:58 -0700111 oneof values {
112 int64 value_long = 7;
113
114 double value_double = 8;
Chenjie Yua0f02242018-07-06 16:14:34 -0700115 }
Yangster-mac9def8e32018-04-17 13:55:51 -0700116
117 optional int64 bucket_num = 4;
118
119 optional int64 start_bucket_elapsed_millis = 5;
120
121 optional int64 end_bucket_elapsed_millis = 6;
Yangsterfa28aec2017-10-30 10:29:52 -0700122}
123
124message ValueMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -0800125 optional DimensionsValue dimensions_in_what = 1;
126
Yangster-mac16fc72f2018-01-18 13:18:01 -0800127 optional DimensionsValue dimensions_in_condition = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700128
Yangster-mac16fc72f2018-01-18 13:18:01 -0800129 repeated ValueBucketInfo bucket_info = 3;
Yangster-mac9def8e32018-04-17 13:55:51 -0700130
131 repeated DimensionsValue dimension_leaf_values_in_what = 4;
132
133 repeated DimensionsValue dimension_leaf_values_in_condition = 5;
Yangsterfa28aec2017-10-30 10:29:52 -0700134}
135
136message GaugeBucketInfo {
Yangster-mac15f6bbc2018-04-08 11:52:26 -0700137 optional int64 start_bucket_elapsed_nanos = 1;
Yangsterfa28aec2017-10-30 10:29:52 -0700138
Yangster-mac15f6bbc2018-04-08 11:52:26 -0700139 optional int64 end_bucket_elapsed_nanos = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700140
Yangster-mac34ea1102018-01-29 12:40:55 -0800141 repeated Atom atom = 3;
142
Yangster-mac330af582018-02-08 15:24:38 -0800143 repeated int64 elapsed_timestamp_nanos = 4;
Yangster-mac3fa5d7f2018-03-10 21:50:27 -0800144
145 repeated int64 wall_clock_timestamp_nanos = 5;
Yangster-mac9def8e32018-04-17 13:55:51 -0700146
147 optional int64 bucket_num = 6;
148
149 optional int64 start_bucket_elapsed_millis = 7;
150
151 optional int64 end_bucket_elapsed_millis = 8;
Yangsterfa28aec2017-10-30 10:29:52 -0700152}
153
154message GaugeMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -0800155 optional DimensionsValue dimensions_in_what = 1;
156
Yangster-mac16fc72f2018-01-18 13:18:01 -0800157 optional DimensionsValue dimensions_in_condition = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700158
Yangster-mac16fc72f2018-01-18 13:18:01 -0800159 repeated GaugeBucketInfo bucket_info = 3;
Yangster-mac9def8e32018-04-17 13:55:51 -0700160
161 repeated DimensionsValue dimension_leaf_values_in_what = 4;
162
163 repeated DimensionsValue dimension_leaf_values_in_condition = 5;
Yangsterfa28aec2017-10-30 10:29:52 -0700164}
165
yro00698da2017-09-15 10:06:40 -0700166message StatsLogReport {
Yangster-mac94e197c2018-01-02 16:03:03 -0800167 optional int64 metric_id = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700168
David Chen16049572018-02-01 18:27:51 -0800169 // Fields 2 and 3 are reserved.
yro00698da2017-09-15 10:06:40 -0700170
David Chen81245fd2018-04-12 14:33:37 -0700171 message SkippedBuckets {
Yangster-mac9def8e32018-04-17 13:55:51 -0700172 optional int64 start_bucket_elapsed_nanos = 1;
173 optional int64 end_bucket_elapsed_nanos = 2;
174 optional int64 start_bucket_elapsed_millis = 3;
175 optional int64 end_bucket_elapsed_millis = 4;
David Chen81245fd2018-04-12 14:33:37 -0700176 }
177
yro00698da2017-09-15 10:06:40 -0700178 message EventMetricDataWrapper {
179 repeated EventMetricData data = 1;
180 }
181 message CountMetricDataWrapper {
182 repeated CountMetricData data = 1;
183 }
Yao Chencaf339d2017-10-06 16:01:10 -0700184 message DurationMetricDataWrapper {
Yao Chen729093d2017-10-16 10:33:26 -0700185 repeated DurationMetricData data = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700186 }
Yangsterfa28aec2017-10-30 10:29:52 -0700187 message ValueMetricDataWrapper {
188 repeated ValueMetricData data = 1;
David Chen81245fd2018-04-12 14:33:37 -0700189 repeated SkippedBuckets skipped = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700190 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700191
Yangsterfa28aec2017-10-30 10:29:52 -0700192 message GaugeMetricDataWrapper {
193 repeated GaugeMetricData data = 1;
David Chen81245fd2018-04-12 14:33:37 -0700194 repeated SkippedBuckets skipped = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700195 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700196
yro00698da2017-09-15 10:06:40 -0700197 oneof data {
198 EventMetricDataWrapper event_metrics = 4;
199 CountMetricDataWrapper count_metrics = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700200 DurationMetricDataWrapper duration_metrics = 6;
Yangsterfa28aec2017-10-30 10:29:52 -0700201 ValueMetricDataWrapper value_metrics = 7;
202 GaugeMetricDataWrapper gauge_metrics = 8;
yro00698da2017-09-15 10:06:40 -0700203 }
Yangster-mac9def8e32018-04-17 13:55:51 -0700204
205 optional int64 time_base_elapsed_nano_seconds = 9;
206
207 optional int64 bucket_size_nano_seconds = 10;
208
209 optional DimensionsValue dimensions_path_in_what = 11;
210
211 optional DimensionsValue dimensions_path_in_condition = 12;
Yao Chenab273e22017-09-06 12:53:50 -0700212}
Yangsterfa28aec2017-10-30 10:29:52 -0700213
David Chenf384b902018-03-14 18:36:45 -0700214message UidMapping {
215 message PackageInfoSnapshot {
216 message PackageInfo {
217 optional string name = 1;
218
219 optional int64 version = 2;
220
221 optional int32 uid = 3;
David Chenbd125272018-04-04 19:02:50 -0700222
223 optional bool deleted = 4;
Yangster-mac9def8e32018-04-17 13:55:51 -0700224
225 optional uint64 name_hash = 5;
David Chenf384b902018-03-14 18:36:45 -0700226 }
227 optional int64 elapsed_timestamp_nanos = 1;
228
229 repeated PackageInfo package_info = 2;
230 }
231 repeated PackageInfoSnapshot snapshots = 1;
232
233 message Change {
234 optional bool deletion = 1;
235
236 optional int64 elapsed_timestamp_nanos = 2;
237 optional string app = 3;
238 optional int32 uid = 4;
239
David Chenbd125272018-04-04 19:02:50 -0700240 optional int64 new_version = 5;
241 optional int64 prev_version = 6;
Yangster-mac9def8e32018-04-17 13:55:51 -0700242 optional uint64 app_hash = 7;
David Chenf384b902018-03-14 18:36:45 -0700243 }
244 repeated Change changes = 2;
245}
246
Yangsterfa28aec2017-10-30 10:29:52 -0700247message ConfigMetricsReport {
yro947fbce2017-11-15 22:50:23 -0800248 repeated StatsLogReport metrics = 1;
249
250 optional UidMapping uid_map = 2;
David Chen16049572018-02-01 18:27:51 -0800251
Yangster-mac330af582018-02-08 15:24:38 -0800252 optional int64 last_report_elapsed_nanos = 3;
David Chen16049572018-02-01 18:27:51 -0800253
Yangster-mac330af582018-02-08 15:24:38 -0800254 optional int64 current_report_elapsed_nanos = 4;
Yangster-mac3fa5d7f2018-03-10 21:50:27 -0800255
256 optional int64 last_report_wall_clock_nanos = 5;
257
258 optional int64 current_report_wall_clock_nanos = 6;
David Chenfaa1af52018-03-30 15:14:04 -0700259
Yangster-mac9def8e32018-04-17 13:55:51 -0700260 message Annotation {
261 optional int64 field_int64 = 1;
262 optional int32 field_int32 = 2;
263 }
264 repeated Annotation annotation = 7;
265
Chenjie Yue36018b2018-04-16 15:18:30 -0700266 enum DumpReportReason {
267 DEVICE_SHUTDOWN = 1;
268 CONFIG_UPDATED = 2;
269 CONFIG_REMOVED = 3;
270 GET_DATA_CALLED = 4;
271 ADB_DUMP = 5;
272 CONFIG_RESET = 6;
273 STATSCOMPANION_DIED = 7;
274 }
275 optional DumpReportReason dump_report_reason = 8;
276
Yangster-mac9def8e32018-04-17 13:55:51 -0700277 repeated string strings = 9;
yro947fbce2017-11-15 22:50:23 -0800278}
279
280message ConfigMetricsReportList {
Yangsterfa28aec2017-10-30 10:29:52 -0700281 message ConfigKey {
282 optional int32 uid = 1;
Yangster-mac94e197c2018-01-02 16:03:03 -0800283 optional int64 id = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700284 }
285 optional ConfigKey config_key = 1;
286
yro947fbce2017-11-15 22:50:23 -0800287 repeated ConfigMetricsReport reports = 2;
Chenjie Yue36018b2018-04-16 15:18:30 -0700288
289 reserved 10;
Yangster-mac932ecec2018-02-01 10:23:52 -0800290}
Yao Chen20e9e622018-02-28 11:18:51 -0800291
292message StatsdStatsReport {
293 optional int32 stats_begin_time_sec = 1;
294
295 optional int32 stats_end_time_sec = 2;
296
297 message MatcherStats {
298 optional int64 id = 1;
299 optional int32 matched_times = 2;
300 }
301
302 message ConditionStats {
303 optional int64 id = 1;
304 optional int32 max_tuple_counts = 2;
305 }
306
307 message MetricStats {
308 optional int64 id = 1;
309 optional int32 max_tuple_counts = 2;
310 }
311
312 message AlertStats {
313 optional int64 id = 1;
314 optional int32 alerted_times = 2;
315 }
316
317 message ConfigStats {
318 optional int32 uid = 1;
319 optional int64 id = 2;
320 optional int32 creation_time_sec = 3;
321 optional int32 deletion_time_sec = 4;
Yangster-macb142cc82018-03-30 15:22:08 -0700322 optional int32 reset_time_sec = 19;
Yao Chen20e9e622018-02-28 11:18:51 -0800323 optional int32 metric_count = 5;
324 optional int32 condition_count = 6;
325 optional int32 matcher_count = 7;
326 optional int32 alert_count = 8;
327 optional bool is_valid = 9;
Yao Chen20e9e622018-02-28 11:18:51 -0800328 repeated int32 broadcast_sent_time_sec = 10;
329 repeated int32 data_drop_time_sec = 11;
330 repeated int32 dump_report_time_sec = 12;
Yangster-mace68f3a52018-04-04 00:01:43 -0700331 repeated int32 dump_report_data_size = 20;
Yao Chen20e9e622018-02-28 11:18:51 -0800332 repeated MatcherStats matcher_stats = 13;
333 repeated ConditionStats condition_stats = 14;
334 repeated MetricStats metric_stats = 15;
335 repeated AlertStats alert_stats = 16;
Yangster-mac306ccc22018-03-24 15:03:40 -0700336 repeated MetricStats metric_dimension_in_condition_stats = 17;
David Chenfaa1af52018-03-30 15:14:04 -0700337 message Annotation {
338 optional int64 field_int64 = 1;
339 optional int32 field_int32 = 2;
340 }
341 repeated Annotation annotation = 18;
Yao Chen20e9e622018-02-28 11:18:51 -0800342 }
343
344 repeated ConfigStats config_stats = 3;
345
346 message AtomStats {
347 optional int32 tag = 1;
348 optional int32 count = 2;
349 }
350
351 repeated AtomStats atom_stats = 7;
352
353 message UidMapStats {
David Chenbd125272018-04-04 19:02:50 -0700354 optional int32 changes = 1;
355 optional int32 bytes_used = 2;
356 optional int32 dropped_changes = 3;
357 optional int32 deleted_apps = 4;
Yao Chen20e9e622018-02-28 11:18:51 -0800358 }
359 optional UidMapStats uidmap_stats = 8;
360
361 message AnomalyAlarmStats {
362 optional int32 alarms_registered = 1;
363 }
364 optional AnomalyAlarmStats anomaly_alarm_stats = 9;
365
366 message PulledAtomStats {
367 optional int32 atom_id = 1;
368 optional int64 total_pull = 2;
369 optional int64 total_pull_from_cache = 3;
370 optional int64 min_pull_interval_sec = 4;
371 }
372 repeated PulledAtomStats pulled_atom_stats = 10;
373
374 message LoggerErrorStats {
375 optional int32 logger_disconnection_sec = 1;
376 optional int32 error_code = 2;
377 }
378 repeated LoggerErrorStats logger_error_stats = 11;
Yangster-macb8382a12018-04-04 10:39:12 -0700379
380 message PeriodicAlarmStats {
381 optional int32 alarms_registered = 1;
382 }
383 optional PeriodicAlarmStats periodic_alarm_stats = 12;
384
385 message SkippedLogEventStats {
386 optional int32 tag = 1;
387 optional int64 elapsed_timestamp_nanos = 2;
388 }
389 repeated SkippedLogEventStats skipped_log_event_stats = 13;
Yao Chen163d2602018-04-10 10:39:53 -0700390
391 repeated int64 log_loss_stats = 14;
Yangster-mac892f3d32018-05-02 14:16:48 -0700392
393 repeated int32 system_restart_sec = 15;
Yao Chen20e9e622018-02-28 11:18:51 -0800394}