Repository
Munin (contrib)
Last change
2020-08-25
Graph Categories
Keywords
Language
Ruby

puppet_runtime

Sadly there is no documentation for this plugin.

#!/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 #{Regexp.last_match(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