Adding db profiler to 1% of app calls.

This commit is contained in:
Samuel Clay 2018-02-26 15:02:26 -08:00
parent ac541fe221
commit 55eb59c0cd
2 changed files with 21 additions and 1 deletions

View file

@ -69,6 +69,13 @@ class DBProfilerMiddleware:
logging.debug(" ---> ~FGProfiling~FB task: %s" % self.sql_times_elapsed)
self._save_times(self.sql_times_elapsed, 'task_')
def process_request_finished(self):
middleware = SQLLogToConsoleMiddleware()
middleware.process_celery(self)
if hasattr(self, 'sql_times_elapsed'):
logging.debug(" ---> ~FGProfiling~FB app: %s" % self.sql_times_elapsed)
self._save_times(self.sql_times_elapsed, 'app_')
def _save_times(self, db_times, prefix=""):
if not db_times: return

View file

@ -49,6 +49,9 @@ from apps.social.models import MSocialSubscription, MActivity, MInteraction
from apps.categories.models import MCategory
from apps.social.views import load_social_page
from apps.rss_feeds.tasks import ScheduleImmediateFetches
from apps.profile.middleware import DBProfilerMiddleware
from utils.mongo_raw_log_middleware import MongoDumpMiddleware
from utils.redis_raw_log_middleware import RedisDumpMiddleware
from utils import json_functions as json
from utils.user_functions import get_user, ajax_login_required
from utils.feed_functions import relative_timesince
@ -1248,7 +1251,15 @@ def load_river_stories__redis(request):
user_search = None
offset = (page-1) * limit
story_date_order = "%sstory_date" % ('' if order == 'oldest' else '-')
profiler = DBProfilerMiddleware()
profiler.process_request(request)
if 'db_profiler' in request.activated_segments:
mongo_middleware = MongoDumpMiddleware()
mongo_middleware.process_celery(profiler)
redis_middleware = RedisDumpMiddleware()
redis_middleware.process_celery(profiler)
if infrequent:
feed_ids = Feed.low_volume_feeds(feed_ids, stories_per_month=infrequent)
@ -1442,6 +1453,8 @@ def load_river_stories__redis(request):
if include_feeds: data['feeds'] = feeds
if not include_hidden: data['hidden_stories_removed'] = hidden_stories_removed
if 'db_profiler' in request.activated_segments:
profiler.process_request_finished()
return data