instrumentation.js
instrumentation.js|ts
ファイルは、オブザーバビリティツールをアプリケーションに統合するために使用され、パフォーマンスや動作の追跡、本番環境での問題のデバッグを可能にします。
これを使用するには、ファイルをアプリケーションのルートディレクトリ、またはsrc
フォルダを使用している場合はその中に配置します。
エクスポート
register
(オプション)
このファイルは、新しい Next.js サーバーインスタンスが初期化されるときに一度だけ呼び出される register
関数をエクスポートします。register
は非同期関数でも構いません。
onRequestError
(オプション)
オプションで onRequestError
関数をエクスポートして、サーバーエラーを任意のカスタムオブザーバビリティプロバイダーに追跡できます。
onRequestError
内で非同期タスクを実行する場合、それらが待機されることを確認してください。onRequestError
は Next.js サーバーがエラーを捕捉したときにトリガーされます。error
インスタンスは、元のエラーインスタンスではない可能性があります。Server Components のレンダリング中に発生した場合、React によって処理されるためです。これが発生した場合、エラーのdigest
プロパティを使用して実際のエラータイプを識別できます。
パラメータ
この関数は3つのパラメータを受け取ります: error
、request
、context
。
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 | onRequestError の導入、instrumentation が安定版に |
v14.0.4 | instrumentation の Turbopack サポート |
v13.2.0 | instrumentation が実験的機能として導入 |