sofa/laravel-db-queries-alert

针对 Laravel 应用中数据库查询滥用进行简单检查,即检查您的查询!

v0.1.1 2018-07-03 13:29 UTC

This package is auto-updated.

Last update: 2024-09-07 15:54:50 UTC


README

即检查您的查询!

Downloads stable

Laravel 和 Eloquent 非常美丽且易于使用。许多包使事情更加简单,这是很棒的!但是,这也有代价。你可能会发现自己处于应用程序变慢或完全冻结的情况,而代码没有显著变化。这可能是由于你在 Eloquent 关系上遇到 数据库查询滥用 造成的,比如 N+1 查询问题,或者你使用的某个包中的某些魔法设置。

此包将通过检查正在运行的查询并在达到指定阈值时记录 info|warning|error 来帮助你解决这个问题。

该包的目标仅仅是提醒你,而不涉及细节。它为你提供一些线索,以便你能够立即发现问题,或者你可以使用 laravel-debugbarblackfirexdebug 或你选择的任何其他工具进行更深入的分析。

使用方法

安装包后,你可以通过调用

$ php artisan vendor:publish --provider="Sofa\DbQueriesAlert\ServiceProvider"

并编辑 config/db_queries_alert.php

return [
    'error' => 100,
    'warning' => 50,
    'info' => 20,
];

现在你准备好了。当你的应用程序达到给定的阈值时,包将调用 Log::error(或 warning|info)。在应用程序使用的监控服务中捕获此错误(或简单地检查你本地的 storage/logs/laravel[-YYYY-MM-DD].log 文件)。

注意

此包完全依赖于 Laravel,并且仅应在那里使用,因此没有 DI,它毫不掩饰地使用外观和助手,甚至不试图隐藏它 ¯\(ツ)

安装

  1. 将包添加到你的项目中

    path/to/your/app$ composer require sofa/laravel-db-queries-alert
    
  2. 然后手动将提供者添加到你的 config/app.php

    包支持 自动发现,因此此步骤仅适用于 Laravel 5.4。

    // config/app.php
    
        'providers' => [
            ...
            Sofa\DbQueriesAlert\ServiceProvider::class,
        ],
  3. app/Http/Kernel.php 文件中添加全局中间件堆栈条目,并在你的 .env 文件中设置标志

    // app/Http/Kernel.php
    class Kernel extends HttpKernel
    {
        /**
         * The application's global HTTP middleware stack.
         *
         * These are run for every single Request.
         *
         * @var array
         */
        protected $middleware = [
            ...
            \Sofa\DbQueriesAlert\Middleware::class,
        ];
    
    
    
    // .env
    DB_QUERIES_ALERT_ENABLED=true

贡献

欢迎所有贡献,PR 必须遵守 PSR-2