Python/Django

[Django] Query Profiling Tool (3) - Silk

yubi5050 2022. 8. 12. 10:35

Django Silk 란

Django Silk는 Request의 총 걸린 시간 / Query 시간 / Query 갯수 등을 Profiling 해주는 Tool

기본적으로 Request와 Response를 DB에 저장하기 때문에 자체가 서버에 부하를 줄 수 있음

 

Request 마다 걸린 시간 / Query 수 / Query 문 등을 분석 할 수 있으며, DB Clear도 웹으로 편하게 가능

 

Django Silk 설치

pip install django-silk

https://pypi.org/project/django-silk/

 

django-silk

Silky smooth profiling for the Django Framework

pypi.org

 

settings.py

app, middleware, 옵션 추가

INSTALLED_APPS = [
    # ...
    'silk',
]

MIDDLEWARE = [
    'silk.middleware.SilkyMiddleware',
]

SILKY_PYTHON_PROFILER = True

 

urls.py

from django.conf import settings
from django.urls import include, path

urlpatterns = [
    ...
]

if settings.DEBUG:
    urlpatterns += [path('silk/', include('silk.urls'))]

 

views.py

체크하고자 하는 API에 silk_profile Decorator를 붙임

from silk.profiling.profiler import silk_profile
@silk_profile(name='signup')
def sign_up_view(request):
    if request.method == 'GET':
      # ...

 

작동 화면

/silk/ url 접속하여 Request, Response별 저장된 정보 확인