Archive for the ‘passenger’ tag
Gráficas de uso de memoria de passenger con Munin
Estaba instalando algunos plugins adicionales en el munin para monitorizar el estado de las peticiones que entran por Apache.
He encontrado uno para monitorizar el uso de memoria pero se ha quedado anticuado con respecto a ciertos cambios que ha sufrido la salida del comando passenger-memory-stats. Por lo tanto ya no sirve.
Basándome en dicho plugin y en este otro, he hecho algunos cambios y el código resultante es el siguiente:
#!/usr/bin/env ruby
def output_config
puts <<-END
graph_category Passenger
graph_title passenger memory stats
graph_vlabel megabytes
apache_memory.label apache_memory
passenger_memory.label passenger_memory
END
exit 0
end
def output_values
memory_stats_command = '/usr/bin/passenger-memory-stats'
memory = {}
apache_header = "Apache processes"
passenger_header = "Passenger processes"
nginx_header = "Nginx processes"
section = nil
`#{memory_stats_command}`.each_line do |line|
if line.include?(apache_header)
section = "apache"
elsif line.include?(nginx_header)
section = "nginx"
elsif line.include?(passenger_header)
section = "passenger"
elsif /### Total private dirty RSS: (\d+\.\d+) MB/.match(line)
memory[section] = $1
else
next
end
end
puts "apache_memory.value #{memory['apache']}"
puts "passenger_memory.value #{memory['passenger']}"
#puts "nginx_memory.value #{memory['nginx']}"
end
if ARGV[0] == "config"
output_config
else
output_values
end
El plugin parsea los totales de memoria tanto de apache, como de nginx, como de apache passenger. En mi caso solo muestro los valores de apache y de passenger, pero si se quisiera mostrar los de nginx, bastaría con descomentar la linea:
puts "nginx_memory.value #{memory['nginx']}"
Error al instalar passenger (fcgi)
Al intentar instalar passenger a partir de la gema, me he encontrado con un error rarísimo. He estado un rato intentando ver que podía ser.
Al final me he cansado y he probado a cambiar la versión de rubygems de la 1.0.1 a la 1.3.1 y se ha instalado correctamente.
El error era el siguiente:
# gem install --no-ri --no-rdoc passenger
Bulk updating Gem source index for: http://gems.rubyforge.org
Building native extensions. This could take a while...
ERROR: Error installing passenger:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb install --no-ri --no-rdoc passenger
checking for fcgiapp.h... no
checking for fastcgi/fcgiapp.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/ruby1.8
--with-fcgi-dir
--without-fcgi-dir
--with-fcgi-include
--without-fcgi-include=${fcgi-dir}/include
--with-fcgi-lib
--without-fcgi-lib=${fcgi-dir}/lib
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/fcgi-0.8.7 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/fcgi-0.8.7/ext/fcgi/gem_make.out