Repolode
halilcosdu

halilcosdu/laravel-slower

遅いデータベースクエリを記録して重複をグループ化し、LLMでインデックスやクエリ書き換えを提案する、ダッシュボード内蔵のLaravelパッケージです。

スター
415
フォーク
22
未解決の Issue
1
最終コミット
19 日前

これは何?

Laravel SlowerはLaravelのクエリリスナーにフックし、設定したミリ秒単位のしきい値を超えるクエリをすべて、バインディング、接続情報、および実行元のルート、ジョブ、artisanコマンドとともに記録します。繰り返し実行されるSQL文はフィンガープリントでグループ化され、頻度の高い遅いクエリのパターンから確認できます。

必要に応じて、記録したクエリをパラメーター化されたSQL、テーブルスキーマ、インデックス、読み取り専用のEXPLAINプランとともに、LLM(OpenAI、Anthropic Claude、Google Gemini、またはPrism経由のセルフホストモデルやカスタムモデル)へ送信できます。インデックスや書き換えに関する提案はMarkdown形式で保存・表示されます。デフォルトでアプリケーション外へ送信されるのはパラメーター化されたSQLのみです。生のSQLとバインディングを送信するには明示的なオプトインが必要で、redactorを通して渡すこともできます。

パッケージには、デフォルトでローカル環境にアクセスが制限された、/slower のセルフ完結型ダッシュボードが付属します。サンプリング、実行ごとのキャプチャ上限、キュー経由の分析ジョブ、アラート用イベントに対応し、2段階のマイグレーションを実行してComposerでインストールします。

主な機能

  • 01DB::listenフックを使い、設定可能なしきい値を超えるクエリを記録します。
  • 02フィンガープリントを使って同じクエリパターンをグループ化し、発生回数と実行時間を記録します。
  • 03各クエリの実行元となったルート、コントローラーのアクション、ジョブ、コマンド、およびコード上の場所を記録します。
  • 04パラメーター化されたSQLとスキーマ情報をOpenAI、Anthropic、Gemini、またはカスタムドライバーに送り、提案を取得します。
  • 05検索、フィルター、ワンクリックのAI分析機能を備えたダッシュボードを提供します。
  • 06サンプリング、リクエストごとの上限、キューを使ったバックグラウンド分析に対応します。

ユースケース

  • パフォーマンス調整時に、Laravelアプリで頻繁に発生する遅いクエリを見つける。
  • 各SQL文に対して手動でEXPLAINを実行せずに、インデックスやクエリ書き換えの提案を得る。
  • 本番環境で新しい遅いクエリパターンが発生したときに、チームへ通知する。
  • サンプリングと上限を設けて、高トラフィック環境でも遅いクエリの記録を続ける。

クイックスタート

  1. 1

    Composerでパッケージをインストールします

    composer require halilcosdu/laravel-slower
  2. 2

    マイグレーションを公開します

    php artisan vendor:publish --tag="slower-migrations"
  3. 3

    マイグレーションを実行し、ローカル環境で /slower を開きます

    php artisan migrate

使う前に知っておきたいこと

  • PHP 8.3以降とLaravel 11、12、または13が必要です。
  • AIによるおすすめ機能には、有料LLMプロバイダーのAPIキーが必要です。また、分析を実行するたびに料金が発生します。
  • viewSlower gateを定義するまでは、ダッシュボードにはデフォルトでローカル環境からのみアクセスできます。

収録されている特集

トピック

よくある質問

laravel-slower とは?
遅いデータベースクエリを記録して重複をグループ化し、LLMでインデックスやクエリ書き換えを提案する、ダッシュボード内蔵のLaravelパッケージです。 Laravel SlowerはLaravelのクエリリスナーにフックし、設定したミリ秒単位のしきい値を超えるクエリをすべて、バインディング、接続情報、および実行元のルート、ジョブ、artisanコマンドとともに記録します。繰り返し実行されるSQL文はフィンガープリントでグループ化され、頻度の高い遅いクエリのパターンから確認できます。
laravel-slower は無料で使えますか?ライセンスは?
laravel-slower は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
laravel-slower は今もメンテナンスされていますか?
活発にメンテナンス中。laravel-slower の最終コミットは 2026年10月19日 です。
laravel-slower は何に使えますか?
パフォーマンス調整時に、Laravelアプリで頻繁に発生する遅いクエリを見つける。 各SQL文に対して手動でEXPLAINを実行せずに、インデックスやクエリ書き換えの提案を得る。 本番環境で新しい遅いクエリパターンが発生したときに、チームへ通知する。 サンプリングと上限を設けて、高トラフィック環境でも遅いクエリの記録を続ける。
laravel-slower のインストール方法は?
Composerでパッケージをインストールします: composer require halilcosdu/laravel-slower マイグレーションを公開します: php artisan vendor:publish --tag="slower-migrations" マイグレーションを実行し、ローカル環境で /slower を開きます: php artisan migrate
laravel-slower はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/halilcosdu/laravel-slower

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト