diff --git a/apps/profile/middleware.py b/apps/profile/middleware.py index 0cadc1a8b..f813b5c2f 100644 --- a/apps/profile/middleware.py +++ b/apps/profile/middleware.py @@ -146,8 +146,14 @@ class SQLLogToConsoleMiddleware: for query in queries: if query.get('mongo'): query['sql'] = "~FM%s: %s" % (query['mongo']['collection'], query['mongo']['query']) - elif query.get('redis'): - query['sql'] = "~FC%s" % (query['redis']['query']) + elif query.get('db_redis'): + query['sql'] = "~FC%s" % (query['db_redis']['query']) + elif query.get('redis_user'): + query['sql'] = "~FC%s" % (query['redis_user']['query']) + elif query.get('redis_story'): + query['sql'] = "~FC%s" % (query['redis_story']['query']) + elif query.get('redis_session'): + query['sql'] = "~FC%s" % (query['redis_session']['query']) else: query['sql'] = re.sub(r'SELECT (.*?) FROM', 'SELECT * FROM', query['sql']) query['sql'] = re.sub(r'SELECT', '~FYSELECT', query['sql']) @@ -164,9 +170,15 @@ class SQLLogToConsoleMiddleware: times_elapsed = { 'sql': sum([float(q['time']) for q in queries if not q.get('mongo') and - not q.get('redis')]), + not q.get('redis_user') and + not q.get('redis_story') and + not q.get('redis_session') and + not q.get('db_redis')]), 'mongo': sum([float(q['time']) for q in queries if q.get('mongo')]), - 'redis': sum([float(q['time']) for q in queries if q.get('redis')]), + 'db_redis': sum([float(q['time']) for q in queries if q.get('db_redis')]), + 'redis_user': sum([float(q['time']) for q in queries if q.get('redis_user')]), + 'redis_story': sum([float(q['time']) for q in queries if q.get('redis_story')]), + 'redis_session': sum([float(q['time']) for q in queries if q.get('redis_session')]), } setattr(request, 'sql_times_elapsed', times_elapsed) else: diff --git a/utils/redis_raw_log_middleware.py b/utils/redis_raw_log_middleware.py index 33792e264..4a1811364 100644 --- a/utils/redis_raw_log_middleware.py +++ b/utils/redis_raw_log_middleware.py @@ -50,7 +50,7 @@ class RedisDumpMiddleware(object): if not getattr(connection, 'queriesx', False): connection.queriesx = [] connection.queriesx.append({ - 'redis': message, + message['redis_server_name']: message, 'time': '%.6f' % duration, }) return result @@ -58,13 +58,16 @@ class RedisDumpMiddleware(object): def process_message(self, *args, **kwargs): query = [] + redis_server_name = None for a, arg in enumerate(args): if isinstance(arg, Connection): + redis_connection = arg + redis_server_name = redis_connection.host continue if len(str(arg)) > 100: arg = "[%s bytes]" % len(str(arg)) query.append(str(arg).replace('\n', '')) - return { 'query': ' '.join(query) } + return { 'query': ' '.join(query), 'redis_server_name': redis_server_name } def __call__(self, request): response = None diff --git a/utils/request_introspection_middleware.py b/utils/request_introspection_middleware.py index 5f0360e74..12034ae62 100644 --- a/utils/request_introspection_middleware.py +++ b/utils/request_introspection_middleware.py @@ -21,14 +21,27 @@ class DumpRequestMiddleware: def process_response(self, request, response): if hasattr(request, 'sql_times_elapsed'): - logging.debug(" ---> %s~SN~FCDB times: ~FYsql: %s%.4f~SNs ~SN~FMmongo: %s%.5f~SNs ~SN~FCredis: %s%.6f~SNs" % ( + if request.sql_times_elapsed.get('redis_user'): + redis_log = "user:%s%.6f~SNs story:%s%.6f~SNs session:%s%.6f~SNs" % ( + self.color_db(request.sql_times_elapsed['redis_user'], '~FC'), + request.sql_times_elapsed['redis_user'], + self.color_db(request.sql_times_elapsed['redis_story'], '~FC'), + request.sql_times_elapsed['redis_story'], + self.color_db(request.sql_times_elapsed['redis_session'], '~FC'), + request.sql_times_elapsed['redis_session'], + ) + else: + redis_log = "%s%.6f~SNs" % ( + self.color_db(request.sql_times_elapsed['db_redis'], '~FC'), + request.sql_times_elapsed['db_redis'], + ) + logging.debug(" ---> %s~SN~FCDB times: ~FYsql: %s%.4f~SNs ~SN~FMmongo: %s%.5f~SNs ~SN~FCredis: %s" % ( self.elapsed_time(request), self.color_db(request.sql_times_elapsed['sql'], '~FY'), request.sql_times_elapsed['sql'], self.color_db(request.sql_times_elapsed['mongo'], '~FM'), request.sql_times_elapsed['mongo'], - self.color_db(request.sql_times_elapsed['redis'], '~FC'), - request.sql_times_elapsed['redis'], + redis_log )) return response