Merge pull request #549 from minrk/optional-statsd

Make statsd an optional dependency
This commit is contained in:
Kyle Kelley
2016-04-26 07:46:28 -05:00
2 changed files with 8 additions and 11 deletions

View File

@@ -12,7 +12,6 @@ import signal
import socket import socket
import sys import sys
import threading import threading
import statsd
from datetime import datetime from datetime import datetime
from distutils.version import LooseVersion as V from distutils.version import LooseVersion as V
from getpass import getuser from getpass import getuser
@@ -507,22 +506,21 @@ class JupyterHub(Application):
Instance(logging.Handler), Instance(logging.Handler),
help="Extra log handlers to set on JupyterHub logger", help="Extra log handlers to set on JupyterHub logger",
).tag(config=True) ).tag(config=True)
@property statsd = Any(allow_none=False, help="The statsd client, if any. A mock will be used if we aren't using statsd")
def statsd(self): @default('statsd')
if hasattr(self, '_statsd'): def _statsd(self):
return self._statsd
if self.statsd_host: if self.statsd_host:
self._statsd = statsd.StatsClient( import statsd
client = statsd.StatsClient(
self.statsd_host, self.statsd_host,
self.statsd_port, self.statsd_port,
self.statsd_prefix self.statsd_prefix
) )
return self._statsd return client
else: else:
# return an empty mock object! # return an empty mock object!
self._statsd = EmptyClass() return EmptyClass()
return self._statsd
def init_logging(self): def init_logging(self):
# This prevents double log messages because tornado use a root logger that # This prevents double log messages because tornado use a root logger that

View File

@@ -2,6 +2,5 @@ traitlets>=4.1
tornado>=4.1 tornado>=4.1
jinja2 jinja2
pamela pamela
statsd
sqlalchemy>=1.0 sqlalchemy>=1.0
requests requests