blob: f43bcbe0ca2c960c3d8cda9eb9b307fa5d0e8ce3 [file] [log] [blame]
/*
* Copyright (C) 2022 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.
*/
syntax = "proto2";
package android.express;
option java_package = "com.android.os.express";
option java_outer_classname = "ExpressConfigProto";
option java_multiple_files = true;
enum MetricUnit {
UNIT_UNKNOWN = 0;
UNIT_COUNT = 1;
UNIT_TIME_MILLIS = 2;
UNIT_KILOBYTE = 3;
}
enum MetricType {
METRIC_TYPE_UNKNOWN = 0;
COUNTER = 1;
HISTOGRAM = 2;
COUNTER_WITH_UID = 3;
HISTOGRAM_WITH_UID = 4;
}
message HistogramOptions {
message UniformBinningOptions {
optional int32 count = 1;
// Inclusive min value, values < min will go to underflow bin
optional float min = 2;
// Exclusive max value, values >= max will go to overflow bin
optional float max = 3;
}
message ScaledBinningOptions {
optional int32 count = 1;
optional float first_bin_width = 3;
optional float scale = 4;
optional int32 min_value = 5;
reserved 2;
}
oneof options {
UniformBinningOptions uniform_bins = 1;
ScaledBinningOptions scaled_bins = 2;
}
}
message ExpressMetric {
optional string id = 1;
optional MetricType type = 2;
optional string display_name = 3;
optional string description = 4;
repeated string owner_email = 5;
optional MetricUnit unit = 6;
oneof options {
HistogramOptions histogram_options = 7;
}
}
message ExpressMetricConfigFile {
repeated ExpressMetric express_metric = 1;
}