blob: 8d23d156c378623bda355de96c358b35a18a745a [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
package ts_mon.proto;
import "any.proto";
import "timestamp.proto";
import "acquisition_network_device.proto";
import "acquisition_task.proto";
message MetricsPayload {
repeated MetricsCollection metrics_collection = 1;
}
message MetricsCollection {
repeated MetricsDataSet metrics_data_set = 1;
oneof target_schema {
NetworkDevice network_device = 11;
Task task = 12;
}
}
message MetricsDataSet {
optional string metric_name = 1;
repeated MetricFieldDescriptor field_descriptor = 2;
optional StreamKind stream_kind = 3;
optional ValueType value_type = 4;
optional string description = 5;
optional Annotations annotations = 6;
repeated MetricsData data = 7;
message MetricFieldDescriptor {
optional string name = 1;
optional FieldType field_type = 2;
enum FieldType {
STRING = 0;
INT64 = 1;
BOOL = 2;
}
}
}
message MetricsData {
oneof value {
bool bool_value = 1;
string string_value = 2;
int64 int64_value = 3;
double double_value = 4;
Distribution distribution_value = 5;
}
repeated MetricField field = 6;
message MetricField {
optional string name = 1;
oneof value {
string string_value = 2;
int64 int64_value = 3;
bool bool_value = 4;
}
}
optional Timestamp start_timestamp = 7;
optional Timestamp end_timestamp = 8;
message Distribution {
optional int64 count = 1;
optional double mean = 2;
optional double sum_of_squared_deviation = 3;
optional double minimum = 4;
optional double maximum = 5;
oneof bucket_options {
LinearOptions linear_buckets = 6;
ExponentialOptions exponential_buckets = 7;
ExplicitOptions explicit_buckets = 8;
}
message LinearOptions {
optional int32 num_finite_buckets = 1;
optional double width = 2;
optional double offset = 3;
}
message ExponentialOptions {
optional int32 num_finite_buckets = 1;
optional double growth_factor = 2;
optional double scale = 3;
}
message ExplicitOptions {
repeated double bound = 1 [packed = true];
}
repeated int64 bucket_count = 9 [packed = true];
repeated Exemplar exemplar = 10;
message Exemplar {
optional double value = 1;
optional Timestamp timestamp = 2;
repeated Any attachment = 3;
}
}
}
message Annotations {
optional string unit = 1;
optional bool timestamp = 2;
optional string deprecation = 3;
repeated Any annotation = 4;
}
enum StreamKind {
GAUGE = 0;
CUMULATIVE = 1;
DELTA = 2;
}
enum ValueType {
BOOL = 0;
STRING = 1;
INT64 = 2;
DOUBLE = 3;
DISTRIBUTION = 4;
}