Features¶
Scout is Application Monitoring built for modern development teams. It’s built to provide the fastest path to a slow line-of-code. Signup for a trial.
App Performance Overview¶
The overview page provides an at-a-glance, auto-refreshing view of your app’s performance and resource usage (mean response time by category, 95th percentile response time, throughput, error rate, and more). You can quickly dive into endpoint activity via click-and-drag (or pinch-and-expand with a mobile device) on the overview chart.

Additionally, you can compare metrics in the overview chart and see how your app’s performance compares to different time periods.
Endpoint Details¶
You can view metrics for specific controller-action and background job workers. There is a similar chart interaction to the App Performance Overview page, with one difference: your selection will render an updated list of transaction traces that correspond to the selected time period:

You can sort traces by response time, object allocations, date, and more.
Transaction Traces¶
Scout collects detailed transactions across your endpoints automatically. The transaction traces provide a number of visual queues to direct you to hotspots. Dig into bottlenecks - down to the line-of-code, author, commit date, and deploy time - from this view.

Call Breakdown¶
Method calls are aggregated together and listed from most expensive to least expensive. The time displayed is the total time across all calls (not the time per-call).

SQL Queries¶
Scout captures a sanitized version of SQL queries. Click the “SQL” button next to a call to view details.

Don’t an SQL query next to an SQL call?¶
Scout collects a sanitized version of SQL queries and displays these in transaction traces. To limit agent overhead sanitizing queries, we do not collect query statements with more than 16k characters.
This limit was raised to 16k characters from 4k characters in version 2.3.3 of the Ruby agent after determining the higher threshold was safe for production environments. If you have an older version of scout_apm, update to the latest.
Code Backtraces¶
You’ll see “CODE” buttons next to method calls that are >= 500 ms. If you’ve enabled the GitHub integration, you can see the line-of-code, associated SQL or HTTP endpoint (if applicable), author, commit date, and deploy time for the relevant slow code.

If you don’t enable the GitHub integration, you’ll see a backtrace.
Trace Explorer¶
What was the slowest request yesterday? How has the app performed for user@domain.com? Which endpoints are generating the bulk of slow requests? Trace Explorer lets you quickly filter the transaction traces collected by Scout, giving you answers to your unique questions.

Trace Explorer is accessed via the “Traces” navigation link when viewing an app.
How to use Trace Explorer¶
There are two main areas of Trace Explorer:
- Dimension Histograms - the top portion of the page generates a histogram representation for a number of trace dimensions (the response time distribution, count of traces by endpoints, and a display for each piece of custom context). Selecting a specific area of a chart filters the transactions to just the selected data.
- List of transaction traces - the bottom portion of the page lists the individual traces. The traces are updated to reflect those that match any filtered dimensions. You can increase the height of this pane by clicking and dragging the top portion of the pane. Clicking on a trace URI opens the transaction trace in a new browser tab.
ScoutProf¶
Every millisecond, ScoutProf captures a backtrace of what each thread in your application is currently running. Over many backtraces, when you combine them, it tells a story of what code paths are taking up the most time in your application.
Compared with our more traditional instrumentation of libraries like ActiveRecord, Net::HTTP and similar, ScoutProf works with your custom code. Now, when your application spends time processing your data in custom application code, or in libraries that Scout doesn’t yet instrument, instead of only being able to assign that to a large bucket of ActionController time, the time can be broken down to exactly what is taking up the most time.
Notice how the time in ActionController is broken down:
We still employ our traditional instrumentation, because it can give us deeper insights into common libraries, capturing the SQL being run, or the URL being fetched.
Enabling ScoutProf¶
ScoutProf is a BETA feature. To enable:
| 1 |
Modify your |
| 2 |
|
| 3 | Deploy |
A detailed ScoutProf FAQ is available in our reference area.
Database Monitoring¶
When the database monitoring addon is enabled, you’ll gain access to both a high-level overview of your database query performance and detailed information on specific queries. Together, these pieces make it easier to get to the source of slow query performance.
Database Queries Overview¶
The high-level view helps you identify where to start:
The chart at the top shows your app’s most time-consuming queries over time. Beneath the chart, you’ll find a sortable list of queries grouped by a label (for Rails apps, this is the ActiveRecord model and operation) and the caller (a web endpoint or a background job):
This high-level view is engineered to reduce the investigation time required to:
- identify slow queries: it’s easy for queries to become more inefficient over time as the size of your data grows. Sorting queries by “95th percentile response time” and “mean response time” makes it easy to identify your slowest queries.
- solve capacity issues: an overloaded database can have a dramatic impact on your app’s performance. Sorting the list of queries by “% time consumed” shows you which queries are consuming the most time in your database.
Zooming¶
If there is a spike in time consumed or throughput, you can easily see what changed during that period. Click and drag over the area of interest on the chart:
Annotations are added to the queries list when zooming:
- The change in rank, based on % time consumed, of each query. Queries that jump significantly in rank may trigger a dramatic change in database performance.
- The % change across metrics in the zoom window vs. the larger timeframe. If the % change is not significant, the metric is faded.
Database Events¶
Scout highlights significant events in database performance in the sidebar. For example, if time spent in database queries increases dramatically, you’ll find an insight here. Clicking on an insight jumps to the time window referenced by the insight.
Database Query Details¶
After identifying an expensive query, you need to see where the query is called and the underlying SQL. Click on a query to reveal details:
You’ll see the raw SQL and a list of individual query execution times that appeared in transaction traces. Scout collects backtraces on queries consuming more than 500 ms. If we’ve collected a backtrace for the query, you’ll see an icon next to the timing information. Click on one of the traces to reveal that trace in a new window:
The source of that trace is immediately displayed.
Pricing¶
Database Monitoring is available as an addon. See your billing page for pricing information.
Database Addon Installation¶
Update - or install - the scout_apm gem in your application. There’s no special libraries to install on your database servers.
Database Monitoring Library Support¶
Scout currently monitors queries executed via ActiveRecord, which includes most relational databases (PostgreSQL, MySQL, etc).
What does SQL#other mean?¶
Some queries may be identified by a generic SQL#other label. This indicates our agent was unable to generate a friendly label from the raw SQL query. Ensure you are running version 2.3.3 of the scout_apm gem or higher as this release includes more advanced query labeling logic.
Memory Bloat Detection¶
If a user triggers a request to your Rails application that results in a large number of object allocations (example: loading a large number of ActiveRecord objects), your app may require additional memory. The additional memory required to load the objects in memory is released back very slowly. Therefore, a single memory-hungry request will have a long-term impact on your Rails app’s memory usage.
There are 3 specific features of Scout to aid in fixing memory bloat.
Memory Bloat Insights¶
The Insights area of the dashboard identifies controller-actions and background jobs that have triggered significant memory increases. An overview of the object allocation breakdown by tier (ActiveRecord, ActionView, etc) is displayed on the dashboard.

Memory Traces¶
When inspecting a transaction trace, you’ll see a “Memory Allocation Breakdown” section:

For perspective, we display how this trace’s allocations compare to the norm.
Alerting¶

Alerting keeps your team updated if your app’s performance degrades. Alerts can be configured on the app as a whole and on individual endpoints. Metrics include:
- mean response time
- 95th percentile response time
- Apdex
- error rate
- throughput
Notification groups¶
Alerts are sent to a notification group, which is composed of notification channels. You can configure these under your org’s settings menu:

Deploy Tracking¶
![]()
Correlate deploys with your app’s performance: Scout’s GitHub-enhanced deploy tracking makes it easy to identify the Git branch or tag running now and which team members contributed to every deploy.
Scout tracks your deploys without additional configuration if you are running Capistrano. If you aren’t using Capistrano or deploying your app to Heroku, see our deploy tracking configuration docs.
Sorting¶
You can sort by memory allocations throughout the UI: from the list of endpoints, to our pulldowns, to transaction traces.

Context¶
Context lets you see the forest from the trees. For example, you can add custom context to answer critical questions like:
- How many users are impacted by slow requests?
- How many trial customers are impacted by slow requests?
- How much of an impact are slow requests having on our highest paying customers?
Adding custom context is easy - learn how via Ruby, Elixir, or Python.
Context information is displayed in two areas:
- When viewing a transaction trace - click the “Context” section to see the context Scout has collected.
- When using Trace Explorer - filter traces by context.
Endpoints Performance¶
Endpoints Overview¶
The endpoints area within Scout provides a sortable view of your app’s overall performance aggregated by endpoint name. Click on an endpoint to view details.

Time Comparisons¶
You can easily compare the performance of your application between different time periods via the time selection on the top right corner of the UI.

Digest Email¶
At a frequency of your choice (daily or weekly), Scout crunches the numbers on your app’s performance (both web endpoints and background jobs). Performance is compared to the previous week, and highlights are mentioned in the email.

The email identifies performance trends, slow outliers, and attempts to narrow down issues to a specific cause (like slow HTTP requests to another service).
DevTrace¶
DevTrace is our development profiler: it’s included with our Ruby and Elixir libraries. DevTrace can be used for free without signup. Enabling DevTrace adds a speed badge when navigating your app in development. Clicking the speed badge reveals a shareable transaction trace of the request.

Chart Embeds¶
You can embed an app’s overview chart inside another web page (ex: an internal key metrics dashboard):
- Access the application dashboard within the Scout UI.
- Adjust the timeframe and metrics to those you’d like to include in the embedded chart.
- Click the embed icon and copy the relevant code.

Note that you’ll need to update the provided iframe url with a Scout API key.
When clicking on an embedded chart, you’ll be redirected to the relevant application.
Data Retention¶
Scout stores 30 days of metrics and seven days of transaction traces.





