June 13, 2016
Today we're excited to announce the release of our latest Ruby on Rails monitoring agent and a major UI update. This release continues our focus on quickly revealing your path to a faster, more reliable Rails app.
Determining how to make your Rails app faster often involves investigating the opposite: inspecting your app's worst performing controller-actions and their requests. We're working to make this investigation effortless. Just follow your intuition when you see a problem area on a chart:
Click-and-drag on the chart to reveal a list of endpoints we've collected detailed transactions traces for during that period. For context, you'll see a sparkline of each endpoint's response time. Sort by slowest response time or largest memory increase.
Rails apps with controller-actions that have a wide variety of response times are more difficult to scale. In addition to breaking down each controller-action's response time by category (ActiveRecord, HTTP, View, etc), we now track the 95th percentile response time for every endpoint. This provides insight into every endpoint's worst-case performance.
We've enhanced our transaction tracing algorithm to collect traces across a wider variety of response times: you'll now see traces from your have-to-be fast controller-actions. This is the foundation for two new features below: our new trace explorer and trace diffs.
The same zoom functionality found on your application-level dashboard is available for each endpoint: use it navigate to problematic time periods and inspect traces. You can also view a list of your traces in a variety of different ways over a given time period: slowest, largest memory increases, most recent, etc.
When you're viewing a transaction trace for a slow request, context is important: where are the hotspots in the trace vs. a normal, happy request? Is slowness associated with just a single database query? Did this request execute a code path that faster requests don't run?
Our transaction traces now visually represent each instrumented method call vs. the same method call in a normal request. Think of it as a performance diff. This helps you focus your time on the hotspots:
Quickly navigate to critical controller-actions and background jobs: our navigation menu now contains a pulldown that provides a sortable list of all of your actions and jobs from every page:
All of the enhancements mentioned here not only apply to controller-actions, but to background jobs as well.
We've added the agent-side enhancements without adding additional overhead to the agent. Our most recent benchmarks still apply.
These enhancements are available in version 1.6.0+ of our agent. Simply run
bundle update scout_apm inside your Rails application directory to grab the latest.
In the screenshots above, you may have noticed subtle indications of memory instrumentation. Contact firstname.lastname@example.org to try our memory bloat / leak detection.
We welcome your feedback: shoot an email to email@example.com with any questions or comments.