puppetlabs/puppetdb — pull request #464 by nicklewis (2013-03-26 01:43:24+00:00)
Title: Add automatic compression of the dead-letter office

Prior to this, there was no self-management of the DLO. If messages went
into it, they were never removed or dealt with unless by the user. This
meant that a user with a lot of failures, who didn't know about the DLO,
could have their storage eaten up the messages (which were effectively
useless, since they didn't know about them). Now the DLO will be
periodically compressed (per the `dlo-compression-threshold` setting).
Any messages older than the threshold will be compressed into a .tgz
file. This runs on startup and periodically according to the
`gc-interval`, but will only produce one .tgz file per threshold period.
Any other messages will have their compression deferred until the next
period begins.

This also adds global and command-specific metrics for the DLO, including number of messages, number of archives, space usage on disk, number of failures, and compression time. Overall values for compression time, space usage, and number of messages are exposed via the Dashboard:

![dlo_dashboard](https://f.cloud.github.com/assets/115494/301001/64b5261c-95b6-11e2-8b6b-73924fe4af91.png)