Documentation Index
Fetch the complete documentation index at: https://kawax.biz/llms.txt
Use this file to discover all available pages before exploring further.
Laravel Nightwatchとは
Laravel Nightwatch は、Laravelアプリケーションの本番環境を継続的に監視するためのホスト型SaaSプラットフォームです。HTTPリクエスト、SQLクエリ、例外、キュージョブ、ログ、スケジュールタスクなど、アプリケーション全体のテレメトリーデータをリアルタイムに収集・可視化します。Nightwatchは有料サービス(月額課金)です。無料プランでも利用できますが、収集できるイベント数に上限があります。無料プランで実用的に使うには、後述するサンプリングとフィルタリングの設定が必須です。
Telescope・Pulseとの違い
Nightwatchは、Laravelエコシステムにある既存の監視・デバッグツールと目的が異なります。それぞれの用途を整理します。| ツール | 用途 | ホスティング | 対象環境 |
|---|---|---|---|
| Telescope | 開発時のデバッグ・クエリ調査 | 自前(Laravelアプリ内) | ローカル開発 |
| Pulse | パフォーマンス指標の集計・表示 | 自前(Laravelアプリ内) | 本番・ステージング |
| Nightwatch | 本番アプリのリアルタイム監視 | Laravelホスト型SaaS | 本番環境 |
アーキテクチャ
Nightwatchは、LaravelアプリとNightwatchクラウドの間にエージェントプロセスを挟む構成を採っています。 エージェントはローカル(127.0.0.1:2407)で待機し、Laravelアプリからのイベントを受け取ってクラウドに転送します。このため、エージェントプロセスを常時稼働させる必要があります。
インストールと初期設定
1. アカウント・アプリケーションの作成
nightwatch.laravel.com でアカウントを作成し、組織とアプリケーションを登録します。アプリケーション登録後に環境トークンが発行されます。2. パッケージのインストール
--dev フラグは不要です。Nightwatchは本番環境での使用を前提としています。
3. トークンの設定
.env ファイルにトークンを追加します。
4. エージェントの起動
5. テスト環境での無効化
テスト実行時はNightwatchを無効にすることを推奨します。phpunit.xml でも設定できます。
無料プランで実用的に使うための設定
サンプリングレートを下げる
NIGHTWATCH_REQUEST_SAMPLE_RATE はデフォルトが 1.0(全リクエスト収集)です。無料プランでは 0.1(10%)程度に抑えることを推奨します。
クエリ収集を無効にする
データベースクエリはイベント数の大きな割合を占めます。無料プランではクエリ収集を無効にすることで、重要なイベント(例外・リクエスト・ジョブ)の保存余地を確保できます。その他のフィルタリング設定
必要に応じてキャッシュイベントやメール収集も無効化できます。無料プラン推奨設定まとめ
主要機能
リクエスト監視
HTTPリクエストごとにレスポンスタイム、ステータスコード、ルート情報などを収集します。異常に遅いエンドポイントを特定し、パフォーマンスのボトルネックを発見できます。例外トラッキング
本番環境で発生した未処理の例外をリアルタイムに捕捉します。スタックトレースとソースコードのスニペットが自動的に記録され、原因調査が容易になります。ログ収集
Laravelのログシステム(Log::error() など)と統合し、構造化ログをNightwatchに送信します。
ジョブ・スケジュールタスク監視
キュージョブやスケジュールタスクの実行履歴、成功・失敗状態、実行時間を追跡します。バッチ処理の問題を素早く特定できます。デプロイメントトラッキング
リリースごとの変更点と問題を紐付けます。「このデプロイ後から例外が増えた」という調査が視覚的に行えます。アラートと通知
Slack連携やWebhookを使用して、例外の急増やパフォーマンス劣化を即座に通知できます。TelescopeとNightwatchの使い分け
- ローカル開発 → Telescope
- 本番環境の集計ダッシュボードが欲しい → Pulse
- 本番環境の詳細なトレースやアラートが欲しい → Nightwatch
まとめ
Laravel Nightwatchは、本番Laravelアプリケーションの可視性を大幅に向上させる強力なSaaSツールです。導入の際は以下の点を押さえておきましょう。- エージェントプロセスを常時稼働させる必要がある
- 無料プランは
NIGHTWATCH_REQUEST_SAMPLE_RATE=0.1とNIGHTWATCH_IGNORE_QUERIES=trueの設定が実用上必須 - Telescope(開発)・Pulse(集計)・Nightwatch(監視)は役割が異なり、併用できる
Laravel Telescope 実践テクニック
ローカル開発でのデバッグにはTelescopeを使います。