google-cloud-monitoring 0.33.1 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -1
  3. data/lib/google/cloud/monitoring.rb +63 -1
  4. data/lib/google/cloud/monitoring/dashboard.rb +147 -0
  5. data/lib/google/cloud/monitoring/dashboard/v1.rb +148 -0
  6. data/lib/google/cloud/monitoring/dashboard/v1/credentials.rb +46 -0
  7. data/lib/google/cloud/monitoring/dashboard/v1/dashboards_service_client.rb +454 -0
  8. data/lib/google/cloud/monitoring/dashboard/v1/dashboards_service_client_config.json +51 -0
  9. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/common.rb +394 -0
  10. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/dashboard.rb +53 -0
  11. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/dashboards_service.rb +82 -0
  12. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/layouts.rb +71 -0
  13. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/metrics.rb +151 -0
  14. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/scorecard.rb +102 -0
  15. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/text.rb +43 -0
  16. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/widget.rb +41 -0
  17. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/monitoring/dashboard/v1/xychart.rb +141 -0
  18. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/protobuf/duration.rb +91 -0
  19. data/lib/google/cloud/monitoring/dashboard/v1/doc/google/protobuf/empty.rb +29 -0
  20. data/lib/google/cloud/monitoring/v3.rb +72 -1
  21. data/lib/google/cloud/monitoring/v3/alert_policy_service_client_config.json +5 -5
  22. data/lib/google/cloud/monitoring/v3/doc/google/api/metric.rb +29 -45
  23. data/lib/google/cloud/monitoring/v3/doc/google/monitoring/v3/alert.rb +6 -8
  24. data/lib/google/cloud/monitoring/v3/doc/google/monitoring/v3/metric.rb +8 -8
  25. data/lib/google/cloud/monitoring/v3/doc/google/monitoring/v3/metric_service.rb +6 -4
  26. data/lib/google/cloud/monitoring/v3/doc/google/monitoring/v3/service.rb +341 -0
  27. data/lib/google/cloud/monitoring/v3/doc/google/monitoring/v3/service_service.rb +187 -0
  28. data/lib/google/cloud/monitoring/v3/doc/google/monitoring/v3/uptime.rb +16 -12
  29. data/lib/google/cloud/monitoring/v3/group_service_client_config.json +6 -6
  30. data/lib/google/cloud/monitoring/v3/metric_service_client.rb +6 -4
  31. data/lib/google/cloud/monitoring/v3/metric_service_client_config.json +7 -7
  32. data/lib/google/cloud/monitoring/v3/notification_channel_service_client_config.json +10 -10
  33. data/lib/google/cloud/monitoring/v3/service_monitoring_service_client.rb +775 -0
  34. data/lib/google/cloud/monitoring/v3/service_monitoring_service_client_config.json +76 -0
  35. data/lib/google/cloud/monitoring/version.rb +1 -1
  36. data/lib/google/monitoring/dashboard/v1/common_pb.rb +95 -0
  37. data/lib/google/monitoring/dashboard/v1/dashboard_pb.rb +29 -0
  38. data/lib/google/monitoring/dashboard/v1/dashboards_service_pb.rb +51 -0
  39. data/lib/google/monitoring/dashboard/v1/dashboards_service_services_pb.rb +76 -0
  40. data/lib/google/monitoring/dashboard/v1/drilldowns_pb.rb +17 -0
  41. data/lib/google/monitoring/dashboard/v1/layouts_pb.rb +41 -0
  42. data/lib/google/monitoring/dashboard/v1/metrics_pb.rb +76 -0
  43. data/lib/google/monitoring/dashboard/v1/scorecard_pb.rb +38 -0
  44. data/lib/google/monitoring/dashboard/v1/service_pb.rb +17 -0
  45. data/lib/google/monitoring/dashboard/v1/text_pb.rb +28 -0
  46. data/lib/google/monitoring/dashboard/v1/widget_pb.rb +32 -0
  47. data/lib/google/monitoring/dashboard/v1/xychart_pb.rb +66 -0
  48. data/lib/google/monitoring/v3/metric_service_pb.rb +11 -0
  49. data/lib/google/monitoring/v3/notification_pb.rb +1 -0
  50. data/lib/google/monitoring/v3/service_pb.rb +141 -0
  51. data/lib/google/monitoring/v3/service_service_pb.rb +85 -0
  52. data/lib/google/monitoring/v3/service_service_services_pb.rb +66 -0
  53. metadata +37 -2
@@ -62,8 +62,8 @@ module Google
62
62
  # conditions.
63
63
  # @!attribute [rw] combiner
64
64
  # @return [Google::Monitoring::V3::AlertPolicy::ConditionCombinerType]
65
- # How to combine the results of multiple conditions
66
- # to determine if an incident should be opened.
65
+ # How to combine the results of multiple conditions to determine if an
66
+ # incident should be opened.
67
67
  # @!attribute [rw] enabled
68
68
  # @return [Google::Protobuf::BoolValue]
69
69
  # Whether or not the policy is enabled. On write, the default interpretation
@@ -174,7 +174,7 @@ module Google
174
174
  # identifies which time series should be compared with the threshold.
175
175
  #
176
176
  # The filter is similar to the one that is specified in the
177
- # [`MetricService.ListTimeSeries`
177
+ # [`ListTimeSeries`
178
178
  # request](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that
179
179
  # call is useful to verify the time series that will be retrieved /
180
180
  # processed) and must specify the metric type and optionally may contain
@@ -189,8 +189,7 @@ module Google
189
189
  # members of a group of resrouces). Multiple aggregations
190
190
  # are applied in the order specified.
191
191
  #
192
- # This field is similar to the one in the
193
- # [`MetricService.ListTimeSeries`
192
+ # This field is similar to the one in the [`ListTimeSeries`
194
193
  # request](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It
195
194
  # is advisable to use the `ListTimeSeries` method when debugging this
196
195
  # field.
@@ -261,7 +260,7 @@ module Google
261
260
  # identifies which time series should be compared with the threshold.
262
261
  #
263
262
  # The filter is similar to the one that is specified in the
264
- # [`MetricService.ListTimeSeries`
263
+ # [`ListTimeSeries`
265
264
  # request](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that
266
265
  # call is useful to verify the time series that will be retrieved /
267
266
  # processed) and must specify the metric type and optionally may contain
@@ -276,8 +275,7 @@ module Google
276
275
  # members of a group of resrouces). Multiple aggregations
277
276
  # are applied in the order specified.
278
277
  #
279
- # This field is similar to the
280
- # one in the [`MetricService.ListTimeSeries`
278
+ # This field is similar to the one in the [`ListTimeSeries`
281
279
  # request](/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list). It
282
280
  # is advisable to use the `ListTimeSeries` method when debugging this
283
281
  # field.
@@ -20,14 +20,14 @@ module Google
20
20
  # @!attribute [rw] interval
21
21
  # @return [Google::Monitoring::V3::TimeInterval]
22
22
  # The time interval to which the data point applies. For `GAUGE` metrics,
23
- # the start time is optional, but if it is supplied, it must equal the end
24
- # time. For `DELTA` metrics, the start and end time should specify a
25
- # non-zero interval, with subsequent points specifying contiguous and
26
- # non-overlapping intervals. For `CUMULATIVE` metrics, the start and end
27
- # time should specify a non-zero interval, with subsequent points specifying
28
- # the same start time and increasing end times, until an event resets the
29
- # cumulative value to zero and sets a new start time for the following
30
- # points.
23
+ # the start time is optional, but if it is supplied, it must equal the
24
+ # end time. For `DELTA` metrics, the start
25
+ # and end time should specify a non-zero interval, with subsequent points
26
+ # specifying contiguous and non-overlapping intervals. For `CUMULATIVE`
27
+ # metrics, the start and end time should specify a non-zero interval, with
28
+ # subsequent points specifying the same start time and increasing end times,
29
+ # until an event resets the cumulative value to zero and sets a new start
30
+ # time for the following points.
31
31
  # @!attribute [rw] value
32
32
  # @return [Google::Monitoring::V3::TypedValue]
33
33
  # The value of the data point.
@@ -148,13 +148,15 @@ module Google
148
148
  # in the response.
149
149
  # @!attribute [rw] aggregation
150
150
  # @return [Google::Monitoring::V3::Aggregation]
151
- # By default, the raw time series data is returned.
152
- # Use this field to combine multiple time series for different
153
- # views of the data.
151
+ # Specifies the alignment of data points in individual time series as
152
+ # well as how to combine the retrieved time series across specified labels.
153
+ #
154
+ # By default (if no `aggregation` is explicitly specified), the raw time
155
+ # series data is returned.
154
156
  # @!attribute [rw] order_by
155
157
  # @return [String]
156
158
  # Unsupported: must be left blank. The points in each time series are
157
- # returned in reverse time order.
159
+ # currently returned in reverse time order (most recent to oldest).
158
160
  # @!attribute [rw] view
159
161
  # @return [Google::Monitoring::V3::ListTimeSeriesRequest::TimeSeriesView]
160
162
  # Specifies which information is returned about the time series.
@@ -0,0 +1,341 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Monitoring
18
+ module V3
19
+ # A `Service` is a discrete, autonomous, and network-accessible unit, designed
20
+ # to solve an individual concern
21
+ # ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In
22
+ # Stackdriver Monitoring, a `Service` acts as the root resource under which
23
+ # operational aspects of the service are accessible.
24
+ # @!attribute [rw] name
25
+ # @return [String]
26
+ # Resource name for this Service. Of the form
27
+ # `projects/{project_id}/services/{service_id}`.
28
+ # @!attribute [rw] display_name
29
+ # @return [String]
30
+ # Name used for UI elements listing this Service.
31
+ # @!attribute [rw] custom
32
+ # @return [Google::Monitoring::V3::Service::Custom]
33
+ # Custom service type.
34
+ # @!attribute [rw] app_engine
35
+ # @return [Google::Monitoring::V3::Service::AppEngine]
36
+ # Type used for App Engine services.
37
+ # @!attribute [rw] cloud_endpoints
38
+ # @return [Google::Monitoring::V3::Service::CloudEndpoints]
39
+ # Type used for Cloud Endpoints services.
40
+ # @!attribute [rw] cluster_istio
41
+ # @return [Google::Monitoring::V3::Service::ClusterIstio]
42
+ # Type used for Istio services that live in a Kubernetes cluster.
43
+ # @!attribute [rw] telemetry
44
+ # @return [Google::Monitoring::V3::Service::Telemetry]
45
+ # Configuration for how to query telemetry on a Service.
46
+ class Service
47
+ # Custom view of service telemetry. Currently a place-holder pending final
48
+ # design.
49
+ class Custom; end
50
+
51
+ # App Engine service. Learn more at https://cloud.google.com/appengine.
52
+ # @!attribute [rw] module_id
53
+ # @return [String]
54
+ # The ID of the App Engine module underlying this service. Corresponds to
55
+ # the `module_id` resource label in the `gae_app` monitored resource:
56
+ # https://cloud.google.com/monitoring/api/resources#tag_gae_app
57
+ class AppEngine; end
58
+
59
+ # Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.
60
+ # @!attribute [rw] service
61
+ # @return [String]
62
+ # The name of the Cloud Endpoints service underlying this service.
63
+ # Corresponds to the `service` resource label in the `api` monitored
64
+ # resource: https://cloud.google.com/monitoring/api/resources#tag_api
65
+ class CloudEndpoints; end
66
+
67
+ # Istio service. Learn more at http://istio.io.
68
+ # @!attribute [rw] location
69
+ # @return [String]
70
+ # The location of the Kubernetes cluster in which this Istio service is
71
+ # defined. Corresponds to the `location` resource label in `k8s_cluster`
72
+ # resources.
73
+ # @!attribute [rw] cluster_name
74
+ # @return [String]
75
+ # The name of the Kubernetes cluster in which this Istio service is
76
+ # defined. Corresponds to the `cluster_name` resource label in
77
+ # `k8s_cluster` resources.
78
+ # @!attribute [rw] service_namespace
79
+ # @return [String]
80
+ # The namespace of the Istio service underlying this service. Corresponds
81
+ # to the `destination_service_namespace` metric label in Istio metrics.
82
+ # @!attribute [rw] service_name
83
+ # @return [String]
84
+ # The name of the Istio service underlying this service. Corresponds to the
85
+ # `destination_service_name` metric label in Istio metrics.
86
+ class ClusterIstio; end
87
+
88
+ # Configuration for how to query telemetry on a Service.
89
+ # @!attribute [rw] resource_name
90
+ # @return [String]
91
+ # The full name of the resource that defines this service. Formatted as
92
+ # described in https://cloud.google.com/apis/design/resource_names.
93
+ class Telemetry; end
94
+ end
95
+
96
+ # A Service-Level Objective (SLO) describes a level of desired good service. It
97
+ # consists of a service-level indicator (SLI), a performance goal, and a period
98
+ # over which the objective is to be evaluated against that goal. The SLO can
99
+ # use SLIs defined in a number of different manners. Typical SLOs might include
100
+ # "99% of requests in each rolling week have latency below 200 milliseconds" or
101
+ # "99.5% of requests in each calendar month return successfully."
102
+ # @!attribute [rw] name
103
+ # @return [String]
104
+ # Resource name for this `ServiceLevelObjective`.
105
+ # Of the form
106
+ # `projects/{project_id}/services/{service_id}/serviceLevelObjectives/{slo_name}`.
107
+ # @!attribute [rw] display_name
108
+ # @return [String]
109
+ # Name used for UI elements listing this SLO.
110
+ # @!attribute [rw] service_level_indicator
111
+ # @return [Google::Monitoring::V3::ServiceLevelIndicator]
112
+ # The definition of good service, used to measure and calculate the quality
113
+ # of the `Service`'s performance with respect to a single aspect of service
114
+ # quality.
115
+ # @!attribute [rw] goal
116
+ # @return [Float]
117
+ # The fraction of service that must be good in order for this objective to be
118
+ # met. `0 < goal <= 0.999`.
119
+ # @!attribute [rw] rolling_period
120
+ # @return [Google::Protobuf::Duration]
121
+ # A rolling time period, semantically "in the past `<rolling_period>`".
122
+ # Must be an integer multiple of 1 day no larger than 30 days.
123
+ # @!attribute [rw] calendar_period
124
+ # @return [Google::Type::CalendarPeriod]
125
+ # A calendar period, semantically "since the start of the current
126
+ # `<calendar_period>`". At this time, only `DAY`, `WEEK`, `FORTNIGHT`, and
127
+ # `MONTH` are supported.
128
+ class ServiceLevelObjective
129
+ # `ServiceLevelObjective.View` determines what form of
130
+ # `ServiceLevelObjective` is returned from `GetServiceLevelObjective`,
131
+ # `ListServiceLevelObjectives`, and `ListServiceLevelObjectiveVersions` RPCs.
132
+ module View
133
+ # Same as FULL.
134
+ VIEW_UNSPECIFIED = 0
135
+
136
+ # Return the embedded `ServiceLevelIndicator` in the form in which it was
137
+ # defined. If it was defined using a `BasicSli`, return that `BasicSli`.
138
+ FULL = 2
139
+
140
+ # For `ServiceLevelIndicator`s using `BasicSli` articulation, instead
141
+ # return the `ServiceLevelIndicator` with its mode of computation fully
142
+ # spelled out as a `RequestBasedSli`. For `ServiceLevelIndicator`s using
143
+ # `RequestBasedSli` or `WindowsBasedSli`, return the
144
+ # `ServiceLevelIndicator` as it was provided.
145
+ EXPLICIT = 1
146
+ end
147
+ end
148
+
149
+ # A Service-Level Indicator (SLI) describes the "performance" of a service. For
150
+ # some services, the SLI is well-defined. In such cases, the SLI can be
151
+ # described easily by referencing the well-known SLI and providing the needed
152
+ # parameters. Alternatively, a "custom" SLI can be defined with a query to the
153
+ # underlying metric store. An SLI is defined to be `good_service /
154
+ # total_service` over any queried time interval. The value of performance
155
+ # always falls into the range `0 <= performance <= 1`. A custom SLI describes
156
+ # how to compute this ratio, whether this is by dividing values from a pair of
157
+ # time series, cutting a `Distribution` into good and bad counts, or counting
158
+ # time windows in which the service complies with a criterion. For separation
159
+ # of concerns, a single Service-Level Indicator measures performance for only
160
+ # one aspect of service quality, such as fraction of successful queries or
161
+ # fast-enough queries.
162
+ # @!attribute [rw] basic_sli
163
+ # @return [Google::Monitoring::V3::BasicSli]
164
+ # Basic SLI on a well-known service type.
165
+ # @!attribute [rw] request_based
166
+ # @return [Google::Monitoring::V3::RequestBasedSli]
167
+ # Request-based SLIs
168
+ # @!attribute [rw] windows_based
169
+ # @return [Google::Monitoring::V3::WindowsBasedSli]
170
+ # Windows-based SLIs
171
+ class ServiceLevelIndicator; end
172
+
173
+ # An SLI measuring performance on a well-known service type. Performance will
174
+ # be computed on the basis of pre-defined metrics. The type of the
175
+ # `service_resource` determines the metrics to use and the
176
+ # `service_resource.labels` and `metric_labels` are used to construct a
177
+ # monitoring filter to filter that metric down to just the data relevant to
178
+ # this service.
179
+ # @!attribute [rw] method
180
+ # @return [Array<String>]
181
+ # OPTIONAL: The set of RPCs to which this SLI is relevant. Telemetry from
182
+ # other methods will not be used to calculate performance for this SLI. If
183
+ # omitted, this SLI applies to all the Service's methods. For service types
184
+ # that don't support breaking down by method, setting this field will result
185
+ # in an error.
186
+ # @!attribute [rw] location
187
+ # @return [Array<String>]
188
+ # OPTIONAL: The set of locations to which this SLI is relevant. Telemetry
189
+ # from other locations will not be used to calculate performance for this
190
+ # SLI. If omitted, this SLI applies to all locations in which the Service has
191
+ # activity. For service types that don't support breaking down by location,
192
+ # setting this field will result in an error.
193
+ # @!attribute [rw] version
194
+ # @return [Array<String>]
195
+ # OPTIONAL: The set of API versions to which this SLI is relevant. Telemetry
196
+ # from other API versions will not be used to calculate performance for this
197
+ # SLI. If omitted, this SLI applies to all API versions. For service types
198
+ # that don't support breaking down by version, setting this field will result
199
+ # in an error.
200
+ # @!attribute [rw] availability
201
+ # @return [Google::Monitoring::V3::BasicSli::AvailabilityCriteria]
202
+ # Good service is defined to be the count of requests made to this service
203
+ # that return successfully.
204
+ # @!attribute [rw] latency
205
+ # @return [Google::Monitoring::V3::BasicSli::LatencyCriteria]
206
+ # Good service is defined to be the count of requests made to this service
207
+ # that are fast enough with respect to `latency.threshold`.
208
+ class BasicSli
209
+ # Future parameters for the availability SLI.
210
+ class AvailabilityCriteria; end
211
+
212
+ # Parameters for a latency threshold SLI.
213
+ # @!attribute [rw] threshold
214
+ # @return [Google::Protobuf::Duration]
215
+ # Good service is defined to be the count of requests made to this service
216
+ # that return in no more than `threshold`.
217
+ class LatencyCriteria; end
218
+ end
219
+
220
+ # Range of numerical values, inclusive of `min` and exclusive of `max`. If the
221
+ # open range "< range.max" is desired, set `range.min = -infinity`. If the open
222
+ # range ">= range.min" is desired, set `range.max = infinity`.
223
+ # @!attribute [rw] min
224
+ # @return [Float]
225
+ # Range minimum.
226
+ # @!attribute [rw] max
227
+ # @return [Float]
228
+ # Range maximum.
229
+ class Range; end
230
+
231
+ # Service Level Indicators for which atomic units of service are counted
232
+ # directly.
233
+ # @!attribute [rw] good_total_ratio
234
+ # @return [Google::Monitoring::V3::TimeSeriesRatio]
235
+ # `good_total_ratio` is used when the ratio of `good_service` to
236
+ # `total_service` is computed from two `TimeSeries`.
237
+ # @!attribute [rw] distribution_cut
238
+ # @return [Google::Monitoring::V3::DistributionCut]
239
+ # `distribution_cut` is used when `good_service` is a count of values
240
+ # aggregated in a `Distribution` that fall into a good range. The
241
+ # `total_service` is the total count of all values aggregated in the
242
+ # `Distribution`.
243
+ class RequestBasedSli; end
244
+
245
+ # A `TimeSeriesRatio` specifies two `TimeSeries` to use for computing the
246
+ # `good_service / total_service` ratio. The specified `TimeSeries` must have
247
+ # `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
248
+ # DELTA` or `MetricKind = CUMULATIVE`. The `TimeSeriesRatio` must specify
249
+ # exactly two of good, bad, and total, and the relationship `good_service +
250
+ # bad_service = total_service` will be assumed.
251
+ # @!attribute [rw] good_service_filter
252
+ # @return [String]
253
+ # A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
254
+ # specifying a `TimeSeries` quantifying good service provided. Must have
255
+ # `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
256
+ # DELTA` or `MetricKind = CUMULATIVE`.
257
+ # @!attribute [rw] bad_service_filter
258
+ # @return [String]
259
+ # A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
260
+ # specifying a `TimeSeries` quantifying bad service, either demanded service
261
+ # that was not provided or demanded service that was of inadequate quality.
262
+ # Must have `ValueType = DOUBLE` or `ValueType = INT64` and must have
263
+ # `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
264
+ # @!attribute [rw] total_service_filter
265
+ # @return [String]
266
+ # A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
267
+ # specifying a `TimeSeries` quantifying total demanded service. Must have
268
+ # `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
269
+ # DELTA` or `MetricKind = CUMULATIVE`.
270
+ class TimeSeriesRatio; end
271
+
272
+ # A `DistributionCut` defines a `TimeSeries` and thresholds used for measuring
273
+ # good service and total service. The `TimeSeries` must have `ValueType =
274
+ # DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. The
275
+ # computed `good_service` will be the count of values x in the `Distribution`
276
+ # such that `range.min <= x < range.max`.
277
+ # @!attribute [rw] distribution_filter
278
+ # @return [String]
279
+ # A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
280
+ # specifying a `TimeSeries` aggregating values. Must have `ValueType =
281
+ # DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
282
+ # @!attribute [rw] range
283
+ # @return [Google::Monitoring::V3::Range]
284
+ # Range of values considered "good." For a one-sided range, set one bound to
285
+ # an infinite value.
286
+ class DistributionCut; end
287
+
288
+ # A `WindowsBasedSli` defines `good_service` as the count of time windows for
289
+ # which the provided service was of good quality. Criteria for determining
290
+ # if service was good are embedded in the `window_criterion`.
291
+ # @!attribute [rw] good_bad_metric_filter
292
+ # @return [String]
293
+ # A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
294
+ # specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if
295
+ # any `true` values appear in the window.
296
+ # @!attribute [rw] good_total_ratio_threshold
297
+ # @return [Google::Monitoring::V3::WindowsBasedSli::PerformanceThreshold]
298
+ # A window is good if its `performance` is high enough.
299
+ # @!attribute [rw] metric_mean_in_range
300
+ # @return [Google::Monitoring::V3::WindowsBasedSli::MetricRange]
301
+ # A window is good if the metric's value is in a good range, averaged
302
+ # across returned streams.
303
+ # @!attribute [rw] metric_sum_in_range
304
+ # @return [Google::Monitoring::V3::WindowsBasedSli::MetricRange]
305
+ # A window is good if the metric's value is in a good range, summed across
306
+ # returned streams.
307
+ # @!attribute [rw] window_period
308
+ # @return [Google::Protobuf::Duration]
309
+ # Duration over which window quality is evaluated. Must be an integer
310
+ # fraction of a day and at least `60s`.
311
+ class WindowsBasedSli
312
+ # A `PerformanceThreshold` is used when each window is good when that window
313
+ # has a sufficiently high `performance`.
314
+ # @!attribute [rw] performance
315
+ # @return [Google::Monitoring::V3::RequestBasedSli]
316
+ # `RequestBasedSli` to evaluate to judge window quality.
317
+ # @!attribute [rw] basic_sli_performance
318
+ # @return [Google::Monitoring::V3::BasicSli]
319
+ # `BasicSli` to evaluate to judge window quality.
320
+ # @!attribute [rw] threshold
321
+ # @return [Float]
322
+ # If window `performance >= threshold`, the window is counted as good.
323
+ class PerformanceThreshold; end
324
+
325
+ # A `MetricRange` is used when each window is good when the value x of a
326
+ # single `TimeSeries` satisfies `range.min <= x < range.max`. The provided
327
+ # `TimeSeries` must have `ValueType = INT64` or `ValueType = DOUBLE` and
328
+ # `MetricKind = GAUGE`.
329
+ # @!attribute [rw] time_series
330
+ # @return [String]
331
+ # A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
332
+ # specifying the `TimeSeries` to use for evaluating window quality.
333
+ # @!attribute [rw] range
334
+ # @return [Google::Monitoring::V3::Range]
335
+ # Range of values considered "good." For a one-sided range, set one bound
336
+ # to an infinite value.
337
+ class MetricRange; end
338
+ end
339
+ end
340
+ end
341
+ end
@@ -0,0 +1,187 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Monitoring
18
+ module V3
19
+ # The `CreateService` request.
20
+ # @!attribute [rw] parent
21
+ # @return [String]
22
+ # Resource name of the parent workspace.
23
+ # Of the form `projects/{project_id}`.
24
+ # @!attribute [rw] service_id
25
+ # @return [String]
26
+ # Optional. The Service id to use for this Service. If omitted, an id will be
27
+ # generated instead. Must match the pattern [a-z0-9\-]+
28
+ # @!attribute [rw] service
29
+ # @return [Google::Monitoring::V3::Service]
30
+ # The `Service` to create.
31
+ class CreateServiceRequest; end
32
+
33
+ # The `GetService` request.
34
+ # @!attribute [rw] name
35
+ # @return [String]
36
+ # Resource name of the `Service`.
37
+ # Of the form `projects/{project_id}/services/{service_id}`.
38
+ class GetServiceRequest; end
39
+
40
+ # The `ListServices` request.
41
+ # @!attribute [rw] parent
42
+ # @return [String]
43
+ # Resource name of the parent `Workspace`.
44
+ # Of the form `projects/{project_id}`.
45
+ # @!attribute [rw] filter
46
+ # @return [String]
47
+ # A filter specifying what `Service`s to return. The filter currently
48
+ # supports the following fields:
49
+ #
50
+ # * `identifier_case`
51
+ # * `app_engine.module_id`
52
+ # * `cloud_endpoints.service`
53
+ # * `cluster_istio.location`
54
+ # * `cluster_istio.cluster_name`
55
+ # * `cluster_istio.service_namespace`
56
+ # * `cluster_istio.service_name`
57
+ #
58
+ # `identifier_case` refers to which option in the identifier oneof is
59
+ # populated. For example, the filter `identifier_case = "CUSTOM"` would match
60
+ # all services with a value for the `custom` field. Valid options are
61
+ # "CUSTOM", "APP_ENGINE", "CLOUD_ENDPOINTS", and "CLUSTER_ISTIO".
62
+ # @!attribute [rw] page_size
63
+ # @return [Integer]
64
+ # A non-negative number that is the maximum number of results to return.
65
+ # When 0, use default page size.
66
+ # @!attribute [rw] page_token
67
+ # @return [String]
68
+ # If this field is not empty then it must contain the `nextPageToken` value
69
+ # returned by a previous call to this method. Using this field causes the
70
+ # method to return additional results from the previous method call.
71
+ class ListServicesRequest; end
72
+
73
+ # The `ListServices` response.
74
+ # @!attribute [rw] services
75
+ # @return [Array<Google::Monitoring::V3::Service>]
76
+ # The `Service`s matching the specified filter.
77
+ # @!attribute [rw] next_page_token
78
+ # @return [String]
79
+ # If there are more results than have been returned, then this field is set
80
+ # to a non-empty value. To see the additional results,
81
+ # use that value as `pageToken` in the next call to this method.
82
+ class ListServicesResponse; end
83
+
84
+ # The `UpdateService` request.
85
+ # @!attribute [rw] service
86
+ # @return [Google::Monitoring::V3::Service]
87
+ # The `Service` to draw updates from.
88
+ # The given `name` specifies the resource to update.
89
+ # @!attribute [rw] update_mask
90
+ # @return [Google::Protobuf::FieldMask]
91
+ # A set of field paths defining which fields to use for the update.
92
+ class UpdateServiceRequest; end
93
+
94
+ # The `DeleteService` request.
95
+ # @!attribute [rw] name
96
+ # @return [String]
97
+ # Resource name of the `Service` to delete.
98
+ # Of the form `projects/{project_id}/service/{service_id}`.
99
+ class DeleteServiceRequest; end
100
+
101
+ # The `CreateServiceLevelObjective` request.
102
+ # @!attribute [rw] parent
103
+ # @return [String]
104
+ # Resource name of the parent `Service`.
105
+ # Of the form `projects/{project_id}/services/{service_id}`.
106
+ # @!attribute [rw] service_level_objective_id
107
+ # @return [String]
108
+ # Optional. The ServiceLevelObjective id to use for this
109
+ # ServiceLevelObjective. If omitted, an id will be generated instead. Must
110
+ # match the pattern [a-z0-9\-]+
111
+ # @!attribute [rw] service_level_objective
112
+ # @return [Google::Monitoring::V3::ServiceLevelObjective]
113
+ # The `ServiceLevelObjective` to create.
114
+ # The provided `name` will be respected if no `ServiceLevelObjective` exists
115
+ # with this name.
116
+ class CreateServiceLevelObjectiveRequest; end
117
+
118
+ # The `GetServiceLevelObjective` request.
119
+ # @!attribute [rw] name
120
+ # @return [String]
121
+ # Resource name of the `ServiceLevelObjective` to get.
122
+ # Of the form
123
+ # `projects/{project_id}/services/{service_id}/serviceLevelObjectives/{slo_name}`.
124
+ # @!attribute [rw] view
125
+ # @return [Google::Monitoring::V3::ServiceLevelObjective::View]
126
+ # View of the `ServiceLevelObjective` to return. If `DEFAULT`, return the
127
+ # `ServiceLevelObjective` as originally defined. If `EXPLICIT` and the
128
+ # `ServiceLevelObjective` is defined in terms of a `BasicSli`, replace the
129
+ # `BasicSli` with a `RequestBasedSli` spelling out how the SLI is computed.
130
+ class GetServiceLevelObjectiveRequest; end
131
+
132
+ # The `ListServiceLevelObjectives` request.
133
+ # @!attribute [rw] parent
134
+ # @return [String]
135
+ # Resource name of the parent `Service`.
136
+ # Of the form `projects/{project_id}/services/{service_id}`.
137
+ # @!attribute [rw] filter
138
+ # @return [String]
139
+ # A filter specifying what `ServiceLevelObjective`s to return.
140
+ # @!attribute [rw] page_size
141
+ # @return [Integer]
142
+ # A non-negative number that is the maximum number of results to return.
143
+ # When 0, use default page size.
144
+ # @!attribute [rw] page_token
145
+ # @return [String]
146
+ # If this field is not empty then it must contain the `nextPageToken` value
147
+ # returned by a previous call to this method. Using this field causes the
148
+ # method to return additional results from the previous method call.
149
+ # @!attribute [rw] view
150
+ # @return [Google::Monitoring::V3::ServiceLevelObjective::View]
151
+ # View of the `ServiceLevelObjective`s to return. If `DEFAULT`, return each
152
+ # `ServiceLevelObjective` as originally defined. If `EXPLICIT` and the
153
+ # `ServiceLevelObjective` is defined in terms of a `BasicSli`, replace the
154
+ # `BasicSli` with a `RequestBasedSli` spelling out how the SLI is computed.
155
+ class ListServiceLevelObjectivesRequest; end
156
+
157
+ # The `ListServiceLevelObjectives` response.
158
+ # @!attribute [rw] service_level_objectives
159
+ # @return [Array<Google::Monitoring::V3::ServiceLevelObjective>]
160
+ # The `ServiceLevelObjective`s matching the specified filter.
161
+ # @!attribute [rw] next_page_token
162
+ # @return [String]
163
+ # If there are more results than have been returned, then this field is set
164
+ # to a non-empty value. To see the additional results,
165
+ # use that value as `pageToken` in the next call to this method.
166
+ class ListServiceLevelObjectivesResponse; end
167
+
168
+ # The `UpdateServiceLevelObjective` request.
169
+ # @!attribute [rw] service_level_objective
170
+ # @return [Google::Monitoring::V3::ServiceLevelObjective]
171
+ # The `ServiceLevelObjective` to draw updates from.
172
+ # The given `name` specifies the resource to update.
173
+ # @!attribute [rw] update_mask
174
+ # @return [Google::Protobuf::FieldMask]
175
+ # A set of field paths defining which fields to use for the update.
176
+ class UpdateServiceLevelObjectiveRequest; end
177
+
178
+ # The `DeleteServiceLevelObjective` request.
179
+ # @!attribute [rw] name
180
+ # @return [String]
181
+ # Resource name of the `ServiceLevelObjective` to delete.
182
+ # Of the form
183
+ # `projects/{project_id}/services/{service_id}/serviceLevelObjectives/{slo_name}`.
184
+ class DeleteServiceLevelObjectiveRequest; end
185
+ end
186
+ end
187
+ end