テレメトリ
Next.js は、一般的な使用状況に関する完全に匿名化されたテレメトリデータを収集します。この匿名プログラムへの参加は任意であり、情報を共有したくない場合はオプトアウトできます。
テレメトリはなぜ収集されるのですか?
Next.js はリリース以来大幅に成長し、開発者にとって事実上の React フレームワークとなりました。テレメトリ収集以前は、Next.js を改善する方法についての意思決定は非常に手作業で行われていました。
たとえば、Vercel は 自身で開発した製品を実際に使用します (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 disableyarn next telemetry disablepnpm exec next telemetry disablebun next telemetry disableプロジェクトのルートディレクトリで next telemetry status を実行することで、いつでもテレメトリ収集のステータスを確認できます。
npx next telemetry statusyarn next telemetry statuspnpm exec next telemetry statusbun next telemetry statusプログラムに再度参加したい場合は、プロジェクトのルートディレクトリで以下を実行してテレメトリを再有効化できます。
npx next telemetry enableyarn next telemetry enablepnpm exec next telemetry enablebun next telemetry enable環境変数 NEXT_TELEMETRY_DISABLED=1 を設定することでもオプトアウトできます。