blob: f5282eaaecd46caf3cb08c08217f76309cea5d8d [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
Joe Onorato62c220b2017-11-18 20:32:56 -080025import "frameworks/base/cmds/statsd/src/atoms.proto";
Yao Chenab273e22017-09-06 12:53:50 -070026
Yangster-mac20877162017-12-22 17:19:39 -080027message Field {
28 optional int32 field = 1;
29 optional int32 position_index = 2 [default = -1];
30 repeated Field child = 3;
31}
32
33message DimensionsValue {
34 optional int32 field = 1;
Yao Chenab273e22017-09-06 12:53:50 -070035
yro00698da2017-09-15 10:06:40 -070036 oneof value {
37 string value_str = 2;
Chenjie Yud9dfda72017-12-11 17:41:20 -080038 int32 value_int = 3;
39 int64 value_long = 4;
40 bool value_bool = 5;
41 float value_float = 6;
Yangster-mac20877162017-12-22 17:19:39 -080042 DimensionsValueTuple value_tuple = 7;
Yao Chenab273e22017-09-06 12:53:50 -070043 }
Yao Chenab273e22017-09-06 12:53:50 -070044}
45
Yangster-mac20877162017-12-22 17:19:39 -080046message DimensionsValueTuple {
47 repeated DimensionsValue dimensions_value = 1;
48}
49
yro00698da2017-09-15 10:06:40 -070050message EventMetricData {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070051 optional int64 timestamp_nanos = 1;
yro00698da2017-09-15 10:06:40 -070052
Stefan Lafonae2df012017-11-14 09:17:21 -080053 optional Atom atom = 2;
yro00698da2017-09-15 10:06:40 -070054}
55
56message CountBucketInfo {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070057 optional int64 start_bucket_nanos = 1;
yro00698da2017-09-15 10:06:40 -070058
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070059 optional int64 end_bucket_nanos = 2;
yro00698da2017-09-15 10:06:40 -070060
61 optional int64 count = 3;
62}
63
64message CountMetricData {
Yangster-mac20877162017-12-22 17:19:39 -080065 optional DimensionsValue dimension = 1;
yro00698da2017-09-15 10:06:40 -070066
67 repeated CountBucketInfo bucket_info = 2;
68}
69
Yao Chencaf339d2017-10-06 16:01:10 -070070message DurationBucketInfo {
71 optional int64 start_bucket_nanos = 1;
72
73 optional int64 end_bucket_nanos = 2;
74
75 optional int64 duration_nanos = 3;
76}
77
78message DurationMetricData {
Yangster-mac20877162017-12-22 17:19:39 -080079 optional DimensionsValue dimension = 1;
Yao Chencaf339d2017-10-06 16:01:10 -070080
81 repeated DurationBucketInfo bucket_info = 2;
82}
83
Yangsterfa28aec2017-10-30 10:29:52 -070084message ValueBucketInfo {
85 optional int64 start_bucket_nanos = 1;
86
87 optional int64 end_bucket_nanos = 2;
88
89 optional int64 value = 3;
90}
91
92message ValueMetricData {
Yangster-mac20877162017-12-22 17:19:39 -080093 optional DimensionsValue dimension = 1;
Yangsterfa28aec2017-10-30 10:29:52 -070094
95 repeated ValueBucketInfo bucket_info = 2;
96}
97
98message GaugeBucketInfo {
99 optional int64 start_bucket_nanos = 1;
100
101 optional int64 end_bucket_nanos = 2;
102
Chenjie Yud9dfda72017-12-11 17:41:20 -0800103 optional Atom atom = 3;
Yangsterfa28aec2017-10-30 10:29:52 -0700104}
105
106message GaugeMetricData {
Yangster-mac20877162017-12-22 17:19:39 -0800107 optional DimensionsValue dimension = 1;
Yangsterfa28aec2017-10-30 10:29:52 -0700108
109 repeated GaugeBucketInfo bucket_info = 2;
110}
111
Yao Chencaf339d2017-10-06 16:01:10 -0700112message UidMapping {
David Chend6896892017-10-25 11:49:03 -0700113 message PackageInfoSnapshot {
114 message PackageInfo {
115 optional string name = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700116
Dianne Hackborn3accca02013-09-20 09:32:11 -0700117 optional int64 version = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700118
David Chend6896892017-10-25 11:49:03 -0700119 optional int32 uid = 3;
120 }
121 optional int64 timestamp_nanos = 1;
122
123 repeated PackageInfo package_info = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700124 }
David Chend6896892017-10-25 11:49:03 -0700125 repeated PackageInfoSnapshot snapshots = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700126
127 message Change {
128 optional bool deletion = 1;
129
Yangsterfa28aec2017-10-30 10:29:52 -0700130 optional int64 timestamp_nanos = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700131 optional string app = 3;
132 optional int32 uid = 4;
133
Dianne Hackborn3accca02013-09-20 09:32:11 -0700134 optional int64 version = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700135 }
136 repeated Change changes = 2;
137}
138
yro00698da2017-09-15 10:06:40 -0700139message StatsLogReport {
Yao Chen1ff4f432017-11-16 17:01:40 -0800140 optional string metric_name = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700141
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700142 optional int64 start_report_nanos = 2;
yro00698da2017-09-15 10:06:40 -0700143
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700144 optional int64 end_report_nanos = 3;
yro00698da2017-09-15 10:06:40 -0700145
146 message EventMetricDataWrapper {
147 repeated EventMetricData data = 1;
148 }
149 message CountMetricDataWrapper {
150 repeated CountMetricData data = 1;
151 }
Yao Chencaf339d2017-10-06 16:01:10 -0700152 message DurationMetricDataWrapper {
Yao Chen729093d2017-10-16 10:33:26 -0700153 repeated DurationMetricData data = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700154 }
Yangsterfa28aec2017-10-30 10:29:52 -0700155 message ValueMetricDataWrapper {
156 repeated ValueMetricData data = 1;
157 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700158
Yangsterfa28aec2017-10-30 10:29:52 -0700159 message GaugeMetricDataWrapper {
160 repeated GaugeMetricData data = 1;
161 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700162
yro00698da2017-09-15 10:06:40 -0700163 oneof data {
164 EventMetricDataWrapper event_metrics = 4;
165 CountMetricDataWrapper count_metrics = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700166 DurationMetricDataWrapper duration_metrics = 6;
Yangsterfa28aec2017-10-30 10:29:52 -0700167 ValueMetricDataWrapper value_metrics = 7;
168 GaugeMetricDataWrapper gauge_metrics = 8;
yro00698da2017-09-15 10:06:40 -0700169 }
Yao Chenab273e22017-09-06 12:53:50 -0700170}
Yangsterfa28aec2017-10-30 10:29:52 -0700171
172message ConfigMetricsReport {
yro947fbce2017-11-15 22:50:23 -0800173 repeated StatsLogReport metrics = 1;
174
175 optional UidMapping uid_map = 2;
176}
177
178message ConfigMetricsReportList {
Yangsterfa28aec2017-10-30 10:29:52 -0700179 message ConfigKey {
180 optional int32 uid = 1;
181 optional string name = 2;
182 }
183 optional ConfigKey config_key = 1;
184
yro947fbce2017-11-15 22:50:23 -0800185 repeated ConfigMetricsReport reports = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700186}
Yao Chenb3561512017-11-21 18:07:17 -0800187
188message StatsdStatsReport {
189 optional int32 stats_begin_time_sec = 1;
190
191 optional int32 stats_end_time_sec = 2;
192
193 message MatcherStats {
194 optional string name = 1;
195 optional int32 matched_times = 2;
196 }
197
198 message ConditionStats {
199 optional string name = 1;
200 optional int32 max_tuple_counts = 2;
201 }
202
203 message MetricStats {
204 optional string name = 1;
205 optional int32 max_tuple_counts = 2;
206 }
207
Bookatz8f2f3d82017-12-07 13:53:21 -0800208 message AlertStats {
209 optional string name = 1;
Bookatze1d143a2017-12-13 15:21:57 -0800210 optional int32 alerted_times = 2;
Bookatz8f2f3d82017-12-07 13:53:21 -0800211 }
212
Yao Chenb3561512017-11-21 18:07:17 -0800213 message ConfigStats {
214 optional int32 uid = 1;
215 optional string name = 2;
216 optional int32 creation_time_sec = 3;
217 optional int32 deletion_time_sec = 4;
218 optional int32 metric_count = 5;
219 optional int32 condition_count = 6;
220 optional int32 matcher_count = 7;
221 optional int32 alert_count = 8;
222 optional bool is_valid = 9;
223
224 repeated int32 broadcast_sent_time_sec = 10;
225 repeated int32 data_drop_time_sec = 11;
Yao Chen69f1baf2017-11-27 17:25:36 -0800226 repeated int32 dump_report_time_sec = 12;
227 repeated MatcherStats matcher_stats = 13;
228 repeated ConditionStats condition_stats = 14;
229 repeated MetricStats metric_stats = 15;
Bookatz8f2f3d82017-12-07 13:53:21 -0800230 repeated AlertStats alert_stats = 16;
Yao Chenb3561512017-11-21 18:07:17 -0800231 }
232
233 repeated ConfigStats config_stats = 3;
234
235 message AtomStats {
236 optional int32 tag = 1;
237 optional int32 count = 2;
238 }
239
240 repeated AtomStats atom_stats = 7;
David Chenc136f452017-11-27 11:52:26 -0800241
242 message UidMapStats {
243 optional int32 snapshots = 1;
244 optional int32 changes = 2;
245 optional int32 bytes_used = 3;
246 optional int32 dropped_snapshots = 4;
247 optional int32 dropped_changes = 5;
248 }
249 optional UidMapStats uidmap_stats = 8;
Bookatz1d0136d2017-12-01 11:13:32 -0800250
251 message AnomalyAlarmStats {
252 optional int32 alarms_registered = 1;
253 }
254 optional AnomalyAlarmStats anomaly_alarm_stats = 9;
Yao Chenb3561512017-11-21 18:07:17 -0800255}