Scout automatically reveals slow query problems, N+1 query issues, and memory bloat. Fix elusive and performance impacting events with a solution that uncovers your most expensive queries and bottlenecks and pinpoints the root cause – with detailed metrics.
No guessing at bottlenecks or manually timing operations. Scout's Query Analysis gives you concrete data about your most resource-intensive database operations, so you can make informed decisions about optimization and keep your application running smoothly.
Real-time monitoring lets you track your application's throughput while drilling down into specific time periods to investigate performance issues. Whether you're looking at find operations, commits, or custom queries, you'll see exactly how much database time each one consumes.
Scout automatically detects and alerts on significant changes to database performance. When usage spikes occur – you'll know immediately, with the context you need to quickly diagnose and resolve database bottlenecks.
When, instead of a single query, an N amount of individual queries are executed to retrieve related data, this results in a total of N+1 queries. Scout analyzes your traces and shows you the trace found to contain N+1s with UX impacts.
See which database queries are consuming the most time and impacting overall performance.
Identify queries causing significant slowdowns within your web endpoints and background jobs.
Track consistently slow-performing queries to prioritize your optimization efforts.
Scout users can also view past insights related to slow queries, N+1 queries, and memory bloat. These insights have a corresponding trace saved – and with a longer retention period.
With monitoring that "just works" for Rails, Django and more, get running in minutes with Scout's streamlined setup. No extra code needed - just deploy our agent and start getting insights in 5 minutes.
Get started in under 3 minutes with our easy to install Ruby agent.
Install our gem. In your gemfile:
gem 'scout_apm'
Shell:
bundle install
Download your customized config file, placing it at config/scout_apm.yml
.
Deploy.
We initially provision your application using environment variables instead of the config/scout_apm.yml
. Configuration values set via env variables will take priority over those set via yaml.
For Django, use the following steps (Flask and friends, see full docs):
Install the scout-apm
package:
pip install scout-apm
Configure Scout in your settings.py
file:
# settings.py
INSTALLED_APPS = [
"scout_apm.django", # should be listed first
# ... other apps ...
]
# Scout settings
SCOUT_MONITOR = True
SCOUT_KEY = "[AVAILABLE IN THE SCOUT UI]"
SCOUT_NAME = "A FRIENDLY NAME FOR YOUR APP"
If you wish to configure Scout via environment variables, use SCOUT_MONITOR
, SCOUT_NAME
, and SCOUT_KEY
instead of providing these settings in settings.py
.
Deploy.
It takes approximately five minutes for your data to first appear within the Scout UI.
If you've installed Scout via the Heroku Addon, the provisioning process automatically sets SCOUT_MONITOR and SCOUT_KEY via config vars. Only SCOUT_NAME is additionally required.
Scout supports Laravel 5.5+.
Not using Laravel? Check our documentation.
Install the scoutapp/scout-apm-laravel
package:
composer require scoutapp/scout-apm-laravel
Install the scoutapm
php extension (optional, recommended):
sudo pecl install scoutapm
Configure Scout in your .env
file:
# Scout settings
SCOUT_MONITOR=true
SCOUT_KEY="[AVAILABLE IN THE SCOUT UI]"
SCOUT_NAME="A FRIENDLY NAME FOR YOUR APP"
Add the config/scout_apm.php:
php artisan vendor:publish --provider="Scoutapm\Laravel\Providers\ScoutApmServiceProvider"
Clear and re-cache your config:
php artisan config:cache
Deploy.
It takes approximatively five minutes for your data to first appear within the Scout UI.
If you’ve installed Scout via the Heroku Addon, the provisioning process automatically sets SCOUT_MONITOR
and SCOUT_KEY
via config vars. Only SCOUT_NAME
is required.
For a Phoenix app, add our package to mix.exs
(and run mix deps.get
):
{:scout_apm, "~> 1.0"}]
Download your customized config after signing up and place at config/scout_apm.exs
Add to your app:
# lib/your_app_web.ex
defmodule YourApp.Web do
def controller do
quote do
use Phoenix.Controller
use ScoutApm.Instrumentation
...
See our full installation guide to get the most out of your Scout instrumentation!
Join engineering teams who trust Scout Monitoring for hassle-free performance monitoring. With our 3-step setup, powerful tooling, and responsive support, you can quickly identify and fix performance issues before they impact your users.