Django Debug Logging is a "plugin" for the Django Debug Toolbar that allows users to log the debug toolbar statistics to the database during a site crawl. This allows users to create performance testing plans to exercise the site, and then review and aggregate the results afterwards to identify performance problems.
It also provides a basic UI for browsing the details that have been logged to the database and reviewing aggregated information about test runs. The UI borrows a lot from the custom Sphinx theme by the Read the Docs team, and the Sentry project from Disqus.
The overall goal is to use this tool to monitor performance statistics over time, so that you can see trends and spikes in the number of queries, cache misses, cpu time, etc., and identify where in the app the problems are coming from. It is not intended as a load testing tool, so features like concurrency and warmup periods will not be part of the initial focus.
The docs can be found on Read the Docs
The main Debug Logging frontend view:
![Debug Logging main view](https://github.com/lincolnloop/django-debug-logging/raw/develop/docs/screenshots/debug_logging.png?raw=true)
A test run:
![Debug Logging aggregated stats](https://github.com/lincolnloop/django-debug-logging/raw/develop/docs/screenshots/debug_logging_2.png?raw=true)
A log record:
![Debug Logging detail view](https://github.com/lincolnloop/django-debug-logging/raw/develop/docs/screenshots/debug_logging_3.png?raw=true)
We welcome contributions! Here are some of our main priorities for continued development:
- Add a --repeat option to the log_urls command so that the urls can be run through multiple times.
- Write more complex performance tests that use TestCase classes and log each request from the Django test client.
- Graph the aggregated stats of the runs.
- Take more inspiration from Sentry and group hits on the same urls within the same run together, showing aggregated and individual stats.