#!/usr/bin/env ruby # # Mario Verbelen V0.2 # Get zarafa Rss memory stats for munin $dlist="zarafa-server,zarafa-gateway,zarafa-ical,zarafa-monitor,zarafa-spooler" ARGV.each do|a| if a.to_s == "autoconf" puts "yes" exit 0 end if a.to_s == "config" puts "graph_title Zarafa Memory usage" puts "graph_args --base 1000 -l 0" puts "graph_scale yes" puts "graph_vlabel RSS memory of zarafa daemons" puts "graph_category zarafa" puts "graph_order zarafa_server zarafa_gateway zarafa_ical zarafa_monitor zarafa_spooler" puts "graph_info RSS memory of zarafa daemons" $dlist.split(',').each do|a| puts "#{a.tr('-','_')}.label #{a.tr('-','_')}" # puts "#{a.tr('-','_')}.type ABSOLUTE" if a.to_s == "zarafa-server" puts "#{a.tr('-','_')}.draw AREA" else puts "#{a.tr('-','_')}.draw STACK" end end exit 0 end end $dlist.split(',').each do|a| pid=`pidof #{a}` $c=a begin memuse=0 pid.chomp.split(' ').each do |ppid| File.open("/proc/#{ppid}/status") do |io| io.each do |line| line.chomp! line.grep( /VmRSS/ ) do |b| val=b.squeeze(" ").tr(' ',':').split(':')[2] memuse+=Integer(val) end end end end puts "#{$c.tr('-','_')}.value #{memuse}000" rescue puts "#{$c.tr('-','_')}.value damn" end end