Update statsd decorator so that it will log on error.

Added logging for the build_dvla_file task
This commit is contained in:
Rebecca Law
2017-03-17 12:38:24 +00:00
parent d090451dd8
commit f01760f6e6
2 changed files with 26 additions and 13 deletions

View File

@@ -10,20 +10,30 @@ def statsd(namespace):
@functools.wraps(func)
def wrapper(*args, **kwargs):
start_time = monotonic()
res = func(*args, **kwargs)
elapsed_time = monotonic() - start_time
current_app.logger.info(
"{namespace} call {func} took {time}".format(
namespace=namespace, func=func.__name__, time="{0:.4f}".format(elapsed_time)
try:
res = func(*args, **kwargs)
elapsed_time = monotonic() - start_time
except Exception as e:
current_app.logger.error(
"{namespace} call {func} failed".format(
namespace=namespace, func=func.__name__
)
)
)
statsd_client.incr('{namespace}.{func}'.format(
namespace=namespace, func=func.__name__)
)
statsd_client.timing('{namespace}.{func}'.format(
namespace=namespace, func=func.__name__), elapsed_time
)
return res
raise e
else:
current_app.logger.info(
"{namespace} call {func} took {time}".format(
namespace=namespace, func=func.__name__, time="{0:.4f}".format(elapsed_time)
)
)
statsd_client.incr('{namespace}.{func}'.format(
namespace=namespace, func=func.__name__)
)
statsd_client.timing('{namespace}.{func}'.format(
namespace=namespace, func=func.__name__), elapsed_time
)
return res
wrapper.__wrapped__.__name__ = func.__name__
return wrapper