Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a366fb0

Browse filesBrowse files
Update monitoring samples to use version 0.29.0 of the client library. (GoogleCloudPlatform#1495)
* Update monitoring samples to use version 0.29.0 of the client library. * Fix typo.
1 parent e2848d6 commit a366fb0
Copy full SHA for a366fb0

File tree

Expand file treeCollapse file tree

5 files changed

+241
-116
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+241
-116
lines changed

‎monitoring/api/v3/cloud-client/quickstart.py

Copy file name to clipboardExpand all lines: monitoring/api/v3/cloud-client/quickstart.py
+20-19Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,26 @@
1515

1616
def run_quickstart():
1717
# [START monitoring_quickstart]
18-
from google.cloud import monitoring
19-
20-
client = monitoring.Client()
21-
22-
resource = client.resource(
23-
type_='gce_instance',
24-
labels={
25-
'instance_id': '1234567890123456789',
26-
'zone': 'us-central1-f',
27-
}
28-
)
29-
30-
metric = client.metric(
31-
type_='custom.googleapis.com/my_metric',
32-
labels={}
33-
)
34-
35-
# Default arguments use endtime datetime.utcnow()
36-
client.write_point(metric, resource, 3.14)
18+
from google.cloud import monitoring_v3
19+
20+
import time
21+
22+
client = monitoring_v3.MetricServiceClient()
23+
project = 'my-project' # TODO: Update to your project ID.
24+
project_name = client.project_path(project)
25+
26+
series = monitoring_v3.types.TimeSeries()
27+
series.metric.type = 'custom.googleapis.com/my_metric'
28+
series.resource.type = 'gce_instance'
29+
series.resource.labels['instance_id'] = '1234567890123456789'
30+
series.resource.labels['zone'] = 'us-central1-f'
31+
point = series.points.add()
32+
point.value.double_value = 3.14
33+
now = time.time()
34+
point.interval.end_time.seconds = int(now)
35+
point.interval.end_time.nanos = int(
36+
(now - point.interval.end_time.seconds) * 10**9)
37+
client.create_time_series(project_name, [series])
3738
print('Successfully wrote time series.')
3839
# [END monitoring_quickstart]
3940

‎monitoring/api/v3/cloud-client/quickstart_test.py

Copy file name to clipboardExpand all lines: monitoring/api/v3/cloud-client/quickstart_test.py
+21-1Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,30 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
import os
16+
17+
import mock
18+
import pytest
19+
1520
import quickstart
1621

1722

18-
def test_quickstart(capsys):
23+
PROJECT = os.environ['GCLOUD_PROJECT']
24+
25+
26+
@pytest.fixture
27+
def mock_project_path():
28+
"""Mock out project and replace with project from environment."""
29+
project_patch = mock.patch(
30+
'google.cloud.monitoring_v3.MetricServiceClient.'
31+
'project_path')
32+
33+
with project_patch as project_mock:
34+
project_mock.return_value = 'projects/{}'.format(PROJECT)
35+
yield project_mock
36+
37+
38+
def test_quickstart(capsys, mock_project_path):
1939
quickstart.run_quickstart()
2040
out, _ = capsys.readouterr()
2141
assert 'wrote' in out
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
google-cloud-monitoring==0.28.1
1+
google-cloud-monitoring==0.29.0

‎monitoring/api/v3/cloud-client/snippets.py

Copy file name to clipboardExpand all lines: monitoring/api/v3/cloud-client/snippets.py
+165-74Lines changed: 165 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -13,126 +13,216 @@
1313
# limitations under the License.
1414

1515
import argparse
16+
import os
17+
import pprint
18+
import time
1619

17-
from google.cloud import monitoring
20+
from google.cloud import monitoring_v3
1821

1922

20-
def create_metric_descriptor():
23+
def create_metric_descriptor(project_id):
2124
# [START monitoring_create_metric]
22-
client = monitoring.Client()
23-
descriptor = client.metric_descriptor(
24-
'custom.googleapis.com/my_metric',
25-
metric_kind=monitoring.MetricKind.GAUGE,
26-
value_type=monitoring.ValueType.DOUBLE,
27-
description='This is a simple example of a custom metric.')
28-
descriptor.create()
25+
client = monitoring_v3.MetricServiceClient()
26+
project_name = client.project_path(project_id)
27+
descriptor = monitoring_v3.types.MetricDescriptor()
28+
descriptor.type = 'custom.googleapis.com/my_metric'
29+
descriptor.metric_kind = (
30+
monitoring_v3.enums.MetricDescriptor.MetricKind.GAUGE)
31+
descriptor.value_type = (
32+
monitoring_v3.enums.MetricDescriptor.ValueType.DOUBLE)
33+
descriptor.description = 'This is a simple example of a custom metric.'
34+
descriptor = client.create_metric_descriptor(project_name, descriptor)
35+
print('Created {}.'.format(descriptor.name))
2936
# [END monitoring_create_metric]
3037

3138

3239
def delete_metric_descriptor(descriptor_name):
3340
# [START monitoring_delete_metric]
34-
client = monitoring.Client()
35-
36-
descriptor = client.metric_descriptor(descriptor_name)
37-
descriptor.delete()
38-
41+
client = monitoring_v3.MetricServiceClient()
42+
client.delete_metric_descriptor(descriptor_name)
3943
print('Deleted metric descriptor {}.'.format(descriptor_name))
4044
# [END monitoring_delete_metric]
4145

4246

43-
def write_time_series():
47+
def write_time_series(project_id):
4448
# [START monitoring_write_timeseries]
45-
client = monitoring.Client()
46-
resource = client.resource(
47-
'gce_instance',
48-
labels={
49-
'instance_id': '1234567890123456789',
50-
'zone': 'us-central1-f',
51-
}
52-
)
53-
54-
metric = client.metric(
55-
type_='custom.googleapis.com/my_metric',
56-
labels={
57-
}
58-
)
59-
client.write_point(metric, resource, 3.14)
49+
client = monitoring_v3.MetricServiceClient()
50+
project_name = client.project_path(project_id)
51+
52+
series = monitoring_v3.types.TimeSeries()
53+
series.metric.type = 'custom.googleapis.com/my_metric'
54+
series.resource.type = 'gce_instance'
55+
series.resource.labels['instance_id'] = '1234567890123456789'
56+
series.resource.labels['zone'] = 'us-central1-f'
57+
point = series.points.add()
58+
point.value.double_value = 3.14
59+
now = time.time()
60+
point.interval.end_time.seconds = int(now)
61+
point.interval.end_time.nanos = int(
62+
(now - point.interval.end_time.seconds) * 10**9)
63+
client.create_time_series(project_name, [series])
6064
# [END monitoring_write_timeseries]
6165

6266

63-
def list_time_series():
67+
def list_time_series(project_id):
6468
# [START monitoring_read_timeseries_simple]
65-
client = monitoring.Client()
66-
metric = 'compute.googleapis.com/instance/cpu/utilization'
67-
query_results = client.query(metric, minutes=5)
68-
for result in query_results:
69+
client = monitoring_v3.MetricServiceClient()
70+
project_name = client.project_path(project_id)
71+
interval = monitoring_v3.types.TimeInterval()
72+
now = time.time()
73+
interval.end_time.seconds = int(now)
74+
interval.end_time.nanos = int(
75+
(now - interval.end_time.seconds) * 10**9)
76+
interval.start_time.seconds = int(now - 300)
77+
interval.start_time.nanos = interval.end_time.nanos
78+
results = client.list_time_series(
79+
project_name,
80+
'metric.type = "compute.googleapis.com/instance/cpu/utilization"',
81+
interval,
82+
monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL)
83+
for result in results:
6984
print(result)
7085
# [END monitoring_read_timeseries_simple]
7186

7287

73-
def list_time_series_header():
88+
def list_time_series_header(project_id):
7489
# [START monitoring_read_timeseries_fields]
75-
client = monitoring.Client()
76-
metric = 'compute.googleapis.com/instance/cpu/utilization'
77-
query_results = client.query(metric, minutes=5).iter(headers_only=True)
78-
for result in query_results:
90+
client = monitoring_v3.MetricServiceClient()
91+
project_name = client.project_path(project_id)
92+
interval = monitoring_v3.types.TimeInterval()
93+
now = time.time()
94+
interval.end_time.seconds = int(now)
95+
interval.end_time.nanos = int(
96+
(now - interval.end_time.seconds) * 10**9)
97+
interval.start_time.seconds = int(now - 300)
98+
interval.start_time.nanos = interval.end_time.nanos
99+
results = client.list_time_series(
100+
project_name,
101+
'metric.type = "compute.googleapis.com/instance/cpu/utilization"',
102+
interval,
103+
monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.HEADERS)
104+
for result in results:
79105
print(result)
80106
# [END monitoring_read_timeseries_fields]
81107

82108

83-
def list_time_series_aggregate():
109+
def list_time_series_aggregate(project_id):
84110
# [START monitoring_read_timeseries_align]
85-
client = monitoring.Client()
86-
metric = 'compute.googleapis.com/instance/cpu/utilization'
87-
query_results = client.query(metric, hours=1).align(
88-
monitoring.Aligner.ALIGN_MEAN, minutes=5)
89-
for result in query_results:
111+
client = monitoring_v3.MetricServiceClient()
112+
project_name = client.project_path(project_id)
113+
interval = monitoring_v3.types.TimeInterval()
114+
now = time.time()
115+
interval.end_time.seconds = int(now)
116+
interval.end_time.nanos = int(
117+
(now - interval.end_time.seconds) * 10**9)
118+
interval.start_time.seconds = int(now - 3600)
119+
interval.start_time.nanos = interval.end_time.nanos
120+
aggregation = monitoring_v3.types.Aggregation()
121+
aggregation.alignment_period.seconds = 300 # 5 minutes
122+
aggregation.per_series_aligner = (
123+
monitoring_v3.enums.Aggregation.Aligner.ALIGN_MEAN)
124+
125+
results = client.list_time_series(
126+
project_name,
127+
'metric.type = "compute.googleapis.com/instance/cpu/utilization"',
128+
interval,
129+
monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL,
130+
aggregation)
131+
for result in results:
90132
print(result)
91133
# [END monitoring_read_timeseries_align]
92134

93135

94-
def list_time_series_reduce():
136+
def list_time_series_reduce(project_id):
95137
# [START monitoring_read_timeseries_reduce]
96-
client = monitoring.Client()
97-
metric = 'compute.googleapis.com/instance/cpu/utilization'
98-
query_results = client.query(metric, hours=1).align(
99-
monitoring.Aligner.ALIGN_MEAN, minutes=5).reduce(
100-
monitoring.Reducer.REDUCE_MEAN, 'resource.zone')
101-
for result in query_results:
138+
client = monitoring_v3.MetricServiceClient()
139+
project_name = client.project_path(project_id)
140+
interval = monitoring_v3.types.TimeInterval()
141+
now = time.time()
142+
interval.end_time.seconds = int(now)
143+
interval.end_time.nanos = int(
144+
(now - interval.end_time.seconds) * 10**9)
145+
interval.start_time.seconds = int(now - 3600)
146+
interval.start_time.nanos = interval.end_time.nanos
147+
aggregation = monitoring_v3.types.Aggregation()
148+
aggregation.alignment_period.seconds = 300 # 5 minutes
149+
aggregation.per_series_aligner = (
150+
monitoring_v3.enums.Aggregation.Aligner.ALIGN_MEAN)
151+
aggregation.cross_series_reducer = (
152+
monitoring_v3.enums.Aggregation.Reducer.REDUCE_MEAN)
153+
aggregation.group_by_fields.append('resource.zone')
154+
155+
results = client.list_time_series(
156+
project_name,
157+
'metric.type = "compute.googleapis.com/instance/cpu/utilization"',
158+
interval,
159+
monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL,
160+
aggregation)
161+
for result in results:
102162
print(result)
103163
# [END monitoring_read_timeseries_reduce]
104164

105165

106-
def list_metric_descriptors():
166+
def list_metric_descriptors(project_id):
107167
# [START monitoring_list_descriptors]
108-
client = monitoring.Client()
109-
for descriptor in client.list_metric_descriptors():
168+
client = monitoring_v3.MetricServiceClient()
169+
project_name = client.project_path(project_id)
170+
for descriptor in client.list_metric_descriptors(project_name):
110171
print(descriptor.type)
111172
# [END monitoring_list_descriptors]
112173

113174

114-
def list_monitored_resources():
175+
def list_monitored_resources(project_id):
115176
# [START monitoring_list_resources]
116-
client = monitoring.Client()
117-
for descriptor in client.list_resource_descriptors():
177+
client = monitoring_v3.MetricServiceClient()
178+
project_name = client.project_path(project_id)
179+
resource_descriptors = (
180+
client.list_monitored_resource_descriptors(project_name))
181+
for descriptor in resource_descriptors:
118182
print(descriptor.type)
119183
# [END monitoring_list_resources]
120184

121185

122-
def get_monitored_resource_descriptor(resource_type_name):
186+
def get_monitored_resource_descriptor(project_id, resource_type_name):
123187
# [START monitoring_get_resource]
124-
client = monitoring.Client()
125-
print(client.fetch_resource_descriptor(resource_type_name))
188+
client = monitoring_v3.MetricServiceClient()
189+
resource_path = client.monitored_resource_descriptor_path(
190+
project_id, resource_type_name)
191+
pprint.pprint(client.get_monitored_resource_descriptor(resource_path))
126192
# [END monitoring_get_resource]
127193

128194

129-
def get_metric_descriptor(metric_type_name):
195+
def get_metric_descriptor(metric_name):
130196
# [START monitoring_get_descriptor]
131-
client = monitoring.Client()
132-
print(client.fetch_metric_descriptor(metric_type_name))
197+
client = monitoring_v3.MetricServiceClient()
198+
descriptor = client.get_metric_descriptor(metric_name)
199+
pprint.pprint(descriptor)
133200
# [END monitoring_get_descriptor]
134201

135202

203+
class MissingProjectIdError(Exception):
204+
pass
205+
206+
207+
def project_id():
208+
"""Retreives the project id from the environment variable.
209+
210+
Raises:
211+
MissingProjectIdError -- When not set.
212+
213+
Returns:
214+
str -- the project name
215+
"""
216+
project_id = (os.environ['GOOGLE_CLOUD_PROJECT'] or
217+
os.environ['GCLOUD_PROJECT'])
218+
219+
if not project_id:
220+
raise MissingProjectIdError(
221+
'Set the environment variable ' +
222+
'GCLOUD_PROJECT to your Google Cloud Project Id.')
223+
return project_id
224+
225+
136226
if __name__ == '__main__':
137227
parser = argparse.ArgumentParser(
138228
description='Demonstrates Monitoring API operations.')
@@ -215,24 +305,25 @@ def get_metric_descriptor(metric_type_name):
215305
args = parser.parse_args()
216306

217307
if args.command == 'create-metric-descriptor':
218-
create_metric_descriptor()
308+
create_metric_descriptor(project_id())
219309
if args.command == 'list-metric-descriptors':
220-
list_metric_descriptors()
310+
list_metric_descriptors(project_id())
221311
if args.command == 'get-metric-descriptor':
222312
get_metric_descriptor(args.metric_type_name)
223313
if args.command == 'delete-metric-descriptor':
224314
delete_metric_descriptor(args.metric_descriptor_name)
225315
if args.command == 'list-resources':
226-
list_monitored_resources()
316+
list_monitored_resources(project_id())
227317
if args.command == 'get-resource':
228-
get_monitored_resource_descriptor(args.resource_type_name)
318+
get_monitored_resource_descriptor(
319+
project_id(), args.resource_type_name)
229320
if args.command == 'write-time-series':
230-
write_time_series()
321+
write_time_series(project_id())
231322
if args.command == 'list-time-series':
232-
list_time_series()
323+
list_time_series(project_id())
233324
if args.command == 'list-time-series-header':
234-
list_time_series_header()
325+
list_time_series_header(project_id())
235326
if args.command == 'list-time-series-reduce':
236-
list_time_series_reduce()
327+
list_time_series_reduce(project_id())
237328
if args.command == 'list-time-series-aggregate':
238-
list_time_series_aggregate()
329+
list_time_series_aggregate(project_id())

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.