blob: 3c85c57ab0374b289e2ab5b3aa7b3f82dab668f2 [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
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;
Chenjie Yud9dfda72017-12-11 17:41:20 -080032 int32 value_int = 3;
33 int64 value_long = 4;
34 bool value_bool = 5;
35 float value_float = 6;
Yao Chenab273e22017-09-06 12:53:50 -070036 }
Yao Chenab273e22017-09-06 12:53:50 -070037}
38
yro00698da2017-09-15 10:06:40 -070039message EventMetricData {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070040 optional int64 timestamp_nanos = 1;
yro00698da2017-09-15 10:06:40 -070041
Stefan Lafonae2df012017-11-14 09:17:21 -080042 optional Atom atom = 2;
yro00698da2017-09-15 10:06:40 -070043}
44
45message CountBucketInfo {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070046 optional int64 start_bucket_nanos = 1;
yro00698da2017-09-15 10:06:40 -070047
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070048 optional int64 end_bucket_nanos = 2;
yro00698da2017-09-15 10:06:40 -070049
50 optional int64 count = 3;
51}
52
53message CountMetricData {
54 repeated KeyValuePair dimension = 1;
55
56 repeated CountBucketInfo bucket_info = 2;
57}
58
Yao Chencaf339d2017-10-06 16:01:10 -070059message DurationBucketInfo {
60 optional int64 start_bucket_nanos = 1;
61
62 optional int64 end_bucket_nanos = 2;
63
64 optional int64 duration_nanos = 3;
65}
66
67message DurationMetricData {
68 repeated KeyValuePair dimension = 1;
69
70 repeated DurationBucketInfo bucket_info = 2;
71}
72
Yangsterfa28aec2017-10-30 10:29:52 -070073message ValueBucketInfo {
74 optional int64 start_bucket_nanos = 1;
75
76 optional int64 end_bucket_nanos = 2;
77
78 optional int64 value = 3;
79}
80
81message ValueMetricData {
82 repeated KeyValuePair dimension = 1;
83
84 repeated ValueBucketInfo bucket_info = 2;
85}
86
87message GaugeBucketInfo {
88 optional int64 start_bucket_nanos = 1;
89
90 optional int64 end_bucket_nanos = 2;
91
Chenjie Yud9dfda72017-12-11 17:41:20 -080092 optional Atom atom = 3;
Yangsterfa28aec2017-10-30 10:29:52 -070093}
94
95message GaugeMetricData {
96 repeated KeyValuePair dimension = 1;
97
98 repeated GaugeBucketInfo bucket_info = 2;
99}
100
Yao Chencaf339d2017-10-06 16:01:10 -0700101message UidMapping {
David Chend6896892017-10-25 11:49:03 -0700102 message PackageInfoSnapshot {
103 message PackageInfo {
104 optional string name = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700105
Dianne Hackborn3accca02013-09-20 09:32:11 -0700106 optional int64 version = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700107
David Chend6896892017-10-25 11:49:03 -0700108 optional int32 uid = 3;
109 }
110 optional int64 timestamp_nanos = 1;
111
112 repeated PackageInfo package_info = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700113 }
David Chend6896892017-10-25 11:49:03 -0700114 repeated PackageInfoSnapshot snapshots = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700115
116 message Change {
117 optional bool deletion = 1;
118
Yangsterfa28aec2017-10-30 10:29:52 -0700119 optional int64 timestamp_nanos = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700120 optional string app = 3;
121 optional int32 uid = 4;
122
Dianne Hackborn3accca02013-09-20 09:32:11 -0700123 optional int64 version = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700124 }
125 repeated Change changes = 2;
126}
127
yro00698da2017-09-15 10:06:40 -0700128message StatsLogReport {
Yao Chen1ff4f432017-11-16 17:01:40 -0800129 optional string metric_name = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700130
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700131 optional int64 start_report_nanos = 2;
yro00698da2017-09-15 10:06:40 -0700132
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700133 optional int64 end_report_nanos = 3;
yro00698da2017-09-15 10:06:40 -0700134
135 message EventMetricDataWrapper {
136 repeated EventMetricData data = 1;
137 }
138 message CountMetricDataWrapper {
139 repeated CountMetricData data = 1;
140 }
Yao Chencaf339d2017-10-06 16:01:10 -0700141 message DurationMetricDataWrapper {
Yao Chen729093d2017-10-16 10:33:26 -0700142 repeated DurationMetricData data = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700143 }
Yangsterfa28aec2017-10-30 10:29:52 -0700144 message ValueMetricDataWrapper {
145 repeated ValueMetricData data = 1;
146 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700147
Yangsterfa28aec2017-10-30 10:29:52 -0700148 message GaugeMetricDataWrapper {
149 repeated GaugeMetricData data = 1;
150 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700151
yro00698da2017-09-15 10:06:40 -0700152 oneof data {
153 EventMetricDataWrapper event_metrics = 4;
154 CountMetricDataWrapper count_metrics = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700155 DurationMetricDataWrapper duration_metrics = 6;
Yangsterfa28aec2017-10-30 10:29:52 -0700156 ValueMetricDataWrapper value_metrics = 7;
157 GaugeMetricDataWrapper gauge_metrics = 8;
yro00698da2017-09-15 10:06:40 -0700158 }
Yao Chenab273e22017-09-06 12:53:50 -0700159}
Yangsterfa28aec2017-10-30 10:29:52 -0700160
161message ConfigMetricsReport {
yro947fbce2017-11-15 22:50:23 -0800162 repeated StatsLogReport metrics = 1;
163
164 optional UidMapping uid_map = 2;
165}
166
167message ConfigMetricsReportList {
Yangsterfa28aec2017-10-30 10:29:52 -0700168 message ConfigKey {
169 optional int32 uid = 1;
170 optional string name = 2;
171 }
172 optional ConfigKey config_key = 1;
173
yro947fbce2017-11-15 22:50:23 -0800174 repeated ConfigMetricsReport reports = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700175}
Yao Chenb3561512017-11-21 18:07:17 -0800176
177message StatsdStatsReport {
178 optional int32 stats_begin_time_sec = 1;
179
180 optional int32 stats_end_time_sec = 2;
181
182 message MatcherStats {
183 optional string name = 1;
184 optional int32 matched_times = 2;
185 }
186
187 message ConditionStats {
188 optional string name = 1;
189 optional int32 max_tuple_counts = 2;
190 }
191
192 message MetricStats {
193 optional string name = 1;
194 optional int32 max_tuple_counts = 2;
195 }
196
Bookatz8f2f3d82017-12-07 13:53:21 -0800197 message AlertStats {
198 optional string name = 1;
Bookatze1d143a2017-12-13 15:21:57 -0800199 optional int32 alerted_times = 2;
Bookatz8f2f3d82017-12-07 13:53:21 -0800200 }
201
Yao Chenb3561512017-11-21 18:07:17 -0800202 message ConfigStats {
203 optional int32 uid = 1;
204 optional string name = 2;
205 optional int32 creation_time_sec = 3;
206 optional int32 deletion_time_sec = 4;
207 optional int32 metric_count = 5;
208 optional int32 condition_count = 6;
209 optional int32 matcher_count = 7;
210 optional int32 alert_count = 8;
211 optional bool is_valid = 9;
212
213 repeated int32 broadcast_sent_time_sec = 10;
214 repeated int32 data_drop_time_sec = 11;
Yao Chen69f1baf2017-11-27 17:25:36 -0800215 repeated int32 dump_report_time_sec = 12;
216 repeated MatcherStats matcher_stats = 13;
217 repeated ConditionStats condition_stats = 14;
218 repeated MetricStats metric_stats = 15;
Bookatz8f2f3d82017-12-07 13:53:21 -0800219 repeated AlertStats alert_stats = 16;
Yao Chenb3561512017-11-21 18:07:17 -0800220 }
221
222 repeated ConfigStats config_stats = 3;
223
224 message AtomStats {
225 optional int32 tag = 1;
226 optional int32 count = 2;
227 }
228
229 repeated AtomStats atom_stats = 7;
David Chenc136f45a2017-11-27 11:52:26 -0800230
231 message UidMapStats {
232 optional int32 snapshots = 1;
233 optional int32 changes = 2;
234 optional int32 bytes_used = 3;
235 optional int32 dropped_snapshots = 4;
236 optional int32 dropped_changes = 5;
237 }
238 optional UidMapStats uidmap_stats = 8;
Bookatz1d0136d2017-12-01 11:13:32 -0800239
240 message AnomalyAlarmStats {
241 optional int32 alarms_registered = 1;
242 }
243 optional AnomalyAlarmStats anomaly_alarm_stats = 9;
Yao Chenb3561512017-11-21 18:07:17 -0800244}