instrumentation.js
instrumentation.js|ts
ファイルは、アプリケーションに観測ツールを統合するために使用され、本番環境でのパフォーマンスや動作を追跡し、問題をデバッグすることができます。
使用するには、アプリケーションのルートまたはsrc
フォルダ(使用している場合)にファイルを配置します。
このファイルは、新しいNext.jsサーバーインスタンスが開始されたときに1回呼び出されるregister
関数をエクスポートします。register
は非同期関数にすることができます。
任意のカスタム観測プロバイダーにサーバーエラーを追跡するために、onRequestError
関数をエクスポートできます。
onRequestError
で非同期タスクを実行する場合は、それらを必ず待機してください。onRequestError
は、Next.jsサーバーがエラーをキャプチャしたときにトリガーされます。
- エラーインスタンスは、Server Componentsのレンダリング中に発生した場合、元のエラーインスタンスではない可能性があります。そのような場合、エラーの
digest
プロパティを使用して実際のエラータイプを識別できます。
この関数は、error
、request
、context
の3つのパラメータを受け取ります。
error
: キャッチされたエラー自体(常にError
型)、および一意のエラーIDであるdigest
プロパティ。
request
: エラーに関連付けられた読み取り専用のリクエスト情報。
context
: エラーが発生したコンテキスト。これは、ルーターのタイプ(AppまたはPages Router)、および/またはServer Components('render'
)、Route Handlers('route'
)、Server Actions('action'
)、またはMiddleware('middleware'
)になります。
instrumentation.js
ファイルはNode.jsとEdgeの両方のランタイムで動作しますが、process.env.NEXT_RUNTIME
を使用して特定のランタイムをターゲットにすることができます。
バージョン | 変更点 |
---|
v15.0.0-RC | onRequestError 導入、instrumentation が安定版に |
v14.0.4 | instrumentation のTurbopack対応 |
v13.2.0 | instrumentation を実験的機能として導入 |