39 lines
954 B
Python
39 lines
954 B
Python
import time
|
|
|
|
import structlog
|
|
from django.db import connection, reset_queries
|
|
|
|
logger = structlog.get_logger(__name__)
|
|
|
|
|
|
class QueryCountDebugMiddleware:
|
|
def __init__(self, get_response):
|
|
self.get_response = get_response
|
|
|
|
def __call__(self, request):
|
|
if not request.path.startswith("/api/") and not request.path.startswith(
|
|
"/server/"
|
|
):
|
|
return self.get_response(request)
|
|
|
|
reset_queries()
|
|
start_queries = len(connection.queries)
|
|
start_time = time.time()
|
|
|
|
response = self.get_response(request)
|
|
|
|
end_queries = len(connection.queries)
|
|
end_time = time.time()
|
|
|
|
total_queries = end_queries - start_queries
|
|
duration = end_time - start_time
|
|
|
|
logger.debug(
|
|
"query_count_middleware",
|
|
request_path=request.path,
|
|
queries=total_queries,
|
|
duration=duration,
|
|
)
|
|
|
|
return response
|