1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-25 10:28:36 +00:00

Merge pull request #259 from tomav/add_port_number

Add port number and fix process matching
This commit is contained in:
Kenyon Ralph 2013-03-03 16:42:33 -08:00
commit fc63981ec4
3 changed files with 32 additions and 39 deletions

View file

@ -41,10 +41,11 @@ module Munin
# run main method
def run
pids = get_pids()
pids.sort.each do |pid|
instances = get_pids()
instances.each do |instance|
pid, port = instance.split("|")
rss = (pid_rss(pid).to_i)/1024
puts "thin_#{pid}.value #{rss}"
puts "thin_#{port}.value #{rss}"
end
end
@ -60,7 +61,7 @@ module Munin
# fetch all pids that match thin
def get_pids
pids = `pgrep thin`.split
pids = `pgrep -f 'thin' -l | awk -F " " '{ if (substr( $4, 10, 4)>=1) print $1"|"substr( $4, 10, 4)}'`.split(/\r?\n/)
end
def autoconf
@ -80,11 +81,12 @@ when "config"
puts "graph_args --base 1024 -l 0"
puts "graph_scale yes"
puts "graph_info Tracks the size of individual thin processes"
mpm.get_pids.sort.each do |pid|
puts "thin_#{pid}.label thin_#{pid}"
puts "thin_#{pid}.info Process memory"
puts "thin_#{pid}.type GAUGE"
puts "thin_#{pid}.min 0"
mpm.get_pids.sort.each do |instance|
pid, port = instance.split("|")
puts "thin_#{port}.label thin_#{port}"
puts "thin_#{port}.info Process memory"
puts "thin_#{port}.type GAUGE"
puts "thin_#{port}.min 0"
end
when "autoconf"
if mpm.autoconf

View file

@ -41,10 +41,11 @@ module Munin
class ThinThreads
def run
pids = get_pids()
pids.sort.each do |pid|
res = (get_threads(pid).to_i)
puts "thin_#{pid}.value #{res}"
instances = get_pids()
instances.each do |instance|
pid, port = instance.split("|")
rss = (get_threads(pid).to_i)/1024
puts "thin_#{port}.value #{rss}"
end
end
@ -61,13 +62,10 @@ module Munin
return res
end
end
# Get pis using lsof (list open files)
# look for listening tcp applications
# that match the name thin
# fetch all pids that match thin
def get_pids
pids = `pgrep thin`.split
pids = `pgrep -f 'thin' -l | awk -F " " '{ if (substr( $4, 10, 4)>=1) print $1"|"substr( $4, 10, 4)}'`.split(/\r?\n/)
end
def autoconf
@ -87,11 +85,12 @@ when "config"
puts "graph_args -l 0"
puts "graph_scale yes"
puts "graph_info Tracks how many threads per thin processes"
mpm.get_pids.sort.each do |pid|
puts "thin_#{pid}.label thin_#{pid}"
puts "thin_#{pid}.info Threads per Thin process"
puts "thin_#{pid}.type GAUGE"
puts "thin_#{pid}.min 0"
mpm.get_pids.sort.each do |instance|
pid, port = instance.split("|")
puts "thin_#{port}.label thin_#{port}"
puts "thin_#{port}.info Threads per Thin process"
puts "thin_#{port}.type GAUGE"
puts "thin_#{port}.min 0"
end
when "autoconf"
if mpm.autoconf

View file

@ -38,9 +38,9 @@ module Munin
class ThinPeakMemory
def run
pids = get_pids()
port_list = Hash.new
pids.sort.each do |pid, port|
instances = get_pids()
instances.each do |instance|
pid, port = instance.split("|")
hwm = (pid_hwm(pid).to_i)/1024
puts "thin_#{port}.value #{hwm}"
end
@ -61,18 +61,9 @@ module Munin
end
end
# Get pis using lsof (list open files)
# look for listening tcp applications
# that match the name thin
# fetch all pids that match thin
def get_pids
pids_ports = []
pids = `pgrep thin`.split
pids.each do |t|
port = `lsof -p #{t} | grep LISTEN`.split[8]
port = port.split(":")[1]
pids_ports << [t,port]
end
pids_ports
pids = `pgrep -f 'thin' -l | awk -F " " '{ if (substr( $4, 10, 4)>=1) print $1"|"substr( $4, 10, 4)}'`.split(/\r?\n/)
end
def autoconf
@ -92,7 +83,8 @@ when "config"
puts "graph_args -l 0"
puts "graph_scale yes"
puts "graph_info Tracks the peak memory of thin processes, aka High Water Mark."
mpm.get_pids.sort.each do |pid,port|
mpm.get_pids.sort.each do |instance|
pid, port = instance.split("|")
puts "thin_#{port}.label thin_#{port}"
puts "thin_#{port}.info Peak Memory"
puts "thin_#{port}.type GAUGE"