From c317cbce367e5f4843b37ef461f73e3a1875c155 Mon Sep 17 00:00:00 2001 From: Joshua Milas Date: Fri, 22 Sep 2017 12:13:15 -0400 Subject: [PATCH] Added additional statsd info for the spawner spawner.failure coutner collects the number of failures for various reasons: spawner.stop timer for seeing how long it takes a user server to stop --- jupyterhub/handlers/base.py | 1 + jupyterhub/user.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/jupyterhub/handlers/base.py b/jupyterhub/handlers/base.py index af16c9c2..9bde4211 100644 --- a/jupyterhub/handlers/base.py +++ b/jupyterhub/handlers/base.py @@ -545,6 +545,7 @@ class BaseHandler(RequestHandler): spawner._stop_pending = False toc = IOLoop.current().time() self.log.info("User %s server took %.3f seconds to stop", user.name, toc - tic) + self.statsd.timing('spawner.stop', (toc - tic) * 1000) try: yield gen.with_timeout(timedelta(seconds=self.slow_stop_timeout), stop()) diff --git a/jupyterhub/user.py b/jupyterhub/user.py index dcb6d67d..7f1bbbd4 100644 --- a/jupyterhub/user.py +++ b/jupyterhub/user.py @@ -421,10 +421,12 @@ class User(HasTraits): user=self.name, s=spawner.start_timeout, )) e.reason = 'timeout' + self.settings['statsd'].incr('spawner.failure.timeout') else: self.log.error("Unhandled error starting {user}'s server: {error}".format( user=self.name, error=e, )) + self.settings['statsd'].incr('spawner.failure.error') e.reason = 'error' try: yield self.stop() @@ -457,11 +459,13 @@ class User(HasTraits): ) ) e.reason = 'timeout' + self.settings['statsd'].incr('spawner.failure.http_timeout') else: e.reason = 'error' self.log.error("Unhandled error waiting for {user}'s server to show up at {url}: {error}".format( user=self.name, url=server.url, error=e, )) + self.settings['statsd'].incr('spawner.failure.http_error') try: yield self.stop() except Exception: