Added request profiler and a management command to purge profiler records.
- Legacy-Id: 17648
This commit is contained in:
parent
1b94e10f4a
commit
78963ecdef
|
@ -60,3 +60,5 @@ $DTDIR/ietf/manage.py fetch_meeting_attendance --latest 2
|
||||||
# Send reminders originating from the review app
|
# Send reminders originating from the review app
|
||||||
$DTDIR/ietf/bin/send-review-reminders
|
$DTDIR/ietf/bin/send-review-reminders
|
||||||
|
|
||||||
|
# Purge old request_profiler records
|
||||||
|
$DTDIR/ietf/manage.py purge_request_profiler_records
|
||||||
|
|
|
@ -357,6 +357,9 @@ if DEBUG:
|
||||||
|
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
# Must be first to measure correct request timing
|
||||||
|
'request_profiler.middleware.ProfilingMiddleware',
|
||||||
|
#
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'corsheaders.middleware.CorsMiddleware', # see docs on CORS_REPLACE_HTTPS_REFERER before using it
|
'corsheaders.middleware.CorsMiddleware', # see docs on CORS_REPLACE_HTTPS_REFERER before using it
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
|
@ -405,6 +408,7 @@ INSTALLED_APPS = [
|
||||||
'django_password_strength',
|
'django_password_strength',
|
||||||
'djangobwr',
|
'djangobwr',
|
||||||
'form_utils',
|
'form_utils',
|
||||||
|
'request_profiler',
|
||||||
'simple_history',
|
'simple_history',
|
||||||
'tastypie',
|
'tastypie',
|
||||||
'widget_tweaks',
|
'widget_tweaks',
|
||||||
|
@ -1118,9 +1122,10 @@ if SERVER_MODE != 'production':
|
||||||
|
|
||||||
CACHES = {
|
CACHES = {
|
||||||
'default': {
|
'default': {
|
||||||
|
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
|
||||||
#'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
#'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
||||||
#'LOCATION': '127.0.0.1:11211',
|
#'LOCATION': '127.0.0.1:11211',
|
||||||
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
|
#'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
|
||||||
'VERSION': __version__,
|
'VERSION': __version__,
|
||||||
'KEY_PREFIX': 'ietf:dt',
|
'KEY_PREFIX': 'ietf:dt',
|
||||||
},
|
},
|
||||||
|
|
|
@ -34,3 +34,6 @@ DATABASES = {
|
||||||
|
|
||||||
if TEST_CODE_COVERAGE_CHECKER and not TEST_CODE_COVERAGE_CHECKER._started: # pyflakes:ignore
|
if TEST_CODE_COVERAGE_CHECKER and not TEST_CODE_COVERAGE_CHECKER._started: # pyflakes:ignore
|
||||||
TEST_CODE_COVERAGE_CHECKER.start() # pyflakes:ignore
|
TEST_CODE_COVERAGE_CHECKER.start() # pyflakes:ignore
|
||||||
|
|
||||||
|
REQUEST_PROFILE_STORE_ANONYMOUS_SESSIONS = False
|
||||||
|
|
|
@ -51,3 +51,5 @@ PHOTOS_DIR = MEDIA_ROOT + PHOTOS_DIRNAME # pyflakes:i
|
||||||
MIDDLEWARE = [ c for c in MIDDLEWARE if not c in DEV_MIDDLEWARE ] # pyflakes:ignore
|
MIDDLEWARE = [ c for c in MIDDLEWARE if not c in DEV_MIDDLEWARE ] # pyflakes:ignore
|
||||||
|
|
||||||
TEMPLATES[0]['OPTIONS']['context_processors'] = [ p for p in TEMPLATES[0]['OPTIONS']['context_processors'] if not p in DEV_TEMPLATE_CONTEXT_PROCESSORS ] # pyflakes:ignore
|
TEMPLATES[0]['OPTIONS']['context_processors'] = [ p for p in TEMPLATES[0]['OPTIONS']['context_processors'] if not p in DEV_TEMPLATE_CONTEXT_PROCESSORS ] # pyflakes:ignore
|
||||||
|
|
||||||
|
REQUEST_PROFILE_STORE_ANONYMOUS_SESSIONS = False
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
# Copyright The IETF Trust 2020, All Rights Reserved
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
from textwrap import dedent
|
||||||
|
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
|
import debug # pyflakes:ignore
|
||||||
|
|
||||||
|
from request_profiler.models import ProfilingRecord
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
"""
|
||||||
|
Purge information older than a given number of days (default 30) from the
|
||||||
|
profiling records table
|
||||||
|
"""
|
||||||
|
|
||||||
|
help = dedent(__doc__).strip()
|
||||||
|
|
||||||
|
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
parser.add_argument('-d', '--days', dest='days', type=int, default=30,
|
||||||
|
help='Purge records older than this (default %(default)s days).')
|
||||||
|
|
||||||
|
def handle(self, *filenames, **options):
|
||||||
|
start = datetime.datetime.now() - datetime.timedelta(days=int(options['days']))
|
||||||
|
deleted = ProfilingRecord.objects.filter(start_ts__lt=start).delete()
|
||||||
|
self.stdout.write('deleted: %s' % str(deleted))
|
|
@ -19,6 +19,7 @@ django-formtools>=1.0 # instead of django.contrib.formtools in 1.8
|
||||||
django-markup>=1.1
|
django-markup>=1.1
|
||||||
django-password-strength>=1.2.1
|
django-password-strength>=1.2.1
|
||||||
django-referrer-policy>=1.0
|
django-referrer-policy>=1.0
|
||||||
|
django-request-profiler==0.14 # 0.15 and above requires Django 2.x
|
||||||
django-simple-history>=2.3.0
|
django-simple-history>=2.3.0
|
||||||
django-stubs==1.3.0
|
django-stubs==1.3.0
|
||||||
django-tastypie>=0.13.2
|
django-tastypie>=0.13.2
|
||||||
|
|
Loading…
Reference in a new issue