| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- // Copyright 2016 Google Inc.
- //
- // 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 = "proto3";
- package google.monitoring.v3;
- import "google/api/distribution.proto";
- import "google/protobuf/duration.proto";
- import "google/protobuf/timestamp.proto";
- option java_multiple_files = true;
- option java_outer_classname = "CommonProto";
- option java_package = "com.google.monitoring.v3";
- // A single strongly-typed value.
- message TypedValue {
- // The typed value field.
- oneof value {
- // A Boolean value: `true` or `false`.
- bool bool_value = 1;
- // A 64-bit integer. Its range is approximately ±9.2x10<sup>18</sup>.
- int64 int64_value = 2;
- // A 64-bit double-precision floating-point number. Its magnitude
- // is approximately ±10<sup>±300</sup> and it has 16
- // significant digits of precision.
- double double_value = 3;
- // A variable-length string value.
- string string_value = 4;
- // A distribution value.
- google.api.Distribution distribution_value = 5;
- }
- }
- // A time interval extending from after `startTime` through `endTime`. If
- // `startTime` is omitted, the interval is the single point in time, `endTime`.
- message TimeInterval {
- // Required. The end of the interval. The interval includes this
- // time.
- google.protobuf.Timestamp end_time = 2;
- // If this value is omitted, the interval is a point in time,
- // `endTime`. If `startTime` is present, it must be earlier than
- // (less than) `endTime`. The interval begins after
- // `startTime`—it does not include `startTime`.
- google.protobuf.Timestamp start_time = 1;
- }
- // Describes how to combine, or aggregate, multiple time series to
- // provide different views of the data.
- // See [Aggregation](/monitoring/api/learn_more#aggregation) for more details.
- message Aggregation {
- // The Aligner describes how to bring the data points in a single
- // time series into temporal alignment.
- enum Aligner {
- // No alignment. Raw data is returned. Not valid if cross-time
- // series reduction is requested. The value type of the result is
- // the same as the value type of the input.
- ALIGN_NONE = 0;
- // Align and convert to delta metric type. This alignment is valid
- // for cumulative metrics and delta metrics. Aligning an existing
- // delta metric to a delta metric requires that the alignment
- // period be increased. The value type of the result is the same
- // as the value type of the input.
- ALIGN_DELTA = 1;
- // Align and convert to a rate. This alignment is valid for
- // cumulative metrics and delta metrics with numeric values. The output is a
- // gauge metric with value type
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_RATE = 2;
- // Align by interpolating between adjacent points around the
- // period boundary. This alignment is valid for gauge and delta
- // metrics with numeric values. The value type of the result is the same
- // as the value type of the input.
- ALIGN_INTERPOLATE = 3;
- // Align by shifting the oldest data point before the period
- // boundary to the boundary. This alignment is valid for gauge
- // metrics. The value type of the result is the same as the
- // value type of the input.
- ALIGN_NEXT_OLDER = 4;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the minimum of all data points in the
- // period. This alignment is valid for gauge and delta metrics with numeric
- // values. The value type of the result is the same as the value
- // type of the input.
- ALIGN_MIN = 10;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the maximum of all data points in the
- // period. This alignment is valid for gauge and delta metrics with numeric
- // values. The value type of the result is the same as the value
- // type of the input.
- ALIGN_MAX = 11;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the average or arithmetic mean of all
- // data points in the period. This alignment is valid for gauge and delta
- // metrics with numeric values. The value type of the output is
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_MEAN = 12;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the count of all data points in the
- // period. This alignment is valid for gauge and delta metrics with numeric
- // or Boolean values. The value type of the output is
- // [INT64][google.api.MetricDescriptor.ValueType.INT64].
- ALIGN_COUNT = 13;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the sum of all data points in the
- // period. This alignment is valid for gauge and delta metrics with numeric
- // and distribution values. The value type of the output is the
- // same as the value type of the input.
- ALIGN_SUM = 14;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the standard deviation of all data
- // points in the period. This alignment is valid for gauge and delta metrics
- // with numeric values. The value type of the output is
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_STDDEV = 15;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the count of True-valued data points in the
- // period. This alignment is valid for gauge metrics with
- // Boolean values. The value type of the output is
- // [INT64][google.api.MetricDescriptor.ValueType.INT64].
- ALIGN_COUNT_TRUE = 16;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the fraction of True-valued data points in the
- // period. This alignment is valid for gauge metrics with Boolean values.
- // The output value is in the range [0, 1] and has value type
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_FRACTION_TRUE = 17;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the 99th percentile of all data
- // points in the period. This alignment is valid for gauge and delta metrics
- // with distribution values. The output is a gauge metric with value type
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_PERCENTILE_99 = 18;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the 95th percentile of all data
- // points in the period. This alignment is valid for gauge and delta metrics
- // with distribution values. The output is a gauge metric with value type
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_PERCENTILE_95 = 19;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the 50th percentile of all data
- // points in the period. This alignment is valid for gauge and delta metrics
- // with distribution values. The output is a gauge metric with value type
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_PERCENTILE_50 = 20;
- // Align time series via aggregation. The resulting data point in
- // the alignment period is the 5th percentile of all data
- // points in the period. This alignment is valid for gauge and delta metrics
- // with distribution values. The output is a gauge metric with value type
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- ALIGN_PERCENTILE_05 = 21;
- }
- // A Reducer describes how to aggregate data points from multiple
- // time series into a single time series.
- enum Reducer {
- // No cross-time series reduction. The output of the aligner is
- // returned.
- REDUCE_NONE = 0;
- // Reduce by computing the mean across time series for each
- // alignment period. This reducer is valid for delta and
- // gauge metrics with numeric or distribution values. The value type of the
- // output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- REDUCE_MEAN = 1;
- // Reduce by computing the minimum across time series for each
- // alignment period. This reducer is valid for delta and
- // gauge metrics with numeric values. The value type of the output
- // is the same as the value type of the input.
- REDUCE_MIN = 2;
- // Reduce by computing the maximum across time series for each
- // alignment period. This reducer is valid for delta and
- // gauge metrics with numeric values. The value type of the output
- // is the same as the value type of the input.
- REDUCE_MAX = 3;
- // Reduce by computing the sum across time series for each
- // alignment period. This reducer is valid for delta and
- // gauge metrics with numeric and distribution values. The value type of
- // the output is the same as the value type of the input.
- REDUCE_SUM = 4;
- // Reduce by computing the standard deviation across time series
- // for each alignment period. This reducer is valid for delta
- // and gauge metrics with numeric or distribution values. The value type of
- // the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- REDUCE_STDDEV = 5;
- // Reduce by computing the count of data points across time series
- // for each alignment period. This reducer is valid for delta
- // and gauge metrics of numeric, Boolean, distribution, and string value
- // type. The value type of the output is
- // [INT64][google.api.MetricDescriptor.ValueType.INT64].
- REDUCE_COUNT = 6;
- // Reduce by computing the count of True-valued data points across time
- // series for each alignment period. This reducer is valid for delta
- // and gauge metrics of Boolean value type. The value type of
- // the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
- REDUCE_COUNT_TRUE = 7;
- // Reduce by computing the fraction of True-valued data points across time
- // series for each alignment period. This reducer is valid for delta
- // and gauge metrics of Boolean value type. The output value is in the
- // range [0, 1] and has value type
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
- REDUCE_FRACTION_TRUE = 8;
- // Reduce by computing 99th percentile of data points across time series
- // for each alignment period. This reducer is valid for gauge and delta
- // metrics of numeric and distribution type. The value of the output is
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
- REDUCE_PERCENTILE_99 = 9;
- // Reduce by computing 95th percentile of data points across time series
- // for each alignment period. This reducer is valid for gauge and delta
- // metrics of numeric and distribution type. The value of the output is
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
- REDUCE_PERCENTILE_95 = 10;
- // Reduce by computing 50th percentile of data points across time series
- // for each alignment period. This reducer is valid for gauge and delta
- // metrics of numeric and distribution type. The value of the output is
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
- REDUCE_PERCENTILE_50 = 11;
- // Reduce by computing 5th percentile of data points across time series
- // for each alignment period. This reducer is valid for gauge and delta
- // metrics of numeric and distribution type. The value of the output is
- // [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
- REDUCE_PERCENTILE_05 = 12;
- }
- // The alignment period for per-[time series][google.monitoring.v3.TimeSeries]
- // alignment. If present, `alignmentPeriod` must be at least 60
- // seconds. After per-time series alignment, each time series will
- // contain data points only on the period boundaries. If
- // `perSeriesAligner` is not specified or equals `ALIGN_NONE`, then
- // this field is ignored. If `perSeriesAligner` is specified and
- // does not equal `ALIGN_NONE`, then this field must be defined;
- // otherwise an error is returned.
- google.protobuf.Duration alignment_period = 1;
- // The approach to be used to align individual time series. Not all
- // alignment functions may be applied to all time series, depending
- // on the metric type and value type of the original time
- // series. Alignment may change the metric type or the value type of
- // the time series.
- //
- // Time series data must be aligned in order to perform cross-time
- // series reduction. If `crossSeriesReducer` is specified, then
- // `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
- // and `alignmentPeriod` must be specified; otherwise, an error is
- // returned.
- Aligner per_series_aligner = 2;
- // The approach to be used to combine time series. Not all reducer
- // functions may be applied to all time series, depending on the
- // metric type and the value type of the original time
- // series. Reduction may change the metric type of value type of the
- // time series.
- //
- // Time series data must be aligned in order to perform cross-time
- // series reduction. If `crossSeriesReducer` is specified, then
- // `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
- // and `alignmentPeriod` must be specified; otherwise, an error is
- // returned.
- Reducer cross_series_reducer = 4;
- // The set of fields to preserve when `crossSeriesReducer` is
- // specified. The `groupByFields` determine how the time series
- // are partitioned into subsets prior to applying the aggregation
- // function. Each subset contains time series that have the same
- // value for each of the grouping fields. Each individual time
- // series is a member of exactly one subset. The
- // `crossSeriesReducer` is applied to each subset of time series.
- // Fields not specified in `groupByFields` are aggregated away.
- // If `groupByFields` is not specified, the time series are
- // aggregated into a single output time series. If
- // `crossSeriesReducer` is not defined, this field is ignored.
- repeated string group_by_fields = 5;
- }
|