google-cloud-monitoring 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.yardopts +2 -2
- data/README.md +32 -28
- data/lib/google-cloud-monitoring.rb +1 -3
- data/lib/google/cloud/monitoring.rb +188 -0
- data/lib/google/cloud/monitoring/credentials.rb +33 -0
- data/lib/google/cloud/monitoring/v3.rb +187 -3
- data/lib/google/cloud/monitoring/v3/doc/google/api/distribution.rb +1 -1
- data/lib/google/cloud/monitoring/v3/doc/google/api/metric.rb +11 -11
- data/lib/google/cloud/monitoring/v3/doc/google/api/monitored_resource.rb +4 -4
- data/lib/google/cloud/monitoring/v3/doc/google/monitoring/v3/common.rb +21 -21
- data/lib/google/cloud/monitoring/v3/doc/google/protobuf/duration.rb +14 -1
- data/lib/google/cloud/monitoring/v3/doc/google/protobuf/timestamp.rb +26 -1
- data/lib/google/cloud/monitoring/v3/doc/overview.rb +77 -0
- data/lib/google/cloud/monitoring/v3/group_service_client.rb +97 -85
- data/lib/google/cloud/monitoring/v3/metric_service_client.rb +119 -122
- metadata +41 -10
@@ -41,7 +41,7 @@ module Google
|
|
41
41
|
# The sum of squared deviations from the mean of the values in the
|
42
42
|
# population. For values x_i this is:
|
43
43
|
#
|
44
|
-
# Sum
|
44
|
+
# Sum[i=1..n](https://cloud.google.com(x_i - mean)^2)
|
45
45
|
#
|
46
46
|
# Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition
|
47
47
|
# describes Welford's method for accumulating this sum in one pass.
|
@@ -24,13 +24,13 @@ module Google
|
|
24
24
|
# that defines the scope of the metric type or of its data; and (2) the
|
25
25
|
# metric's URL-encoded type, which also appears in the +type+ field of this
|
26
26
|
# descriptor. For example, following is the resource name of a custom
|
27
|
-
# metric within the GCP project
|
27
|
+
# metric within the GCP project +my-project-id+:
|
28
28
|
#
|
29
|
-
# "projects/
|
29
|
+
# "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"
|
30
30
|
# @!attribute [rw] type
|
31
31
|
# @return [String]
|
32
32
|
# The metric type, including its DNS name prefix. The type is not
|
33
|
-
# URL-encoded. All user-defined metric types have the DNS name
|
33
|
+
# URL-encoded. All user-defined custom metric types have the DNS name
|
34
34
|
# +custom.googleapis.com+. Metric types should use a natural hierarchical
|
35
35
|
# grouping. For example:
|
36
36
|
#
|
@@ -56,8 +56,8 @@ module Google
|
|
56
56
|
# @return [String]
|
57
57
|
# The unit in which the metric value is reported. It is only applicable
|
58
58
|
# if the +value_type+ is +INT64+, +DOUBLE+, or +DISTRIBUTION+. The
|
59
|
-
# supported units are a subset of
|
60
|
-
# Measure
|
59
|
+
# supported units are a subset of [The Unified Code for Units of
|
60
|
+
# Measure](http://unitsofmeasure.org/ucum.html) standard:
|
61
61
|
#
|
62
62
|
# **Basic units (UNIT)**
|
63
63
|
#
|
@@ -114,10 +114,10 @@ module Google
|
|
114
114
|
# Notes:
|
115
115
|
#
|
116
116
|
# * +Annotation+ is just a comment if it follows a +UNIT+ and is
|
117
|
-
#
|
118
|
-
#
|
117
|
+
# equivalent to +1+ if it is used alone. For examples,
|
118
|
+
# +{requests}/s == 1/s+, +By{transmitted}/s == By/s+.
|
119
119
|
# * +NAME+ is a sequence of non-blank printable ASCII characters not
|
120
|
-
#
|
120
|
+
# containing '{' or '}'.
|
121
121
|
# @!attribute [rw] description
|
122
122
|
# @return [String]
|
123
123
|
# A detailed description of the metric, which can be used in documentation.
|
@@ -164,7 +164,7 @@ module Google
|
|
164
164
|
# This value type can be used only if the metric kind is +GAUGE+.
|
165
165
|
STRING = 4
|
166
166
|
|
167
|
-
# The value is a +Distribution
|
167
|
+
# The value is a {Google::Api::Distribution +Distribution+}.
|
168
168
|
DISTRIBUTION = 5
|
169
169
|
|
170
170
|
# The value is money.
|
@@ -173,10 +173,10 @@ module Google
|
|
173
173
|
end
|
174
174
|
|
175
175
|
# A specific metric, identified by specifying values for all of the
|
176
|
-
# labels of a +MetricDescriptor
|
176
|
+
# labels of a {Google::Api::MetricDescriptor +MetricDescriptor+}.
|
177
177
|
# @!attribute [rw] type
|
178
178
|
# @return [String]
|
179
|
-
# An existing metric type, see Google::Api::MetricDescriptor.
|
179
|
+
# An existing metric type, see {Google::Api::MetricDescriptor}.
|
180
180
|
# For example, +custom.googleapis.com/invoice/paid/amount+.
|
181
181
|
# @!attribute [rw] labels
|
182
182
|
# @return [Hash{String => String}]
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
module Google
|
16
16
|
module Api
|
17
|
-
# An object that describes the schema of a MonitoredResource object using a
|
17
|
+
# An object that describes the schema of a {Google::Api::MonitoredResource MonitoredResource} object using a
|
18
18
|
# type name and a set of labels. For example, the monitored resource
|
19
19
|
# descriptor for Google Compute Engine VM instances has a type of
|
20
20
|
# +"gce_instance"+ and specifies the use of the labels +"instance_id"+ and
|
@@ -56,11 +56,11 @@ module Google
|
|
56
56
|
# An object representing a resource that can be used for monitoring, logging,
|
57
57
|
# billing, or other purposes. Examples include virtual machine instances,
|
58
58
|
# databases, and storage devices such as disks. The +type+ field identifies a
|
59
|
-
# MonitoredResourceDescriptor object that describes the resource's
|
59
|
+
# {Google::Api::MonitoredResourceDescriptor MonitoredResourceDescriptor} object that describes the resource's
|
60
60
|
# schema. Information in the +labels+ field identifies the actual resource and
|
61
61
|
# its attributes according to the schema. For example, a particular Compute
|
62
62
|
# Engine VM instance could be represented by the following object, because the
|
63
|
-
# MonitoredResourceDescriptor for +"gce_instance"+ has labels
|
63
|
+
# {Google::Api::MonitoredResourceDescriptor MonitoredResourceDescriptor} for +"gce_instance"+ has labels
|
64
64
|
# +"instance_id"+ and +"zone"+:
|
65
65
|
#
|
66
66
|
# { "type": "gce_instance",
|
@@ -69,7 +69,7 @@ module Google
|
|
69
69
|
# @!attribute [rw] type
|
70
70
|
# @return [String]
|
71
71
|
# Required. The monitored resource type. This field must match
|
72
|
-
# the +type+ field of a MonitoredResourceDescriptor object. For
|
72
|
+
# the +type+ field of a {Google::Api::MonitoredResourceDescriptor MonitoredResourceDescriptor} object. For
|
73
73
|
# example, the type of a Cloud SQL database is +"cloudsql_database"+.
|
74
74
|
# @!attribute [rw] labels
|
75
75
|
# @return [Hash{String => String}]
|
@@ -52,10 +52,10 @@ module Google
|
|
52
52
|
# the data. Aggregation consists of an alignment step on individual time
|
53
53
|
# series (+per_series_aligner+) followed by an optional reduction of the data
|
54
54
|
# across different time series (+cross_series_reducer+). For more details, see
|
55
|
-
#
|
55
|
+
# [Aggregation](https://cloud.google.com/monitoring/api/learn_more#aggregation).
|
56
56
|
# @!attribute [rw] alignment_period
|
57
57
|
# @return [Google::Protobuf::Duration]
|
58
|
-
# The alignment period for per-
|
58
|
+
# The alignment period for per-{Google::Monitoring::V3::TimeSeries time series}
|
59
59
|
# alignment. If present, +alignmentPeriod+ must be at least 60
|
60
60
|
# seconds. After per-time series alignment, each time series will
|
61
61
|
# contain data points only on the period boundaries. If
|
@@ -124,7 +124,7 @@ module Google
|
|
124
124
|
# Align and convert to a rate. This alignment is valid for
|
125
125
|
# cumulative metrics and delta metrics with numeric values. The output is a
|
126
126
|
# gauge metric with value type
|
127
|
-
# DOUBLE.
|
127
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
128
128
|
ALIGN_RATE = 2
|
129
129
|
|
130
130
|
# Align by interpolating between adjacent points around the
|
@@ -157,14 +157,14 @@ module Google
|
|
157
157
|
# the alignment period is the average or arithmetic mean of all
|
158
158
|
# data points in the period. This alignment is valid for gauge and delta
|
159
159
|
# metrics with numeric values. The value type of the output is
|
160
|
-
# DOUBLE.
|
160
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
161
161
|
ALIGN_MEAN = 12
|
162
162
|
|
163
163
|
# Align time series via aggregation. The resulting data point in
|
164
164
|
# the alignment period is the count of all data points in the
|
165
165
|
# period. This alignment is valid for gauge and delta metrics with numeric
|
166
166
|
# or Boolean values. The value type of the output is
|
167
|
-
# INT64.
|
167
|
+
# {Google::Api::MetricDescriptor::ValueType::INT64 INT64}.
|
168
168
|
ALIGN_COUNT = 13
|
169
169
|
|
170
170
|
# Align time series via aggregation. The resulting data point in
|
@@ -178,49 +178,49 @@ module Google
|
|
178
178
|
# the alignment period is the standard deviation of all data
|
179
179
|
# points in the period. This alignment is valid for gauge and delta metrics
|
180
180
|
# with numeric values. The value type of the output is
|
181
|
-
# DOUBLE.
|
181
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
182
182
|
ALIGN_STDDEV = 15
|
183
183
|
|
184
184
|
# Align time series via aggregation. The resulting data point in
|
185
185
|
# the alignment period is the count of True-valued data points in the
|
186
186
|
# period. This alignment is valid for gauge metrics with
|
187
187
|
# Boolean values. The value type of the output is
|
188
|
-
# INT64.
|
188
|
+
# {Google::Api::MetricDescriptor::ValueType::INT64 INT64}.
|
189
189
|
ALIGN_COUNT_TRUE = 16
|
190
190
|
|
191
191
|
# Align time series via aggregation. The resulting data point in
|
192
192
|
# the alignment period is the fraction of True-valued data points in the
|
193
193
|
# period. This alignment is valid for gauge metrics with Boolean values.
|
194
194
|
# The output value is in the range [0, 1] and has value type
|
195
|
-
# DOUBLE.
|
195
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
196
196
|
ALIGN_FRACTION_TRUE = 17
|
197
197
|
|
198
198
|
# Align time series via aggregation. The resulting data point in
|
199
199
|
# the alignment period is the 99th percentile of all data
|
200
200
|
# points in the period. This alignment is valid for gauge and delta metrics
|
201
201
|
# with distribution values. The output is a gauge metric with value type
|
202
|
-
# DOUBLE.
|
202
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
203
203
|
ALIGN_PERCENTILE_99 = 18
|
204
204
|
|
205
205
|
# Align time series via aggregation. The resulting data point in
|
206
206
|
# the alignment period is the 95th percentile of all data
|
207
207
|
# points in the period. This alignment is valid for gauge and delta metrics
|
208
208
|
# with distribution values. The output is a gauge metric with value type
|
209
|
-
# DOUBLE.
|
209
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
210
210
|
ALIGN_PERCENTILE_95 = 19
|
211
211
|
|
212
212
|
# Align time series via aggregation. The resulting data point in
|
213
213
|
# the alignment period is the 50th percentile of all data
|
214
214
|
# points in the period. This alignment is valid for gauge and delta metrics
|
215
215
|
# with distribution values. The output is a gauge metric with value type
|
216
|
-
# DOUBLE.
|
216
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
217
217
|
ALIGN_PERCENTILE_50 = 20
|
218
218
|
|
219
219
|
# Align time series via aggregation. The resulting data point in
|
220
220
|
# the alignment period is the 5th percentile of all data
|
221
221
|
# points in the period. This alignment is valid for gauge and delta metrics
|
222
222
|
# with distribution values. The output is a gauge metric with value type
|
223
|
-
# DOUBLE.
|
223
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
224
224
|
ALIGN_PERCENTILE_05 = 21
|
225
225
|
end
|
226
226
|
|
@@ -234,7 +234,7 @@ module Google
|
|
234
234
|
# Reduce by computing the mean across time series for each
|
235
235
|
# alignment period. This reducer is valid for delta and
|
236
236
|
# gauge metrics with numeric or distribution values. The value type of the
|
237
|
-
# output is DOUBLE.
|
237
|
+
# output is {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
238
238
|
REDUCE_MEAN = 1
|
239
239
|
|
240
240
|
# Reduce by computing the minimum across time series for each
|
@@ -258,51 +258,51 @@ module Google
|
|
258
258
|
# Reduce by computing the standard deviation across time series
|
259
259
|
# for each alignment period. This reducer is valid for delta
|
260
260
|
# and gauge metrics with numeric or distribution values. The value type of
|
261
|
-
# the output is DOUBLE.
|
261
|
+
# the output is {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
262
262
|
REDUCE_STDDEV = 5
|
263
263
|
|
264
264
|
# Reduce by computing the count of data points across time series
|
265
265
|
# for each alignment period. This reducer is valid for delta
|
266
266
|
# and gauge metrics of numeric, Boolean, distribution, and string value
|
267
267
|
# type. The value type of the output is
|
268
|
-
# INT64.
|
268
|
+
# {Google::Api::MetricDescriptor::ValueType::INT64 INT64}.
|
269
269
|
REDUCE_COUNT = 6
|
270
270
|
|
271
271
|
# Reduce by computing the count of True-valued data points across time
|
272
272
|
# series for each alignment period. This reducer is valid for delta
|
273
273
|
# and gauge metrics of Boolean value type. The value type of
|
274
|
-
# the output is INT64.
|
274
|
+
# the output is {Google::Api::MetricDescriptor::ValueType::INT64 INT64}.
|
275
275
|
REDUCE_COUNT_TRUE = 7
|
276
276
|
|
277
277
|
# Reduce by computing the fraction of True-valued data points across time
|
278
278
|
# series for each alignment period. This reducer is valid for delta
|
279
279
|
# and gauge metrics of Boolean value type. The output value is in the
|
280
280
|
# range [0, 1] and has value type
|
281
|
-
# DOUBLE.
|
281
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}.
|
282
282
|
REDUCE_FRACTION_TRUE = 8
|
283
283
|
|
284
284
|
# Reduce by computing 99th percentile of data points across time series
|
285
285
|
# for each alignment period. This reducer is valid for gauge and delta
|
286
286
|
# metrics of numeric and distribution type. The value of the output is
|
287
|
-
# DOUBLE
|
287
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}
|
288
288
|
REDUCE_PERCENTILE_99 = 9
|
289
289
|
|
290
290
|
# Reduce by computing 95th percentile of data points across time series
|
291
291
|
# for each alignment period. This reducer is valid for gauge and delta
|
292
292
|
# metrics of numeric and distribution type. The value of the output is
|
293
|
-
# DOUBLE
|
293
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}
|
294
294
|
REDUCE_PERCENTILE_95 = 10
|
295
295
|
|
296
296
|
# Reduce by computing 50th percentile of data points across time series
|
297
297
|
# for each alignment period. This reducer is valid for gauge and delta
|
298
298
|
# metrics of numeric and distribution type. The value of the output is
|
299
|
-
# DOUBLE
|
299
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}
|
300
300
|
REDUCE_PERCENTILE_50 = 11
|
301
301
|
|
302
302
|
# Reduce by computing 5th percentile of data points across time series
|
303
303
|
# for each alignment period. This reducer is valid for gauge and delta
|
304
304
|
# metrics of numeric and distribution type. The value of the output is
|
305
|
-
# DOUBLE
|
305
|
+
# {Google::Api::MetricDescriptor::ValueType::DOUBLE DOUBLE}
|
306
306
|
REDUCE_PERCENTILE_05 = 12
|
307
307
|
end
|
308
308
|
end
|
@@ -21,6 +21,8 @@ module Google
|
|
21
21
|
# two Timestamp values is a Duration and it can be added or subtracted
|
22
22
|
# from a Timestamp. Range is approximately +-10,000 years.
|
23
23
|
#
|
24
|
+
# = Examples
|
25
|
+
#
|
24
26
|
# Example 1: Compute Duration from two Timestamps in pseudo code.
|
25
27
|
#
|
26
28
|
# Timestamp start = ...;
|
@@ -60,10 +62,21 @@ module Google
|
|
60
62
|
# td = datetime.timedelta(days=3, minutes=10)
|
61
63
|
# duration = Duration()
|
62
64
|
# duration.FromTimedelta(td)
|
65
|
+
#
|
66
|
+
# = JSON Mapping
|
67
|
+
#
|
68
|
+
# In JSON format, the Duration type is encoded as a string rather than an
|
69
|
+
# object, where the string ends in the suffix "s" (indicating seconds) and
|
70
|
+
# is preceded by the number of seconds, with nanoseconds expressed as
|
71
|
+
# fractional seconds. For example, 3 seconds with 0 nanoseconds should be
|
72
|
+
# encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
|
73
|
+
# be expressed in JSON format as "3.000000001s", and 3 seconds and 1
|
74
|
+
# microsecond should be expressed in JSON format as "3.000001s".
|
63
75
|
# @!attribute [rw] seconds
|
64
76
|
# @return [Integer]
|
65
77
|
# Signed seconds of the span of time. Must be from -315,576,000,000
|
66
|
-
# to +315,576,000,000 inclusive.
|
78
|
+
# to +315,576,000,000 inclusive. Note: these bounds are computed from:
|
79
|
+
# 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
|
67
80
|
# @!attribute [rw] nanos
|
68
81
|
# @return [Integer]
|
69
82
|
# Signed fractions of a second at nanosecond resolution of the span
|
@@ -24,7 +24,9 @@ module Google
|
|
24
24
|
# 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z.
|
25
25
|
# By restricting to that range, we ensure that we can convert to
|
26
26
|
# and from RFC 3339 date strings.
|
27
|
-
# See
|
27
|
+
# See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).
|
28
|
+
#
|
29
|
+
# = Examples
|
28
30
|
#
|
29
31
|
# Example 1: Compute Timestamp from POSIX +time()+.
|
30
32
|
#
|
@@ -65,6 +67,29 @@ module Google
|
|
65
67
|
#
|
66
68
|
# timestamp = Timestamp()
|
67
69
|
# timestamp.GetCurrentTime()
|
70
|
+
#
|
71
|
+
# = JSON Mapping
|
72
|
+
#
|
73
|
+
# In JSON format, the Timestamp type is encoded as a string in the
|
74
|
+
# [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
|
75
|
+
# format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
|
76
|
+
# where {year} is always expressed using four digits while {month}, {day},
|
77
|
+
# {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
|
78
|
+
# seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
|
79
|
+
# are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
|
80
|
+
# is required, though only UTC (as indicated by "Z") is presently supported.
|
81
|
+
#
|
82
|
+
# For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
|
83
|
+
# 01:30 UTC on January 15, 2017.
|
84
|
+
#
|
85
|
+
# In JavaScript, one can convert a Date object to this format using the
|
86
|
+
# standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString]
|
87
|
+
# method. In Python, a standard +datetime.datetime+ object can be converted
|
88
|
+
# to this format using [+strftime+](https://docs.python.org/2/library/time.html#time.strftime)
|
89
|
+
# with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
|
90
|
+
# can use the Joda Time's [+ISODateTimeFormat.dateTime()+](
|
91
|
+
# http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime())
|
92
|
+
# to obtain a formatter capable of generating timestamps in this format.
|
68
93
|
# @!attribute [rw] seconds
|
69
94
|
# @return [Integer]
|
70
95
|
# Represents seconds of UTC time since Unix epoch
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# Copyright 2017, Google Inc. All rights reserved.
|
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
|
+
# http://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
|
+
module Google
|
16
|
+
module Cloud
|
17
|
+
# rubocop:disable LineLength
|
18
|
+
|
19
|
+
##
|
20
|
+
# # Ruby Client for Stackdriver Monitoring API ([Alpha](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
|
21
|
+
#
|
22
|
+
# [Stackdriver Monitoring API][Product Documentation]:
|
23
|
+
# Manages your Stackdriver Monitoring data and configurations. Most projects must
|
24
|
+
# be associated with a Stackdriver account, with a few exceptions as noted on the
|
25
|
+
# individual method pages.
|
26
|
+
# - [Product Documentation][]
|
27
|
+
#
|
28
|
+
# ## Quick Start
|
29
|
+
# In order to use this library, you first need to go through the following
|
30
|
+
# steps:
|
31
|
+
#
|
32
|
+
# 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
|
33
|
+
# 2. [Enable the Stackdriver Monitoring API.](https://console.cloud.google.com/apis/api/monitoring)
|
34
|
+
# 3. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
|
35
|
+
#
|
36
|
+
# ### Installation
|
37
|
+
# ```
|
38
|
+
# $ gem install google-cloud-monitoring
|
39
|
+
# ```
|
40
|
+
#
|
41
|
+
# ### Preview
|
42
|
+
# #### MetricServiceClient
|
43
|
+
# ```rb
|
44
|
+
# require "google/cloud/monitoring"
|
45
|
+
#
|
46
|
+
# metric_service_client = Google::Cloud::Monitoring::Metric.new
|
47
|
+
# formatted_name = Google::Cloud::Monitoring::V3::MetricServiceClient.project_path(project_id)
|
48
|
+
#
|
49
|
+
# # Iterate over all results.
|
50
|
+
# metric_service_client.list_monitored_resource_descriptors(formatted_name).each do |element|
|
51
|
+
# # Process element.
|
52
|
+
# end
|
53
|
+
#
|
54
|
+
# # Or iterate over results one page at a time.
|
55
|
+
# metric_service_client.list_monitored_resource_descriptors(formatted_name).each_page do |page|
|
56
|
+
# # Process each page at a time.
|
57
|
+
# page.each do |element|
|
58
|
+
# # Process element.
|
59
|
+
# end
|
60
|
+
# end
|
61
|
+
# ```
|
62
|
+
#
|
63
|
+
# ### Next Steps
|
64
|
+
# - Read the [Stackdriver Monitoring API Product documentation][Product Documentation]
|
65
|
+
# to learn more about the product and see How-to Guides.
|
66
|
+
# - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
|
67
|
+
# to see the full list of Cloud APIs that we cover.
|
68
|
+
#
|
69
|
+
# [Product Documentation]: https://cloud.google.com/monitoring
|
70
|
+
#
|
71
|
+
#
|
72
|
+
module Monitoring
|
73
|
+
module V3
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -28,13 +28,14 @@ require "pathname"
|
|
28
28
|
require "google/gax"
|
29
29
|
|
30
30
|
require "google/monitoring/v3/group_service_pb"
|
31
|
+
require "google/cloud/monitoring/credentials"
|
31
32
|
|
32
33
|
module Google
|
33
34
|
module Cloud
|
34
35
|
module Monitoring
|
35
36
|
module V3
|
36
37
|
# The Group API lets you inspect and manage your
|
37
|
-
#
|
38
|
+
# [groups](https://cloud.google.comgoogle.monitoring.v3.Group).
|
38
39
|
#
|
39
40
|
# A group is a named filter that is used to identify
|
40
41
|
# a collection of monitored resources. Groups are typically used to
|
@@ -113,36 +114,24 @@ module Google
|
|
113
114
|
)
|
114
115
|
end
|
115
116
|
|
116
|
-
#
|
117
|
-
#
|
118
|
-
#
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
#
|
124
|
-
#
|
125
|
-
#
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
#
|
131
|
-
#
|
132
|
-
#
|
133
|
-
|
134
|
-
GROUP_PATH_TEMPLATE.match(group_name)["group"]
|
135
|
-
end
|
136
|
-
|
137
|
-
# @param service_path [String]
|
138
|
-
# The domain name of the API remote host.
|
139
|
-
# @param port [Integer]
|
140
|
-
# The port on which to connect to the remote host.
|
141
|
-
# @param channel [Channel]
|
142
|
-
# A Channel object through which to make calls.
|
143
|
-
# @param chan_creds [Grpc::ChannelCredentials]
|
144
|
-
# A ChannelCredentials for the setting up the RPC client.
|
145
|
-
# @param client_config[Hash]
|
117
|
+
# @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
|
118
|
+
# Provides the means for authenticating requests made by the client. This parameter can
|
119
|
+
# be many types.
|
120
|
+
# A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
|
121
|
+
# authenticating requests made by this client.
|
122
|
+
# A `String` will be treated as the path to the keyfile to be used for the construction of
|
123
|
+
# credentials for this client.
|
124
|
+
# A `Hash` will be treated as the contents of a keyfile to be used for the construction of
|
125
|
+
# credentials for this client.
|
126
|
+
# A `GRPC::Core::Channel` will be used to make calls through.
|
127
|
+
# A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
|
128
|
+
# should already be composed with a `GRPC::Core::CallCredentials` object.
|
129
|
+
# A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
|
130
|
+
# metadata for requests, generally, to give OAuth credentials.
|
131
|
+
# @param scopes [Array<String>]
|
132
|
+
# The OAuth scopes for this service. This parameter is ignored if
|
133
|
+
# an updater_proc is supplied.
|
134
|
+
# @param client_config [Hash]
|
146
135
|
# A Hash for call options for each method. See
|
147
136
|
# Google::Gax#construct_settings for the structure of
|
148
137
|
# this data. Falls back to the default config if not specified
|
@@ -154,11 +143,11 @@ module Google
|
|
154
143
|
port: DEFAULT_SERVICE_PORT,
|
155
144
|
channel: nil,
|
156
145
|
chan_creds: nil,
|
146
|
+
updater_proc: nil,
|
147
|
+
credentials: nil,
|
157
148
|
scopes: ALL_SCOPES,
|
158
149
|
client_config: {},
|
159
150
|
timeout: DEFAULT_TIMEOUT,
|
160
|
-
app_name: nil,
|
161
|
-
app_version: nil,
|
162
151
|
lib_name: nil,
|
163
152
|
lib_version: ""
|
164
153
|
# These require statements are intentionally placed here to initialize
|
@@ -167,14 +156,38 @@ module Google
|
|
167
156
|
require "google/gax/grpc"
|
168
157
|
require "google/monitoring/v3/group_service_services_pb"
|
169
158
|
|
159
|
+
if channel || chan_creds || updater_proc
|
160
|
+
warn "The `channel`, `chan_creds`, and `updater_proc` parameters will be removed " \
|
161
|
+
"on 2017/09/08"
|
162
|
+
credentials ||= channel
|
163
|
+
credentials ||= chan_creds
|
164
|
+
credentials ||= updater_proc
|
165
|
+
end
|
166
|
+
if service_path != SERVICE_ADDRESS || port != DEFAULT_SERVICE_PORT
|
167
|
+
warn "`service_path` and `port` parameters are deprecated and will be removed"
|
168
|
+
end
|
169
|
+
|
170
|
+
credentials ||= Google::Cloud::Monitoring::Credentials.default
|
170
171
|
|
171
|
-
if
|
172
|
-
|
172
|
+
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
173
|
+
updater_proc = Google::Cloud::Monitoring::Credentials.new(credentials).updater_proc
|
174
|
+
end
|
175
|
+
if credentials.is_a?(GRPC::Core::Channel)
|
176
|
+
channel = credentials
|
177
|
+
end
|
178
|
+
if credentials.is_a?(GRPC::Core::ChannelCredentials)
|
179
|
+
chan_creds = credentials
|
180
|
+
end
|
181
|
+
if credentials.is_a?(Proc)
|
182
|
+
updater_proc = credentials
|
183
|
+
end
|
184
|
+
if credentials.is_a?(Google::Auth::Credentials)
|
185
|
+
updater_proc = credentials.updater_proc
|
173
186
|
end
|
174
187
|
|
175
188
|
google_api_client = "gl-ruby/#{RUBY_VERSION}"
|
176
189
|
google_api_client << " #{lib_name}/#{lib_version}" if lib_name
|
177
|
-
google_api_client << " gapic/0.
|
190
|
+
google_api_client << " gapic/0.1.0 gax/#{Google::Gax::VERSION}"
|
178
191
|
google_api_client << " grpc/#{GRPC::VERSION}"
|
179
192
|
google_api_client.freeze
|
180
193
|
|
@@ -199,6 +212,7 @@ module Google
|
|
199
212
|
port,
|
200
213
|
chan_creds: chan_creds,
|
201
214
|
channel: channel,
|
215
|
+
updater_proc: updater_proc,
|
202
216
|
scopes: scopes,
|
203
217
|
&Google::Monitoring::V3::GroupService::Stub.method(:new)
|
204
218
|
)
|
@@ -267,12 +281,10 @@ module Google
|
|
267
281
|
# object.
|
268
282
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
269
283
|
# @example
|
270
|
-
# require "google/cloud/monitoring/v3
|
271
|
-
#
|
272
|
-
# GroupServiceClient = Google::Cloud::Monitoring::V3::GroupServiceClient
|
284
|
+
# require "google/cloud/monitoring/v3"
|
273
285
|
#
|
274
|
-
# group_service_client =
|
275
|
-
# formatted_name = GroupServiceClient.project_path("[PROJECT]")
|
286
|
+
# group_service_client = Google::Cloud::Monitoring::V3::Group.new
|
287
|
+
# formatted_name = Google::Cloud::Monitoring::V3::GroupServiceClient.project_path("[PROJECT]")
|
276
288
|
#
|
277
289
|
# # Iterate over all results.
|
278
290
|
# group_service_client.list_groups(formatted_name).each do |element|
|
@@ -294,13 +306,14 @@ module Google
|
|
294
306
|
descendants_of_group: nil,
|
295
307
|
page_size: nil,
|
296
308
|
options: nil
|
297
|
-
req =
|
309
|
+
req = {
|
298
310
|
name: name,
|
299
311
|
children_of_group: children_of_group,
|
300
312
|
ancestors_of_group: ancestors_of_group,
|
301
313
|
descendants_of_group: descendants_of_group,
|
302
314
|
page_size: page_size
|
303
|
-
}.delete_if { |_, v| v.nil? }
|
315
|
+
}.delete_if { |_, v| v.nil? }
|
316
|
+
req = Google::Gax::to_proto(req, Google::Monitoring::V3::ListGroupsRequest)
|
304
317
|
@list_groups.call(req, options)
|
305
318
|
end
|
306
319
|
|
@@ -315,20 +328,19 @@ module Google
|
|
315
328
|
# @return [Google::Monitoring::V3::Group]
|
316
329
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
317
330
|
# @example
|
318
|
-
# require "google/cloud/monitoring/v3
|
331
|
+
# require "google/cloud/monitoring/v3"
|
319
332
|
#
|
320
|
-
#
|
321
|
-
#
|
322
|
-
# group_service_client = GroupServiceClient.new
|
323
|
-
# formatted_name = GroupServiceClient.group_path("[PROJECT]", "[GROUP]")
|
333
|
+
# group_service_client = Google::Cloud::Monitoring::V3::Group.new
|
334
|
+
# formatted_name = Google::Cloud::Monitoring::V3::GroupServiceClient.group_path("[PROJECT]", "[GROUP]")
|
324
335
|
# response = group_service_client.get_group(formatted_name)
|
325
336
|
|
326
337
|
def get_group \
|
327
338
|
name,
|
328
339
|
options: nil
|
329
|
-
req =
|
340
|
+
req = {
|
330
341
|
name: name
|
331
|
-
}.delete_if { |_, v| v.nil? }
|
342
|
+
}.delete_if { |_, v| v.nil? }
|
343
|
+
req = Google::Gax::to_proto(req, Google::Monitoring::V3::GetGroupRequest)
|
332
344
|
@get_group.call(req, options)
|
333
345
|
end
|
334
346
|
|
@@ -337,9 +349,11 @@ module Google
|
|
337
349
|
# @param name [String]
|
338
350
|
# The project in which to create the group. The format is
|
339
351
|
# +"projects/{project_id_or_number}"+.
|
340
|
-
# @param group [Google::Monitoring::V3::Group]
|
352
|
+
# @param group [Google::Monitoring::V3::Group | Hash]
|
341
353
|
# A group definition. It is an error to define the +name+ field because
|
342
354
|
# the system assigns the name.
|
355
|
+
# A hash of the same form as `Google::Monitoring::V3::Group`
|
356
|
+
# can also be provided.
|
343
357
|
# @param validate_only [true, false]
|
344
358
|
# If true, validate this request but do not create the group.
|
345
359
|
# @param options [Google::Gax::CallOptions]
|
@@ -348,14 +362,11 @@ module Google
|
|
348
362
|
# @return [Google::Monitoring::V3::Group]
|
349
363
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
350
364
|
# @example
|
351
|
-
# require "google/cloud/monitoring/v3
|
352
|
-
#
|
353
|
-
# Group = Google::Monitoring::V3::Group
|
354
|
-
# GroupServiceClient = Google::Cloud::Monitoring::V3::GroupServiceClient
|
365
|
+
# require "google/cloud/monitoring/v3"
|
355
366
|
#
|
356
|
-
# group_service_client =
|
357
|
-
# formatted_name = GroupServiceClient.project_path("[PROJECT]")
|
358
|
-
# group =
|
367
|
+
# group_service_client = Google::Cloud::Monitoring::V3::Group.new
|
368
|
+
# formatted_name = Google::Cloud::Monitoring::V3::GroupServiceClient.project_path("[PROJECT]")
|
369
|
+
# group = {}
|
359
370
|
# response = group_service_client.create_group(formatted_name, group)
|
360
371
|
|
361
372
|
def create_group \
|
@@ -363,20 +374,23 @@ module Google
|
|
363
374
|
group,
|
364
375
|
validate_only: nil,
|
365
376
|
options: nil
|
366
|
-
req =
|
377
|
+
req = {
|
367
378
|
name: name,
|
368
379
|
group: group,
|
369
380
|
validate_only: validate_only
|
370
|
-
}.delete_if { |_, v| v.nil? }
|
381
|
+
}.delete_if { |_, v| v.nil? }
|
382
|
+
req = Google::Gax::to_proto(req, Google::Monitoring::V3::CreateGroupRequest)
|
371
383
|
@create_group.call(req, options)
|
372
384
|
end
|
373
385
|
|
374
386
|
# Updates an existing group.
|
375
387
|
# You can change any group attributes except +name+.
|
376
388
|
#
|
377
|
-
# @param group [Google::Monitoring::V3::Group]
|
389
|
+
# @param group [Google::Monitoring::V3::Group | Hash]
|
378
390
|
# The new definition of the group. All fields of the existing group,
|
379
391
|
# excepting +name+, are replaced with the corresponding fields of this group.
|
392
|
+
# A hash of the same form as `Google::Monitoring::V3::Group`
|
393
|
+
# can also be provided.
|
380
394
|
# @param validate_only [true, false]
|
381
395
|
# If true, validate this request but do not update the existing group.
|
382
396
|
# @param options [Google::Gax::CallOptions]
|
@@ -385,23 +399,21 @@ module Google
|
|
385
399
|
# @return [Google::Monitoring::V3::Group]
|
386
400
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
387
401
|
# @example
|
388
|
-
# require "google/cloud/monitoring/v3
|
389
|
-
#
|
390
|
-
# Group = Google::Monitoring::V3::Group
|
391
|
-
# GroupServiceClient = Google::Cloud::Monitoring::V3::GroupServiceClient
|
402
|
+
# require "google/cloud/monitoring/v3"
|
392
403
|
#
|
393
|
-
# group_service_client =
|
394
|
-
# group =
|
404
|
+
# group_service_client = Google::Cloud::Monitoring::V3::Group.new
|
405
|
+
# group = {}
|
395
406
|
# response = group_service_client.update_group(group)
|
396
407
|
|
397
408
|
def update_group \
|
398
409
|
group,
|
399
410
|
validate_only: nil,
|
400
411
|
options: nil
|
401
|
-
req =
|
412
|
+
req = {
|
402
413
|
group: group,
|
403
414
|
validate_only: validate_only
|
404
|
-
}.delete_if { |_, v| v.nil? }
|
415
|
+
}.delete_if { |_, v| v.nil? }
|
416
|
+
req = Google::Gax::to_proto(req, Google::Monitoring::V3::UpdateGroupRequest)
|
405
417
|
@update_group.call(req, options)
|
406
418
|
end
|
407
419
|
|
@@ -415,20 +427,19 @@ module Google
|
|
415
427
|
# retries, etc.
|
416
428
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
417
429
|
# @example
|
418
|
-
# require "google/cloud/monitoring/v3
|
430
|
+
# require "google/cloud/monitoring/v3"
|
419
431
|
#
|
420
|
-
#
|
421
|
-
#
|
422
|
-
# group_service_client = GroupServiceClient.new
|
423
|
-
# formatted_name = GroupServiceClient.group_path("[PROJECT]", "[GROUP]")
|
432
|
+
# group_service_client = Google::Cloud::Monitoring::V3::Group.new
|
433
|
+
# formatted_name = Google::Cloud::Monitoring::V3::GroupServiceClient.group_path("[PROJECT]", "[GROUP]")
|
424
434
|
# group_service_client.delete_group(formatted_name)
|
425
435
|
|
426
436
|
def delete_group \
|
427
437
|
name,
|
428
438
|
options: nil
|
429
|
-
req =
|
439
|
+
req = {
|
430
440
|
name: name
|
431
|
-
}.delete_if { |_, v| v.nil? }
|
441
|
+
}.delete_if { |_, v| v.nil? }
|
442
|
+
req = Google::Gax::to_proto(req, Google::Monitoring::V3::DeleteGroupRequest)
|
432
443
|
@delete_group.call(req, options)
|
433
444
|
nil
|
434
445
|
end
|
@@ -445,18 +456,20 @@ module Google
|
|
445
456
|
# performed per-page, this determines the maximum number of
|
446
457
|
# resources in a page.
|
447
458
|
# @param filter [String]
|
448
|
-
# An optional
|
459
|
+
# An optional [list filter](https://cloud.google.com/monitoring/api/learn_more#filtering) describing
|
449
460
|
# the members to be returned. The filter may reference the type, labels, and
|
450
461
|
# metadata of monitored resources that comprise the group.
|
451
462
|
# For example, to return only resources representing Compute Engine VM
|
452
463
|
# instances, use this filter:
|
453
464
|
#
|
454
465
|
# resource.type = "gce_instance"
|
455
|
-
# @param interval [Google::Monitoring::V3::TimeInterval]
|
466
|
+
# @param interval [Google::Monitoring::V3::TimeInterval | Hash]
|
456
467
|
# An optional time interval for which results should be returned. Only
|
457
468
|
# members that were part of the group during the specified interval are
|
458
469
|
# included in the response. If no interval is provided then the group
|
459
470
|
# membership over the last minute is returned.
|
471
|
+
# A hash of the same form as `Google::Monitoring::V3::TimeInterval`
|
472
|
+
# can also be provided.
|
460
473
|
# @param options [Google::Gax::CallOptions]
|
461
474
|
# Overrides the default settings for this call, e.g, timeout,
|
462
475
|
# retries, etc.
|
@@ -467,12 +480,10 @@ module Google
|
|
467
480
|
# object.
|
468
481
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
469
482
|
# @example
|
470
|
-
# require "google/cloud/monitoring/v3
|
471
|
-
#
|
472
|
-
# GroupServiceClient = Google::Cloud::Monitoring::V3::GroupServiceClient
|
483
|
+
# require "google/cloud/monitoring/v3"
|
473
484
|
#
|
474
|
-
# group_service_client =
|
475
|
-
# formatted_name = GroupServiceClient.group_path("[PROJECT]", "[GROUP]")
|
485
|
+
# group_service_client = Google::Cloud::Monitoring::V3::Group.new
|
486
|
+
# formatted_name = Google::Cloud::Monitoring::V3::GroupServiceClient.group_path("[PROJECT]", "[GROUP]")
|
476
487
|
#
|
477
488
|
# # Iterate over all results.
|
478
489
|
# group_service_client.list_group_members(formatted_name).each do |element|
|
@@ -493,12 +504,13 @@ module Google
|
|
493
504
|
filter: nil,
|
494
505
|
interval: nil,
|
495
506
|
options: nil
|
496
|
-
req =
|
507
|
+
req = {
|
497
508
|
name: name,
|
498
509
|
page_size: page_size,
|
499
510
|
filter: filter,
|
500
511
|
interval: interval
|
501
|
-
}.delete_if { |_, v| v.nil? }
|
512
|
+
}.delete_if { |_, v| v.nil? }
|
513
|
+
req = Google::Gax::to_proto(req, Google::Monitoring::V3::ListGroupMembersRequest)
|
502
514
|
@list_group_members.call(req, options)
|
503
515
|
end
|
504
516
|
end
|