blob: 15ea9d5a8aa95fa85efd5e4ecdf7a1c45b0ee29e [file] [log] [blame]
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Partial clone of packages/modules/StatsD/statsd/src/statsd_config.proto. The service only
// uses some parameters when configuring StatsD.
syntax = "proto2";
package android.car.telemetry.statsd;
option java_package = "com.android.car.telemetry";
option java_outer_classname = "StatsdConfigProto";
enum TimeUnit {
TIME_UNIT_UNSPECIFIED = 0;
FIVE_MINUTES = 2;
TEN_MINUTES = 3;
THIRTY_MINUTES = 4;
ONE_HOUR = 5;
reserved 1, 6, 7, 8, 9, 10, 1000;
}
message FieldMatcher {
optional int32 field = 1;
repeated FieldMatcher child = 3;
reserved 2;
}
message SimpleAtomMatcher {
optional int32 atom_id = 1;
reserved 2;
}
message AtomMatcher {
optional int64 id = 1;
oneof contents {
SimpleAtomMatcher simple_atom_matcher = 2;
}
reserved 3;
}
message FieldFilter {
optional bool include_all = 1 [default = false];
optional FieldMatcher fields = 2;
}
message EventMetric {
optional int64 id = 1;
optional int64 what = 2;
optional int64 condition = 3;
reserved 4;
reserved 100;
reserved 101;
}
message GaugeMetric {
optional int64 id = 1;
optional int64 what = 2;
optional FieldFilter gauge_fields_filter = 3;
optional FieldMatcher dimensions_in_what = 5;
optional TimeUnit bucket = 6;
enum SamplingType {
RANDOM_ONE_SAMPLE = 1;
CONDITION_CHANGE_TO_TRUE = 3;
FIRST_N_SAMPLES = 4;
reserved 2;
}
optional SamplingType sampling_type = 9 [default = RANDOM_ONE_SAMPLE];
optional int64 max_num_gauge_atoms_per_bucket = 11 [default = 10];
optional int32 max_pull_delay_sec = 13 [default = 30];
reserved 4, 7, 8, 10, 12, 14;
reserved 100;
reserved 101;
}
message PullAtomPackages {
optional int32 atom_id = 1;
repeated string packages = 2;
}
message StatsdConfig {
optional int64 id = 1;
repeated EventMetric event_metric = 2;
repeated GaugeMetric gauge_metric = 5;
repeated AtomMatcher atom_matcher = 7;
repeated string allowed_log_source = 12;
optional int64 ttl_in_seconds = 15;
optional bool hash_strings_in_metric_report = 16 [default = true];
optional bool persist_locally = 20 [default = false];
repeated PullAtomPackages pull_atom_packages = 23;
repeated int32 whitelisted_atom_ids = 24;
reserved 3, 4, 6, 8, 9, 10, 11, 13, 14, 17, 18, 19, 21, 22, 25;
// Do not use.
reserved 1000, 1001;
}