Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A puppet report processor for sending event data to graphite whenever puppet modifies a resource on a host.
Pull request Compare This branch is even with joemiller:master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A puppet report processor for sending events to a graphite server.

This report processor will send the number of changes made during a puppet run into a graphite server. The data can then be overlaid onto other metrics to help correlate events. Use the drawAsInfinite() function in graphite to draw the events as vertical lines.


For example, in the diagram above the load average from a group of servers is plotted. Blue vertical lines mark a point in time when puppet modified resources on a host in the group. We can see that immediately following a puppet change the load spiked on one of the servers. This can be very valuable information.

Additional information on how and why to use graphite to track events can be found in Etsy's Measure Anything, Measure Everything paper.

Similar software

This module is only meant to send change events to graphite. If you would like to send all metric data to graphite, please see puppet-graphite by Naresh V.


  • Puppet. (Only tested on 2.7 but likely works on 2.6 and possibly 0.25)
  • A graphite server^

Installation & Usage

  1. Install puppet-graphite_event as a module in your puppet master's module path (eg: /etc/puppet/modules/puppet-graphite_event)

  2. Copy the included graphite_event.yaml to your puppet master's config dir (eg: /etc/puppet/). Then update the graphite_server, graphie_port, and path_prefix variables.

    Metrics sent to graphite will use the path: <path_prefix>.fqdn_with_underscores.

  3. Enable pluginsync and reports on your master and clients in puppet.conf

    report = true
    reports = graphite_event  # can specify multiple: `store, graphite_event`
    pluginsync = true
    report = true
    pluginsync = true
  4. Restart your puppet master.

Masterless puppet

I suspect this could also be used in a masterless puppet setup as well, just make sure to deploy the report and config file to each client. If you have success with this please let me know by leaving a comment in the github issues section.


joe miller. (11/5/2011)

Derived from puppet-graphite by Naresh V.

Derived from puppet-ganglia by James Turnbull

Original License

Author:: James Turnbull (<>)
Copyright:: Copyright (c) 2011 James Turnbull
License:: Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

License of this derived work

Same as above plus:
Author:: Joe Miller (<>)
Copyright:: Copyright (c) 2011 Joe Miller
License:: Apache License, Version 2.0
Something went wrong with that request. Please try again.