rafaelmilanibarbosa/elastic-apm

一个集成 Elastic APM 到 Laravel 的包

0.0.1 2020-03-14 03:47 UTC

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 中。