Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News FiveRuns: First Production Rails Management Suite

FiveRuns: First Production Rails Management Suite

As noticed previously Rails was missing a professional suite to manage and monitor your application lifecyle. FiveRuns is one of the first companies getting involved in that area with the launch of the Industry-First Enterprise Management Suite for Rails: RM-Install and RM-Manage.  The suite aims to manage the full Rails application lifecycle, from automating the setup and maintenance of an integrated Rails development environment to ensuring Rails applications perform well in production.

RM-Install is a free multi-platform tested/enterprise-ready Rails stack which enables companies to instantly begin developing and deploying Rails applications.

RM-Manage integrates seamlessly with FiveRuns Enterprise Management Platform to monitor and manage the production performance of the following framework areas within Rails applications:
• Controller and action performance – analysis and statistics to help identify where an application is spending time
• ActiveRecord interactions – see which models are being invoked the most and which interactions are the slowest
• View performance and analysis – detailed information on global and individual view invocation and rendering performance
• Caching effectiveness – analysis and reporting on both fragment and page caching
• Database connection utilization – detailed analysis of an application's use of database connections
• Transactional analysis – detailed visibility into transaction profiles and statistics

Three additional products will follow to help in the pre-production performance testing, deployment and end-to-end visibility of Rails applications. One limitation is that this monitoring suite is available only as hosted service (SaaS) and not as standalone application.

InfoQ had the chance to catch up with FiveRuns team about Rails, RM-Manage and the company itself.  Thanks to Joshua Dilworth, Oliver Schmelzle, Olivier Thierry for their time!

Concerning RM-Manage, you're saying that "There are no hooks or APIs in Rails which can be used as a collection in order to view its performance". What about tools as BleakHouse, or RailsBench by Stefan Kaes?

With RM-Manage we set out to create a solution that allows administrators and developers to monitor their Rails applications in real-world production environments. We believe we are the first company to deliver such a solution.

To achieve this goal we had to create an instrumentation layer and communication infrastructure that collects all important Rails metrics in real-time without impacting performance of production applications. We also had to factor in that Rails applications are typically distributed across multiple process and machine boundaries (i.e. packs of Mongrels spread across several servers). We believe that monitoring your production Rails apps also requires to understand the performance status of your complete environment, including the involved operation systems, web servers and databases. This is why RM-Manage is directly integrated with the FiveRuns Management Platform.

We think BleakHouse and RailsBench are great tools for developers. However, they have a different focus, are not as broad and are not typically used in a production environment. BleakHouse helps to discover memory leaks in Rails applications but provides no other performance insights. It also slows down single instance Rails applications significantly. RailsBench helps create artificial load against a target Rails application. It allows to benchmark overall application performance for certain traffic patterns. However, it provides no direct insight about the performance of your deployed Rails applications in production.

What do you think about the DTrace approach the Twitter team had announced lately to track a CPU usage abuse? Do you think RM-Manage could be used as the performance monitor for such applications as Twitter?

DTrace is an incredible kernel-level tool to debug certain types of low-level performance problems. In the case of Twitter we understand that they hand-tweaked the Ruby interpreter source code to embed so-called DTraces probes. This allowed them to better understand how the Ruby interpreter operates and how it affects the Rails framework.

This type of low level tracing information is helpful to the developers of the Ruby interpreter and, to a certain degree, the Rails core team. However, a typical Rails application developer would be overwhelmed with the amount and type of data offered by DTrace.

We learned from our customers that they wanted to understand many real-world application metrics: Which is the slowest performing Controller? Which is the most invoked Action? Which ActiveRecord class creates the most load on the database?

This is where RM-Manage excels and provides all the necessary information -- presented through a flexible web-based user interface. DTrace log files couldn't answer the questions above.

How do you monitor the system? Are you using the weak ObjectSpace, do you use a modified RubyVM? CAn you monitor JROR (JRuby on Rails)?

The RM-Manage instrumentation layer is packaged as a Rails plugin and is written in 100% Ruby. It does not require a modified Ruby interpreter nor does it use ObjectSpace. Since the layer is written in Ruby is should also work on alternative Ruby implementations like JRuby -- assuming that those interpreters implement all Ruby 1.8.6 capabilities. However, we have not yet tested our instrumentation against JRuby.
Why is the RM-Manage available only as SaaS (hosted service)?
For us the SaaS delivery model and subscription pricing is the future of systems management. The FiveRuns Management Platform offers a broad range of monitoring capabilities covering operating systems, applications servers, web servers and databases. To our customers ease of use and web-based delivery are paramount. It also allows us to differentiate quite succinctly from the competition.

Do you plan to sell it or opensource it as a standalone application?

The Rails plug-in is a plug-in made available only to our Smart Client which in turn  is used by our Enterprise Management Platform. The Smart Client Rails plug-in enables Rails application performance and availability metrics to be collected and subsequently consumed and presented by the RM-Manage application. There are currently no plans to open source the instrumentation layer that is encapsulated in the Rails plug-in.
FiveRuns showed their involvement in Rails community at RailsConf in Portland with a keynote by CEO Steven Smith ("Enterprise is Not a Four-letter Word") and a compelling one untitled "When V is for Vexing: Patterns to DRY Up Your Views".  Fiveruns has 14 employees and are contributors to Rails and Rico.  Their short term roadmap  includes adding detailed monitoring of other parts of the Rails stack like Mongrel and PostgreSQL. In the long term, they are looking at building out the complete Rails Management Suite.

Rate this Article