10 tips on how to prevent business value risk
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Sebastien Auvray on May 31, 2007
• 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.
Free Gartner Cloud Service Brokerage Report
Agile Development: A Manager's Roadmap for Success
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Why NoSQL? A primer on Managing the Transition from RDBMS to NoSQL
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
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...
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
1 comment
Watch Thread Reply