From 61deda0d8fa75cc3e56f1512d58d2a3066dd8c26 Mon Sep 17 00:00:00 2001 From: ting Date: Fri, 8 Apr 2022 17:05:06 -0400 Subject: [PATCH] Health handler pings db (#43) * [add] db check to health handler * [change] set dev instances to 3 * [add] simplify dev deploy task * [change] simplify health logic * [change] make low-cost db query in health handler --- Karfile | 14 ++++++++++---- README.md | 2 +- app.py | 10 ---------- cdk/lib/app-stack.ts | 2 +- handlers/base.py | 11 +++++++++++ 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/Karfile b/Karfile index e91e0e7..a5603c0 100644 --- a/Karfile +++ b/Karfile @@ -10,10 +10,16 @@ DOCKER_OPTS=$(cat < None: LATENCY_BUFFERS[key].push(latency) def on_finish(self): + if self.handler_name == "Health": + return latency = (time.time() - self.start_time) * 1000 if not 200 <= self._status_code < 300: self.write_error_metric(latency) @@ -124,6 +128,13 @@ class HealthHandler(BaseHandler): """Return 200 OK.""" def get(self): + try: + Model.select().limit(1).count() + except: + msg = "Can't connect to db" + logging.exception(msg) + raise tornado.web.HTTPError(status_code=500, log_message=msg) + self.finish("OK")