google-cloud-monitoring-dashboard-v1 0.1.1 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (25) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -0
  3. data/lib/google/cloud/monitoring/dashboard/v1.rb +3 -0
  4. data/lib/google/cloud/monitoring/dashboard/v1/dashboards_service.rb +1 -0
  5. data/lib/google/cloud/monitoring/dashboard/v1/dashboards_service/client.rb +34 -13
  6. data/lib/google/cloud/monitoring/dashboard/v1/dashboards_service/paths.rb +66 -0
  7. data/lib/google/cloud/monitoring/dashboard/v1/version.rb +1 -1
  8. data/lib/google/monitoring/dashboard/v1/common_pb.rb +1 -0
  9. data/lib/google/monitoring/dashboard/v1/dashboard_pb.rb +2 -0
  10. data/lib/google/monitoring/dashboard/v1/dashboards_service_pb.rb +1 -0
  11. data/lib/google/monitoring/dashboard/v1/dashboards_service_services_pb.rb +6 -7
  12. data/lib/google/monitoring/dashboard/v1/drilldowns_pb.rb +1 -0
  13. data/lib/google/monitoring/dashboard/v1/metrics_pb.rb +2 -0
  14. data/lib/google/monitoring/dashboard/v1/scorecard_pb.rb +1 -0
  15. data/proto_docs/google/api/distribution.rb +225 -0
  16. data/proto_docs/google/api/resource.rb +50 -14
  17. data/proto_docs/google/monitoring/dashboard/v1/common.rb +263 -212
  18. data/proto_docs/google/monitoring/dashboard/v1/dashboard.rb +2 -2
  19. data/proto_docs/google/monitoring/dashboard/v1/dashboards_service.rb +17 -12
  20. data/proto_docs/google/monitoring/dashboard/v1/metrics.rb +13 -4
  21. data/proto_docs/google/monitoring/dashboard/v1/scorecard.rb +2 -2
  22. data/proto_docs/google/monitoring/dashboard/v1/xychart.rb +3 -3
  23. data/proto_docs/google/protobuf/any.rb +138 -0
  24. data/proto_docs/google/protobuf/timestamp.rb +120 -0
  25. metadata +9 -5
@@ -43,12 +43,12 @@ module Google
43
43
  #
44
44
  # The ResourceDescriptor Yaml config will look like:
45
45
  #
46
- # resources:
47
- # - type: "pubsub.googleapis.com/Topic"
48
- # name_descriptor:
49
- # - pattern: "projects/\\{project}/topics/\\{topic}"
50
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
- # parent_name_extractor: "projects/\\{project}"
46
+ # resources:
47
+ # - type: "pubsub.googleapis.com/Topic"
48
+ # name_descriptor:
49
+ # - pattern: "projects/{project}/topics/{topic}"
50
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
+ # parent_name_extractor: "projects/{project}"
52
52
  #
53
53
  # Sometimes, resources have multiple patterns, typically because they can
54
54
  # live under multiple parents.
@@ -183,15 +183,24 @@ module Google
183
183
  # }
184
184
  # @!attribute [rw] plural
185
185
  # @return [::String]
186
- # The plural name used in the resource name, such as 'projects' for
187
- # the name of 'projects/\\{project}'. It is the same concept of the `plural`
188
- # field in k8s CRD spec
186
+ # The plural name used in the resource name and permission names, such as
187
+ # 'projects' for the resource name of 'projects/\\{project}' and the permission
188
+ # name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same
189
+ # concept of the `plural` field in k8s CRD spec
189
190
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
191
+ #
192
+ # Note: The plural form is required even for singleton resources. See
193
+ # https://aip.dev/156
190
194
  # @!attribute [rw] singular
191
195
  # @return [::String]
192
196
  # The same concept of the `singular` field in k8s CRD spec
193
197
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
194
198
  # Such as "project" for the `resourcemanager.googleapis.com/Project` type.
199
+ # @!attribute [rw] style
200
+ # @return [::Array<::Google::Api::ResourceDescriptor::Style>]
201
+ # Style flag(s) for this resource.
202
+ # These indicate that a resource is expected to conform to a given
203
+ # style. See the specific style flags for additional information.
195
204
  class ResourceDescriptor
196
205
  include ::Google::Protobuf::MessageExts
197
206
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -211,6 +220,22 @@ module Google
211
220
  # that from being necessary once there are multiple patterns.)
212
221
  FUTURE_MULTI_PATTERN = 2
213
222
  end
223
+
224
+ # A flag representing a specific style that a resource claims to conform to.
225
+ module Style
226
+ # The unspecified value. Do not use.
227
+ STYLE_UNSPECIFIED = 0
228
+
229
+ # This resource is intended to be "declarative-friendly".
230
+ #
231
+ # Declarative-friendly resources must be more strictly consistent, and
232
+ # setting this to true communicates to tools that this resource should
233
+ # adhere to declarative-friendly expectations.
234
+ #
235
+ # Note: This is used by the API linter (linter.aip.dev) to enable
236
+ # additional checks.
237
+ DECLARATIVE_FRIENDLY = 1
238
+ end
214
239
  end
215
240
 
216
241
  # Defines a proto annotation that describes a string field that refers to
@@ -226,6 +251,17 @@ module Google
226
251
  # type: "pubsub.googleapis.com/Topic"
227
252
  # }];
228
253
  # }
254
+ #
255
+ # Occasionally, a field may reference an arbitrary resource. In this case,
256
+ # APIs use the special value * in their resource reference.
257
+ #
258
+ # Example:
259
+ #
260
+ # message GetIamPolicyRequest {
261
+ # string resource = 2 [(google.api.resource_reference) = {
262
+ # type: "*"
263
+ # }];
264
+ # }
229
265
  # @!attribute [rw] child_type
230
266
  # @return [::String]
231
267
  # The resource type of a child collection that the annotated field
@@ -234,11 +270,11 @@ module Google
234
270
  #
235
271
  # Example:
236
272
  #
237
- # message ListLogEntriesRequest {
238
- # string parent = 1 [(google.api.resource_reference) = {
239
- # child_type: "logging.googleapis.com/LogEntry"
240
- # };
241
- # }
273
+ # message ListLogEntriesRequest {
274
+ # string parent = 1 [(google.api.resource_reference) = {
275
+ # child_type: "logging.googleapis.com/LogEntry"
276
+ # };
277
+ # }
242
278
  class ResourceReference
243
279
  include ::Google::Protobuf::MessageExts
244
280
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -22,320 +22,368 @@ module Google
22
22
  module Monitoring
23
23
  module Dashboard
24
24
  module V1
25
- # Describes how to combine multiple time series to provide different views of
26
- # the data. Aggregation consists of an alignment step on individual time
27
- # series (`alignment_period` and `per_series_aligner`) followed by an optional
28
- # reduction step of the data across the aligned time series
29
- # (`cross_series_reducer` and `group_by_fields`). For more details, see
30
- # [Aggregation](https://cloud.google.com/monitoring/api/learn_more#aggregation).
25
+ # Describes how to combine multiple time series to provide a different view of
26
+ # the data. Aggregation of time series is done in two steps. First, each time
27
+ # series in the set is _aligned_ to the same time interval boundaries, then the
28
+ # set of time series is optionally _reduced_ in number.
29
+ #
30
+ # Alignment consists of applying the `per_series_aligner` operation
31
+ # to each time series after its data has been divided into regular
32
+ # `alignment_period` time intervals. This process takes _all_ of the data
33
+ # points in an alignment period, applies a mathematical transformation such as
34
+ # averaging, minimum, maximum, delta, etc., and converts them into a single
35
+ # data point per period.
36
+ #
37
+ # Reduction is when the aligned and transformed time series can optionally be
38
+ # combined, reducing the number of time series through similar mathematical
39
+ # transformations. Reduction involves applying a `cross_series_reducer` to
40
+ # all the time series, optionally sorting the time series into subsets with
41
+ # `group_by_fields`, and applying the reducer to each subset.
42
+ #
43
+ # The raw time series data can contain a huge amount of information from
44
+ # multiple sources. Alignment and reduction transforms this mass of data into
45
+ # a more manageable and representative collection of data, for example "the
46
+ # 95% latency across the average of all tasks in a cluster". This
47
+ # representative data can be more easily graphed and comprehended, and the
48
+ # individual time series data is still available for later drilldown. For more
49
+ # details, see [Filtering and
50
+ # aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).
31
51
  # @!attribute [rw] alignment_period
32
52
  # @return [::Google::Protobuf::Duration]
33
- # The alignment period for per-[time series][TimeSeries]
34
- # alignment. If present, `alignmentPeriod` must be at least 60
35
- # seconds. After per-time series alignment, each time series will
36
- # contain data points only on the period boundaries. If
37
- # `perSeriesAligner` is not specified or equals `ALIGN_NONE`, then
38
- # this field is ignored. If `perSeriesAligner` is specified and
39
- # does not equal `ALIGN_NONE`, then this field must be defined;
40
- # otherwise an error is returned.
53
+ # The `alignment_period` specifies a time interval, in seconds, that is used
54
+ # to divide the data in all the
55
+ # [time series][google.monitoring.v3.TimeSeries] into consistent blocks of
56
+ # time. This will be done before the per-series aligner can be applied to
57
+ # the data.
58
+ #
59
+ # The value must be at least 60 seconds. If a per-series aligner other than
60
+ # `ALIGN_NONE` is specified, this field is required or an error is returned.
61
+ # If no per-series aligner is specified, or the aligner `ALIGN_NONE` is
62
+ # specified, then this field is ignored.
41
63
  # @!attribute [rw] per_series_aligner
42
64
  # @return [::Google::Cloud::Monitoring::Dashboard::V1::Aggregation::Aligner]
43
- # The approach to be used to align individual time series. Not all
44
- # alignment functions may be applied to all time series, depending
45
- # on the metric type and value type of the original time
46
- # series. Alignment may change the metric type or the value type of
65
+ # An `Aligner` describes how to bring the data points in a single
66
+ # time series into temporal alignment. Except for `ALIGN_NONE`, all
67
+ # alignments cause all the data points in an `alignment_period` to be
68
+ # mathematically grouped together, resulting in a single data point for
69
+ # each `alignment_period` with end timestamp at the end of the period.
70
+ #
71
+ # Not all alignment operations may be applied to all time series. The valid
72
+ # choices depend on the `metric_kind` and `value_type` of the original time
73
+ # series. Alignment can change the `metric_kind` or the `value_type` of
47
74
  # the time series.
48
75
  #
49
76
  # Time series data must be aligned in order to perform cross-time
50
- # series reduction. If `crossSeriesReducer` is specified, then
51
- # `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
52
- # and `alignmentPeriod` must be specified; otherwise, an error is
77
+ # series reduction. If `cross_series_reducer` is specified, then
78
+ # `per_series_aligner` must be specified and not equal to `ALIGN_NONE`
79
+ # and `alignment_period` must be specified; otherwise, an error is
53
80
  # returned.
54
81
  # @!attribute [rw] cross_series_reducer
55
82
  # @return [::Google::Cloud::Monitoring::Dashboard::V1::Aggregation::Reducer]
56
- # The approach to be used to combine time series. Not all reducer
57
- # functions may be applied to all time series, depending on the
58
- # metric type and the value type of the original time
59
- # series. Reduction may change the metric type of value type of the
60
- # time series.
83
+ # The reduction operation to be used to combine time series into a single
84
+ # time series, where the value of each data point in the resulting series is
85
+ # a function of all the already aligned values in the input time series.
61
86
  #
62
- # Time series data must be aligned in order to perform cross-time
63
- # series reduction. If `crossSeriesReducer` is specified, then
64
- # `perSeriesAligner` must be specified and not equal `ALIGN_NONE`
65
- # and `alignmentPeriod` must be specified; otherwise, an error is
66
- # returned.
87
+ # Not all reducer operations can be applied to all time series. The valid
88
+ # choices depend on the `metric_kind` and the `value_type` of the original
89
+ # time series. Reduction can yield a time series with a different
90
+ # `metric_kind` or `value_type` than the input time series.
91
+ #
92
+ # Time series data must first be aligned (see `per_series_aligner`) in order
93
+ # to perform cross-time series reduction. If `cross_series_reducer` is
94
+ # specified, then `per_series_aligner` must be specified, and must not be
95
+ # `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an
96
+ # error is returned.
67
97
  # @!attribute [rw] group_by_fields
68
98
  # @return [::Array<::String>]
69
- # The set of fields to preserve when `crossSeriesReducer` is
70
- # specified. The `groupByFields` determine how the time series are
99
+ # The set of fields to preserve when `cross_series_reducer` is
100
+ # specified. The `group_by_fields` determine how the time series are
71
101
  # partitioned into subsets prior to applying the aggregation
72
- # function. Each subset contains time series that have the same
102
+ # operation. Each subset contains time series that have the same
73
103
  # value for each of the grouping fields. Each individual time
74
104
  # series is a member of exactly one subset. The
75
- # `crossSeriesReducer` is applied to each subset of time series.
105
+ # `cross_series_reducer` is applied to each subset of time series.
76
106
  # It is not possible to reduce across different resource types, so
77
107
  # this field implicitly contains `resource.type`. Fields not
78
- # specified in `groupByFields` are aggregated away. If
79
- # `groupByFields` is not specified and all the time series have
108
+ # specified in `group_by_fields` are aggregated away. If
109
+ # `group_by_fields` is not specified and all the time series have
80
110
  # the same resource type, then the time series are aggregated into
81
- # a single output time series. If `crossSeriesReducer` is not
111
+ # a single output time series. If `cross_series_reducer` is not
82
112
  # defined, this field is ignored.
83
113
  class Aggregation
84
114
  include ::Google::Protobuf::MessageExts
85
115
  extend ::Google::Protobuf::MessageExts::ClassMethods
86
116
 
87
- # The Aligner describes how to bring the data points in a single
88
- # time series into temporal alignment.
117
+ # The `Aligner` specifies the operation that will be applied to the data
118
+ # points in each alignment period in a time series. Except for
119
+ # `ALIGN_NONE`, which specifies that no operation be applied, each alignment
120
+ # operation replaces the set of data values in each alignment period with
121
+ # a single value: the result of applying the operation to the data values.
122
+ # An aligned time series has a single data value at the end of each
123
+ # `alignment_period`.
124
+ #
125
+ # An alignment operation can change the data type of the values, too. For
126
+ # example, if you apply a counting operation to boolean values, the data
127
+ # `value_type` in the original time series is `BOOLEAN`, but the `value_type`
128
+ # in the aligned result is `INT64`.
89
129
  module Aligner
90
- # No alignment. Raw data is returned. Not valid if cross-time
91
- # series reduction is requested. The value type of the result is
92
- # the same as the value type of the input.
130
+ # No alignment. Raw data is returned. Not valid if cross-series reduction
131
+ # is requested. The `value_type` of the result is the same as the
132
+ # `value_type` of the input.
93
133
  ALIGN_NONE = 0
94
134
 
95
- # Align and convert to delta metric type. This alignment is valid
96
- # for cumulative metrics and delta metrics. Aligning an existing
97
- # delta metric to a delta metric requires that the alignment
98
- # period be increased. The value type of the result is the same
99
- # as the value type of the input.
135
+ # Align and convert to
136
+ # [DELTA][google.api.MetricDescriptor.MetricKind.DELTA].
137
+ # The output is `delta = y1 - y0`.
100
138
  #
101
- # One can think of this aligner as a rate but without time units; that
102
- # is, the output is conceptually (second_point - first_point).
139
+ # This alignment is valid for
140
+ # [CUMULATIVE][google.api.MetricDescriptor.MetricKind.CUMULATIVE] and
141
+ # `DELTA` metrics. If the selected alignment period results in periods
142
+ # with no data, then the aligned value for such a period is created by
143
+ # interpolation. The `value_type` of the aligned result is the same as
144
+ # the `value_type` of the input.
103
145
  ALIGN_DELTA = 1
104
146
 
105
- # Align and convert to a rate. This alignment is valid for
106
- # cumulative metrics and delta metrics with numeric values. The output is a
107
- # gauge metric with value type
108
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
147
+ # Align and convert to a rate. The result is computed as
148
+ # `rate = (y1 - y0)/(t1 - t0)`, or "delta over time".
149
+ # Think of this aligner as providing the slope of the line that passes
150
+ # through the value at the start and at the end of the `alignment_period`.
109
151
  #
110
- # One can think of this aligner as conceptually providing the slope of
111
- # the line that passes through the value at the start and end of the
112
- # window. In other words, this is conceptually ((y1 - y0)/(t1 - t0)),
113
- # and the output unit is one that has a "/time" dimension.
152
+ # This aligner is valid for `CUMULATIVE`
153
+ # and `DELTA` metrics with numeric values. If the selected alignment
154
+ # period results in periods with no data, then the aligned value for
155
+ # such a period is created by interpolation. The output is a `GAUGE`
156
+ # metric with `value_type` `DOUBLE`.
114
157
  #
115
- # If, by rate, you are looking for percentage change, see the
116
- # `ALIGN_PERCENT_CHANGE` aligner option.
158
+ # If, by "rate", you mean "percentage change", see the
159
+ # `ALIGN_PERCENT_CHANGE` aligner instead.
117
160
  ALIGN_RATE = 2
118
161
 
119
- # Align by interpolating between adjacent points around the
120
- # period boundary. This alignment is valid for gauge
121
- # metrics with numeric values. The value type of the result is the same
122
- # as the value type of the input.
162
+ # Align by interpolating between adjacent points around the alignment
163
+ # period boundary. This aligner is valid for `GAUGE` metrics with
164
+ # numeric values. The `value_type` of the aligned result is the same as the
165
+ # `value_type` of the input.
123
166
  ALIGN_INTERPOLATE = 3
124
167
 
125
- # Align by shifting the oldest data point before the period
126
- # boundary to the boundary. This alignment is valid for gauge
127
- # metrics. The value type of the result is the same as the
128
- # value type of the input.
168
+ # Align by moving the most recent data point before the end of the
169
+ # alignment period to the boundary at the end of the alignment
170
+ # period. This aligner is valid for `GAUGE` metrics. The `value_type` of
171
+ # the aligned result is the same as the `value_type` of the input.
129
172
  ALIGN_NEXT_OLDER = 4
130
173
 
131
- # Align time series via aggregation. The resulting data point in
132
- # the alignment period is the minimum of all data points in the
133
- # period. This alignment is valid for gauge and delta metrics with numeric
134
- # values. The value type of the result is the same as the value
135
- # type of the input.
174
+ # Align the time series by returning the minimum value in each alignment
175
+ # period. This aligner is valid for `GAUGE` and `DELTA` metrics with
176
+ # numeric values. The `value_type` of the aligned result is the same as
177
+ # the `value_type` of the input.
136
178
  ALIGN_MIN = 10
137
179
 
138
- # Align time series via aggregation. The resulting data point in
139
- # the alignment period is the maximum of all data points in the
140
- # period. This alignment is valid for gauge and delta metrics with numeric
141
- # values. The value type of the result is the same as the value
142
- # type of the input.
180
+ # Align the time series by returning the maximum value in each alignment
181
+ # period. This aligner is valid for `GAUGE` and `DELTA` metrics with
182
+ # numeric values. The `value_type` of the aligned result is the same as
183
+ # the `value_type` of the input.
143
184
  ALIGN_MAX = 11
144
185
 
145
- # Align time series via aggregation. The resulting data point in
146
- # the alignment period is the average or arithmetic mean of all
147
- # data points in the period. This alignment is valid for gauge and delta
148
- # metrics with numeric values. The value type of the output is
149
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
186
+ # Align the time series by returning the mean value in each alignment
187
+ # period. This aligner is valid for `GAUGE` and `DELTA` metrics with
188
+ # numeric values. The `value_type` of the aligned result is `DOUBLE`.
150
189
  ALIGN_MEAN = 12
151
190
 
152
- # Align time series via aggregation. The resulting data point in
153
- # the alignment period is the count of all data points in the
154
- # period. This alignment is valid for gauge and delta metrics with numeric
155
- # or Boolean values. The value type of the output is
156
- # [INT64][google.api.MetricDescriptor.ValueType.INT64].
191
+ # Align the time series by returning the number of values in each alignment
192
+ # period. This aligner is valid for `GAUGE` and `DELTA` metrics with
193
+ # numeric or Boolean values. The `value_type` of the aligned result is
194
+ # `INT64`.
157
195
  ALIGN_COUNT = 13
158
196
 
159
- # Align time series via aggregation. The resulting data point in
160
- # the alignment period is the sum of all data points in the
161
- # period. This alignment is valid for gauge and delta metrics with numeric
162
- # and distribution values. The value type of the output is the
163
- # same as the value type of the input.
197
+ # Align the time series by returning the sum of the values in each
198
+ # alignment period. This aligner is valid for `GAUGE` and `DELTA`
199
+ # metrics with numeric and distribution values. The `value_type` of the
200
+ # aligned result is the same as the `value_type` of the input.
164
201
  ALIGN_SUM = 14
165
202
 
166
- # Align time series via aggregation. The resulting data point in
167
- # the alignment period is the standard deviation of all data
168
- # points in the period. This alignment is valid for gauge and delta metrics
169
- # with numeric values. The value type of the output is
170
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
203
+ # Align the time series by returning the standard deviation of the values
204
+ # in each alignment period. This aligner is valid for `GAUGE` and
205
+ # `DELTA` metrics with numeric values. The `value_type` of the output is
206
+ # `DOUBLE`.
171
207
  ALIGN_STDDEV = 15
172
208
 
173
- # Align time series via aggregation. The resulting data point in
174
- # the alignment period is the count of True-valued data points in the
175
- # period. This alignment is valid for gauge metrics with
176
- # Boolean values. The value type of the output is
177
- # [INT64][google.api.MetricDescriptor.ValueType.INT64].
209
+ # Align the time series by returning the number of `True` values in
210
+ # each alignment period. This aligner is valid for `GAUGE` metrics with
211
+ # Boolean values. The `value_type` of the output is `INT64`.
178
212
  ALIGN_COUNT_TRUE = 16
179
213
 
180
- # Align time series via aggregation. The resulting data point in
181
- # the alignment period is the count of False-valued data points in the
182
- # period. This alignment is valid for gauge metrics with
183
- # Boolean values. The value type of the output is
184
- # [INT64][google.api.MetricDescriptor.ValueType.INT64].
214
+ # Align the time series by returning the number of `False` values in
215
+ # each alignment period. This aligner is valid for `GAUGE` metrics with
216
+ # Boolean values. The `value_type` of the output is `INT64`.
185
217
  ALIGN_COUNT_FALSE = 24
186
218
 
187
- # Align time series via aggregation. The resulting data point in
188
- # the alignment period is the fraction of True-valued data points in the
189
- # period. This alignment is valid for gauge metrics with Boolean values.
190
- # The output value is in the range [0, 1] and has value type
191
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
219
+ # Align the time series by returning the ratio of the number of `True`
220
+ # values to the total number of values in each alignment period. This
221
+ # aligner is valid for `GAUGE` metrics with Boolean values. The output
222
+ # value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.
192
223
  ALIGN_FRACTION_TRUE = 17
193
224
 
194
- # Align time series via aggregation. The resulting data point in
195
- # the alignment period is the 99th percentile of all data
196
- # points in the period. This alignment is valid for gauge and delta metrics
197
- # with distribution values. The output is a gauge metric with value type
198
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
225
+ # Align the time series by using [percentile
226
+ # aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
227
+ # data point in each alignment period is the 99th percentile of all data
228
+ # points in the period. This aligner is valid for `GAUGE` and `DELTA`
229
+ # metrics with distribution values. The output is a `GAUGE` metric with
230
+ # `value_type` `DOUBLE`.
199
231
  ALIGN_PERCENTILE_99 = 18
200
232
 
201
- # Align time series via aggregation. The resulting data point in
202
- # the alignment period is the 95th percentile of all data
203
- # points in the period. This alignment is valid for gauge and delta metrics
204
- # with distribution values. The output is a gauge metric with value type
205
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
233
+ # Align the time series by using [percentile
234
+ # aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
235
+ # data point in each alignment period is the 95th percentile of all data
236
+ # points in the period. This aligner is valid for `GAUGE` and `DELTA`
237
+ # metrics with distribution values. The output is a `GAUGE` metric with
238
+ # `value_type` `DOUBLE`.
206
239
  ALIGN_PERCENTILE_95 = 19
207
240
 
208
- # Align time series via aggregation. The resulting data point in
209
- # the alignment period is the 50th percentile of all data
210
- # points in the period. This alignment is valid for gauge and delta metrics
211
- # with distribution values. The output is a gauge metric with value type
212
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
241
+ # Align the time series by using [percentile
242
+ # aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
243
+ # data point in each alignment period is the 50th percentile of all data
244
+ # points in the period. This aligner is valid for `GAUGE` and `DELTA`
245
+ # metrics with distribution values. The output is a `GAUGE` metric with
246
+ # `value_type` `DOUBLE`.
213
247
  ALIGN_PERCENTILE_50 = 20
214
248
 
215
- # Align time series via aggregation. The resulting data point in
216
- # the alignment period is the 5th percentile of all data
217
- # points in the period. This alignment is valid for gauge and delta metrics
218
- # with distribution values. The output is a gauge metric with value type
219
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
249
+ # Align the time series by using [percentile
250
+ # aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
251
+ # data point in each alignment period is the 5th percentile of all data
252
+ # points in the period. This aligner is valid for `GAUGE` and `DELTA`
253
+ # metrics with distribution values. The output is a `GAUGE` metric with
254
+ # `value_type` `DOUBLE`.
220
255
  ALIGN_PERCENTILE_05 = 21
221
256
 
222
- # Align and convert to a percentage change. This alignment is valid for
223
- # gauge and delta metrics with numeric values. This alignment conceptually
224
- # computes the equivalent of "((current - previous)/previous)*100"
225
- # where previous value is determined based on the alignmentPeriod.
226
- # In the event that previous is 0 the calculated value is infinity with the
227
- # exception that if both (current - previous) and previous are 0 the
228
- # calculated value is 0.
229
- # A 10 minute moving mean is computed at each point of the time window
257
+ # Align and convert to a percentage change. This aligner is valid for
258
+ # `GAUGE` and `DELTA` metrics with numeric values. This alignment returns
259
+ # `((current - previous)/previous) * 100`, where the value of `previous` is
260
+ # determined based on the `alignment_period`.
261
+ #
262
+ # If the values of `current` and `previous` are both 0, then the returned
263
+ # value is 0. If only `previous` is 0, the returned value is infinity.
264
+ #
265
+ # A 10-minute moving mean is computed at each point of the alignment period
230
266
  # prior to the above calculation to smooth the metric and prevent false
231
- # positives from very short lived spikes.
232
- # Only applicable for data that is >= 0. Any values < 0 are treated as
233
- # no data. While delta metrics are accepted by this alignment special care
234
- # should be taken that the values for the metric will always be positive.
235
- # The output is a gauge metric with value type
236
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
267
+ # positives from very short-lived spikes. The moving mean is only
268
+ # applicable for data whose values are `>= 0`. Any values `< 0` are
269
+ # treated as a missing datapoint, and are ignored. While `DELTA`
270
+ # metrics are accepted by this alignment, special care should be taken that
271
+ # the values for the metric will always be positive. The output is a
272
+ # `GAUGE` metric with `value_type` `DOUBLE`.
237
273
  ALIGN_PERCENT_CHANGE = 23
238
274
  end
239
275
 
240
- # A Reducer describes how to aggregate data points from multiple
241
- # time series into a single time series.
276
+ # A Reducer operation describes how to aggregate data points from multiple
277
+ # time series into a single time series, where the value of each data point
278
+ # in the resulting series is a function of all the already aligned values in
279
+ # the input time series.
242
280
  module Reducer
243
- # No cross-time series reduction. The output of the aligner is
281
+ # No cross-time series reduction. The output of the `Aligner` is
244
282
  # returned.
245
283
  REDUCE_NONE = 0
246
284
 
247
- # Reduce by computing the mean across time series for each
248
- # alignment period. This reducer is valid for delta and
249
- # gauge metrics with numeric or distribution values. The value type of the
250
- # output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
285
+ # Reduce by computing the mean value across time series for each
286
+ # alignment period. This reducer is valid for
287
+ # [DELTA][google.api.MetricDescriptor.MetricKind.DELTA] and
288
+ # [GAUGE][google.api.MetricDescriptor.MetricKind.GAUGE] metrics with
289
+ # numeric or distribution values. The `value_type` of the output is
290
+ # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
251
291
  REDUCE_MEAN = 1
252
292
 
253
- # Reduce by computing the minimum across time series for each
254
- # alignment period. This reducer is valid for delta and
255
- # gauge metrics with numeric values. The value type of the output
256
- # is the same as the value type of the input.
293
+ # Reduce by computing the minimum value across time series for each
294
+ # alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
295
+ # with numeric values. The `value_type` of the output is the same as the
296
+ # `value_type` of the input.
257
297
  REDUCE_MIN = 2
258
298
 
259
- # Reduce by computing the maximum across time series for each
260
- # alignment period. This reducer is valid for delta and
261
- # gauge metrics with numeric values. The value type of the output
262
- # is the same as the value type of the input.
299
+ # Reduce by computing the maximum value across time series for each
300
+ # alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
301
+ # with numeric values. The `value_type` of the output is the same as the
302
+ # `value_type` of the input.
263
303
  REDUCE_MAX = 3
264
304
 
265
305
  # Reduce by computing the sum across time series for each
266
- # alignment period. This reducer is valid for delta and
267
- # gauge metrics with numeric and distribution values. The value type of
268
- # the output is the same as the value type of the input.
306
+ # alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
307
+ # with numeric and distribution values. The `value_type` of the output is
308
+ # the same as the `value_type` of the input.
269
309
  REDUCE_SUM = 4
270
310
 
271
311
  # Reduce by computing the standard deviation across time series
272
- # for each alignment period. This reducer is valid for delta
273
- # and gauge metrics with numeric or distribution values. The value type of
274
- # the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
312
+ # for each alignment period. This reducer is valid for `DELTA` and
313
+ # `GAUGE` metrics with numeric or distribution values. The `value_type`
314
+ # of the output is `DOUBLE`.
275
315
  REDUCE_STDDEV = 5
276
316
 
277
- # Reduce by computing the count of data points across time series
278
- # for each alignment period. This reducer is valid for delta
279
- # and gauge metrics of numeric, Boolean, distribution, and string value
280
- # type. The value type of the output is
281
- # [INT64][google.api.MetricDescriptor.ValueType.INT64].
317
+ # Reduce by computing the number of data points across time series
318
+ # for each alignment period. This reducer is valid for `DELTA` and
319
+ # `GAUGE` metrics of numeric, Boolean, distribution, and string
320
+ # `value_type`. The `value_type` of the output is `INT64`.
282
321
  REDUCE_COUNT = 6
283
322
 
284
- # Reduce by computing the count of True-valued data points across time
285
- # series for each alignment period. This reducer is valid for delta
286
- # and gauge metrics of Boolean value type. The value type of
287
- # the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
323
+ # Reduce by computing the number of `True`-valued data points across time
324
+ # series for each alignment period. This reducer is valid for `DELTA` and
325
+ # `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output
326
+ # is `INT64`.
288
327
  REDUCE_COUNT_TRUE = 7
289
328
 
290
- # Reduce by computing the count of False-valued data points across time
291
- # series for each alignment period. This reducer is valid for delta
292
- # and gauge metrics of Boolean value type. The value type of
293
- # the output is [INT64][google.api.MetricDescriptor.ValueType.INT64].
329
+ # Reduce by computing the number of `False`-valued data points across time
330
+ # series for each alignment period. This reducer is valid for `DELTA` and
331
+ # `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output
332
+ # is `INT64`.
294
333
  REDUCE_COUNT_FALSE = 15
295
334
 
296
- # Reduce by computing the fraction of True-valued data points across time
297
- # series for each alignment period. This reducer is valid for delta
298
- # and gauge metrics of Boolean value type. The output value is in the
299
- # range [0, 1] and has value type
300
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
335
+ # Reduce by computing the ratio of the number of `True`-valued data points
336
+ # to the total number of data points for each alignment period. This
337
+ # reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`.
338
+ # The output value is in the range [0.0, 1.0] and has `value_type`
339
+ # `DOUBLE`.
301
340
  REDUCE_FRACTION_TRUE = 8
302
341
 
303
- # Reduce by computing 99th percentile of data points across time series
304
- # for each alignment period. This reducer is valid for gauge and delta
305
- # metrics of numeric and distribution type. The value of the output is
306
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
342
+ # Reduce by computing the [99th
343
+ # percentile](https://en.wikipedia.org/wiki/Percentile) of data points
344
+ # across time series for each alignment period. This reducer is valid for
345
+ # `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
346
+ # of the output is `DOUBLE`.
307
347
  REDUCE_PERCENTILE_99 = 9
308
348
 
309
- # Reduce by computing 95th percentile of data points across time series
310
- # for each alignment period. This reducer is valid for gauge and delta
311
- # metrics of numeric and distribution type. The value of the output is
312
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
349
+ # Reduce by computing the [95th
350
+ # percentile](https://en.wikipedia.org/wiki/Percentile) of data points
351
+ # across time series for each alignment period. This reducer is valid for
352
+ # `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
353
+ # of the output is `DOUBLE`.
313
354
  REDUCE_PERCENTILE_95 = 10
314
355
 
315
- # Reduce by computing 50th percentile of data points across time series
316
- # for each alignment period. This reducer is valid for gauge and delta
317
- # metrics of numeric and distribution type. The value of the output is
318
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
356
+ # Reduce by computing the [50th
357
+ # percentile](https://en.wikipedia.org/wiki/Percentile) of data points
358
+ # across time series for each alignment period. This reducer is valid for
359
+ # `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
360
+ # of the output is `DOUBLE`.
319
361
  REDUCE_PERCENTILE_50 = 11
320
362
 
321
- # Reduce by computing 5th percentile of data points across time series
322
- # for each alignment period. This reducer is valid for gauge and delta
323
- # metrics of numeric and distribution type. The value of the output is
324
- # [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]
363
+ # Reduce by computing the [5th
364
+ # percentile](https://en.wikipedia.org/wiki/Percentile) of data points
365
+ # across time series for each alignment period. This reducer is valid for
366
+ # `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
367
+ # of the output is `DOUBLE`.
325
368
  REDUCE_PERCENTILE_05 = 12
326
369
  end
327
370
  end
328
371
 
329
372
  # Describes a ranking-based time series filter. Each input time series is
330
- # ranked with an aligner. The filter lets through up to `num_time_series` time
331
- # series, selecting them based on the relative ranking.
373
+ # ranked with an aligner. The filter will allow up to `num_time_series` time
374
+ # series to pass through it, selecting them based on the relative ranking.
375
+ #
376
+ # For example, if `ranking_method` is `METHOD_MEAN`,`direction` is `BOTTOM`,
377
+ # and `num_time_series` is 3, then the 3 times series with the lowest mean
378
+ # values will pass through the filter.
332
379
  # @!attribute [rw] ranking_method
333
380
  # @return [::Google::Cloud::Monitoring::Dashboard::V1::PickTimeSeriesFilter::Method]
334
- # `rankingMethod` is applied to each time series independently to produce the
335
- # value which will be used to compare the time series to other time series.
381
+ # `ranking_method` is applied to each time series independently to produce
382
+ # the value which will be used to compare the time series to other time
383
+ # series.
336
384
  # @!attribute [rw] num_time_series
337
385
  # @return [::Integer]
338
- # How many time series to return.
386
+ # How many time series to allow to pass through the filter.
339
387
  # @!attribute [rw] direction
340
388
  # @return [::Google::Cloud::Monitoring::Dashboard::V1::PickTimeSeriesFilter::Direction]
341
389
  # How to use the ranking to select time series that pass through the filter.
@@ -343,9 +391,10 @@ module Google
343
391
  include ::Google::Protobuf::MessageExts
344
392
  extend ::Google::Protobuf::MessageExts::ClassMethods
345
393
 
346
- # The value reducers that can be applied to a PickTimeSeriesFilter.
394
+ # The value reducers that can be applied to a `PickTimeSeriesFilter`.
347
395
  module Method
348
- # Not allowed in well-formed requests.
396
+ # Not allowed. You must specify a different `Method` if you specify a
397
+ # `PickTimeSeriesFilter`.
349
398
  METHOD_UNSPECIFIED = 0
350
399
 
351
400
  # Select the mean of all values.
@@ -366,19 +415,21 @@ module Google
366
415
 
367
416
  # Describes the ranking directions.
368
417
  module Direction
369
- # Not allowed in well-formed requests.
418
+ # Not allowed. You must specify a different `Direction` if you specify a
419
+ # `PickTimeSeriesFilter`.
370
420
  DIRECTION_UNSPECIFIED = 0
371
421
 
372
- # Pass the highest ranking inputs.
422
+ # Pass the highest `num_time_series` ranking inputs.
373
423
  TOP = 1
374
424
 
375
- # Pass the lowest ranking inputs.
425
+ # Pass the lowest `num_time_series` ranking inputs.
376
426
  BOTTOM = 2
377
427
  end
378
428
  end
379
429
 
380
430
  # A filter that ranks streams based on their statistical relation to other
381
431
  # streams in a request.
432
+ # Note: This field is deprecated and completely ignored by the API.
382
433
  # @!attribute [rw] ranking_method
383
434
  # @return [::Google::Cloud::Monitoring::Dashboard::V1::StatisticalTimeSeriesFilter::Method]
384
435
  # `rankingMethod` is applied to a set of time series, and then the produced