Monitor the performance of PHP Laravel applications with Scout's PHP APM Agent. Detailed performance metrics and transaction traces are collected once the scout-apm package is installed and configured.
- PHP Version: PHP 7.1+
- Laravel Version: 5.5+
A Scout account is required. Signup for Scout.
composer require scoutapp/scout-apm-laravel
Then use Laravel's artisan vendor:publish
to ensure configuration can be cached:
php artisan vendor:publish --provider="Scoutapm\Laravel\Providers\ScoutApmServiceProvider"
In your .env
file, make sure you set a few configuration variables:
SCOUT_KEY=ABC0ZABCDEFGHIJKLMNOP
SCOUT_NAME="My Laravel App"
SCOUT_MONITOR=true
Your key can be found in the Scout organization settings page.
For full installation and troubleshooting documentation, visit our help site.
Please contact us at [email protected] or create an issue in this repo.
The Laravel library:
- Registers a service
\Scoutapm\ScoutApmAgent::class
into the container (useful for dependency injection) - Provides a Facade
\Scoutapm\Laravel\Facades\ScoutApm
- Wraps view engines to monitor view rendering times
- Injects several middleware for monitoring controllers and sending statistics to the Scout Core Agent
- Adds a listener to the database connection to instrument SQL queries
In order to perform custom instrumentation, you can wrap your code in a call to the instrument
method. For example,
given some code to be monitored:
$request = new ServiceRequest();
$request->setApiVersion($version);
Using the provided Facade for Laravel, you can wrap the call and it will be monitored.
// At top, with other imports
use Scoutapm\Events\Span\Span;
use Scoutapm\Laravel\Facades\ScoutApm;
// Replacing the above code
$request = ScoutApm::instrument(
'Custom',
'Building Service Request',
static function (Span $span) use ($version) {
$request = new ServiceRequest();
$request->setApiVersion($version);
return $request;
}
);