Introduction
============

Log and show ram usage of a zope instance per request.

By calling @@requestlet, you'll get a nice graph and
(if you mark something in it) a table with ram usage,
difference to the last request and the URI over time.

This product was created in the hope to see patterns
on which requests how much ram is "lost". It was
inspired by http://code.google.com/p/zope-memory-readings/
and uses the graph-code from there.

The logging was taken from seletz' requestlet code and
was extended by the ram usage.

Installation / Usage
====================

Add this to your buildout.cfg

    [buildout]
    eggs = z3c.requestlet

    [instance]
    zcml = z3c.requestlet

Then install the product using plone's portal_quickinstaller.
If the product is not installed, it will not log and it won't
provide the @@requestlet view.

After installation you may call

    http://yoursite/@@requestlet

The default logfile is /tmp/requestlet.txt and may be set using
an environment variable called "REQUESTLET_LOGNAME".

You may also log only hits that take more than a specific time
to render using an environment variable called "MIN_LOG_TIME".

The logfile will provide detailled page generation information
like this:

    2009-07-01 16:21:39,755 requestlet   INFO     ELAPSED 0.038s (min 0s) METHOD GET RAM 423124kB URL: localhost:10054/site/++resource++z3c.requestlet.data/layout.css rinfo: last-modified='Wed, 01 Jul 2009 12:51:28 GMT' content-length='169' content-type='text/css; charset=utf-8' cache-control='public,max-age=86400'

This provides:

- time to render the page in plone (ELAPSED)
- request method (METHOD)
- total vmsize of the zope process (RAM)
- the called URL (URL)
- the request info (rinfo)

Compatibility
=============

This product will only work with systems, where you
can get the memory-info from /proc/<pid>/status.
This is linux.

Contribution
============

To contribute, feel free to send patches as we don't have
this in a public svn currently. It's managed with bzr ;)

Authors
=======

- Daniel Kraft <dk@d9t.de>
- Stefan Eletzhofer <info@inquant.de>

