Chromium Code Reviews| Index: appengine_module/gae_ts_mon/monitors.py |
| diff --git a/infra_libs/ts_mon/monitors.py b/appengine_module/gae_ts_mon/monitors.py |
| similarity index 59% |
| copy from infra_libs/ts_mon/monitors.py |
| copy to appengine_module/gae_ts_mon/monitors.py |
| index 4fd55664cb964bce13aa9f37f9611d11a06fc7d9..1be7b77d1cbfe2c3db4f78f96f697015eb0e533a 100644 |
| --- a/infra_libs/ts_mon/monitors.py |
| +++ b/appengine_module/gae_ts_mon/monitors.py |
| @@ -34,24 +34,13 @@ Library usage: |
| import base64 |
| import json |
| -import logging |
| import os |
| -from monacq import acquisition_api |
| -from monacq.proto import metrics_pb2 |
| - |
| -from infra_libs import logs |
| -import infra_libs |
| +from proto import metrics_pb2 |
| import httplib2 |
| from apiclient import discovery |
| from oauth2client.client import GoogleCredentials |
| -from oauth2client.file import Storage |
| - |
| - |
| -def _logging_callback(resp, content): # pragma: no cover |
| - logging.debug(repr(resp)) |
| - logging.debug(content) |
| class Monitor(object): |
| @@ -85,38 +74,6 @@ class Monitor(object): |
| raise NotImplementedError() |
| -class ApiMonitor(Monitor): |
| - """Class which sends metrics to the monitoring api, the default behavior.""" |
| - def __init__(self, credsfile, endpoint, use_instrumented_http=True): |
| - """Process monitoring related command line flags and initialize api. |
| - |
| - Args: |
| - credsfile (str): path to the credentials json file |
| - endpoint (str): url of the monitoring endpoint to hit |
| - """ |
| - |
| - creds = acquisition_api.AcquisitionCredential.Load( |
| - os.path.abspath(credsfile)) |
| - api = acquisition_api.AcquisitionApi(creds, endpoint) |
| - api.SetResponseCallback(_logging_callback) |
| - |
| - if use_instrumented_http: |
| - api.SetHttp(infra_libs.InstrumentedHttp('acq-mon-api')) |
| - |
| - self._api = api |
| - |
| - def send(self, metric_pb): |
| - """Send a metric proto to the monitoring api. |
| - |
| - Args: |
| - metric_pb (MetricsData or MetricsCollection): the metric protobuf to send |
| - """ |
| - try: |
| - self._api.Send(self._wrap_proto(metric_pb)) |
| - except acquisition_api.AcquisitionApiRequestException as e: |
| - logging.error('Failed to send the metrics: %s', e) |
| - |
| - |
| class PubSubMonitor(Monitor): |
| """Class which publishes metrics to a Cloud Pub/Sub topic.""" |
| @@ -124,33 +81,23 @@ class PubSubMonitor(Monitor): |
| 'https://www.googleapis.com/auth/pubsub', |
| ] |
| - @classmethod |
| - def _load_credentials(cls, credentials_file_path): |
| - with open(credentials_file_path, 'r') as credentials_file: |
| - credentials_json = json.load(credentials_file) |
| - if credentials_json.get('type', None): |
| - credentials = GoogleCredentials.from_stream(credentials_file_path) |
| - credentials = credentials.create_scoped(cls._SCOPES) |
| - return credentials |
| - return Storage(credentials_file_path).get() |
| - |
| - def _initialize(self, credsfile, project, topic): |
| + def _initialize(self, project, topic): |
| # Copied from acquisition_api.AcquisitionCredential.Load. |
| - creds = self._load_credentials(credsfile) |
| + creds = GoogleCredentials.get_application_default() |
|
agable
2015/08/10 23:04:38
And the pubsub pipeline is accepting these credent
jshu
2015/08/11 21:57:18
Sergey had to add it to the list of whitelisted ap
agable
2015/08/12 22:18:08
Whitelisting is fine for now.
|
| + creds = creds.create_scoped(self._SCOPES) |
| self._http = httplib2.Http() |
| creds.authorize(self._http) |
| self._api = discovery.build('pubsub', 'v1', http=self._http) |
| self._topic = 'projects/%s/topics/%s' % (project, topic) |
| - def __init__(self, credsfile, project, topic): |
| + def __init__(self, project, topic): |
| """Process monitoring related command line flags and initialize api. |
| Args: |
| - credsfile (str): path to the credentials json file |
| project (str): the name of the Pub/Sub project to publish to. |
| topic (str): the name of the Pub/Sub topic to publish to. |
| """ |
| - self._initialize(credsfile, project, topic) |
| + self._initialize(project, topic) |
| def send(self, metric_pb): |
| """Send a metric proto to the monitoring api. |
| @@ -169,17 +116,6 @@ class PubSubMonitor(Monitor): |
| body=body).execute(num_retries=5) |
| -class DiskMonitor(Monitor): |
| - """Class which writes metrics to a local file for debugging.""" |
| - def __init__(self, filepath): |
| - self._logger = logging.getLogger('__name__') |
| - filehandler = logging.FileHandler(filepath, 'a') |
| - logs.add_handler(self._logger, handler=filehandler, level=logging.INFO) |
| - |
| - def send(self, metric_pb): |
| - self._logger.info('\n' + str(self._wrap_proto(metric_pb))) |
| - |
| - |
| class NullMonitor(Monitor): |
| """Class that doesn't send metrics anywhere.""" |
| def send(self, metric_pb): |