テレメトリー
Next.jsは、一般的な使用状況に関する**完全に匿名の**テレメトリーデータを収集します。この匿名プログラムへの参加は任意であり、情報を共有したくない場合はオプトアウトできます。
なぜテレメトリーが収集されるのですか?
Next.jsはリリース以来大幅に成長し、開発者にとって事実上のReactフレームワークとなっています。テレメトリー収集以前は、Next.jsを改善する方法に関する意思決定は非常に手作業で行われていました。
例えば、Vercelは多くの大規模なReactアプリケーション(Next.jsウェブサイトを含む)で自社製品を使用しています。さらに、私たちは積極的にコミュニティと連携してフィードバックを収集します。
しかし、このアプローチでは、ユーザーの一部からのみフィードバックを収集できます。このサブセットは、お客様とは異なるニーズやユースケースを持っている可能性があります。テレメトリーを使用すると、Next.jsの機能の使用状況、問題点、およびカスタマイズを正確に測定できます。
このデータにより、Next.jsをより多くのユーザーに合わせて調整し、その継続的な成長、関連性、およびクラス最高の開発者エクスペリエンスを確保できます。さらに、これにより、フレームワークに加えられた改善がすべてのアプリケーションのベースラインを向上させているかどうかを確認できます。
何が収集されていますか?
Next.jsプラグインやビルドパフォーマンスなど、一般的な使用状況情報を追跡しています。具体的には、以下の情報を匿名で追跡します。
- 呼び出されたコマンド(
next build
、next dev
、またはnext export
) - Next.jsのバージョン
- 一般的なマシン情報(例:CPU数、macOS/Windows/Linux、コマンドがCI内で実行されたかどうか)
- プロジェクトに存在するNext.jsプラグイン
next build
の実行時間とアプリケーションのサイズ(総ページ数)- 開発中、エラーに関する追加のフィードバックを求めます(エラーフィードバックを参照)。
注:このリストは、その正確性を確保するために定期的に監査されます。
以下の環境変数を設定することで、何が収集されているかを正確に確認できます:NEXT_TELEMETRY_DEBUG=1
。
この環境変数が設定されている場合、データは**弊社には送信されません**。データはstderrストリームにのみ出力され、[telemetry]
というプレフィックスが付きます。
テレメトリーイベントの例は次のようになります
{
"eventName": "NEXT_VERSION",
"payload": {
"version": "9.0.5-canary.2",
"isDevelopment": false
}
}
機密データ(例:シークレット)についてはどうですか?
機密データを含む可能性のあるメトリクスは**収集しません**。
これには、環境変数、ファイルパス、ファイルの内容、ログ、シリアライズされたJavaScriptエラーなどが含まれますが、これらに限定されません。
私たちはプライバシーとセキュリティを非常に真剣に考えています。Next.jsのテレメトリーは、セキュリティ開示ポリシーの対象となります。
私たちが収集するデータは完全に匿名であり、ソースを追跡することはできず、集計された形式でのみ意味を持ちます。
私たちが収集するデータには、個人を特定できる情報は含まれていません。
このデータは共有されますか?
私たちは製品改善のためにテレメトリーデータを内部で使用し、マーケティングなどのビジネス目的で、識別を解除されたデータを集計形式でのみ共有します。
エラーフィードバック
開発中にエラーが表示された際、Next.jsはエラーが役立ったかどうかに関するフィードバックを送信できるようにしています。このフィードバックはVercelに送信され、Next.jsのエラーメッセージの改善に利用されます。Next.jsがこのフィードバックを自動的に収集することはありません。開発者は、対応するフィードバックを送信するために、いいねボタンまたはよくないねボタンをクリックする必要があります。
Next.jsは、エラーコードと、既に自動的に収集しているその他の情報のみを収集します。エラーコードは特定のエラーの一意の識別子です。エラーメッセージにはエラーが発生したページなどのアプリ固有のデータが含まれる可能性があるため、このコードから完全なエラーメッセージを再構築することはできません。エラーコードとそれに対応するメッセージのリストは、vercel/next.js/packages/next/errors.jsonで確認できます。
オプトアウトする方法は?
プロジェクトディレクトリのルートでnext telemetry disable
を実行することで、オプトアウトできます。
npx next telemetry disable
yarn next telemetry disable
pnpm exec next telemetry disable
bun next telemetry disable
プロジェクトディレクトリのルートでnext telemetry status
を実行することで、いつでもテレメトリー収集のステータスを確認できます。
npx next telemetry status
yarn next telemetry status
pnpm exec next telemetry status
bun next telemetry status
プログラムに再度参加したい場合は、プロジェクトディレクトリのルートで以下を実行することで、テレメトリーを再有効化できます。
npx next telemetry enable
yarn next telemetry enable
pnpm exec next telemetry enable
bun next telemetry enable
環境変数NEXT_TELEMETRY_DISABLED=1
を設定することでも、オプトアウトできます。