1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-21 18:41:03 +00:00
Munin-Contrib/plugins/puppet/puppet_runtime

44 lines
1.2 KiB
Ruby
Executable file

#!/usr/bin/env ruby
# This plugin reports the duration of the most recent puppet agent run.
# It requires read access to the puppet logfile (defaults to /var/log/messages).
#
# CONFIGURATION
#
# [puppet*]
# env.puppet_logfile /var/log/message
# env.puppet_logformat "^%b %d"
#
# The logfile is where the puppet agent is expected to log its run time statistics.
# The format is the format of the date syslog writes to the file, which may vary
# according to locale and configuration.
# reports how long the puppet agent took to apply the catalog
def get_runtime
logfile = ENV["puppet_logfile"] || "/var/log/messages"
t = Time.now
dateformat = ENV["puppet_logformat"] || "^%b %d"
today = t.strftime(dateformat)
File.open(logfile).grep(/#{today}/).grep(/Finished catalog run in/).reverse_each do |line|
if line =~ /in (.*) seconds/
puts "runtime.value #{$1}"
exit 0
end
end
end
case ARGV[0]
when "config"
puts "graph_category other"
puts "graph_args --base 1000 -l 0"
puts "graph_scale no"
puts "graph_title puppet catalog run time"
puts "graph_vlabel Seconds"
puts "runtime.label Catalog application time"
exit 0
when "autoconf"
puts "yes"
exit 0
else
get_runtime
end