blob: 5c6d548ad13ac3a5c3d7c86377264d840c17849d [file] [log] [blame]
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -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 */
Yao Chenab273e22017-09-06 12:53:50 -070016
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070017syntax = "proto2";
Yao Chenab273e22017-09-06 12:53:50 -070018
Stefan Lafoncdb1a0e2017-09-27 20:24:15 -070019package android.os.statsd;
20
Yao Chenab273e22017-09-06 12:53:50 -070021option java_package = "com.android.internal.os";
22option java_outer_classname = "StatsdConfigProto";
23
Yangster-mac20877162017-12-22 17:19:39 -080024enum Position {
Yangsterb84e8b12018-01-22 16:18:34 -080025 POSITION_UNKNOWN = 0;
26
27 FIRST = 1;
28
29 LAST = 2;
30
31 ANY = 3;
Yangster-mace06cfd72018-03-10 23:22:59 -080032
33 ALL = 4;
Yao Chenab273e22017-09-06 12:53:50 -070034}
35
Yangster-macb8144812018-01-04 10:56:23 -080036enum TimeUnit {
Yangsterb84e8b12018-01-22 16:18:34 -080037 TIME_UNIT_UNSPECIFIED = 0;
38 ONE_MINUTE = 1;
39 FIVE_MINUTES = 2;
40 TEN_MINUTES = 3;
41 THIRTY_MINUTES = 4;
42 ONE_HOUR = 5;
43 THREE_HOURS = 6;
44 SIX_HOURS = 7;
45 TWELVE_HOURS = 8;
46 ONE_DAY = 9;
47 CTS = 1000;
Yangster-macb8144812018-01-04 10:56:23 -080048}
49
Yangster-mac20877162017-12-22 17:19:39 -080050message FieldMatcher {
Yangsterb84e8b12018-01-22 16:18:34 -080051 optional int32 field = 1;
Yangster-mac20877162017-12-22 17:19:39 -080052
Yangsterb84e8b12018-01-22 16:18:34 -080053 optional Position position = 2;
Yangster-mac20877162017-12-22 17:19:39 -080054
Yangsterb84e8b12018-01-22 16:18:34 -080055 repeated FieldMatcher child = 3;
Yangster-mac20877162017-12-22 17:19:39 -080056}
57
58message FieldValueMatcher {
Yangsterb84e8b12018-01-22 16:18:34 -080059 optional int32 field = 1;
Yangster-mac20877162017-12-22 17:19:39 -080060
Yangsterb84e8b12018-01-22 16:18:34 -080061 optional Position position = 2;
Yao Chenab273e22017-09-06 12:53:50 -070062
Yangsterb84e8b12018-01-22 16:18:34 -080063 oneof value_matcher {
64 bool eq_bool = 3;
65 string eq_string = 4;
Bookatzb223c4e2018-02-01 15:35:04 -080066 int64 eq_int = 5;
David Chendd896942017-09-26 11:44:40 -070067
Yangsterb84e8b12018-01-22 16:18:34 -080068 int64 lt_int = 6;
69 int64 gt_int = 7;
70 float lt_float = 8;
71 float gt_float = 9;
David Chendd896942017-09-26 11:44:40 -070072
Yangsterb84e8b12018-01-22 16:18:34 -080073 int64 lte_int = 10;
74 int64 gte_int = 11;
Yangster-mac20877162017-12-22 17:19:39 -080075
Yangsterb84e8b12018-01-22 16:18:34 -080076 MessageMatcher matches_tuple = 12;
Yao Chen9b1140e2018-02-27 10:55:54 -080077
78 StringListMatcher eq_any_string = 13;
Yao Chend50f2ae2018-03-23 11:10:13 -070079 StringListMatcher neq_any_string = 14;
Yangsterb84e8b12018-01-22 16:18:34 -080080 }
Yao Chenab273e22017-09-06 12:53:50 -070081}
82
Yangster-mac20877162017-12-22 17:19:39 -080083message MessageMatcher {
Yangsterb84e8b12018-01-22 16:18:34 -080084 repeated FieldValueMatcher field_value_matcher = 1;
Yangster-mac20877162017-12-22 17:19:39 -080085}
86
Yao Chen9b1140e2018-02-27 10:55:54 -080087message StringListMatcher {
88 repeated string str_value = 1;
89}
90
yro00698da2017-09-15 10:06:40 -070091enum LogicalOperation {
Yangsterb84e8b12018-01-22 16:18:34 -080092 LOGICAL_OPERATION_UNSPECIFIED = 0;
93 AND = 1;
94 OR = 2;
95 NOT = 3;
96 NAND = 4;
97 NOR = 5;
Yao Chenab273e22017-09-06 12:53:50 -070098}
99
Stefan Lafonb8c9aa82017-12-03 14:27:25 -0800100message SimpleAtomMatcher {
Yangsterb84e8b12018-01-22 16:18:34 -0800101 optional int32 atom_id = 1;
yro00698da2017-09-15 10:06:40 -0700102
Yangsterb84e8b12018-01-22 16:18:34 -0800103 repeated FieldValueMatcher field_value_matcher = 2;
Yao Chenab273e22017-09-06 12:53:50 -0700104}
105
Stefan Lafonb8c9aa82017-12-03 14:27:25 -0800106message AtomMatcher {
Yangsterb84e8b12018-01-22 16:18:34 -0800107 optional int64 id = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700108
Yangsterb84e8b12018-01-22 16:18:34 -0800109 message Combination {
110 optional LogicalOperation operation = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700111
Yangsterb84e8b12018-01-22 16:18:34 -0800112 repeated int64 matcher = 2;
113 }
114 oneof contents {
115 SimpleAtomMatcher simple_atom_matcher = 2;
116 Combination combination = 3;
117 }
Yao Chenab273e22017-09-06 12:53:50 -0700118}
119
Stefan Lafon12d01fa2017-12-04 20:56:09 -0800120message SimplePredicate {
Yangsterb84e8b12018-01-22 16:18:34 -0800121 optional int64 start = 1;
yro00698da2017-09-15 10:06:40 -0700122
Yangsterb84e8b12018-01-22 16:18:34 -0800123 optional int64 stop = 2;
yro00698da2017-09-15 10:06:40 -0700124
Yangsterb84e8b12018-01-22 16:18:34 -0800125 optional bool count_nesting = 3 [default = true];
yro00698da2017-09-15 10:06:40 -0700126
Yangsterb84e8b12018-01-22 16:18:34 -0800127 optional int64 stop_all = 4;
Yao Chen5154a372017-10-30 22:57:06 -0700128
Yangsterb84e8b12018-01-22 16:18:34 -0800129 enum InitialValue {
130 UNKNOWN = 0;
131 FALSE = 1;
132 }
133 optional InitialValue initial_value = 5 [default = FALSE];
Yao Chen967b2052017-11-07 16:36:43 -0800134
Yangsterb84e8b12018-01-22 16:18:34 -0800135 optional FieldMatcher dimensions = 6;
yro00698da2017-09-15 10:06:40 -0700136}
137
Stefan Lafon12d01fa2017-12-04 20:56:09 -0800138message Predicate {
Yangsterb84e8b12018-01-22 16:18:34 -0800139 optional int64 id = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700140
Yangsterb84e8b12018-01-22 16:18:34 -0800141 message Combination {
142 optional LogicalOperation operation = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700143
Yangsterb84e8b12018-01-22 16:18:34 -0800144 repeated int64 predicate = 2;
145 }
Yao Chenab273e22017-09-06 12:53:50 -0700146
Yangsterb84e8b12018-01-22 16:18:34 -0800147 oneof contents {
148 SimplePredicate simple_predicate = 2;
149 Combination combination = 3;
150 }
Yao Chenab273e22017-09-06 12:53:50 -0700151}
152
Stefan Lafona5b51912017-12-05 21:43:52 -0800153message MetricConditionLink {
Yangsterb84e8b12018-01-22 16:18:34 -0800154 optional int64 condition = 1;
Yangster-macd1815dc2017-11-13 21:43:15 -0800155
Yangsterb84e8b12018-01-22 16:18:34 -0800156 optional FieldMatcher fields_in_what = 2;
Yangster-macd1815dc2017-11-13 21:43:15 -0800157
Yangsterb84e8b12018-01-22 16:18:34 -0800158 optional FieldMatcher fields_in_condition = 3;
Yao Chen729093d2017-10-16 10:33:26 -0700159}
160
Chenjie Yud9dfda72017-12-11 17:41:20 -0800161message FieldFilter {
Yangsterb84e8b12018-01-22 16:18:34 -0800162 optional bool include_all = 1 [default = false];
163 optional FieldMatcher fields = 2;
Chenjie Yud9dfda72017-12-11 17:41:20 -0800164}
165
yro00698da2017-09-15 10:06:40 -0700166message EventMetric {
Yangsterb84e8b12018-01-22 16:18:34 -0800167 optional int64 id = 1;
yro00698da2017-09-15 10:06:40 -0700168
Yangsterb84e8b12018-01-22 16:18:34 -0800169 optional int64 what = 2;
yro00698da2017-09-15 10:06:40 -0700170
Yangsterb84e8b12018-01-22 16:18:34 -0800171 optional int64 condition = 3;
Yao Chen729093d2017-10-16 10:33:26 -0700172
Yangsterb84e8b12018-01-22 16:18:34 -0800173 repeated MetricConditionLink links = 4;
Yao Chenab273e22017-09-06 12:53:50 -0700174}
175
yro00698da2017-09-15 10:06:40 -0700176message CountMetric {
Yangsterb84e8b12018-01-22 16:18:34 -0800177 optional int64 id = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700178
Yangsterb84e8b12018-01-22 16:18:34 -0800179 optional int64 what = 2;
Yao Chenab273e22017-09-06 12:53:50 -0700180
Yangsterb84e8b12018-01-22 16:18:34 -0800181 optional int64 condition = 3;
Yao Chenab273e22017-09-06 12:53:50 -0700182
Yangsterb84e8b12018-01-22 16:18:34 -0800183 optional FieldMatcher dimensions_in_what = 4;
Yao Chenab273e22017-09-06 12:53:50 -0700184
Yangsterb84e8b12018-01-22 16:18:34 -0800185 optional FieldMatcher dimensions_in_condition = 7;
Yao Chen729093d2017-10-16 10:33:26 -0700186
Yangsterb84e8b12018-01-22 16:18:34 -0800187 optional TimeUnit bucket = 5;
Yangster-mac468ff042018-01-17 12:26:34 -0800188
Yangsterb84e8b12018-01-22 16:18:34 -0800189 repeated MetricConditionLink links = 6;
Yao Chenab273e22017-09-06 12:53:50 -0700190}
191
Yao Chencaf339d2017-10-06 16:01:10 -0700192message DurationMetric {
Yangsterb84e8b12018-01-22 16:18:34 -0800193 optional int64 id = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700194
Yangsterb84e8b12018-01-22 16:18:34 -0800195 optional int64 what = 2;
Yao Chen729093d2017-10-16 10:33:26 -0700196
Yangsterb84e8b12018-01-22 16:18:34 -0800197 optional int64 condition = 3;
Yao Chen5c925ad2017-11-15 14:15:46 -0800198
Yangsterb84e8b12018-01-22 16:18:34 -0800199 repeated MetricConditionLink links = 4;
Yao Chen5c925ad2017-11-15 14:15:46 -0800200
Yangsterb84e8b12018-01-22 16:18:34 -0800201 enum AggregationType {
202 SUM = 1;
Yao Chencaf339d2017-10-06 16:01:10 -0700203
Yangsterb84e8b12018-01-22 16:18:34 -0800204 MAX_SPARSE = 2;
205 }
206 optional AggregationType aggregation_type = 5 [default = SUM];
Yao Chencaf339d2017-10-06 16:01:10 -0700207
Yangsterb84e8b12018-01-22 16:18:34 -0800208 optional FieldMatcher dimensions_in_what = 6;
Yao Chencaf339d2017-10-06 16:01:10 -0700209
Yangsterb84e8b12018-01-22 16:18:34 -0800210 optional FieldMatcher dimensions_in_condition = 8;
Yangster-mac468ff042018-01-17 12:26:34 -0800211
Yangsterb84e8b12018-01-22 16:18:34 -0800212 optional TimeUnit bucket = 7;
Yangsterfa28aec2017-10-30 10:29:52 -0700213}
214
215message GaugeMetric {
Yangsterb84e8b12018-01-22 16:18:34 -0800216 optional int64 id = 1;
Yangsterfa28aec2017-10-30 10:29:52 -0700217
Yangsterb84e8b12018-01-22 16:18:34 -0800218 optional int64 what = 2;
Yangsterfa28aec2017-10-30 10:29:52 -0700219
Chenjie Yu88588972018-08-03 09:49:22 -0700220 optional int64 trigger_event = 12;
221
Yangsterb84e8b12018-01-22 16:18:34 -0800222 optional FieldFilter gauge_fields_filter = 3;
Yangsterfa28aec2017-10-30 10:29:52 -0700223
Yangsterb84e8b12018-01-22 16:18:34 -0800224 optional int64 condition = 4;
Yangsterfa28aec2017-10-30 10:29:52 -0700225
Yangsterb84e8b12018-01-22 16:18:34 -0800226 optional FieldMatcher dimensions_in_what = 5;
Yangsterfa28aec2017-10-30 10:29:52 -0700227
Yangsterb84e8b12018-01-22 16:18:34 -0800228 optional FieldMatcher dimensions_in_condition = 8;
Yangsterfa28aec2017-10-30 10:29:52 -0700229
Yangsterb84e8b12018-01-22 16:18:34 -0800230 optional TimeUnit bucket = 6;
Yangster-mac468ff042018-01-17 12:26:34 -0800231
Yangsterb84e8b12018-01-22 16:18:34 -0800232 repeated MetricConditionLink links = 7;
Yangster-mac34ea1102018-01-29 12:40:55 -0800233
234 enum SamplingType {
235 RANDOM_ONE_SAMPLE = 1;
Chenjie Yue077fd22018-11-19 13:29:40 -0800236 ALL_CONDITION_CHANGES = 2 [deprecated = true];
Yangsterec3c7a32018-05-09 15:51:07 -0700237 CONDITION_CHANGE_TO_TRUE = 3;
Chenjie Yue077fd22018-11-19 13:29:40 -0800238 FIRST_N_SAMPLES = 4;
Yangster-mac34ea1102018-01-29 12:40:55 -0800239 }
240 optional SamplingType sampling_type = 9 [default = RANDOM_ONE_SAMPLE] ;
David Chen81245fd2018-04-12 14:33:37 -0700241
242 optional int64 min_bucket_size_nanos = 10;
Chenjie Yu0bd73db2018-12-16 07:37:04 -0800243
Yangster-mac50b0c9a2018-05-10 17:13:12 -0700244 optional int64 max_num_gauge_atoms_per_bucket = 11 [default = 10];
Chenjie Yu0bd73db2018-12-16 07:37:04 -0800245
246 optional int32 max_pull_delay_sec = 13 [default = 10];
Chenjie Yucd1b7972019-01-16 20:38:15 -0800247
248 optional bool split_bucket_for_app_upgrade = 14 [default = true];
Yao Chencaf339d2017-10-06 16:01:10 -0700249}
250
Yao Chen729093d2017-10-16 10:33:26 -0700251message ValueMetric {
Yangsterb84e8b12018-01-22 16:18:34 -0800252 optional int64 id = 1;
Yao Chen729093d2017-10-16 10:33:26 -0700253
Yangsterb84e8b12018-01-22 16:18:34 -0800254 optional int64 what = 2;
Yao Chen729093d2017-10-16 10:33:26 -0700255
Yangsterb84e8b12018-01-22 16:18:34 -0800256 optional FieldMatcher value_field = 3;
Yao Chen729093d2017-10-16 10:33:26 -0700257
Yangsterb84e8b12018-01-22 16:18:34 -0800258 optional int64 condition = 4;
Yao Chen729093d2017-10-16 10:33:26 -0700259
Yangsterb84e8b12018-01-22 16:18:34 -0800260 optional FieldMatcher dimensions_in_what = 5;
Yao Chen729093d2017-10-16 10:33:26 -0700261
Yangsterb84e8b12018-01-22 16:18:34 -0800262 optional FieldMatcher dimensions_in_condition = 9;
Yao Chen729093d2017-10-16 10:33:26 -0700263
Yangsterb84e8b12018-01-22 16:18:34 -0800264 optional TimeUnit bucket = 6;
Yangster-mac468ff042018-01-17 12:26:34 -0800265
Yangsterb84e8b12018-01-22 16:18:34 -0800266 repeated MetricConditionLink links = 7;
Yangsterfa28aec2017-10-30 10:29:52 -0700267
Yangsterb84e8b12018-01-22 16:18:34 -0800268 enum AggregationType {
269 SUM = 1;
Chenjie Yua0f02242018-07-06 16:14:34 -0700270 MIN = 2;
271 MAX = 3;
272 AVG = 4;
Yangsterb84e8b12018-01-22 16:18:34 -0800273 }
274 optional AggregationType aggregation_type = 8 [default = SUM];
David Chen81245fd2018-04-12 14:33:37 -0700275
276 optional int64 min_bucket_size_nanos = 10;
Chenjie Yu47234642018-05-14 10:14:16 -0700277
278 optional bool use_absolute_value_on_reset = 11 [default = false];
Chenjie Yuc715b9e2018-10-19 07:52:12 -0700279
280 optional bool use_diff = 12;
281
Chenjie Yuf275f612018-11-30 23:29:06 -0800282 optional bool use_zero_default_base = 15 [default = false];
283
Chenjie Yuc715b9e2018-10-19 07:52:12 -0700284 enum ValueDirection {
Chenjie Yue3eab892018-11-13 09:24:01 -0800285 UNKNOWN = 0;
Chenjie Yuc715b9e2018-10-19 07:52:12 -0700286 INCREASING = 1;
287 DECREASING = 2;
288 ANY = 3;
289 }
290 optional ValueDirection value_direction = 13 [default = INCREASING];
291
292 optional bool skip_zero_diff_output = 14 [default = true];
Chenjie Yu0bd73db2018-12-16 07:37:04 -0800293
294 optional int32 max_pull_delay_sec = 16 [default = 10];
Chenjie Yucd1b7972019-01-16 20:38:15 -0800295
296 optional bool split_bucket_for_app_upgrade = 17 [default = true];
Yao Chen729093d2017-10-16 10:33:26 -0700297}
298
Stefan Lafoncfed20b2017-11-18 09:26:53 -0800299message Alert {
Yangsterb84e8b12018-01-22 16:18:34 -0800300 optional int64 id = 1;
Yao Chen729093d2017-10-16 10:33:26 -0700301
Yangsterb84e8b12018-01-22 16:18:34 -0800302 optional int64 metric_id = 2;
Stefan Lafoncfed20b2017-11-18 09:26:53 -0800303
Yangsterb84e8b12018-01-22 16:18:34 -0800304 optional int32 num_buckets = 3;
Stefan Lafoncfed20b2017-11-18 09:26:53 -0800305
Yangsterb84e8b12018-01-22 16:18:34 -0800306 optional int32 refractory_period_secs = 4;
Stefan Lafoncfed20b2017-11-18 09:26:53 -0800307
Yangsterb84e8b12018-01-22 16:18:34 -0800308 optional double trigger_if_sum_gt = 5;
Stefan Lafoncfed20b2017-11-18 09:26:53 -0800309}
Yao Chen729093d2017-10-16 10:33:26 -0700310
Yangster-mac94e197c2018-01-02 16:03:03 -0800311message Alarm {
Yangsterb84e8b12018-01-22 16:18:34 -0800312 optional int64 id = 1;
313
314 optional int64 offset_millis = 2;
315
316 optional int64 period_millis = 3;
Yangster-mac94e197c2018-01-02 16:03:03 -0800317}
318
319message IncidentdDetails {
Yangsterb84e8b12018-01-22 16:18:34 -0800320 repeated int32 section = 1;
Yi Jinafb36062018-01-31 19:14:25 -0800321
322 enum Destination {
323 AUTOMATIC = 0;
324 EXPLICIT = 1;
325 }
326 optional Destination dest = 2;
Yangster-mac94e197c2018-01-02 16:03:03 -0800327}
328
329message PerfettoDetails {
Primiano Tucci65c72fc2018-07-17 16:53:14 +0100330 // The |trace_config| field is a proto-encoded message of type
331 // perfetto.protos.TraceConfig defined in
332 // //external/perfetto/protos/perfetto/config/. On device,
333 // statsd doesn't need to deserialize the message as it's just
334 // passed binary-encoded to the perfetto cmdline client.
335 optional bytes trace_config = 1;
Yangsterb84e8b12018-01-22 16:18:34 -0800336}
337
Andreas Gampeca1fb022018-05-07 09:10:21 -0700338message PerfprofdDetails {
Primiano Tucci65c72fc2018-07-17 16:53:14 +0100339 // The |perfprofd_config| field is a proto-encoded message of type
340 // android.perfprofd.ProfilingConfig defined in
341 // //system/extras/perfprofd/. On device, statsd doesn't need to
342 // deserialize the message as it's just passed binary-encoded to
343 // the perfprofd service.
344 optional bytes perfprofd_config = 1;
Andreas Gampeca1fb022018-05-07 09:10:21 -0700345}
346
Yangsterb84e8b12018-01-22 16:18:34 -0800347message BroadcastSubscriberDetails {
348 optional int64 subscriber_id = 1;
Bookatz058d8692018-03-06 09:53:47 -0800349 repeated string cookie = 2;
Yangster-mac94e197c2018-01-02 16:03:03 -0800350}
351
352message Subscription {
Yangsterb84e8b12018-01-22 16:18:34 -0800353 optional int64 id = 1;
Yangster-mac94e197c2018-01-02 16:03:03 -0800354
Yangsterb84e8b12018-01-22 16:18:34 -0800355 enum RuleType {
356 RULE_TYPE_UNSPECIFIED = 0;
357 ALARM = 1;
358 ALERT = 2;
359 }
360 optional RuleType rule_type = 2;
Yangster-mac94e197c2018-01-02 16:03:03 -0800361
Yangsterb84e8b12018-01-22 16:18:34 -0800362 optional int64 rule_id = 3;
Yangster-mac94e197c2018-01-02 16:03:03 -0800363
Yangsterb84e8b12018-01-22 16:18:34 -0800364 oneof subscriber_information {
365 IncidentdDetails incidentd_details = 4;
366 PerfettoDetails perfetto_details = 5;
367 BroadcastSubscriberDetails broadcast_subscriber_details = 6;
Andreas Gampeca1fb022018-05-07 09:10:21 -0700368 PerfprofdDetails perfprofd_details = 8;
Yangsterb84e8b12018-01-22 16:18:34 -0800369 }
Bookatz12c12702018-02-16 15:14:42 -0800370
371 optional float probability_of_informing = 7 [default = 1.1];
Yangster-mac94e197c2018-01-02 16:03:03 -0800372}
373
Yangster-mac849dfdc22018-10-12 15:41:45 -0700374message EventActivation {
375 optional int64 atom_matcher_id = 1;
376 optional int64 ttl_seconds = 2;
377}
378
379message MetricActivation {
380 optional int64 metric_id = 1;
381
Chenjie Yua9a310e2019-02-06 13:40:10 -0800382 enum ActivationType {
383 UNKNOWN = 0;
384 ACTIVATE_IMMEDIATELY = 1;
385 ACTIVATE_ON_BOOT = 2;
386 }
387 optional ActivationType activation_type = 3;
388
Yangster-mac849dfdc22018-10-12 15:41:45 -0700389 repeated EventActivation event_activation = 2;
390}
391
Yao Chenab273e22017-09-06 12:53:50 -0700392message StatsdConfig {
Yangsterb84e8b12018-01-22 16:18:34 -0800393 optional int64 id = 1;
Yao Chenab273e22017-09-06 12:53:50 -0700394
Yangsterb84e8b12018-01-22 16:18:34 -0800395 repeated EventMetric event_metric = 2;
yro00698da2017-09-15 10:06:40 -0700396
Yangsterb84e8b12018-01-22 16:18:34 -0800397 repeated CountMetric count_metric = 3;
yro00698da2017-09-15 10:06:40 -0700398
Yangsterb84e8b12018-01-22 16:18:34 -0800399 repeated ValueMetric value_metric = 4;
yro00698da2017-09-15 10:06:40 -0700400
Yangsterb84e8b12018-01-22 16:18:34 -0800401 repeated GaugeMetric gauge_metric = 5;
Yao Chen729093d2017-10-16 10:33:26 -0700402
Yangsterb84e8b12018-01-22 16:18:34 -0800403 repeated DurationMetric duration_metric = 6;
Yao Chen729093d2017-10-16 10:33:26 -0700404
Yangsterb84e8b12018-01-22 16:18:34 -0800405 repeated AtomMatcher atom_matcher = 7;
Yangster1d4d6862017-10-31 12:58:51 -0700406
Yangsterb84e8b12018-01-22 16:18:34 -0800407 repeated Predicate predicate = 8;
Yang Lu3eba6212017-10-25 19:54:45 -0700408
Yangsterb84e8b12018-01-22 16:18:34 -0800409 repeated Alert alert = 9;
Yao Chend10f7b12017-12-18 12:53:50 -0800410
Yangsterb84e8b12018-01-22 16:18:34 -0800411 repeated Alarm alarm = 10;
Yangster-mac94e197c2018-01-02 16:03:03 -0800412
Yangsterb84e8b12018-01-22 16:18:34 -0800413 repeated Subscription subscription = 11;
Yangster-mac94e197c2018-01-02 16:03:03 -0800414
Yangsterb84e8b12018-01-22 16:18:34 -0800415 repeated string allowed_log_source = 12;
Yangster-mac94e197c2018-01-02 16:03:03 -0800416
Yangsterb84e8b12018-01-22 16:18:34 -0800417 repeated int64 no_report_metric = 13;
David Chenfaa1af52018-03-30 15:14:04 -0700418
419 message Annotation {
420 optional int64 field_int64 = 1;
421 optional int32 field_int32 = 2;
422 }
423 repeated Annotation annotation = 14;
424
Yangster-macb142cc82018-03-30 15:22:08 -0700425 optional int64 ttl_in_seconds = 15;
426
Yangster-mac1c58f042018-05-17 15:52:51 -0700427 optional bool hash_strings_in_metric_report = 16 [default = true];
428
Yangster-mac849dfdc22018-10-12 15:41:45 -0700429 repeated MetricActivation metric_activation = 17;
430
dwchen730403e2018-10-29 11:41:56 -0700431 optional bool version_strings_in_metric_report = 18;
432
433 optional bool installer_in_metric_report = 19;
434
David Chenfaa1af52018-03-30 15:14:04 -0700435 // Field number 1000 is reserved for later use.
436 reserved 1000;
Yao Chenab273e22017-09-06 12:53:50 -0700437}