目的
この記事では、Django Debug Toolbarのデバッグ情報とカスタマイズ方法について説明する。
概要説明と実施内容
表示パネルの概要説明
以下、インストール後の初期状態から表示されているデフォルトパネルについて説明する。
-
Versions
Webアプリで使用されているモジュール(フレームワーク、言語、プラグイン等)のバージョン情報が表示される。
-
Time(時刻)
現在の画面が表示されるまでの各処理に要した時間が確認できる。
- Resource usage > User CPU time
クライアントからリクエストを受信してからページ構成を準備するまでの時間。 - Resource usage > System CPU time
「User CPU time」の後にサーバーがレスポンス情報を作成し、クライアントに返すまでの時間。 - Resource usage > Total CPU time
リクエストを受信してからクライアントに返すまでの時間。
(「User CPU time」 + 「System CPU time」 の合計) - Resource usage > Elapsed time
Total CPU time」にHTML、CSS、Javascriptに関するサーバー処理とクライアントでレタリングする時間を加えた時間。 - Resource usage > Context switches
voluntary context switchesは、複数のプロセスを効率良く実行するため、自発的にコンテキストスイッチを実行した回数でinvoluntary context switchesは、実行優先度が高いプロセスを実行するために、強制的にコンテキストスイッチを実行した回数。
- Resource usage > User CPU time
-
Settings
settings.pyを一覧で確認できる。
-
Headers
HTTPのリクエストヘッダー情報、レスポンスヘッダー情報を確認できる。
-
Request
ViewやCookie、Sessionなどのリクエスト情報を確認できる。
-
SQL
画面が表示されるまでに実行されたSQL文をはじめ、それぞれに要した実行時間やStacktraceを確認できる。
-
Static Files
画面を表示する際に読み込んだStaticファイルを確認できる。
-
Templates
画面を表示する際に使用された継承も含むTemplateファイルを確認できる。
-
Cache
画面を表示する際に利用されたキャッシュバックエンド情報を確認できる。
-
Signals
FrameWorkに備わっている各アクション単位での通知の受け渡し一覧。
-
Logging
loggingモジュールで出力したログが確認できる。
-
Intercept redirects
デフォルト無効であるチェックボックスを有効にするとリダイレクトが中断されるようになる。
※ リダイレクト処理をデバッグするときに使用する。
表示パネルのカスタマイズ
上記デフォルトパネルは、settings.pyのDEBUG_TOOLBAR_PANELS
に設定されている。
-
settings.pyの
DEBUG_TOOLBAR_PANELS
(デフォルト) 下記DEBUG_TOOLBAR_PANELS
を変更することでパネルの並び替えや削除、追加ができるようになる。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_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.profiling.ProfilingPanel' # 追記 ]
末尾に追加したプロファイリング情報が確認できるようになる。
-
その他のパネルについて 下記サードパーティ製のパネルを参照。
https://django-debug-toolbar.readthedocs.io/en/stable/panels.html#third-party-panels