ilzrv/laravel-slow-query-detector

Laravel Slow DB Query Detector

v2.1.0 2023-06-03 12:32 UTC

This package is auto-updated.

Last update: 2024-12-03 15:46:32 UTC


README

Latest Version on Packagist Software License Build Status Total Downloads

This package allows you to detect controller methods in the code that make a lot of queries to the database as well as find very heavy queries.

Requirements

  • PHP 8.0+
  • Laravel 9+

Installation

You can install the package via composer:

composer require ilzrv/laravel-slow-query-detector

Configuration

By default, the package is already configured and enabled, but you can change the settings if necessary. To publish the configuration file, run:

php artisan vendor:publish --provider="Ilzrv\LaravelSlowQueryDetector\ServiceProvider"

SQD_ENABLED

Determines whether query listening is enabled.

SQD_CODE_MAX_QUERIES

Maximum number of queries when processing the controller method. If your method executes more queries than this value the notification will be received.

SQD_CODE_MAX_TIME

Maximum execution time of the controller method (in ms). If your method takes longer than this value to complete the notification will be received.

SQD_QUERY_BINDINGS

Queries with bindings. If true then bindings will be applied to queries in notification. Example (if true): select * from users where name = John instead of select * from users where name = ?

SQD_QUERY_MAX_TIME

Maximum execution time for each query in DB (in ms). If at least one query exceeds this value you will receive a notification.

Example logs output:

[2020-04-12 06:59:21] production.CRITICAL: Array
(
    [SQD] => Array
        (
            [Execution Time] => 60 ms.
            [Queries Count] => 2
            [Heavy Queries Count] => 2
            [Full URL] => https://example.org/?name=John
            [Action] => App\Http\Controllers\HomeController@index
            [Heaviest Query] => Array
                (
                    [Query] => select * from `users` where `name` = John
                    [Time] => 50.67 ms.
                )

        )
)

License

The Laravel Slow Query Detector is open-sourced software licensed under the MIT license