Fix #4940: Added excetion handling for fetching table metric (#4941)

This commit is contained in:
Mayur Singal 2022-05-13 21:45:47 +05:30 committed by GitHub
parent 571b45ac52
commit c58e642ee7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -242,18 +242,25 @@ class Profiler(Generic[MetricType]):
the most expensive. the most expensive.
""" """
# Table metrics do not have column informed # Table metrics do not have column informed
table_metrics = [ try:
metric for metric in self.static_metrics if not metric.is_col_metric() table_metrics = [
] metric for metric in self.static_metrics if not metric.is_col_metric()
]
if not table_metrics: if not table_metrics:
return return
row = self.runner.select_first_from_table( row = self.runner.select_first_from_table(
*[metric().fn() for metric in table_metrics] *[metric().fn() for metric in table_metrics]
) )
if row: if row:
self._table_results.update(dict(row)) self._table_results.update(dict(row))
except (TimeoutError, Exception) as err:
logger.debug(traceback.format_exc())
logger.error(
f"Error while running table metric for: {self.table.__tablename__}"
)
self.session.rollback()
def run_query_metrics(self, col: Column) -> None: def run_query_metrics(self, col: Column) -> None:
""" """
@ -288,7 +295,6 @@ class Profiler(Generic[MetricType]):
self._column_results[col.name].update(dict(row)) self._column_results[col.name].update(dict(row))
except (TimeoutError, Exception) as err: # pylint: disable=broad-except except (TimeoutError, Exception) as err: # pylint: disable=broad-except
print(err)
logger.debug(traceback.format_exc()) logger.debug(traceback.format_exc())
logger.error( logger.error(
f"Error computing query metric {metric.name()} for {self.table.__tablename__}.{col.name} - {err}" f"Error computing query metric {metric.name()} for {self.table.__tablename__}.{col.name} - {err}"