blob: ae69a5070f5fc6ffead2d808d3af3060e173a538 [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 DimensionsValue {
28 optional int32 field = 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;
Yangster-mac20877162017-12-22 17:19:39 -080036 DimensionsValueTuple value_tuple = 7;
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 {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070045 optional int64 timestamp_nanos = 1;
yro00698da2017-09-15 10:06:40 -070046
Stefan Lafonae2df012017-11-14 09:17:21 -080047 optional Atom atom = 2;
yro00698da2017-09-15 10:06:40 -070048}
49
50message CountBucketInfo {
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070051 optional int64 start_bucket_nanos = 1;
yro00698da2017-09-15 10:06:40 -070052
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070053 optional int64 end_bucket_nanos = 2;
yro00698da2017-09-15 10:06:40 -070054
55 optional int64 count = 3;
56}
57
58message CountMetricData {
Yangster-mac20877162017-12-22 17:19:39 -080059 optional DimensionsValue dimension = 1;
yro00698da2017-09-15 10:06:40 -070060
61 repeated CountBucketInfo bucket_info = 2;
62}
63
Yao Chencaf339d2017-10-06 16:01:10 -070064message DurationBucketInfo {
65 optional int64 start_bucket_nanos = 1;
66
67 optional int64 end_bucket_nanos = 2;
68
69 optional int64 duration_nanos = 3;
70}
71
72message DurationMetricData {
Yangster-mac20877162017-12-22 17:19:39 -080073 optional DimensionsValue dimension = 1;
Yao Chencaf339d2017-10-06 16:01:10 -070074
75 repeated DurationBucketInfo bucket_info = 2;
76}
77
Yangsterfa28aec2017-10-30 10:29:52 -070078message ValueBucketInfo {
79 optional int64 start_bucket_nanos = 1;
80
81 optional int64 end_bucket_nanos = 2;
82
83 optional int64 value = 3;
84}
85
86message ValueMetricData {
Yangster-mac20877162017-12-22 17:19:39 -080087 optional DimensionsValue dimension = 1;
Yangsterfa28aec2017-10-30 10:29:52 -070088
89 repeated ValueBucketInfo bucket_info = 2;
90}
91
92message GaugeBucketInfo {
93 optional int64 start_bucket_nanos = 1;
94
95 optional int64 end_bucket_nanos = 2;
96
Chenjie Yud9dfda72017-12-11 17:41:20 -080097 optional Atom atom = 3;
Yangsterfa28aec2017-10-30 10:29:52 -070098}
99
100message GaugeMetricData {
Yangster-mac20877162017-12-22 17:19:39 -0800101 optional DimensionsValue dimension = 1;
Yangsterfa28aec2017-10-30 10:29:52 -0700102
103 repeated GaugeBucketInfo bucket_info = 2;
104}
105
Yao Chencaf339d2017-10-06 16:01:10 -0700106message UidMapping {
David Chend6896892017-10-25 11:49:03 -0700107 message PackageInfoSnapshot {
108 message PackageInfo {
109 optional string name = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700110
Dianne Hackborn3accca02013-09-20 09:32:11 -0700111 optional int64 version = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700112
David Chend6896892017-10-25 11:49:03 -0700113 optional int32 uid = 3;
114 }
115 optional int64 timestamp_nanos = 1;
116
117 repeated PackageInfo package_info = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700118 }
David Chend6896892017-10-25 11:49:03 -0700119 repeated PackageInfoSnapshot snapshots = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700120
121 message Change {
122 optional bool deletion = 1;
123
Yangsterfa28aec2017-10-30 10:29:52 -0700124 optional int64 timestamp_nanos = 2;
Yao Chencaf339d2017-10-06 16:01:10 -0700125 optional string app = 3;
126 optional int32 uid = 4;
127
Dianne Hackborn3accca02013-09-20 09:32:11 -0700128 optional int64 version = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700129 }
130 repeated Change changes = 2;
131}
132
yro00698da2017-09-15 10:06:40 -0700133message StatsLogReport {
Yangster-mac94e197c2018-01-02 16:03:03 -0800134 optional int64 metric_id = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700135
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700136 optional int64 start_report_nanos = 2;
yro00698da2017-09-15 10:06:40 -0700137
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -0700138 optional int64 end_report_nanos = 3;
yro00698da2017-09-15 10:06:40 -0700139
140 message EventMetricDataWrapper {
141 repeated EventMetricData data = 1;
142 }
143 message CountMetricDataWrapper {
144 repeated CountMetricData data = 1;
145 }
Yao Chencaf339d2017-10-06 16:01:10 -0700146 message DurationMetricDataWrapper {
Yao Chen729093d2017-10-16 10:33:26 -0700147 repeated DurationMetricData data = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700148 }
Yangsterfa28aec2017-10-30 10:29:52 -0700149 message ValueMetricDataWrapper {
150 repeated ValueMetricData data = 1;
151 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700152
Yangsterfa28aec2017-10-30 10:29:52 -0700153 message GaugeMetricDataWrapper {
154 repeated GaugeMetricData data = 1;
155 }
Chenjie Yub3dda412017-10-24 13:41:59 -0700156
yro00698da2017-09-15 10:06:40 -0700157 oneof data {
158 EventMetricDataWrapper event_metrics = 4;
159 CountMetricDataWrapper count_metrics = 5;
Yao Chencaf339d2017-10-06 16:01:10 -0700160 DurationMetricDataWrapper duration_metrics = 6;
Yangsterfa28aec2017-10-30 10:29:52 -0700161 ValueMetricDataWrapper value_metrics = 7;
162 GaugeMetricDataWrapper gauge_metrics = 8;
yro00698da2017-09-15 10:06:40 -0700163 }
Yao Chenab273e22017-09-06 12:53:50 -0700164}
Yangsterfa28aec2017-10-30 10:29:52 -0700165
166message ConfigMetricsReport {
yro947fbce2017-11-15 22:50:23 -0800167 repeated StatsLogReport metrics = 1;
168
169 optional UidMapping uid_map = 2;
170}
171
172message ConfigMetricsReportList {
Yangsterfa28aec2017-10-30 10:29:52 -0700173 message ConfigKey {
174 optional int32 uid = 1;
Yangster-mac94e197c2018-01-02 16:03:03 -0800175 optional int64 id = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700176 }
177 optional ConfigKey config_key = 1;
178
yro947fbce2017-11-15 22:50:23 -0800179 repeated ConfigMetricsReport reports = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700180}
Yao Chenb3561512017-11-21 18:07:17 -0800181
182message StatsdStatsReport {
183 optional int32 stats_begin_time_sec = 1;
184
185 optional int32 stats_end_time_sec = 2;
186
187 message MatcherStats {
Yangster-mac94e197c2018-01-02 16:03:03 -0800188 optional int64 id = 1;
Yao Chenb3561512017-11-21 18:07:17 -0800189 optional int32 matched_times = 2;
190 }
191
192 message ConditionStats {
Yangster-mac94e197c2018-01-02 16:03:03 -0800193 optional int64 id = 1;
Yao Chenb3561512017-11-21 18:07:17 -0800194 optional int32 max_tuple_counts = 2;
195 }
196
197 message MetricStats {
Yangster-mac94e197c2018-01-02 16:03:03 -0800198 optional int64 id = 1;
Yao Chenb3561512017-11-21 18:07:17 -0800199 optional int32 max_tuple_counts = 2;
200 }
201
Bookatz8f2f3d82017-12-07 13:53:21 -0800202 message AlertStats {
Yangster-mac94e197c2018-01-02 16:03:03 -0800203 optional int64 id = 1;
Bookatze1d143a2017-12-13 15:21:57 -0800204 optional int32 alerted_times = 2;
Bookatz8f2f3d82017-12-07 13:53:21 -0800205 }
206
Yao Chenb3561512017-11-21 18:07:17 -0800207 message ConfigStats {
208 optional int32 uid = 1;
Yangster-mac94e197c2018-01-02 16:03:03 -0800209 optional int64 id = 2;
Yao Chenb3561512017-11-21 18:07:17 -0800210 optional int32 creation_time_sec = 3;
211 optional int32 deletion_time_sec = 4;
212 optional int32 metric_count = 5;
213 optional int32 condition_count = 6;
214 optional int32 matcher_count = 7;
215 optional int32 alert_count = 8;
216 optional bool is_valid = 9;
217
218 repeated int32 broadcast_sent_time_sec = 10;
219 repeated int32 data_drop_time_sec = 11;
Yao Chen69f1baf2017-11-27 17:25:36 -0800220 repeated int32 dump_report_time_sec = 12;
221 repeated MatcherStats matcher_stats = 13;
222 repeated ConditionStats condition_stats = 14;
223 repeated MetricStats metric_stats = 15;
Bookatz8f2f3d82017-12-07 13:53:21 -0800224 repeated AlertStats alert_stats = 16;
Yao Chenb3561512017-11-21 18:07:17 -0800225 }
226
227 repeated ConfigStats config_stats = 3;
228
229 message AtomStats {
230 optional int32 tag = 1;
231 optional int32 count = 2;
232 }
233
234 repeated AtomStats atom_stats = 7;
David Chenc136f452017-11-27 11:52:26 -0800235
236 message UidMapStats {
237 optional int32 snapshots = 1;
238 optional int32 changes = 2;
239 optional int32 bytes_used = 3;
240 optional int32 dropped_snapshots = 4;
241 optional int32 dropped_changes = 5;
242 }
243 optional UidMapStats uidmap_stats = 8;
Bookatz1d0136d2017-12-01 11:13:32 -0800244
245 message AnomalyAlarmStats {
246 optional int32 alarms_registered = 1;
247 }
248 optional AnomalyAlarmStats anomaly_alarm_stats = 9;
Yao Chenb3561512017-11-21 18:07:17 -0800249}