From: Jan Fajerski Date: Wed, 29 Nov 2017 11:23:55 +0000 (+0100) Subject: pybind/mgr/prometheus: return 503 if MON cluster is down X-Git-Tag: v12.2.5~58^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0ed3fa009930ae56f3f5a29f8ac6d10b3d47b86c;p=ceph.git pybind/mgr/prometheus: return 503 if MON cluster is down Signed-off-by: Jan Fajerski (cherry picked from commit eda9f15dd939de3e7205ceb0dfcc9fcfce7d89bb) --- diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py index 4dcc52a800352..88cf04be2f3a8 100644 --- a/src/pybind/mgr/prometheus/module.py +++ b/src/pybind/mgr/prometheus/module.py @@ -259,10 +259,6 @@ class Module(MgrModule): return metrics - def shutdown(self): - self.serving = False - pass - def get_health(self): health = json.loads(self.get('health')['json']) self.metrics['health_status'].set( @@ -449,10 +445,13 @@ class Module(MgrModule): @cherrypy.expose def metrics(self): - metrics = global_instance().collect() - cherrypy.response.headers['Content-Type'] = 'text/plain' - if metrics: - return self.format_metrics(metrics) + if global_instance().have_mon_connection(): + metrics = global_instance().collect() + cherrypy.response.headers['Content-Type'] = 'text/plain' + if metrics: + return self.format_metrics(metrics) + else: + raise cherrypy.HTTPError(503, 'No MON connection') server_addr = self.get_localized_config('server_addr', DEFAULT_ADDR) server_port = self.get_localized_config('server_port', DEFAULT_PORT) @@ -477,6 +476,11 @@ class Module(MgrModule): cherrypy.engine.start() cherrypy.engine.block() + def shutdown(self): + self.serving = False + pass + + class StandbyModule(MgrStandbyModule): def serve(self): server_addr = self.get_localized_config('server_addr', '::')