Skip to content

Commit

Permalink
get_app_status: wrap call of additional check in logged duration to g…
Browse files Browse the repository at this point in the history
…et better detail about any individual failures
  • Loading branch information
risicle committed Feb 20, 2019
1 parent b8adbc0 commit 4663579
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion dmutils/status.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import math
import os
import sys
from flask import jsonify, current_app


from dmutils.timing import logged_duration


def get_version_label(path):
try:
path = os.path.join(path, 'version_label')
Expand Down Expand Up @@ -39,7 +43,18 @@ def __init__(self, message):
def _perform_additional_checks(additional_checks, response_data, error_messages):
for additional_check in additional_checks:
try:
response_data.update(additional_check())
with logged_duration(
logger=current_app.logger,
message=(
lambda log_context: logged_duration.default_message(log_context) + " ({check_function})"
),
condition=(
lambda log_context: logged_duration.default_condition(log_context) or sys.exc_info()[0] is not None
),
) as log_context:
log_context["check_function"] = str(additional_check)
check_result = additional_check()
response_data.update(check_result)
except StatusError as e:
error_messages.append(e.message)

Expand Down

0 comments on commit 4663579

Please sign in to comment.