mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-04-13 09:42:01 +00:00
Splitting redis query logging into three dbs: user, story, and session.
This commit is contained in:
parent
8348da9c59
commit
abfacef9c9
3 changed files with 37 additions and 9 deletions
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue