Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Sebastien Auvray on May 31, 2007 05:09 PM
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.• 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
![]() |
![]() |
![]() |
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.
Agile Development: A Manager's Roadmap for Success
Give-away eBook – Confessions of an IT Manager
The Role of Open Source in Data Integration
Effective Management of Static Analysis Vulnerabilities and Defects
The FiveRuns product looks very interesting -- and certainly the screenshots are slick. Just to clear up some of the comments on DTrace: it is true that at Twitter, we were using a Ruby that had had DTrace probes added to it, but the patch is publicly available. And because these have zero disabled probe effect, we believe that we are going to be able to get the patch integrated into Ruby itself. Also, DTrace is not merely for "low-level performance problems", and it can very much be used to answer questions like "which ActiveRecord class creates the most load on the database?" This is to take nothing away from the FiveRuns product: the power of DTrace is its arbitrary nature (if one is using DTrace to generate "log files" as mentioned above, one is using DTrace incorrectly), but that also means it requires greater expertise to put to use than domain-specific technologies the FiveRuns product. In short, these technologies are complementary -- and indeed, the FiveRuns folks may be interested in using DTrace to supplement their existing instrumentation methodologies...
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
1 comment
Watch Thread Reply