diff --git a/plugins/puppet/puppetmaster b/plugins/puppet/puppetmaster deleted file mode 100755 index 463a2e20..00000000 --- a/plugins/puppet/puppetmaster +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/ruby - -# this plugin reports various performance statistics from a puppetmaster -# server and client -# -# linked as puppet_mem, it will display memory usage of the puppet -# client and puppet master on the local server. -# -# linked as puppet_clients, it will report the average compile time, the -# number of clients that checked in in the last 5 minutes and 24h and -# the number of known clients. -# -# it requires read access to the puppet logfile. -# -# CONFIGURATION -# -# [puppet*] -# env.puppet_logfile /var/log/message -# env.puppet_logformat "^%b %d" -# env.puppet_factsdir /var/puppet/yaml/facts/ -# -# the logfile is where the puppetmaster is expected to log its -# compilation statistics. the format is the format of the date syslog -# writes to the file, which may vary according to locale and -# configuration. - -# returns the mem usage of a given process -def plist(psname) - counter = 0 - %x{ps h -o rss,size,vsize,pcpu -C #{psname}}.each do |ps| - rss,size,vsize,cpu = ps.split - counter += 1 - puts "#{psname}_#{counter}.value #{rss}" - - end - return -end - -# reports how many clients compiled in the last 5 minutes -# repotrs how many unique clients compiled since the begining of the day -# report the average compilation time for all clients in the last 5 minutes. -def phaselog - logfile = ENV['puppet_logfile'] || '/var/log/messages' - count,avg,day_count_unique,day_count = 0 ,0 ,0, 0 - t = Time.now - dateformat = ENV['puppet_logformat'] || "^%b %d" - today = t.strftime(dateformat) - hour = t.strftime(dateformat + " %H:") - m = t.min.to_i - last5m = "" - 6.times do |i| - last5m += hour - last5m += "0" if (m-i) < 10 - last5m += (m-i).to_s - last5m += "|" unless i==5 - end - hosts = Array.new - regexp = ".* for (.*) in (.*) seconds" - - File.open(logfile).grep(/#{today}/).grep(/Compiled configuration|Compiled catalog/).each do |line| - case line - when /#{last5m}/ then - if line =~ /#{regexp}/ - avg += $2.to_f - count += 1 - unless hosts.include?($1) - hosts << $1 - end - end - when /#{regexp}/ then - day_count += 1 - unless hosts.include?($1) - hosts << $1 - day_count_unique += 1 - end - end - end - puts "avg_compile.value #{(avg / count).to_s[0..3]}" unless count == 0 - puts "last5m_count.value #{count}" - puts "last24h_unique_count.value #{day_count_unique}" -end - - -case ARGV[0] - when 'config' - case $0 - when /puppet_mem/ - puts "graph_title puppet memory usage" - puts "graph_vlabel memory" - puts "puppetd_1.label puppetd" - # find out how many mongrel process we have - if any - File.open('/etc/sysconfig/puppetmaster') do |line| - @pm_process = line.grep(/PUPPETMASTER_INSTANCES/).to_s.split('=')[1].to_i - end - if @pm_process > 0 - @pm_process.times do |i| - puts "puppetmasterd_#{i+1}.label puppetmasterd #{i+1}" - end - else - puts "puppetmaster.label puppetmasterd" - end - when /puppet_clients/ - puts "graph_title puppet clients usage" - puts "graph_vlabel clients" - puts "known_clients.label Known Clients" - puts "avg_compile.label Average configuration compile, in seconds" - puts "last5m_count.label Clients in the last 5 minutes" - puts "last24h_unique_count.label unique clients in the last 24 hours" - end - puts "graph_category puppet" - exit 0 - when 'autoconf' - case $0 - when /puppet_mem/,/puppet_clients/ - puts "yes" - else - puts "no" - exit 0 - end - else - plist("puppetmasterd") if $0 =~ /puppet_mem$/ - plist("puppetd") if $0 =~ /puppet_mem$/ - if $0 =~ /puppet_clients$/ - puts "known_clients.value #{Dir.entries(ENV['puppet_factsdir'] || '/var/lib/puppet/yaml/facts/').size-2}" - phaselog - end -end -