Laravel Pulseを使ってみた
Laravel Pulseとは
Laravel Pulse は、アプリケーションのパフォーマンスと使用状況を一目で把握できる洞察を提供します。Pulse を使用すると、遅いジョブやエンドポイントなどのボトルネックを追跡したり、最もアクティブなユーザーを見つけたりすることができます。
公式サイト: https://pulse.laravel.com/
公式ドキュメント: https://laravel.com/docs/10.x/pulse
要するに、リクエストの多いユーザーや、動作の重いリクエスト・処理等がWebで確認できるようにしてボトルネックを見つけやすくしてくれるってことですね。
先に言っておくと、具体的に
- ユーザー毎のリクエスト数、ジョブ生成数
- キューの進行状況
- キャッシュヒット率の確認
- Exceptionの発生状況
- 動作の重いリクエスト、クエリ、ジョブの確認
が確認できました。
確かにすべて、ボトルネックを見つけるのに重要な項目ですね。
ちょっとだけ気になったので、軽く覗いてみます。
インストール
ドキュメントを参考にしながら、インストールします。
まず、ベータ版のパッケージを導入できるようにcomposer.json
の設定をいじります。
"minimum-stability": "beta",
"prefer-stable": true
その後、下記のコマンドを実行して完了です。
composer require laravel/pulse
php artisan migrate
簡単ですね
Webインターフェイス
インターフェイスにはデフォルトでは/pulse
でアクセスできますが、config/pulse.php
から変更もできます
感想
随分とすっきりしたインターフェイスですね。
直近の1時間/半日/1日/1週間というように見たい期間を指定できるのも良いですね👍
因みに、この画面にはLivewireが使われていて、数秒置きに状態を更新してくれます。
確認できる項目
- Application Usage: ユーザー毎のリクエスト数、ジョブ生成数
- Queues: キューの進行状況
- Cache: キャッシュヒット率の確認
- Exceptions: Exceptionの発生状況
- Slow Queries: 動作の重いクエリ
- Slow Jobs: 動作の重いジョブ
- Slow Requests: 動作の重いリクエスト
- Slow Outgoing Requests: 動作の重いリクエスト(サーバー側からの呼び出し?)
他にも色々できるみたい
今回は覗いただけですが、Laravel Newsの記事を見てみると、もっと色々なことができるみたいです。
サーバーのCPU/メモリ/ストレージ使用率や、カスタマイズ
気になる方は記事を見てみてください。
→ https://laravel-news.com/laravel-pulse
総括
中身はシンプルでしたが、どれもボトルネックを見つけるのに必要な機能だったので、良いですね。
気になった方はLaravel Newsの記事を見たり調べたりしながら、いじってみてください^^
シンプルで拡張性もありそうなのでリリースされたら導入してみたいですね😀
Discussion