diff --git a/google/cloud/monitoring_v3/query.py b/google/cloud/monitoring_v3/query.py index 95f80848..34cee9c2 100644 --- a/google/cloud/monitoring_v3/query.py +++ b/google/cloud/monitoring_v3/query.py @@ -443,7 +443,9 @@ def iter(self, headers_only=False, page_size=None): raise ValueError("Query time interval not specified.") params = self._build_query_params(headers_only, page_size) - for ts in self._client.list_time_series(**params): + + request = monitoring_v3.ListTimeSeriesRequest(**params) + for ts in self._client.list_time_series(request): yield ts def _build_query_params(self, headers_only=False, page_size=None): diff --git a/tests/unit/test_query.py b/tests/unit/test_query.py index 23b47193..cf835e90 100644 --- a/tests/unit/test_query.py +++ b/tests/unit/test_query.py @@ -394,6 +394,10 @@ def test_iteration_headers_only(self): client = self._create_client(channel) query = self._make_one(client, PROJECT, METRIC_TYPE) query = query.select_interval(start_time=T0, end_time=T1) + + # add a temporal alignment to test that "aggregation" query params is + # correctly processed + query = query.align(monitoring_v3.Aggregation.Aligner.ALIGN_MAX, seconds=3600) response = list(query.iter(headers_only=True)) self.assertEqual(len(response), 2) @@ -412,6 +416,10 @@ def test_iteration_headers_only(self): filter='metric.type = "{type}"'.format(type=METRIC_TYPE), interval=self._make_interval(T1, T0), view=monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.HEADERS, + aggregation=monitoring_v3.Aggregation( + per_series_aligner=monitoring_v3.Aggregation.Aligner.ALIGN_MAX, + alignment_period={"seconds": 3600}, + ), ) request = channel.requests[0][1] self.assertEqual(request, expected_request)