django-silk
django-silk copied to clipboard
Silk + cacheops not working
Env is Django 2.1.2 w/ uwsgi on Python 3.6 in the python alpine docker image. DB is MariaDB 10.3 in a different docker image.
Silk runs fine but if I enable cacheops
I get the following error + traceback at /silk/
(cacheops
works fine w/o silk)
FieldError at /silk/
Exception Type: | FieldError
Cannot compute Avg('num_queries'): 'num_queries' is an aggregate
/usr/local/lib/python3.6/site-packages/django/db/models/aggregates.py in resolve_expression, line 49
Environment:
Request Method: GET
Request URL: http://localhost:8000/silk/
Django Version: 2.1.2
Python Version: 3.6.6
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.humanize',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'countries',
'cuser',
'django_tables2',
'mathfilters',
'quartermixapp.apps.QuartermixappConfig',
'silk',
'qmlog',
'cacheops',
'django_celery_results']
Installed Middleware:
['silk.middleware.SilkyMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.6/site-packages/django/views/generic/base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/views/generic/base.py" in dispatch
88. return handler(request, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
45. return bound_method(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/silk/views/summary.py" in get
78. c = self._create_context(request)
File "/usr/local/lib/python3.6/site-packages/silk/views/summary.py" in _create_context
59. avg_overall_time = self._avg_num_queries(filters)
File "/usr/local/lib/python3.6/site-packages/silk/views/summary.py" in _avg_num_queries
16. queries__aggregate = models.Request.objects.filter(*filters).annotate(num_queries=Count('queries')).aggregate(num=Avg('num_queries'))
File "/usr/local/lib/python3.6/site-packages/cacheops/query.py" in aggregate
312. qs = self.clone().annotate(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py" in annotate
1008. clone.query.add_annotation(annotation, alias, is_summary=False)
File "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py" in add_annotation
988. summarize=is_summary)
File "/usr/local/lib/python3.6/site-packages/django/db/models/aggregates.py" in resolve_expression
49. raise FieldError("Cannot compute %s('%s'): '%s' is an aggregate" % (c.name, name, name))
Exception Type: FieldError at /silk/
Exception Value: Cannot compute Avg('num_queries'): 'num_queries' is an aggregate
Also experiencing this. I commented out the "cacheops" in my INSTALLED_APPS
as a temporary measure and silk now appears to work.