Skip to content

Commit

Permalink
Require google-cloud-monitoring >= 2.0.0
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 603678393
  • Loading branch information
p3rf Team authored and copybara-github committed Feb 2, 2024
1 parent d557e99 commit b0e5e86
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -298,11 +298,10 @@ def _GetCpuUtilizationSample(
# pylint: disable=g-import-not-at-top
from google.cloud import monitoring_v3
from google.cloud.monitoring_v3 import query
from google.cloud.monitoring_v3.gapic.transports import metric_service_grpc_transport

client = monitoring_v3.MetricServiceClient(
transport=metric_service_grpc_transport.MetricServiceGrpcTransport(
address=_MONITORING_ADDRESS.value
transport=monitoring_v3.services.metric_service.transports.grpc.MetricServiceGrpcTransport(
host=_MONITORING_ADDRESS.value
)
)

Expand Down
5 changes: 2 additions & 3 deletions perfkitbenchmarker/providers/gcp/gcp_cloud_redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

from absl import flags
from google.cloud import monitoring_v3
from google.cloud.monitoring_v3.types import TimeInterval
from perfkitbenchmarker import errors
from perfkitbenchmarker import managed_memory_store
from perfkitbenchmarker import provider_info
Expand Down Expand Up @@ -240,7 +239,7 @@ def MeasureCpuUtilization(self, interval_length): # pytype: disable=signature-m
"""Measure the average CPU utilization on GCP instance in percentage."""
now = time.time()
seconds = int(now)
interval = TimeInterval()
interval = monitoring_v3.TimeInterval()
interval.end_time.seconds = seconds
interval.start_time.seconds = seconds - interval_length
client = monitoring_v3.MetricServiceClient()
Expand All @@ -260,7 +259,7 @@ def MeasureCpuUtilization(self, interval_length): # pytype: disable=signature-m
name='projects/' + self.project,
filter_=api_filter,
interval=interval,
view=monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL,
view=monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL,
)

return self._ParseMonitoringTimeSeries(time_series)
Expand Down
36 changes: 18 additions & 18 deletions perfkitbenchmarker/providers/gcp/gcp_dpb_dataflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,10 +431,8 @@ def GetAvgCpuUtilization(
# Shift TZ of datetime arguments since FromDatetime() assumes UTC
# See
# https://googleapis.dev/python/protobuf/latest/google/protobuf/timestamp_pb2.html#google.protobuf.timestamp_pb2.Timestamp.FromDatetime
interval.start_time.FromDatetime(
start_time.astimezone(datetime.timezone.utc)
)
interval.end_time.FromDatetime(end_time.astimezone(datetime.timezone.utc))
interval.start_time = start_time.astimezone(datetime.timezone.utc)
interval.end_time = end_time.astimezone(datetime.timezone.utc)

api_filter = (
'metric.type = "compute.googleapis.com/instance/cpu/utilization" '
Expand All @@ -449,14 +447,16 @@ def GetAvgCpuUtilization(
group_by_fields=['resource.instance_id'],
)

results = client.list_time_series(
req = types.ListTimeSeriesRequest(
name=project_name,
filter_=api_filter,
filter=api_filter,
interval=interval,
view=monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL,
view=monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL,
aggregation=aggregation,
)

results = client.list_time_series(req)

if not results:
logging.warning(
'No monitoring data found. Unable to calculate avg CPU utilization.'
Expand Down Expand Up @@ -502,10 +502,8 @@ def GetMaxOutputThroughput(
# Shift TZ of datetime arguments since FromDatetime() assumes UTC
# See
# https://googleapis.dev/python/protobuf/latest/google/protobuf/timestamp_pb2.html#google.protobuf.timestamp_pb2.Timestamp.FromDatetime
interval.start_time.FromDatetime(
start_time.astimezone(datetime.timezone.utc)
)
interval.end_time.FromDatetime(end_time.astimezone(datetime.timezone.utc))
interval.start_time = start_time.astimezone(datetime.timezone.utc)
interval.end_time = end_time.astimezone(datetime.timezone.utc)

api_filter = (
'metric.type = "dataflow.googleapis.com/job/elements_produced_count" '
Expand All @@ -519,14 +517,16 @@ def GetMaxOutputThroughput(
per_series_aligner=types.Aggregation.Aligner.ALIGN_RATE,
)

results = client.list_time_series(
req = types.ListTimeSeriesRequest(
name=project_name,
filter_=api_filter,
filter=api_filter,
interval=interval,
view=monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL,
view=monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL,
aggregation=aggregation,
)

results = client.list_time_series(req)

if not results:
logging.warning(
'No monitoring data found. Unable to calculate max throughput.'
Expand All @@ -545,8 +545,8 @@ def GetSubscriptionBacklogSize(self, subscription_name, interval_length=4):
delta = datetime.timedelta(minutes=interval_length)

interval = types.TimeInterval()
interval.start_time.FromDatetime(now - delta)
interval.end_time.FromDatetime(now)
interval.start_time = now - delta
interval.end_time = now

api_filter = (
'metric.type = "pubsub.googleapis.com/subscription/'
Expand All @@ -556,9 +556,9 @@ def GetSubscriptionBacklogSize(self, subscription_name, interval_length=4):

results = client.list_time_series(
name=project_name,
filter_=api_filter,
filter=api_filter,
interval=interval,
view=monitoring_v3.enums.ListTimeSeriesRequest.TimeSeriesView.FULL,
view=monitoring_v3.ListTimeSeriesRequest.TimeSeriesView.FULL,
)

return round(self._GetLastValueFromTimeSeries(results), 2)
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ six>=1.13.0
pywinrm
timeout-decorator
google-cloud-datastore
google-cloud-monitoring>=0.31.1
google-cloud-monitoring>=2.0.0
beautifulsoup4
requests
seaborn
Expand Down

0 comments on commit b0e5e86

Please sign in to comment.