728x90
Django Debug Toolbar 설치 + uWSGI 패널 추가하기
1. Getting Code
pip 를 통해 Django Debug Toolbar 를 설치한다.
1 | # pip install django-debug-toolbar | cs |
2. Prerequisites
INSTALLED_APPS 에 'django.contrib.staticfile' 가 포함되어 있는지 확인한다.
settings.py
1 2 3 4 5 6 | # Application definition INSTALLED_APPS = [ # ... 'django.contrib.staticfiles', # ... ] | cs |
3. URLConf
Debug Toolbar’s URLs을 프로젝트 URLs에 포함시킨다.
urls.py
1 2 3 4 5 6 7 8 | from django.conf import settings from django.conf.urls import url, include if settings.DEBUG: import debug_toolbar urlpatterns = [ url(r'^__debug__/', include(debug_toolbar.urls)), ] + urlpatterns | cs |
4. DDT를 위해 독립된 설정 영역
관리의 편이를 위해 DDT를 위해 독립된 설정 영역을 만든다.
INTERNAL_IPS 에 포함된 IP 에서만 해당 툴바가 보이게 된다. 당연히 아래 영역은 MIDDLEWARE_CLASSES, INSTALLED_APPS 하단에 위치해야 한다.
settings.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | DEBUG = True if DEBUG: INTERNAL_IPS = ('123.123.10.10', 'localhost',) MIDDLEWARE_CLASSES += ( 'debug_toolbar.middleware.DebugToolbarMiddleware', ) INSTALLED_APPS += ( 'debug_toolbar', ) DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', ] DEBUG_TOOLBAR_CONFIG = { 'INTERCEPT_REDIRECTS': False, } | cs |
DEBUG_TOOLBAR_CONFIG 에 False 로 포함된 INTERCEPT_REDIRECTS 는 클릭이 되지 않는다.
5. uWSGI 패널 추가하기
workers, applications, spooler jobs 등의 uWSGI stats 를 보여주는 uWSGI 패널을 추가해보자.
1) django-uwsgi 를 설치한다.
1 | # pip install django-uwsgi | cs |
2) INSTALLED_APPS 에 django_uwsgi 를 추가한다(django-uwsgi 가 아니라 django_uwsgi 임에 주의한다)
1 2 3 4 5 | INSTALLED_APPS = [ #... 'django_uwsgi', #... ] | cs |
3) DEBUG_TOOLBAR_PANELS 에 django_uwsgi.panels.UwsgiPanel 을 추가한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'django_uwsgi.panels.UwsgiPanel', ] | cs |
추가적인 패널에 대한 정보는 아래 링크를 참고한다.
http://django-debug-toolbar.readthedocs.io/en/stable/panels.html?highlight=uwsgi
실행 및 완성된 모습은 다음과 같다.
1 2 3 4 5 6 7 8 9 10 | # uwsgi --http :80 --wsgi-file wsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191 # uwsgitop 127.0.0.1:9191 uwsgi-2.0.15 - Sat May 20 14:57:10 2017 - req: 10 - RPS: 0 - lq: 0 - tx: 601.5K node: 127.0.0.1 - cwd: /root/vikander/vikander - uid: 0 - gid: 0 - masterpid: 7673 WID % PID REQ RPS EXC SIG STATUS AVG RSS VSZ TX ReSpwn HC RunT LastSpwn 3 60.0 7679 6 0 0 0 idle 30ms 0 0 601.3K 1 0 1793.9 14:56:09 2 20.0 7678 2 0 0 0 idle 295ms 0 0 58 1 0 786.194 14:56:09 4 20.0 7681 2 0 0 0 idle 297ms 0 0 58 1 0 789.861 14:56:09 1 0.0 7677 0 0 0 0 idle 0ms 0 0 0 1 0 0.0 14:56:09 | cs |
728x90