Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: infra_libs/ts_mon/monitors.py

Issue 1260293009: make version of ts_mon compatible with appengine (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: add noncululativedistribution metric to ts_mon imports Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « infra_libs/ts_mon/metrics.py ('k') | infra_libs/ts_mon/standard_metrics.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 140
141 with open(credentials_file_path, 'r') as credentials_file: 141 with open(credentials_file_path, 'r') as credentials_file:
142 credentials_json = json.load(credentials_file) 142 credentials_json = json.load(credentials_file)
143 if credentials_json.get('type', None): 143 if credentials_json.get('type', None):
144 credentials = GoogleCredentials.from_stream(credentials_file_path) 144 credentials = GoogleCredentials.from_stream(credentials_file_path)
145 credentials = credentials.create_scoped(cls._SCOPES) 145 credentials = credentials.create_scoped(cls._SCOPES)
146 return credentials 146 return credentials
147 return Storage(credentials_file_path).get() 147 return Storage(credentials_file_path).get()
148 148
149 def _initialize(self, credsfile, project, topic, use_instrumented_http): 149 def _initialize(self, credsfile, project, topic, use_instrumented_http):
150 # Copied from acquisition_api.AcquisitionCredential.Load.
151 creds = self._load_credentials(credsfile) 150 creds = self._load_credentials(credsfile)
152 if use_instrumented_http: 151 if use_instrumented_http:
153 self._http = infra_libs.InstrumentedHttp('acq-mon-api-pubsub') 152 self._http = infra_libs.InstrumentedHttp('acq-mon-api-pubsub')
154 else: # pragma: no cover 153 else: # pragma: no cover
155 self._http = httplib2.Http() 154 self._http = httplib2.Http()
156 creds.authorize(self._http) 155 creds.authorize(self._http)
157 self._api = discovery.build('pubsub', 'v1', http=self._http) 156 self._api = discovery.build('pubsub', 'v1', http=self._http)
158 self._topic = 'projects/%s/topics/%s' % (project, topic) 157 self._topic = 'projects/%s/topics/%s' % (project, topic)
159 158
160 def __init__(self, credsfile, project, topic, use_instrumented_http=True): 159 def __init__(self, credsfile, project, topic, use_instrumented_http=True):
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 logs.add_handler(self._logger, handler=filehandler, level=logging.INFO) 193 logs.add_handler(self._logger, handler=filehandler, level=logging.INFO)
195 194
196 def send(self, metric_pb): 195 def send(self, metric_pb):
197 self._logger.info('\n' + str(self._wrap_proto(metric_pb))) 196 self._logger.info('\n' + str(self._wrap_proto(metric_pb)))
198 197
199 198
200 class NullMonitor(Monitor): 199 class NullMonitor(Monitor):
201 """Class that doesn't send metrics anywhere.""" 200 """Class that doesn't send metrics anywhere."""
202 def send(self, metric_pb): 201 def send(self, metric_pb):
203 pass 202 pass
OLDNEW
« no previous file with comments | « infra_libs/ts_mon/metrics.py ('k') | infra_libs/ts_mon/standard_metrics.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698