Thread Profiling: See Exactly What Your App Is Doing

RailsConf 2013 logoRailsConf 2013 is right around the corner! And to celebrate, we’re publishing a series of blog post that highlight what’s new and exciting in the world of New Relic’s Ruby support. Don’t forget to check out yesterday’s post on Cross Application Tracing.

New Relic tries to bubble up the most significant performance data from your apps like database queries and response times. But sometimes you need to deep dive into how your code is executing to solve a problem.

For times like this, the New Relic Ruby agent provides a low overhead sampling profiler that collects call graphs for running production apps. These can be triggered on demand from the New Relic UI.

The Thread Profiler works by spawning a background thread that takes snapshots of other threads’ backtraces at regular intervals. Over time, the profiles builds up a good representation of where your application is spending most of its time down to the method call level. New Relic’s web UI visualizes Thread Profiles in an interactive hierarchical tree format, highlighting the ‘hot’ methods where the app is spending the most time.

New Relic Ruby Thread Profile

Our own Jason Clark gave a talk on this subject recently at Mountain West RubyConf. His session, DIY::Thread.profile — Light-Weight Profiling in Pure Ruby, described the techniques he used to write this pure Ruby profiler.

For more information on our Thread Profiling feature, see our Thread Profiler documentation.

Next up: Living on the Edge — Rails 4 & Ruby 2

Headed to RailsConf 2013? Stop by our booth to see the New Relic Ruby Agent in action, pick up your free Data Nerd t-shirt and more. You can even try New Relic Pro free for 30 days. For more information, go to

Sam Goldstein is engineering manager, agents, for New Relic. He manages Browser Application Monitoring team. He's been writing Ruby for almost a decade and is the author of several semi-popular gems, including diffy and timetrap. View posts by .

Interested in writing for New Relic Blog? Send us a pitch!