OLD | NEW |
---|---|
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Classes representing the monitoring interface for tasks or devices. | 5 """Classes representing the monitoring interface for tasks or devices. |
6 | 6 |
7 Usage: | 7 Usage: |
8 import argparse | 8 import argparse |
9 from infra_libs import ts_mon | 9 from infra_libs import ts_mon |
10 | 10 |
(...skipping 25 matching lines...) Expand all Loading... | |
36 import json | 36 import json |
37 import logging | 37 import logging |
38 import os | 38 import os |
39 | 39 |
40 from monacq import acquisition_api | 40 from monacq import acquisition_api |
41 from monacq.proto import metrics_pb2 | 41 from monacq.proto import metrics_pb2 |
42 | 42 |
43 from infra_libs import logs | 43 from infra_libs import logs |
44 import infra_libs | 44 import infra_libs |
45 | 45 |
46 import httplib2 | |
47 from apiclient import discovery | 46 from apiclient import discovery |
48 from oauth2client.client import GoogleCredentials | 47 from oauth2client.client import GoogleCredentials |
49 from oauth2client.file import Storage | 48 from oauth2client.file import Storage |
50 from oauth2client.gce import AppAssertionCredentials | 49 from oauth2client.gce import AppAssertionCredentials |
50 import httplib2 | |
51 | 51 |
52 # Special string that can be passed through as the credentials path to use the | 52 # Special string that can be passed through as the credentials path to use the |
53 # default GCE service account. | 53 # default GCE service account. |
54 GCE_CREDENTIALS = ':gce' | 54 GCE_CREDENTIALS = ':gce' |
55 | 55 |
56 | 56 |
57 def _logging_callback(resp, content): # pragma: no cover | 57 def _logging_callback(resp, content): # pragma: no cover |
58 logging.debug(repr(resp)) | 58 logging.debug(repr(resp)) |
59 logging.debug(content) | 59 logging.debug(content) |
60 | 60 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
115 self._api = api | 115 self._api = api |
116 | 116 |
117 def send(self, metric_pb): | 117 def send(self, metric_pb): |
118 """Send a metric proto to the monitoring api. | 118 """Send a metric proto to the monitoring api. |
119 | 119 |
120 Args: | 120 Args: |
121 metric_pb (MetricsData or MetricsCollection): the metric protobuf to send | 121 metric_pb (MetricsData or MetricsCollection): the metric protobuf to send |
122 """ | 122 """ |
123 try: | 123 try: |
124 self._api.Send(self._wrap_proto(metric_pb)) | 124 self._api.Send(self._wrap_proto(metric_pb)) |
125 except acquisition_api.AcquisitionApiRequestException as e: | 125 except acquisition_api.AcquisitionApiRequestException as e: # pylint: disabl e=undefined-variable |
Sergey Berezin
2015/08/18 00:40:38
nit: any way to stay within 80 char limit? Maybe t
jshu
2015/08/18 01:15:55
don't think we actually need that comment
| |
126 logging.error('Failed to send the metrics: %s', e) | 126 logging.error('Failed to send the metrics: %s', e) |
127 | 127 |
128 | 128 |
129 class PubSubMonitor(Monitor): | 129 class PubSubMonitor(Monitor): |
130 """Class which publishes metrics to a Cloud Pub/Sub topic.""" | 130 """Class which publishes metrics to a Cloud Pub/Sub topic.""" |
131 | 131 |
132 _SCOPES = [ | 132 _SCOPES = [ |
133 'https://www.googleapis.com/auth/pubsub', | 133 'https://www.googleapis.com/auth/pubsub', |
134 ] | 134 ] |
135 | 135 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
194 logs.add_handler(self._logger, handler=filehandler, level=logging.INFO) | 194 logs.add_handler(self._logger, handler=filehandler, level=logging.INFO) |
195 | 195 |
196 def send(self, metric_pb): | 196 def send(self, metric_pb): |
197 self._logger.info('\n' + str(self._wrap_proto(metric_pb))) | 197 self._logger.info('\n' + str(self._wrap_proto(metric_pb))) |
198 | 198 |
199 | 199 |
200 class NullMonitor(Monitor): | 200 class NullMonitor(Monitor): |
201 """Class that doesn't send metrics anywhere.""" | 201 """Class that doesn't send metrics anywhere.""" |
202 def send(self, metric_pb): | 202 def send(self, metric_pb): |
203 pass | 203 pass |
OLD | NEW |