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 import json | 5 import json |
6 import logging | 6 import logging |
7 import os | 7 import os |
8 import socket | 8 import socket |
9 import sys | 9 import sys |
10 import urlparse | 10 import urlparse |
11 import re | 11 import re |
12 | 12 |
13 import requests | 13 import requests |
14 | 14 |
15 from infra_libs.ts_mon import api_monitor | |
16 from infra_libs.ts_mon.common import interface | 15 from infra_libs.ts_mon.common import interface |
17 from infra_libs.ts_mon.common import metric_store | 16 from infra_libs.ts_mon.common import metric_store |
18 from infra_libs.ts_mon.common import monitors | 17 from infra_libs.ts_mon.common import monitors |
19 from infra_libs.ts_mon.common import standard_metrics | 18 from infra_libs.ts_mon.common import standard_metrics |
20 from infra_libs.ts_mon.common import targets | 19 from infra_libs.ts_mon.common import targets |
21 | 20 |
22 | 21 |
23 def load_machine_config(filename): | 22 def load_machine_config(filename): |
24 if not os.path.exists(filename): | 23 if not os.path.exists(filename): |
25 logging.info('Configuration file does not exist, ignoring: %s', filename) | 24 logging.info('Configuration file does not exist, ignoring: %s', filename) |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 config = load_machine_config(args.ts_mon_config_file) | 173 config = load_machine_config(args.ts_mon_config_file) |
175 endpoint = config.get('endpoint', '') | 174 endpoint = config.get('endpoint', '') |
176 credentials = config.get('credentials', '') | 175 credentials = config.get('credentials', '') |
177 | 176 |
178 # Command-line args override the values in the config file. | 177 # Command-line args override the values in the config file. |
179 if args.ts_mon_endpoint is not None: | 178 if args.ts_mon_endpoint is not None: |
180 endpoint = args.ts_mon_endpoint | 179 endpoint = args.ts_mon_endpoint |
181 if args.ts_mon_credentials is not None: | 180 if args.ts_mon_credentials is not None: |
182 credentials = args.ts_mon_credentials | 181 credentials = args.ts_mon_credentials |
183 | 182 |
| 183 interface.state.global_monitor = monitors.NullMonitor() |
| 184 |
184 if endpoint.startswith('file://'): | 185 if endpoint.startswith('file://'): |
185 interface.state.global_monitor = monitors.DebugMonitor( | 186 interface.state.global_monitor = monitors.DebugMonitor( |
186 endpoint[len('file://'):]) | 187 endpoint[len('file://'):]) |
187 elif credentials: | 188 elif credentials: |
188 if endpoint.startswith('pubsub://'): | 189 if endpoint.startswith('pubsub://'): |
189 url = urlparse.urlparse(endpoint) | 190 url = urlparse.urlparse(endpoint) |
190 project = url.netloc | 191 project = url.netloc |
191 topic = url.path.strip('/') | 192 topic = url.path.strip('/') |
192 interface.state.global_monitor = monitors.PubSubMonitor( | 193 interface.state.global_monitor = monitors.PubSubMonitor( |
193 credentials, project, topic, use_instrumented_http=True) | 194 credentials, project, topic, use_instrumented_http=True) |
194 else: | 195 else: |
195 interface.state.global_monitor = api_monitor.ApiMonitor( | 196 logging.error('Monitoring is disabled because the endpoint provided is ' |
196 credentials, endpoint, use_instrumented_http=True) | 197 'invalid or not supported: %s', endpoint) |
197 else: | 198 else: |
198 logging.error('Monitoring is disabled because --ts-mon-credentials was not ' | 199 logging.error('Monitoring is disabled because credentials are not ' |
199 'set') | 200 'available') |
200 interface.state.global_monitor = monitors.NullMonitor() | |
201 | 201 |
202 if args.ts_mon_target_type == 'device': | 202 if args.ts_mon_target_type == 'device': |
203 interface.state.target = targets.DeviceTarget( | 203 interface.state.target = targets.DeviceTarget( |
204 args.ts_mon_device_region, | 204 args.ts_mon_device_region, |
205 args.ts_mon_device_role, | 205 args.ts_mon_device_role, |
206 args.ts_mon_device_network, | 206 args.ts_mon_device_network, |
207 args.ts_mon_device_hostname) | 207 args.ts_mon_device_hostname) |
208 if args.ts_mon_target_type == 'task': # pragma: no cover | 208 if args.ts_mon_target_type == 'task': # pragma: no cover |
209 # Reimplement ArgumentParser.error, since we don't have access to the parser | 209 # Reimplement ArgumentParser.error, since we don't have access to the parser |
210 if not args.ts_mon_task_service_name: | 210 if not args.ts_mon_task_service_name: |
(...skipping 12 matching lines...) Expand all Loading... |
223 args.ts_mon_task_number) | 223 args.ts_mon_task_number) |
224 | 224 |
225 interface.state.flush_mode = args.ts_mon_flush | 225 interface.state.flush_mode = args.ts_mon_flush |
226 | 226 |
227 if args.ts_mon_flush == 'auto': | 227 if args.ts_mon_flush == 'auto': |
228 interface.state.flush_thread = interface._FlushThread( | 228 interface.state.flush_thread = interface._FlushThread( |
229 args.ts_mon_flush_interval_secs) | 229 args.ts_mon_flush_interval_secs) |
230 interface.state.flush_thread.start() | 230 interface.state.flush_thread.start() |
231 | 231 |
232 standard_metrics.init() | 232 standard_metrics.init() |
233 | |
OLD | NEW |