It's one thing to be able to gather data, but it's quite another thing to then be able to do anything interesting with it. Having data without any means of access is simply wasting disk space and bandwidth. It's been the bane of many systems that they seem to gather lots of data and then make it tooth-grindingly frustrating to get any kind of sensible access to it. Puppet has been designed from the outset to make it easy for you to gather and access any data that it collects, both by using open source data formats and by providing a plugin system in the form of report processors that allow you to process that data.
Report processors are pieces of Ruby code that are placed within Puppet's lib
directory and are treated as plugins. When a report processor is enabled, the Puppet master will pass the YAML data it receives from the Puppet agents into the report processor every time a Puppet agent completes a transaction. It is then up to that particular plugin to...