From 0e6c14e707e41accf8b0cbbdd0f9f41f008e78b6 Mon Sep 17 00:00:00 2001 From: Elijah DeLee Date: Thu, 18 Feb 2021 17:56:01 -0500 Subject: [PATCH] create performance logger to log api response time this middleware allready existed, and we were trying to log this data but it was not working. Hope is these logs will be able to be shipped via external logging and we could use kibana to track response time of different endpoints --- awx/main/middleware.py | 5 ++++- awx/settings/defaults.py | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/awx/main/middleware.py b/awx/main/middleware.py index 8bfd273811..2d509c9c61 100644 --- a/awx/main/middleware.py +++ b/awx/main/middleware.py @@ -45,7 +45,10 @@ class TimingMiddleware(threading.local, MiddlewareMixin): response['X-API-Total-Time'] = '%0.3fs' % total_time if settings.AWX_REQUEST_PROFILE: response['X-API-Profile-File'] = self.prof.stop() - perf_logger.info('api response times', extra=dict(python_objects=dict(request=request, response=response))) + perf_logger.info( + f'request: {request}, response_time: {response["X-API-Total-Time"]}', + extra=dict(python_objects=dict(request=request, response=response, X_API_TOTAL_TIME=response["X-API-Total-Time"])) + ) return response diff --git a/awx/settings/defaults.py b/awx/settings/defaults.py index af1590862c..f995ad6000 100644 --- a/awx/settings/defaults.py +++ b/awx/settings/defaults.py @@ -1044,6 +1044,11 @@ LOGGING = { 'level': 'INFO', 'propagate': False }, + 'awx.analytics.performance': { + 'handlers': ['console', 'file', 'tower_warnings', 'external_logger'], + 'level': 'DEBUG', + 'propagate': False + }, 'awx.analytics.job_lifecycle': { 'handlers': ['console', 'job_lifecycle'], 'level': 'DEBUG',