// 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; }