blob: f8b91fe0ef0a271c030aa95b6d8160d700165370 [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";
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070018option optimize_for = LITE_RUNTIME;
Yao Chenab273e22017-09-06 12:53:50 -070019
20package android.os.statsd;
21
Yao Chenab273e22017-09-06 12:53:50 -070022option java_package = "com.android.os";
23option java_outer_classname = "StatsLog";
24
Stefan Lafonae2df012017-11-14 09:17:21 -080025import "frameworks/base/cmds/statsd/src/atoms_copy.proto";
Yao Chenab273e22017-09-06 12:53:50 -070026
yro00698da2017-09-15 10:06:40 -070027message KeyValuePair {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070028 optional int32 key = 1;
Yao Chenab273e22017-09-06 12:53:50 -070029
yro00698da2017-09-15 10:06:40 -070030 oneof value {
31 string value_str = 2;
32 int64 value_int = 3;
33 bool value_bool = 4;
34 float value_float = 5;
Yao Chenab273e22017-09-06 12:53:50 -070035 }
Yao Chenab273e22017-09-06 12:53:50 -070036}
37
yro00698da2017-09-15 10:06:40 -070038message EventMetricData {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070039 optional int64 timestamp_nanos = 1;
yro00698da2017-09-15 10:06:40 -070040
Stefan Lafonae2df012017-11-14 09:17:21 -080041 optional Atom atom = 2;
yro00698da2017-09-15 10:06:40 -070042}
43
44message CountBucketInfo {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070045 optional int64 start_bucket_nanos = 1;
yro00698da2017-09-15 10:06:40 -070046
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070047 optional int64 end_bucket_nanos = 2;
yro00698da2017-09-15 10:06:40 -070048
49 optional int64 count = 3;
50}
51
52message CountMetricData {
53 repeated KeyValuePair dimension = 1;
54
55 repeated CountBucketInfo bucket_info = 2;
56}
57
Yao Chencaf339d2017-10-06 16:01:10 -070058message DurationBucketInfo {
59 optional int64 start_bucket_nanos = 1;
60
61 optional int64 end_bucket_nanos = 2;
62
63 optional int64 duration_nanos = 3;
64}
65
66message DurationMetricData {
67 repeated KeyValuePair dimension = 1;
68
69 repeated DurationBucketInfo bucket_info = 2;
70}
71
Yangsterfa28aec2017-10-30 10:29:52 -070072message ValueBucketInfo {
73 optional int64 start_bucket_nanos = 1;
74
75 optional int64 end_bucket_nanos = 2;
76
77 optional int64 value = 3;
78}
79
80message ValueMetricData {
81 repeated KeyValuePair dimension = 1;
82
83 repeated ValueBucketInfo bucket_info = 2;
84}
85
86message GaugeBucketInfo {
87 optional int64 start_bucket_nanos = 1;
88
89 optional int64 end_bucket_nanos = 2;
90
91 optional int64 gauge = 3;
92}
93
94message GaugeMetricData {
95 repeated KeyValuePair dimension = 1;
96
97 repeated GaugeBucketInfo bucket_info = 2;
98}
99
Yao Chencaf339d2017-10-06 16:01:10 -0700100message UidMapping {
David Chend6896892017-10-25 11:49:03 -0700101 message PackageInfoSnapshot {
102 message PackageInfo {
103 optional string name = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700104
Dianne Hackborn3accca02013-09-20 09:32:11 -0700105 optional int64 version = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700106
David Chend6896892017-10-25 11:49:03 -0700107 optional int32 uid = 3;
108 }
109 optional int64 timestamp_nanos = 1;
110
111 repeated PackageInfo package_info = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700112 }
David Chend6896892017-10-25 11:49:03 -0700113 repeated PackageInfoSnapshot snapshots = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700114
115 message Change {
116 optional bool deletion = 1;
117
Yangsterfa28aec2017-10-30 10:29:52 -0700118 optional int64 timestamp_nanos = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700119 optional string app = 3;
120 optional int32 uid = 4;
121
Dianne Hackborn3accca02013-09-20 09:32:11 -0700122 optional int64 version = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700123 }
124 repeated Change changes = 2;
125}
126
yro00698da2017-09-15 10:06:40 -0700127message StatsLogReport {
Yao Chen1ff4f432017-11-16 17:01:40 -0800128 optional string metric_name = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700129
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700130 optional int64 start_report_nanos = 2;
yro00698da2017-09-15 10:06:40 -0700131
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700132 optional int64 end_report_nanos = 3;
yro00698da2017-09-15 10:06:40 -0700133
134 message EventMetricDataWrapper {
135 repeated EventMetricData data = 1;
136 }
137 message CountMetricDataWrapper {
138 repeated CountMetricData data = 1;
139 }
Yao Chencaf339d2017-10-06 16:01:10 -0700140 message DurationMetricDataWrapper {
Yao Chen729093d2017-10-16 10:33:26 -0700141 repeated DurationMetricData data = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700142 }
Yangsterfa28aec2017-10-30 10:29:52 -0700143 message ValueMetricDataWrapper {
144 repeated ValueMetricData data = 1;
145 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700146
Yangsterfa28aec2017-10-30 10:29:52 -0700147 message GaugeMetricDataWrapper {
148 repeated GaugeMetricData data = 1;
149 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700150
yro00698da2017-09-15 10:06:40 -0700151 oneof data {
152 EventMetricDataWrapper event_metrics = 4;
153 CountMetricDataWrapper count_metrics = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700154 DurationMetricDataWrapper duration_metrics = 6;
Yangsterfa28aec2017-10-30 10:29:52 -0700155 ValueMetricDataWrapper value_metrics = 7;
156 GaugeMetricDataWrapper gauge_metrics = 8;
yro00698da2017-09-15 10:06:40 -0700157 }
Yao Chenab273e22017-09-06 12:53:50 -0700158}
Yangsterfa28aec2017-10-30 10:29:52 -0700159
160message ConfigMetricsReport {
yro947fbce2017-11-15 22:50:23 -0800161 repeated StatsLogReport metrics = 1;
162
163 optional UidMapping uid_map = 2;
164}
165
166message ConfigMetricsReportList {
Yangsterfa28aec2017-10-30 10:29:52 -0700167 message ConfigKey {
168 optional int32 uid = 1;
169 optional string name = 2;
170 }
171 optional ConfigKey config_key = 1;
172
yro947fbce2017-11-15 22:50:23 -0800173 repeated ConfigMetricsReport reports = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700174}
Yao Chenb3561512017-11-21 18:07:17 -0800175
176message StatsdStatsReport {
177 optional int32 stats_begin_time_sec = 1;
178
179 optional int32 stats_end_time_sec = 2;
180
181 message MatcherStats {
182 optional string name = 1;
183 optional int32 matched_times = 2;
184 }
185
186 message ConditionStats {
187 optional string name = 1;
188 optional int32 max_tuple_counts = 2;
189 }
190
191 message MetricStats {
192 optional string name = 1;
193 optional int32 max_tuple_counts = 2;
194 }
195
Bookatz8f2f3d82017-12-07 13:53:21 -0800196 message AlertStats {
197 optional string name = 1;
198 optional int32 declared_times = 2;
199 }
200
Yao Chenb3561512017-11-21 18:07:17 -0800201 message ConfigStats {
202 optional int32 uid = 1;
203 optional string name = 2;
204 optional int32 creation_time_sec = 3;
205 optional int32 deletion_time_sec = 4;
206 optional int32 metric_count = 5;
207 optional int32 condition_count = 6;
208 optional int32 matcher_count = 7;
209 optional int32 alert_count = 8;
210 optional bool is_valid = 9;
211
212 repeated int32 broadcast_sent_time_sec = 10;
213 repeated int32 data_drop_time_sec = 11;
Yao Chen69f1baf2017-11-27 17:25:36 -0800214 repeated int32 dump_report_time_sec = 12;
215 repeated MatcherStats matcher_stats = 13;
216 repeated ConditionStats condition_stats = 14;
217 repeated MetricStats metric_stats = 15;
Bookatz8f2f3d82017-12-07 13:53:21 -0800218 repeated AlertStats alert_stats = 16;
Yao Chenb3561512017-11-21 18:07:17 -0800219 }
220
221 repeated ConfigStats config_stats = 3;
222
223 message AtomStats {
224 optional int32 tag = 1;
225 optional int32 count = 2;
226 }
227
228 repeated AtomStats atom_stats = 7;
David Chenc136f45a2017-11-27 11:52:26 -0800229
230 message UidMapStats {
231 optional int32 snapshots = 1;
232 optional int32 changes = 2;
233 optional int32 bytes_used = 3;
234 optional int32 dropped_snapshots = 4;
235 optional int32 dropped_changes = 5;
236 }
237 optional UidMapStats uidmap_stats = 8;
Bookatz1d0136d2017-12-01 11:13:32 -0800238
239 message AnomalyAlarmStats {
240 optional int32 alarms_registered = 1;
241 }
242 optional AnomalyAlarmStats anomaly_alarm_stats = 9;
Yao Chenb3561512017-11-21 18:07:17 -0800243}