Skip to content
This repository has been archived by the owner on Sep 3, 2022. It is now read-only.

Upgrade google.cloud.monitoring #702

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion google/datalab/stackdriver/monitoring/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@

from __future__ import absolute_import

from google.cloud.monitoring import Aligner, Reducer
from google.cloud.monitoring import enums

Aligner = enums.Aggregation.Aligner
Reducer = enums.Aggregation.Reducer

from ._group import Groups
from ._metric import MetricDescriptors
from ._query import Query
Expand Down
16 changes: 9 additions & 7 deletions google/datalab/stackdriver/monitoring/_query.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@

from __future__ import absolute_import

import google.cloud.monitoring
import google.cloud.monitoring_v3.query

from . import _query_metadata
from . import _utils


class Query(google.cloud.monitoring.Query):
class Query(google.cloud.monitoring_v3.query.Query):
"""Query object for retrieving metric data."""

def __init__(self,
metric_type=google.cloud.monitoring.Query.DEFAULT_METRIC_TYPE,
metric_type=google.cloud.monitoring_v3.query.Query.DEFAULT_METRIC_TYPE,
end_time=None, days=0, hours=0, minutes=0, context=None):
"""Initializes the core query parameters.

Expand All @@ -33,13 +33,13 @@ def __init__(self,
the resulting duration from the end time.

It is also allowed to omit the end time and duration here,
in which case :meth:`~google.cloud.monitoring.query.Query.select_interval`
in which case :meth:`~google.cloud.monitoring_v3.query.Query.select_interval`
must be called before the query is executed.

Args:
metric_type: The metric type name. The default value is
:data:`Query.DEFAULT_METRIC_TYPE
<google.cloud.monitoring.query.Query.DEFAULT_METRIC_TYPE>`, but
<google.cloud.monitoring_v3.query.Query.DEFAULT_METRIC_TYPE>`, but
please note that this default value is provided only for
demonstration purposes and is subject to change.
end_time: The end time (inclusive) of the time interval for which
Expand All @@ -54,10 +54,12 @@ def __init__(self,
ValueError: ``end_time`` was specified but ``days``, ``hours``, and
``minutes`` are all zero. If you really want to specify a point in
time, use
:meth:`~google.cloud.monitoring.query.Query.select_interval`.
:meth:`~google.cloud.monitoring_v3.query.Query.select_interval`.
"""
client = _utils.make_client(context)
super(Query, self).__init__(client, metric_type,
super(Query, self).__init__(client,
project=context.project_id,
metric_type=metric_type,
end_time=end_time,
days=days, hours=hours, minutes=minutes)

Expand Down
4 changes: 2 additions & 2 deletions google/datalab/stackdriver/monitoring/_query_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from __future__ import unicode_literals
from builtins import object

import google.cloud.monitoring
from google.cloud.monitoring_v3 import _dataframe
import pandas


Expand Down Expand Up @@ -78,7 +78,7 @@ def as_dataframe(self, max_rows=None):
for col in dataframe.columns])

# Re-order the columns.
resource_keys = google.cloud.monitoring._dataframe._sorted_resource_labels(
resource_keys = _dataframe._sorted_resource_labels(
dataframe['resource.labels'].columns)
sorted_columns = [('resource.type', '')]
sorted_columns += [('resource.labels', key) for key in resource_keys]
Expand Down
11 changes: 7 additions & 4 deletions google/datalab/stackdriver/monitoring/_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@

from __future__ import absolute_import

import google.cloud.monitoring
# google.cloud.monitoring used to have a single Client, but
# it has now been broken up into multiple subclients. Most
# of the usages I found aligned with the MetricServiceClient,
# but other uses, such as those in group_tests.py, require a
# GroupServiceClient, and there are potentially others.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I understand this comment. If we're not importing GroupServiceClient, what does the comment add?

from google.cloud.monitoring_v3 import MetricServiceClient

import google.datalab


def make_client(context=None):
context = context or google.datalab.Context.default()
client = google.cloud.monitoring.Client(
project=context.project_id,
client = MetricServiceClient(
credentials=context.credentials,
)
client._connection.USER_AGENT = 'pydatalab/v0'
Expand Down
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@
'configparser>=3.5.0',
'mock>=2.0.0',
'future>=0.16.0',
'google-cloud>=0.30.0',
'google-cloud-logging>=1.6.0',
'google-cloud-monitoring>=0.30.1',
'google-api-python-client>=1.6.2',
'seaborn>=0.7.0',
'plotly>=1.12.5',
Expand Down
14 changes: 7 additions & 7 deletions tests/stackdriver/monitoring/metric_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import mock
import unittest

import google.cloud.monitoring
import google.cloud.monitoring_v3

import google.auth
import google.datalab
Expand Down Expand Up @@ -70,7 +70,7 @@ def test_constructor_maximal(self):
self.assertEqual(descriptors._type_prefix, TYPE_PREFIX)
self.assertIsNone(descriptors._descriptors)

@mock.patch('google.cloud.monitoring.Client.list_metric_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_metric_descriptors')
def test_list(self, mock_gcloud_list_descriptors):
mock_gcloud_list_descriptors.return_value = self._list_metrics_get_result(
context=self.context)
Expand All @@ -83,7 +83,7 @@ def test_list(self, mock_gcloud_list_descriptors):
self.assertEqual(metric_descriptor_list[0].type, METRIC_TYPES[0])
self.assertEqual(metric_descriptor_list[1].type, METRIC_TYPES[1])

@mock.patch('google.cloud.monitoring.Client.list_metric_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_metric_descriptors')
def test_list_w_api_filter(self, mock_gcloud_list_descriptors):
mock_gcloud_list_descriptors.return_value = self._list_metrics_get_result(
context=self.context)
Expand All @@ -99,7 +99,7 @@ def test_list_w_api_filter(self, mock_gcloud_list_descriptors):
self.assertEqual(metric_descriptor_list[0].type, METRIC_TYPES[0])
self.assertEqual(metric_descriptor_list[1].type, METRIC_TYPES[1])

@mock.patch('google.cloud.monitoring.Client.list_metric_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_metric_descriptors')
def test_list_w_pattern_match(self, mock_gcloud_list_descriptors):
mock_gcloud_list_descriptors.return_value = self._list_metrics_get_result(
context=self.context)
Expand All @@ -111,7 +111,7 @@ def test_list_w_pattern_match(self, mock_gcloud_list_descriptors):
self.assertEqual(len(metric_descriptor_list), 1)
self.assertEqual(metric_descriptor_list[0].type, METRIC_TYPES[1])

@mock.patch('google.cloud.monitoring.Client.list_metric_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_metric_descriptors')
def test_list_caching(self, mock_gcloud_list_descriptors):
mock_gcloud_list_descriptors.return_value = self._list_metrics_get_result(
context=self.context)
Expand Down Expand Up @@ -164,10 +164,10 @@ def _create_context(project_id):
@staticmethod
def _list_metrics_get_result(context):
client = gcm._utils.make_client(context=context)
all_labels = [google.cloud.monitoring.LabelDescriptor(**labels)
all_labels = [google.cloud.monitoring_v3.enums.LabelDescriptor(**labels)
for labels in LABELS]
descriptors = [
client.metric_descriptor(
client.create_metric_descriptor(
metric_type, metric_kind=METRIC_KIND, value_type=VALUE_TYPE,
unit=UNIT, display_name=display_name, labels=all_labels,
)
Expand Down
6 changes: 3 additions & 3 deletions tests/stackdriver/monitoring/query_metadata_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import mock
import unittest

from google.cloud.monitoring import Resource
from google.cloud.monitoring import Metric
from google.cloud.monitoring import TimeSeries
from google.cloud.logging.resource import Resource
from google.cloud.monitoring_v3.types import Metric
from google.cloud.monitoring_v3.types import TimeSeries

import google.auth
import google.datalab
Expand Down
2 changes: 1 addition & 1 deletion tests/stackdriver/monitoring/query_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import mock
import unittest

from google.cloud.monitoring import Query as BaseQuery
from google.cloud.monitoring_v3.query import Query as BaseQuery

import google.auth
import google.datalab
Expand Down
14 changes: 7 additions & 7 deletions tests/stackdriver/monitoring/resource_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import mock
import unittest

import google.cloud.monitoring
import google.cloud.monitoring_v3

import google.auth
import google.datalab
Expand Down Expand Up @@ -59,7 +59,7 @@ def test_constructor_maximal(self):
self.assertEqual(descriptors._filter_string, FILTER_STRING)
self.assertIsNone(descriptors._descriptors)

@mock.patch('google.cloud.monitoring.Client.list_resource_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_monitored_resource_descriptors')
def test_list(self, mock_api_list_descriptors):
mock_api_list_descriptors.return_value = self._list_resources_get_result()

Expand All @@ -70,7 +70,7 @@ def test_list(self, mock_api_list_descriptors):
self.assertEqual(resource_descriptor_list[0].type, RESOURCE_TYPES[0])
self.assertEqual(resource_descriptor_list[1].type, RESOURCE_TYPES[1])

@mock.patch('google.cloud.monitoring.Client.list_resource_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_monitored_resource_descriptors')
def test_list_w_api_filter(self, mock_api_list_descriptors):
mock_api_list_descriptors.return_value = self._list_resources_get_result()

Expand All @@ -84,7 +84,7 @@ def test_list_w_api_filter(self, mock_api_list_descriptors):
self.assertEqual(resource_descriptor_list[0].type, RESOURCE_TYPES[0])
self.assertEqual(resource_descriptor_list[1].type, RESOURCE_TYPES[1])

@mock.patch('google.cloud.monitoring.Client.list_resource_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_monitored_resource_descriptors')
def test_list_w_pattern_match(self, mock_api_list_descriptors):
mock_api_list_descriptors.return_value = self._list_resources_get_result()

Expand All @@ -94,7 +94,7 @@ def test_list_w_pattern_match(self, mock_api_list_descriptors):
self.assertEqual(len(resource_descriptor_list), 1)
self.assertEqual(resource_descriptor_list[0].type, RESOURCE_TYPES[1])

@mock.patch('google.cloud.monitoring.Client.list_resource_descriptors')
@mock.patch('google.cloud.monitoring_v3.MetricServiceClient.list_monitored_resource_descriptors')
def test_list_caching(self, mock_gcloud_list_descriptors):
mock_gcloud_list_descriptors.return_value = (
self._list_resources_get_result())
Expand Down Expand Up @@ -144,10 +144,10 @@ def _create_context(project_id):

@staticmethod
def _list_resources_get_result():
all_labels = [google.cloud.monitoring.LabelDescriptor(**labels)
all_labels = [google.cloud.monitoring_v3.enums.LabelDescriptor(**labels)
for labels in LABELS]
descriptors = [
google.cloud.monitoring.ResourceDescriptor(
google.cloud.monitoring_v3.types.MonitoredResourceDescriptor(
name=None, type_=resource_type, display_name=display_name,
description=None, labels=all_labels,
)
Expand Down