# Copyright 2015 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import socket import common from autotest_lib.client.common_lib import global_config from autotest_lib.client.common_lib.cros.graphite import autotest_es from autotest_lib.client.common_lib.cros.graphite import es_utils from autotest_lib.client.common_lib.cros.graphite import stats # Pylint locally complains about "No value passed for parameter 'key'" here # pylint: disable=E1120 # If one has their hostname listed including a domain, ie. |milleral.mtv|, # then this will show up on Graphite as milleral/mtv/<stats>. This seems # silly, so let's replace '.'s with '_'s to disambiguate Graphite folders # from FQDN hostnames. STATSD_SERVER = global_config.global_config.get_config_value('CROS', 'STATSD_SERVER', default='') STATSD_PORT = global_config.global_config.get_config_value('CROS', 'STATSD_PORT', type=int, default=0) hostname = global_config.global_config.get_config_value( 'SERVER', 'hostname', default='localhost') if hostname.lower() in ['localhost', '127.0.0.1']: hostname = socket.gethostname() hostname = hostname.replace('.', '_') _default_es = es_utils.ESMetadata(use_http=autotest_es.ES_USE_HTTP, host=autotest_es.METADATA_ES_SERVER, port=autotest_es.ES_PORT, index=autotest_es.INDEX_METADATA, udp_port=autotest_es.ES_UDP_PORT) _statsd = stats.Statsd(es=_default_es, host=STATSD_SERVER, port=STATSD_PORT, prefix=hostname) def _es_init(original): class _Derived(original): def __init__(self, *args, **kwargs): es = kwargs.pop('es', None) super(_Derived, self).__init__(*args, **kwargs) if es: self.es = es return _Derived @_es_init class Average(_statsd.Average): """Wrapper around _statsd.Average""" @_es_init class Counter(_statsd.Counter): """Wrapper around _statsd.Counter""" @_es_init class Gauge(_statsd.Gauge): """Wrapper around _statsd.Gauge""" @_es_init class Timer(_statsd.Timer): """Wrapper around _statsd.Timer""" @_es_init class Raw(_statsd.Raw): """Wrapper around _statd.Raw"""