rafaelmilanibarbosa / elastic-apm
一个集成 Elastic APM 到 Laravel 的包
Requires
- php: >= 7.0
- illuminate/database: 5.5.x|5.6.x|5.7.x|5.8.x
- illuminate/http: 5.5.x|5.6.x|5.7.x|5.8.x
- illuminate/routing: 5.5.x|5.6.x|5.7.x|5.8.x
- illuminate/support: 5.5.x|5.6.x|5.7.x|5.8.x
- philkra/elastic-apm-php-agent: >=6.5.3
- ramsey/uuid: ^3.0
Requires (Dev)
- phpunit/phpunit: 6.*
This package is auto-updated.
Last update: 2024-09-14 14:53:59 UTC
README
Laravel 包,集成 https://github.com/philkra/elastic-apm-php-agent 库,自动处理事务和错误/异常。如果使用 Illuminate\Support\Facades\Auth
,则将用户 ID 添加到上下文中。已在 Laravel 5.6.*
和 philkra/elastic-apm-php-agent 版本 6.2.*
上进行测试。
安装
composer require rafaelmilanibarbosa/elastic-apm
中间件
Laravel
注册为(例如)全局中间件,以便在每次请求时调用。 https://laravel.net.cn/docs/5.6/middleware#global-middleware
在 app/Http/Kernel.php
中注册中间件
protected $middleware = [ // ... more middleware \RafaelMilaniBarbosa\ElasticApm\Middleware\RecordTransaction::class, ];
Lumen
在 bootstrap/app.php
中注册 RafaelMilaniBarbosa\ElasticApm\Middleware\RecordTransaction::class
作为中间件
$app->middleware([ RafaelMilaniBarbosa\ElasticApm\Middleware\RecordTransaction::class ]);
错误/异常处理
Laravel
在 app/Exceptions/Handler
中,向 report
方法添加以下内容
ElasticApm::captureThrowable($exception); ElasticApm::send();
确保在文件顶部导入外观
use ElasticApm;
Lumen
尚未测试。
代理配置
Laravel
以下环境变量在默认配置中被支持
您还可以发布 elastic-apm.php
配置文件以更改其他设置
php artisan vendor:publish --tag=config
发布后,打开 config/elastic-apm.php
文件并查看各种设置。
Laravel 测试设置
Laravel 提供类来支持使用 PHPUnit 运行单元测试和功能测试。在大多数情况下,您可能希望显式禁用 APM,因为它默认启用。有关更多信息,请参阅 Laravel 文档(https://laravel.net.cn/docs/5.7/testing)。
因为 APM 代理使用严格的布尔类型检查其活动状态,所以您必须确保您的 APM_ACTIVE
值是布尔 false
而不是简单的假值。完成此操作的最佳方法是创建一个 .env.testing
文件,并包括 APM_ACTIVE=false
,以及任何其他测试所需的环境设置。此文件应安全地包含在您的 SCM 中。