WSGI Middleware version of the CherryPy memory leak debugger
Dozer was originally a WSGI middleware version of Robert Brewer’s Dowser CherryPy tool that displays information as collected by the gc module to assist in tracking down memory leaks. It now also has middleware for profiling and for looking at logged messages.
Tracking down memory leaks
from dozer import Dozer # my_wsgi_app is a WSGI application wsgi_app = Dozer(my_wsgi_app)
Assuming you’re serving your application on the localhost at port 5000, you can then load up http://localhost:5000/_dozer/index to view the gc info.
from dozer import Profiler # my_wsgi_app is a WSGI application wsgi_app = Profiler(my_wsgi_app)
Assuming you’re serving your application on the localhost at port 5000, you can then load up http://localhost:5000/_profiler to view the list of recorded request profiles.
Here’s a blog post by Marius Gedminas that contains a longer description of Dozer’s profiler.
Inspecting log messages
from dozer import Logview # my_wsgi_app is a WSGI application wsgi_app = Logview(my_wsgi_app)
Here’s a blog post by Marius Gedminas that contains a longer description of Dozer’s logview.
0.3.1 (February 6, 2013)
Fix TypeError: You cannot set Response.body to a text object (https://bitbucket.org/bbangert/dozer/issue/5). Patch by Mitchell Peabody.
0.3 (December 13, 2012)
Emit the “PIL is not installed” only if the Dozer middleware is actually used.
Give a name to the Dozer memleak thread.
You can now supply a function directly to Logview(stack_formatter=fn)
New configuration option for Logview middleware: tb_formatter, similar to stack_formatter, but for exception tracebacks.
0.2 (December 5, 2012)
Adding logview that appends log events for the current request to the bottom of the html output for html requests.
Adding profiler for request profiling and call tree viewing.
Refactored Dozer into its own leak package.
New maintainer: Marius Gedminas.
0.1 (June 14, 2008)
Initial public release, port from Dowser, a CherryPy tool.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.