blob: e1b6386a55c145e94d0b73cd1178b12250c72651 [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;
Yao Chenab273e22017-09-06 12:53:50 -070036 }
Yao Chenab273e22017-09-06 12:53:50 -070037}
38
Yangster-mac20877162017-12-22 17:19:39 -080039message DimensionsValueTuple {
40 repeated DimensionsValue dimensions_value = 1;
41}
42
yro00698da2017-09-15 10:06:40 -070043message EventMetricData {
Yangster-mac330af582018-02-08 15:24:38 -080044 optional int64 elapsed_timestamp_nanos = 1;
yro00698da2017-09-15 10:06:40 -070045
Stefan Lafonae2df012017-11-14 09:17:21 -080046 optional Atom atom = 2;
Yangster-mac330af582018-02-08 15:24:38 -080047
Yangster-mac3fa5d7f2018-03-10 21:50:27 -080048 optional int64 wall_clock_timestamp_nanos = 3;
yro00698da2017-09-15 10:06:40 -070049}
50
51message CountBucketInfo {
Yangster-mac330af582018-02-08 15:24:38 -080052 optional int64 start_bucket_elapsed_nanos = 1;
yro00698da2017-09-15 10:06:40 -070053
Yangster-mac330af582018-02-08 15:24:38 -080054 optional int64 end_bucket_elapsed_nanos = 2;
yro00698da2017-09-15 10:06:40 -070055
56 optional int64 count = 3;
57}
58
59message CountMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -080060 optional DimensionsValue dimensions_in_what = 1;
61
Yangster-mac16fc72f2018-01-18 13:18:01 -080062 optional DimensionsValue dimensions_in_condition = 2;
yro00698da2017-09-15 10:06:40 -070063
Yangster-mac16fc72f2018-01-18 13:18:01 -080064 repeated CountBucketInfo bucket_info = 3;
yro00698da2017-09-15 10:06:40 -070065}
66
Yao Chencaf339d2017-10-06 16:01:10 -070067message DurationBucketInfo {
Yangster-mac330af582018-02-08 15:24:38 -080068 optional int64 start_bucket_elapsed_nanos = 1;
Yao Chencaf339d2017-10-06 16:01:10 -070069
Yangster-mac330af582018-02-08 15:24:38 -080070 optional int64 end_bucket_elapsed_nanos = 2;
Yao Chencaf339d2017-10-06 16:01:10 -070071
72 optional int64 duration_nanos = 3;
73}
74
75message DurationMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -080076 optional DimensionsValue dimensions_in_what = 1;
77
Yangster-mac16fc72f2018-01-18 13:18:01 -080078 optional DimensionsValue dimensions_in_condition = 2;
Yao Chencaf339d2017-10-06 16:01:10 -070079
Yangster-mac16fc72f2018-01-18 13:18:01 -080080 repeated DurationBucketInfo bucket_info = 3;
Yao Chencaf339d2017-10-06 16:01:10 -070081}
82
Yangsterfa28aec2017-10-30 10:29:52 -070083message ValueBucketInfo {
Yangster-mac330af582018-02-08 15:24:38 -080084 optional int64 start_bucket_elapsed_nanos = 1;
Yangsterfa28aec2017-10-30 10:29:52 -070085
Yangster-mac330af582018-02-08 15:24:38 -080086 optional int64 end_bucket_elapsed_nanos = 2;
Yangsterfa28aec2017-10-30 10:29:52 -070087
88 optional int64 value = 3;
89}
90
91message ValueMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -080092 optional DimensionsValue dimensions_in_what = 1;
93
Yangster-mac16fc72f2018-01-18 13:18:01 -080094 optional DimensionsValue dimensions_in_condition = 2;
Yangsterfa28aec2017-10-30 10:29:52 -070095
Yangster-mac16fc72f2018-01-18 13:18:01 -080096 repeated ValueBucketInfo bucket_info = 3;
Yangsterfa28aec2017-10-30 10:29:52 -070097}
98
99message GaugeBucketInfo {
Yangster-mac15f6bbc2018-04-08 11:52:26 -0700100 optional int64 start_bucket_elapsed_nanos = 1;
Yangsterfa28aec2017-10-30 10:29:52 -0700101
Yangster-mac15f6bbc2018-04-08 11:52:26 -0700102 optional int64 end_bucket_elapsed_nanos = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700103
Yangster-mac34ea1102018-01-29 12:40:55 -0800104 repeated Atom atom = 3;
105
Yangster-mac330af582018-02-08 15:24:38 -0800106 repeated int64 elapsed_timestamp_nanos = 4;
Yangster-mac3fa5d7f2018-03-10 21:50:27 -0800107
108 repeated int64 wall_clock_timestamp_nanos = 5;
Yangsterfa28aec2017-10-30 10:29:52 -0700109}
110
111message GaugeMetricData {
Yangster-mac468ff042018-01-17 12:26:34 -0800112 optional DimensionsValue dimensions_in_what = 1;
113
Yangster-mac16fc72f2018-01-18 13:18:01 -0800114 optional DimensionsValue dimensions_in_condition = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700115
Yangster-mac16fc72f2018-01-18 13:18:01 -0800116 repeated GaugeBucketInfo bucket_info = 3;
Yangsterfa28aec2017-10-30 10:29:52 -0700117}
118
yro00698da2017-09-15 10:06:40 -0700119message StatsLogReport {
Yangster-mac94e197c2018-01-02 16:03:03 -0800120 optional int64 metric_id = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700121
David Chen16049572018-02-01 18:27:51 -0800122 // Fields 2 and 3 are reserved.
yro00698da2017-09-15 10:06:40 -0700123
David Chen81245fd2018-04-12 14:33:37 -0700124 message SkippedBuckets {
125 optional int64 start_elapsed_nanos = 1;
126 optional int64 end_elapsed_nanos = 2;
127 }
128
yro00698da2017-09-15 10:06:40 -0700129 message EventMetricDataWrapper {
130 repeated EventMetricData data = 1;
131 }
132 message CountMetricDataWrapper {
133 repeated CountMetricData data = 1;
134 }
Yao Chencaf339d2017-10-06 16:01:10 -0700135 message DurationMetricDataWrapper {
Yao Chen729093d2017-10-16 10:33:26 -0700136 repeated DurationMetricData data = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700137 }
Yangsterfa28aec2017-10-30 10:29:52 -0700138 message ValueMetricDataWrapper {
139 repeated ValueMetricData data = 1;
David Chen81245fd2018-04-12 14:33:37 -0700140 repeated SkippedBuckets skipped = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700141 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700142
Yangsterfa28aec2017-10-30 10:29:52 -0700143 message GaugeMetricDataWrapper {
144 repeated GaugeMetricData data = 1;
David Chen81245fd2018-04-12 14:33:37 -0700145 repeated SkippedBuckets skipped = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700146 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700147
yro00698da2017-09-15 10:06:40 -0700148 oneof data {
149 EventMetricDataWrapper event_metrics = 4;
150 CountMetricDataWrapper count_metrics = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700151 DurationMetricDataWrapper duration_metrics = 6;
Yangsterfa28aec2017-10-30 10:29:52 -0700152 ValueMetricDataWrapper value_metrics = 7;
153 GaugeMetricDataWrapper gauge_metrics = 8;
yro00698da2017-09-15 10:06:40 -0700154 }
Yao Chenab273e22017-09-06 12:53:50 -0700155}
Yangsterfa28aec2017-10-30 10:29:52 -0700156
David Chenf384b902018-03-14 18:36:45 -0700157message UidMapping {
158 message PackageInfoSnapshot {
159 message PackageInfo {
160 optional string name = 1;
161
162 optional int64 version = 2;
163
164 optional int32 uid = 3;
David Chenbd125272018-04-04 19:02:50 -0700165
166 optional bool deleted = 4;
David Chenf384b902018-03-14 18:36:45 -0700167 }
168 optional int64 elapsed_timestamp_nanos = 1;
169
170 repeated PackageInfo package_info = 2;
171 }
172 repeated PackageInfoSnapshot snapshots = 1;
173
174 message Change {
175 optional bool deletion = 1;
176
177 optional int64 elapsed_timestamp_nanos = 2;
178 optional string app = 3;
179 optional int32 uid = 4;
180
David Chenbd125272018-04-04 19:02:50 -0700181 optional int64 new_version = 5;
182 optional int64 prev_version = 6;
David Chenf384b902018-03-14 18:36:45 -0700183 }
184 repeated Change changes = 2;
185}
186
Yangsterfa28aec2017-10-30 10:29:52 -0700187message ConfigMetricsReport {
yro947fbce2017-11-15 22:50:23 -0800188 repeated StatsLogReport metrics = 1;
189
190 optional UidMapping uid_map = 2;
David Chen16049572018-02-01 18:27:51 -0800191
Yangster-mac330af582018-02-08 15:24:38 -0800192 optional int64 last_report_elapsed_nanos = 3;
David Chen16049572018-02-01 18:27:51 -0800193
Yangster-mac330af582018-02-08 15:24:38 -0800194 optional int64 current_report_elapsed_nanos = 4;
Yangster-mac3fa5d7f2018-03-10 21:50:27 -0800195
196 optional int64 last_report_wall_clock_nanos = 5;
197
198 optional int64 current_report_wall_clock_nanos = 6;
David Chenfaa1af52018-03-30 15:14:04 -0700199
200 message Annotation {
201 optional int64 field_int64 = 1;
202 optional int32 field_int32 = 2;
203 }
204 repeated Annotation annotation = 7;
yro947fbce2017-11-15 22:50:23 -0800205}
206
207message ConfigMetricsReportList {
Yangsterfa28aec2017-10-30 10:29:52 -0700208 message ConfigKey {
209 optional int32 uid = 1;
Yangster-mac94e197c2018-01-02 16:03:03 -0800210 optional int64 id = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700211 }
212 optional ConfigKey config_key = 1;
213
yro947fbce2017-11-15 22:50:23 -0800214 repeated ConfigMetricsReport reports = 2;
Yangster-mac932ecec2018-02-01 10:23:52 -0800215}
Yao Chen20e9e622018-02-28 11:18:51 -0800216
217message StatsdStatsReport {
218 optional int32 stats_begin_time_sec = 1;
219
220 optional int32 stats_end_time_sec = 2;
221
222 message MatcherStats {
223 optional int64 id = 1;
224 optional int32 matched_times = 2;
225 }
226
227 message ConditionStats {
228 optional int64 id = 1;
229 optional int32 max_tuple_counts = 2;
230 }
231
232 message MetricStats {
233 optional int64 id = 1;
234 optional int32 max_tuple_counts = 2;
235 }
236
237 message AlertStats {
238 optional int64 id = 1;
239 optional int32 alerted_times = 2;
240 }
241
242 message ConfigStats {
243 optional int32 uid = 1;
244 optional int64 id = 2;
245 optional int32 creation_time_sec = 3;
246 optional int32 deletion_time_sec = 4;
Yangster-macb142cc82018-03-30 15:22:08 -0700247 optional int32 reset_time_sec = 19;
Yao Chen20e9e622018-02-28 11:18:51 -0800248 optional int32 metric_count = 5;
249 optional int32 condition_count = 6;
250 optional int32 matcher_count = 7;
251 optional int32 alert_count = 8;
252 optional bool is_valid = 9;
Yao Chen20e9e622018-02-28 11:18:51 -0800253 repeated int32 broadcast_sent_time_sec = 10;
254 repeated int32 data_drop_time_sec = 11;
255 repeated int32 dump_report_time_sec = 12;
Yangster-mace68f3a52018-04-04 00:01:43 -0700256 repeated int32 dump_report_data_size = 20;
Yao Chen20e9e622018-02-28 11:18:51 -0800257 repeated MatcherStats matcher_stats = 13;
258 repeated ConditionStats condition_stats = 14;
259 repeated MetricStats metric_stats = 15;
260 repeated AlertStats alert_stats = 16;
Yangster-mac306ccc22018-03-24 15:03:40 -0700261 repeated MetricStats metric_dimension_in_condition_stats = 17;
David Chenfaa1af52018-03-30 15:14:04 -0700262 message Annotation {
263 optional int64 field_int64 = 1;
264 optional int32 field_int32 = 2;
265 }
266 repeated Annotation annotation = 18;
Yao Chen20e9e622018-02-28 11:18:51 -0800267 }
268
269 repeated ConfigStats config_stats = 3;
270
271 message AtomStats {
272 optional int32 tag = 1;
273 optional int32 count = 2;
274 }
275
276 repeated AtomStats atom_stats = 7;
277
278 message UidMapStats {
David Chenbd125272018-04-04 19:02:50 -0700279 optional int32 changes = 1;
280 optional int32 bytes_used = 2;
281 optional int32 dropped_changes = 3;
282 optional int32 deleted_apps = 4;
Yao Chen20e9e622018-02-28 11:18:51 -0800283 }
284 optional UidMapStats uidmap_stats = 8;
285
286 message AnomalyAlarmStats {
287 optional int32 alarms_registered = 1;
288 }
289 optional AnomalyAlarmStats anomaly_alarm_stats = 9;
290
291 message PulledAtomStats {
292 optional int32 atom_id = 1;
293 optional int64 total_pull = 2;
294 optional int64 total_pull_from_cache = 3;
295 optional int64 min_pull_interval_sec = 4;
296 }
297 repeated PulledAtomStats pulled_atom_stats = 10;
298
299 message LoggerErrorStats {
300 optional int32 logger_disconnection_sec = 1;
301 optional int32 error_code = 2;
302 }
303 repeated LoggerErrorStats logger_error_stats = 11;
Yangster-macb8382a12018-04-04 10:39:12 -0700304
305 message PeriodicAlarmStats {
306 optional int32 alarms_registered = 1;
307 }
308 optional PeriodicAlarmStats periodic_alarm_stats = 12;
309
310 message SkippedLogEventStats {
311 optional int32 tag = 1;
312 optional int64 elapsed_timestamp_nanos = 2;
313 }
314 repeated SkippedLogEventStats skipped_log_event_stats = 13;
Yao Chen163d2602018-04-10 10:39:53 -0700315
316 repeated int64 log_loss_stats = 14;
Yao Chen20e9e622018-02-28 11:18:51 -0800317}