def get_client(): client = None dsn = talisker.get_config().statsd_dsn if dsn is None: client = DummyClient() else: if not dsn.startswith('udp'): raise Exception('Talisker only supports udp stastd client') client = StatsClient(*parse_statsd_dsn(dsn)) return client
def get_client(dsn=None): global _client if _client is None: if dsn is None: dsn = os.environ.get('STATSD_DSN', None) if dsn is None: _client = DummyClient() else: if not dsn.startswith('udp'): raise Exception('Talisker only supports udp stastd client') _client = StatsClient(*parse_statsd_dsn(dsn)) return _client
def configure_stats(config, _client=None): if _client is not None: return set_stats_client(_client) if not config: config = 'localhost:8125' parts = config.split(':') host = parts[0] port = 8125 if len(parts) > 1: port = int(parts[1]) client = StatsClient(host=host, port=port) return set_stats_client(client)
def get_client(): client = None logger = logging.getLogger(__name__) dsn = os.environ.get('STATSD_DSN', None) if dsn is None: client = DummyClient() logger.info('configuring statsd DummyClient') else: if not dsn.startswith('udp'): raise Exception('Talisker only supports udp stastd client') client = StatsClient(*parse_statsd_dsn(dsn)) logger.info('configuring statsd via environment', extra={'STATSD_DSN': dsn}) return client
def statsd(): """ Returns a new StatsD client. Use this instead of: statsd.defaults.django.statsd because statsd.defaults.django.statsd is a singleton initialised at the start of the process and therefore does not deal with chnages to the IP of the statsd instance. """ return StatsClient( host=HOST, port=PORT, prefix=PREFIX, maxudpsize=MAXUDPSIZE, ipv6=IPV6, )
def _client(prefix=None): sc = StatsClient(host=ADDR[0], port=ADDR[1], prefix=prefix) sc._sock = mock.Mock() return sc
statsd_active = is_true(os.environ.get('ODOO_STATSD')) statsd = None customer = None environment = None if statsd_active and statsd is None and StatsClient is not None: if not os.environ.get('STATSD_CUSTOMER'): raise Exception( 'STATSD_CUSTOMER must contain the name of the customer') customer = os.environ.get('STATSD_CUSTOMER') if os.environ.get('STATSD_ENVIRONMENT'): environment = os.environ['STATSD_ENVIRONMENT'] elif config.get('running_env'): environment = config['running_env'] else: raise Exception( 'Either STATSD_ENVIRONMENT or configuration option running_env ' 'must contain the environment (prod, integration, ...)') host = os.getenv('STATSD_HOST', defaults.HOST) port = int(os.getenv('STATSD_PORT', defaults.PORT)) prefix = os.getenv('STATSD_PREFIX', defaults.PREFIX) maxudpsize = int(os.getenv('STATSD_MAXUDPSIZE', defaults.MAXUDPSIZE)) ipv6 = bool(int(os.getenv('STATSD_IPV6', defaults.IPV6))) statsd = StatsClient(host=host, port=port, prefix='odoo', maxudpsize=maxudpsize, ipv6=ipv6)
def __init__(self, *_): host = settings.STATSD_HOST port = settings.STATSD_PORT prefix = settings.STATSD_PREFIX StandardStatsClient.__init__(self, host, port, prefix)
from __future__ import absolute_import from django.conf import settings from statsd import defaults from statsd.client import StatsClient statsd = None if statsd is None: host = getattr(settings, 'STATSD_HOST', defaults.HOST) port = getattr(settings, 'STATSD_PORT', defaults.PORT) prefix = getattr(settings, 'STATSD_PREFIX', defaults.PREFIX) maxudpsize = getattr(settings, 'STATSD_MAXUDPSIZE', defaults.MAXUDPSIZE) statsd = StatsClient(host=host, port=port, prefix=prefix, maxudpsize=maxudpsize)
from __future__ import absolute_import import os from statsd import defaults from statsd.client import StatsClient statsd = None if statsd is None: host = os.getenv('STATSD_HOST', defaults.HOST) port = int(os.getenv('STATSD_PORT', defaults.PORT)) prefix = os.getenv('STATSD_PREFIX', defaults.PREFIX) maxudpsize = int(os.getenv('STATSD_MAXUDPSIZE', defaults.MAXUDPSIZE)) statsd = StatsClient(host, port, prefix, maxudpsize)
def main(): parser = optparse.OptionParser( description='send statistics with <prefix> to statsd', usage='%prog [options] <prefix>', ) parser.epilog = 'ie: %s stats.ostools.hostname' % parser.get_prog_name() parser.add_option('-H', '--host', dest='host', metavar='HOST', default='localhost', help='statsd hostname/ip (default: localhost)', ) parser.add_option('-p', '--port', dest='port', metavar='PORT', type='int', default=8125, help='statsd port (default: 8125)', ) parser.add_option('-i', '--interval', dest='interval', metavar='INT', type='int', default=10, help='interval to pass to stat commands (default: 10)', ) parser.add_option('-d', '--debug', dest='debug', action='store_true', default=False, help='turn on debugging', ) (opts, args) = parser.parse_args() if len(args) != 1: parser.error('Please supply a stats prefix') sys.exit(1) prefix = args[0] if opts.debug: rootlogger = logging.getLogger() rootlogger.setLevel(logging.DEBUG) del rootlogger statsd = StatsClient(opts.host, opts.port, prefix) os.environ['LC_ALL'] = 'C' # standardize output format (datetime, ...) setproctitle('statsd-ostools: master %s:%s (%s)' % ( opts.host, opts.port, prefix, )) signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) kids = [] for workerklass in worker.workers: pid = os.fork() kids.append(pid) if pid == 0: sys.exit(workerklass(statsd, opts.interval).run()) while not SIGNALED: log.debug('master: sleeping...') time.sleep(opts.interval) for pid in kids: exceptions = [] try: os.kill(pid, signal.SIGTERM) os.waitpid(pid, 0) except OSError as e: if e.errno not in (errno.ECHILD, errno.ESRCH): exceptions.append(sys.exc_info()) for exc_info in exceptions: log.error('unhandled error during cleanup', exc_info=exc_info) sys.exit(0)
def insert_ipv6(**kwargs): if 'ipv6' not in kwargs: kwargs['ipv6'] = statsd_django_defaults.ipv6 return StatsClient(**kwargs)