/django-debug-toolbar-request-history

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Request History Panel for Django Debug Toolbar

Adds a request history panel to Django Debug Toolbar for viewing stats for different requests (with the option for ajax support).

Install

pip install django-debug-toolbar-request-history

or for development version:

pip install git+https://github.com/djsutho/django-debug-toolbar-request-history.git

Add the panel to DEBUG_TOOLBAR_PANELS (see the config section for more details).

Usage

  • Click on the "Request History" panel in the toolbar to load the available requests
  • Click on the request you are interested in (on the "Time" or "Path" part of the request) to load the toolbar for that request

Notes

Due to django-debug-toolbar reliance on thread-local:

  • currently requests do not survive server reload, therefore, when using the dev server old requests will not be available after a code change is loaded
  • if you get inconsistent request history each time you click on the panel, lower your server threads to 1

Config (in settings.py)

To DEBUG_TOOLBAR_PANELS add 'ddt_request_history.panels.request_history.RequestHistoryPanel' e.g.:

DEBUG_TOOLBAR_PANELS = [
    'ddt_request_history.panels.request_history.RequestHistoryPanel',  # Here it is 
    '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.templates.TemplatesPanel',
    'debug_toolbar.panels.staticfiles.StaticFilesPanel',
    'debug_toolbar.panels.cache.CachePanel',
    'debug_toolbar.panels.signals.SignalsPanel',
    'debug_toolbar.panels.logging.LoggingPanel',
    'debug_toolbar.panels.redirects.RedirectsPanel',
    'debug_toolbar.panels.profiling.ProfilingPanel',
]

For vesions of the debug toolbar less than 1.8 you can record ajax requests by adding SHOW_TOOLBAR_CALLBACK to DEBUG_TOOLBAR_CONFIG e.g.:

DEBUG_TOOLBAR_CONFIG = {
    # only requred for debug_toolbar versions below 1.8
    'SHOW_TOOLBAR_CALLBACK': 'ddt_request_history.panels.request_history.allow_ajax',
}

To change the number of stored requests add RESULTS_STORE_SIZE to DEBUG_TOOLBAR_CONFIG e.g.:

DEBUG_TOOLBAR_CONFIG = {
    'RESULTS_STORE_SIZE': 100,
}

TODO

  • Clean-up
  • Change the storage to survive server reloads (maybe use cache or session).