Collection of Concise Munin plugins for Rails server environments. This will make monitoring your rails app a piece of cake.

This project contains munin plugins that not only work in munin, but are also concise (see references). Most things in this repository rely heavily on the request-log-analyzer gem. The project has recenly been converted into a gem. If you are looking for the loose scripts, please checkout:

What's in the box?

  • passenger_memory_stats - Munin plugin to monitor the memory usage of passenger application servers.

  • pasenger_queue - Montoring of passenger queue lenth.

  • passenger_status - Running, active and maximum number of passenger instances as well as sessions.

  • rails_database_time - Min, avg, max of database times.

  • rails_request_duration - Min, avg, max of the total request durations.

  • rails_request_error - Application errors and process blocker counters.

  • rails_requests - Get, put, post and delete requests.

  • rails_view_render_time - Min, avg and max view render times.

For screenshots, head over to:


Installing should be as easy as

$ gem install munin-plugins-rails

After that you have two options. You can add the passenger plugins that will monitor the server as a whole by running:

$ sudo request-log-analyzer-munin install

This will create the necessary symlinks in /etc/munin/plugins and create reasonable configurations in /etc/munin/plugin-conf.d/*

  • munin_passenger_memory_stats

  • munin_passenger_queue

  • munin_passenger_status

Which you can customize as needed. Please note that passenger-memory-status currently only works on Linux (

The other option is to add a specific application's logfile. To do this, run:

$ sudo request-log-analyzer-munin add <app_name> <path_to_log_file>

* app_name: this will be the prefix for the graphs and the munin plugins so it should be a valid identifier (/[A-Za-z0-9_]*/).
* path_to_log_file: this is the path to the log file against which request-log-analyzer will run

After running this command you'll have appropriate symlinks in /etc/munin/plugins and a set of configuration files in /etc/munin/plugin-conf.d:

  • app_name_munin_rails_database_time

  • app_name_munin_rails_request_duration

  • app_name_munin_rails_request_error

  • app_name_munin_rails_requests

  • app_name_munin_rails_view_render_time

For more detailed information, see the documentation embedded in the plugins. Remember to restart munin-node.

$ sudo /etc/init.d/munin-node restart


  • Specify the format of your logfile in the munin conf (i.e: env.log_format rails3).

  • sudo gem install request-log-analyzer

  • Check if the paths in the plugin configuration are correct.

  • Use munin-run to test the plugin with the --debug option.

  • Make sure the specified user is allowed to write to /tmp and read your rails logfile.

If you encounter performance problems with your app, please take a look at the request-log-analyzer wiki on examples on how to drill down to the core of your problem. If you want to hire an expert, please visit us at or mail me at:

Happy monitoring!

Additional information