Support for Sinatra, Rack, and Metals now available in RPM Ruby Agent 2.10. Plus more cool features…
Great news! The newest version of the RPM Ruby Agent, 2.10, is available for download. We have also added new features in RPM for both Java and Ruby apps. We’ve included a description below of some of the new capabilities. Get the new agent by selecting the Upgrade banner in RPM, or at GitHub where you’ll find the the product download as well as the latest product documentation. Without further ado, here’s what new:
Sinatra, Rack, and Rails Metal Support
We’re pleased to add support for Rack, Sinatra and Rails Metals in this release. For each of these technologies, New Relic instruments a call method as if it were a controller action, collecting transaction traces and errors. This enables deep, real-time visibility into Ruby web apps that take advantage of these solutions.
For Rack and Metal instrumentation details, see the Agent Rack API documentation.
Queue Time Capture for Passenger and Other Frameworks
Until now, RPM captured the time spent waiting in the mongrel queue and displayed it in the UI as the “Mongrel Queue Time.” Now the agent will look for a request header named X-REQUEST-START and extract a timestamp from it which will be interpreted as the time the request first appears in the server stack. This means that you can now monitor Passenger queue time as well as Mongrel or any other framework. By using this header in your HTTP server you will have visibility not only into the page processing time, but also into the overall latency of the page in your system. Since this measurement is closely aligned with the user experience, particularly when requests get queued because the Rails instances are busy, we’ve adjusted the Apdex to reflect time spent in queue.
Web Transaction Analysis Feature
Due to popular demand, we’ve moved the Web Transaction Analysis feature from Bronze to Lite for all RPM users. This should dee-lite Lite customers who can now look at a summary of transactions types and with the option to sort by throughput, response time, Apdex score and more, to quickly determine which are the worst performers. Lite subscribers also get access to the Web Transaction performance breakdown, which shows exactly where each transaction component is spending time. Now you have even more troubleshooting data to help determine where to focus remediation efforts.
If you’re an RPM Silver or Gold subscriber, you needn’t feel left out. We’ve got some new Web Transaction monitoring functionality for you as well. RPM now offers Silver and Gold subscribers a table view of all Web Transactions in addition to the usual roll-up view of the worst offenders. This Web Transaction Summary shows every transaction type cross referenced with Apdex score, throughput, response time, standard deviation and more. You can sort transaction types by any of these columns to find the those that you want to optimize.
Monitoring of Background Jobs
Many of you have high-volume transaction web applications that process a significant number of background jobs at any given time. Just for you we’ve added visibility into background tasks and other activities occurring outside of normal controller actions so you can better understand their impact on application performance.
In the Troubleshoot tab, select Background Tasks to see a list of background jobs, which can be sorted by slowest execution time, most-often executed, and standard deviation. Bronze subscribers can click on a task to get a detailed performance breakdown showing where the most time was spent for selected job types. Silver and Gold subscribers can drill into specific instances of these tasks to see individual performance breakdown, stack traces, and SQL detail.
For information on the new methods for monitoring background and other non-web tasks, refer to the API documentation.
Profiling built in to Developer Mode for Ruby Apps
You can now use developer mode to view detailed performance profiles of your controller actions. Just install the ruby-prof gem (along with the new RPM Agent 2.10) and an option will appear in the UI to toggle profiling. There is currently no Developer Mode for Java. Just install the ruby-prof gem and an option will appear in the UI to toggle profiling.
Improved JRuby Support
CPU collection in JRuby is now available. We collect and aggregate CPU time spent in every controller action. This makes it easier to determine the effect that CPU time is having on overall performance.
Enhanced Visibility into Ruby EE Garbage Collection
This version of the agent adds visibility to Garbage Collection statistics in Ruby Enterprise Edition as well as Ruby versions with the Railsbench GC patches compiled in.
Other Enhancements
- Preliminary instrumentation for DelayedJob (contributed by ttilley)
- TorqueBox support
- Expanded database instrumentation to include all database commands in addition to the core commands
- TextMate support for opening source from Developer Mode.
- The API documentation has been expanded and greatly improved.
Be sure to refer to our online docs for the latest generated documentation.
As always, we welcome your feedback. Feel free to drop us a line via our support site or email support@newrelic.com.




Is the support for Metal automatic or do we need to add in an extra middleware somewhere? Will my Heroku apps running the New Relic addon be updated automatically?
This is all great news. Thanks.
newrelicblogs Reply:
February 24th, 2010 at 12:06 pm
Hi Paul:
For Metal, our Agent Rack API documentation provides details on how to add support. We’ve updated our blog posting with this link and a link to the documentation for background task monitoring as well.
Thanks,
New Relic
Posted: 24 February 2010 at 10:31 am by Paul
Newbie question. What should I use for Sinatra application?
billkayser Reply:
February 25th, 2010 at 12:43 pm
You don’t need to do anything special for Sinatra apps. Just add
require ‘newrelic_rpm’
in the file after you require ‘sinatra’.
Posted: 24 February 2010 at 2:10 pm by Nikita Vasilyev
Another question. Can I use New Relic as middleware. Something like:
config.ru:
use NewRelic::Agent::DontKnowWhatShouldIUseHereBill Kayser Reply:
February 25th, 2010 at 12:48 pm
We don’t have a middleware for New Relic right now. We’d love to hear your suggestions on how you would use that, and what you would expect an RPM middleware to do. Please let us know your thoughts at http://support.newrelic.com/discussions/suggestions.
Posted: 24 February 2010 at 2:31 pm by Nikita Vasilyev