bitlogicdev / scout-apm-laravel
1.5.1
2020-06-14 12:24 UTC
Requires
- php: >=7.1.0,<7.5.0
- illuminate/contracts: ^5.1|^6.0|^7.0
- illuminate/http: ^5.1|^6.0|^7.0
- illuminate/routing: ^5.1|^6.0|^7.0
- illuminate/support: ^5.1|^6.0|^7.0
- illuminate/view: ^5.1|^6.0|^7.0
- psr/log: ^1.0
- ramsey/uuid: ^3.0|^4.0
- scoutapp/scout-apm-php: ^4.4
Requires (Dev)
- doctrine/coding-standard: ^6.0
- laravel/framework: ^5.1|^6.0|^7.0
- mockery/mockery: ^1.2|^1.3
- phpunit/phpunit: ^7.5.15|^8.4
- roave/security-advisories: dev-master
- spatie/phpunit-watcher: ^1.10
- vimeo/psalm: ^3.5
README
使用Scout的PHP APM代理监控PHP Laravel应用程序的性能。一旦安装并配置了scout-apm包,就会收集详细性能指标和事务跟踪。
重要:Lumen
要使此工具与Lumen兼容,您需要做一些修改
- 确保在app.php中注册了
$app->register(App\Providers\EventServiceProvider::class);
- 将
$app->register(\Scoutapm\Laravel\Providers\ScoutApmServiceProvider::class);
添加为app.php中最后一个注册的提供者 - 将以下中间件添加到app.php的全局中间件中
$app->middleware([ //These should be the first 3 middlewares in the array SendRequestToScout::class, IgnoredEndpoints::class, MiddlewareInstrument::class, //Any other middleware here.... //Finally, this middleware ActionInstrument::class ]);
要求
- PHP版本:PHP 7.1+
- Laravel版本:5.5+
快速开始
需要Scout账户。 注册Scout。
composer require scoutapp/scout-apm-laravel
然后使用Laravel的artisan vendor:publish
确保配置可以缓存
php artisan vendor:publish --provider="Scoutapm\Laravel\Providers\ScoutApmServiceProvider"
配置
在您的.env
文件中,确保设置了一些配置变量
SCOUT_KEY=ABC0ZABCDEFGHIJKLMNOP
SCOUT_NAME="My Laravel App"
SCOUT_MONITOR=true
您的密钥可以在Scout组织设置页面找到。
文档
有关完整安装和故障排除文档,请访问我们的帮助站点。
支持
请通过support@scoutapm.com联系我们或在存储库中创建问题。
功能
Laravel库
- 将服务
\Scoutapm\ScoutApmAgent::class
注册到容器中(适用于依赖注入) - 提供Facade
\Scoutapm\Laravel\Facades\ScoutApm
- 包装视图引擎以监控视图渲染时间
- 注入多个中间件以监控控制器并将统计数据发送到Scout Core代理
- 向数据库连接添加监听器以测量SQL查询
自定义测量
为了执行自定义测量,您可以在代码中调用instrument
方法。例如,给定一些要监控的代码
$request = new ServiceRequest(); $request->setApiVersion($version);
使用为Laravel提供的Facade进行包装,并将调用监控。
// 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; } );