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.
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
Install puppet-graphite_event as a module in your puppet master's module path (eg:
Copy the included graphite_event.yaml to your puppet master's config dir (eg:
/etc/puppet/). Then update the
Metrics sent to graphite will use the path:
Enable pluginsync and reports on your master and clients in
[master] report = true reports = graphite_event # can specify multiple: `store, graphite_event` pluginsync = true [agent] report = true pluginsync = true
Restart your puppet master.
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. http://joemiller.me (11/5/2011)
Author:: James Turnbull (<email@example.com>) 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 http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 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 (<firstname.lastname@example.org>) Copyright:: Copyright (c) 2011 Joe Miller License:: Apache License, Version 2.0