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 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 parser.add_argument( | 76 parser.add_argument( |
77 '--ts-mon-config-file', | 77 '--ts-mon-config-file', |
78 default=default_config_file, | 78 default=default_config_file, |
79 help='path to a JSON config file that contains suitable values for ' | 79 help='path to a JSON config file that contains suitable values for ' |
80 '"endpoint" and "credentials" for this machine. This config file is ' | 80 '"endpoint" and "credentials" for this machine. This config file is ' |
81 'intended to be shared by all processes on the machine, as the ' | 81 'intended to be shared by all processes on the machine, as the ' |
82 'values depend on the machine\'s position in the network, IP ' | 82 'values depend on the machine\'s position in the network, IP ' |
83 'whitelisting and deployment of credentials. (default: %(default)s)') | 83 'whitelisting and deployment of credentials. (default: %(default)s)') |
84 parser.add_argument( | 84 parser.add_argument( |
85 '--ts-mon-endpoint', | 85 '--ts-mon-endpoint', |
86 help='url (including file://, pubsub://project/topic) to post monitoring ' | 86 help='url (including file://, pubsub://project/topic, https://) to post ' |
87 'metrics to. If set, overrides the value in --ts-mon-config-file') | 87 'monitoring metrics to. If set, overrides the value in ' |
| 88 '--ts-mon-config-file') |
88 parser.add_argument( | 89 parser.add_argument( |
89 '--ts-mon-credentials', | 90 '--ts-mon-credentials', |
90 help='path to a pkcs8 json credential file. If set, overrides the value ' | 91 help='path to a pkcs8 json credential file. If set, overrides the value ' |
91 'in --ts-mon-config-file') | 92 'in --ts-mon-config-file') |
92 parser.add_argument( | 93 parser.add_argument( |
93 '--ts-mon-flush', | 94 '--ts-mon-flush', |
94 choices=('manual', 'auto'), default='auto', | 95 choices=('manual', 'auto'), default='auto', |
95 help=('metric push behavior: manual (only send when flush() is called), ' | 96 help=('metric push behavior: manual (only send when flush() is called), ' |
96 'or auto (send automatically every --ts-mon-flush-interval-secs ' | 97 'or auto (send automatically every --ts-mon-flush-interval-secs ' |
97 'seconds). (default: %(default)s)')) | 98 'seconds). (default: %(default)s)')) |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 elif endpoint.startswith('pubsub://'): | 221 elif endpoint.startswith('pubsub://'): |
221 if credentials: | 222 if credentials: |
222 url = urlparse.urlparse(endpoint) | 223 url = urlparse.urlparse(endpoint) |
223 project = url.netloc | 224 project = url.netloc |
224 topic = url.path.strip('/') | 225 topic = url.path.strip('/') |
225 interface.state.global_monitor = monitors.PubSubMonitor( | 226 interface.state.global_monitor = monitors.PubSubMonitor( |
226 credentials, project, topic, use_instrumented_http=True) | 227 credentials, project, topic, use_instrumented_http=True) |
227 else: | 228 else: |
228 logging.error('ts_mon monitoring is disabled because credentials are not ' | 229 logging.error('ts_mon monitoring is disabled because credentials are not ' |
229 'available') | 230 'available') |
| 231 elif endpoint.startswith('https://'): |
| 232 interface.state.global_monitor = monitors.HttpsMonitor(endpoint, |
| 233 credentials) |
230 elif endpoint.lower() == 'none': | 234 elif endpoint.lower() == 'none': |
231 logging.info('ts_mon monitoring has been explicitly disabled') | 235 logging.info('ts_mon monitoring has been explicitly disabled') |
232 else: | 236 else: |
233 logging.error('ts_mon monitoring is disabled because the endpoint provided' | 237 logging.error('ts_mon monitoring is disabled because the endpoint provided' |
234 ' is invalid or not supported: %s', endpoint) | 238 ' is invalid or not supported: %s', endpoint) |
235 | 239 |
236 interface.state.flush_mode = args.ts_mon_flush | 240 interface.state.flush_mode = args.ts_mon_flush |
237 | 241 |
238 if args.ts_mon_flush == 'auto': | 242 if args.ts_mon_flush == 'auto': |
239 interface.state.flush_thread = interface._FlushThread( | 243 interface.state.flush_thread = interface._FlushThread( |
240 args.ts_mon_flush_interval_secs) | 244 args.ts_mon_flush_interval_secs) |
241 interface.state.flush_thread.start() | 245 interface.state.flush_thread.start() |
242 | 246 |
243 standard_metrics.init() | 247 standard_metrics.init() |
OLD | NEW |