slow-query-notifier icon indicating copy to clipboard operation
slow-query-notifier copied to clipboard

Get notified if your Laravel app ever runs a really slow database query

Slow Query Notifier for Laravel

Get notified if your app ever runs a really slow database query. We set a default threshold, but you can configure it based on your needs & expectations.

Installation

You can install the package via composer:

composer require thomasjohnkane/slow-query-notifier

Usage

Set an email address

// app/Providers/AppServiceProvider.php

use SlowQueryNotifier\SlowQueryNotifierFacade as SlowQueryNotifier;

public function boot()
{
    SlowQueryNotifier::toEmail('[email protected]');
}

Test it works (in Production)

If you are using this in production (as intendend) make sure it is working correctly:

php artisan sqn:test

This command will test two things:

  • We can detect slow queries in your app
  • We can send an email to you if a slow query runs

Configuration

In general, we setup all of the configuration for you with sensible defaults. However, you can change the default settings if you'd like. To learn why we chose these defaults, read the blog post.

Threshold

The default is 99ms. Set a different threshold in milliseconds in your configuration:

SlowQueryNotifier::threshold(200)->toEmail('[email protected]');

Enable/Disable

The package is enabled by default. Set this value to false in your .env to bypass the listener.

SLOW_QUERY_NOTIFIER_ENABLED=false

Testing

phpunit

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

  • Thomas Kane
  • Thanks to Marcel Pociot for the original inspiration
  • Thanks to Caleb Porzio for the guidance
  • All Contributors

License

The MIT License (MIT). Please see License File for more information.

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.