From 2395fbbdaaa5c81c3559f17cedf2e998b8341cb9 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Tue, 16 May 2017 20:34:38 -0700 Subject: [PATCH] Adding `end_result_backend_time` to Query model (#2766) This will help us keep track on how long it takes to push the data into the results backend. --- ...8420354_add_result_backend_time_logging.py | 26 +++++++++++++++++++ superset/models/sql_lab.py | 8 +++--- superset/sql_lab.py | 1 + 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 superset/migrations/versions/a65458420354_add_result_backend_time_logging.py diff --git a/superset/migrations/versions/a65458420354_add_result_backend_time_logging.py b/superset/migrations/versions/a65458420354_add_result_backend_time_logging.py new file mode 100644 index 0000000000000..49a9d1b74e812 --- /dev/null +++ b/superset/migrations/versions/a65458420354_add_result_backend_time_logging.py @@ -0,0 +1,26 @@ +"""add_result_backend_time_logging + +Revision ID: a65458420354 +Revises: 2fcdcb35e487 +Create Date: 2017-04-25 10:00:58.053120 + +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic. +revision = 'a65458420354' +down_revision = '2fcdcb35e487' + + +def upgrade(): + op.add_column( + 'query', + sa.Column( + 'end_result_backend_time', + sa.Numeric(precision=20, scale=6), + nullable=True)) + + +def downgrade(): + op.drop_column('query', 'end_result_backend_time') diff --git a/superset/models/sql_lab.py b/superset/models/sql_lab.py index 84964b9cf57c5..00eb388150041 100644 --- a/superset/models/sql_lab.py +++ b/superset/models/sql_lab.py @@ -65,9 +65,11 @@ class Query(Model): # Using Numeric in place of DateTime for sub-second precision # stored as seconds since epoch, allowing for milliseconds - start_time = Column(Numeric(precision=3)) - start_running_time = Column(Numeric(precision=3)) - end_time = Column(Numeric(precision=3)) + start_time = Column(Numeric(precision=20, scale=6)) + start_running_time = Column(Numeric(precision=20, scale=6)) + end_time = Column(Numeric(precision=20, scale=6)) + end_result_backend_time = Column(Numeric(precision=20, scale=6)) + changed_on = Column( DateTime, default=datetime.utcnow, diff --git a/superset/sql_lab.py b/superset/sql_lab.py index bb3c4304f834a..7158d9c755c96 100644 --- a/superset/sql_lab.py +++ b/superset/sql_lab.py @@ -188,6 +188,7 @@ def handle_error(msg): logging.info("Storing results in results backend, key: {}".format(key)) results_backend.set(key, utils.zlib_compress(payload)) query.results_key = key + query.end_result_backend_time = utils.now_as_float() session.merge(query) session.commit()