テレメトリー
Visual Studio Code は、製品を改善する方法を理解するために使用されるテレメトリーデータを収集します。たとえば、この使用状況データは、起動時間の遅延などの問題をデバッグしたり、新機能の優先順位を付けたりするのに役立ちます。このデータが提供する洞察に感謝する一方で、誰もが使用状況データを送信したいわけではないことも承知しており、「テレメトリーレポートを無効にする」で説明されているように、テレメトリーを無効にすることができます。詳細については、プライバシーに関する声明をお読みください。
テレメトリーデータ型
VS Code とこのページでは、テレメトリーに関して 3 種類の異なるデータを参照しています。
クラッシュレポート - クラッシュレポートは、VS Code がクラッシュしたときに診断情報を収集し、クラッシュが発生した理由と、将来のクラッシュを防ぐために必要な変更を理解するのに役立つように Microsoft に送信します。
エラーテレメトリー - エラーテレメトリーは、アプリケーションをクラッシュさせないが予期しないエラーに関する情報を収集します。
使用状況データ - 使用状況データは、VS Code での機能の使用方法とパフォーマンスに関する情報を収集し、将来の製品改善の優先順位付けに役立てます。
テレメトリーレポートを無効にする
telemetry.telemetryLevel ユーザー設定を使用すると、1 つの設定で送信するテレメトリーのさまざまな種類を制御できます。以下は、telemetry.telemetryLevel の各値で送信されるデータ型の表です。
クラッシュレポート | エラーテレメトリー | 使用状況データ | |
---|---|---|---|
すべて | ✓ | ✓ | ✓ |
エラー | ✓ | ✓ | - |
クラッシュ | ✓ | - | - |
オフ | - | - | - |
たとえば、Microsoft にテレメトリーデータを送信したくない場合は、telemetry.telemetryLevel ユーザー設定を off
に設定できます。
ファイル > 基本設定 > 設定から、telemetry
を検索し、テレメトリー: テレメトリーレベル設定を off
に設定します。これにより、VS Code からのすべてのテレメトリーイベントが今後抑制されます。テレメトリー情報は、設定を無効にする時点まで収集および送信されている可能性があります。
設定に JSON エディターを使用する場合は、次の行を追加します。
"telemetry.telemetryLevel": "off"
拡張機能とテレメトリー
VS Code では、Microsoft およびサードパーティの拡張機能をインストールして製品に機能を追加できます。これらの拡張機能は、独自の使用状況データを収集している可能性があり、telemetry.telemetryLevel 設定によって制御されません。特定の拡張機能のドキュメントを参照して、テレメトリーレポートと、無効にできるかどうかを確認してください。
拡張機能の作成者は、拡張機能内でテレメトリーのベストプラクティスを実装するためのガイダンスについて、「拡張機能の作成者向け」セクションを参照してください。
テレメトリーイベントの出力チャネル
VS Code でテレメトリーイベントが送信されるときに確認したい場合は、トレースを有効にすると、テレメトリーイベントが記録されます。開発者: ログレベルの設定... コマンドを使用し、ログレベル トレース を選択します。ログ出力を表示するには、出力パネル (⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H)) に移動し、ドロップダウンから Telemetry を選択します。
テレメトリーイベントをトレースすると、イベントはローカルファイル telemetry.log
にも記録されます。これは、開発者: ログファイルを開く... コマンドを使用し、ドロップダウンから Telemetry を選択して表示できます。
すべてのテレメトリーイベントの表示
VS Code が送信する可能性のあるすべてのテレメトリーイベントを表示したい場合は、CLI で --telemetry
フラグを使用できます。これにより、VS Code 内で表示できる JSON レポートが生成されます。これらのレポートはビルドごとに生成され、拡張機能の作成者がルートビルドディレクトリに telemetry.json
ファイルを追加しない限り、拡張機能テレメトリーは含まれません。
たとえば、code --telemetry > telemetry.json && code telemetry.json
を実行すると、現在の作業ディレクトリに telemetry.json
ファイルが作成され、VS Code で開きます。テレメトリーレポートが長いため、code --telemetry | code -
のように出力をパイプ処理することはできません。
以下のセクションでは、テレメトリーを分類するために使用されるイベントメタデータ、その目的、および特別な処理について詳しく説明します。
イベント分類
classification
フィールドは、データの種類を表します。
SystemMetaData
- 個人を特定できない VS Code によって生成された値。CallstackOrException
- プログラムの実行エラーによって発生したエラー。これらには、ユーザーパスが削除されたスタックトレースが含まれています。PublicNonPersonalData
- 公開されているユーザー生成データ (公開されている拡張機能 ID など)。EndUserPseudonymizedInformation
- ユーザーを特定せずに一意のユーザーを識別するために使用されるハッシュ。たとえば、ハッシュ化された MAC アドレス。
イベントの目的
purpose
フィールドは、データが収集される理由を表します。
PerformanceAndHealth
- VS Code 製品とサービスが正常かつ高速であることを保証するため。FeatureInsight
- 機能の使用状況と、開発投資を継続する場所を理解するため。BusinessInsight
- VS Code、Microsoft、および GitHub のビジネスに関連する意思決定を行うため。
イベントエンドポイント
endpoint
フィールドは、データが送信されるデータハンドラーを表します。これは通常、ユーザーのプライバシーを保護するために追加のスクラビングとセキュリティを必要とする特別なデータに適用されます。
GoogleAnalyticsId
- Google Analytics とページビューの追跡のために当社のウェブサイトで使用されます。これらは、通常のデータよりも慎重に処理されます。MacAddressHash
- VS Code のユーザーを識別するために使用されます。これはクライアント側で一度ハッシュ化され、パイプライン側で再度ハッシュ化され、特定のユーザーを識別することが不可能になります。VS Code for the Web では、このケースには UUID が生成されます。none
- データは特別な処理を必要としません。
GDPR と VS Code
一般データ保護規則 (GDPR) のサポートに加えて、VS Code チームはプライバシーを非常に重視しています。これは、Microsoft が会社として、そして特に VS Code チーム内でそうです。
GDPR コンプライアンスを確保するために、VS Code にいくつかの更新を行いました。これには以下が含まれます。
- 既存および新規のすべてのユーザー向けに製品に通知を配置することにより、テレメトリー収集のオプトアウトを容易にすること。
- 送信するテレメトリーのレビューと分類 (OSS コードベースで文書化)。
- 収集するすべてのデータ (クラッシュダンプなど) について、有効なデータ保持ポリシーが整備されていることを保証すること。
要するに、これらの慣行はヨーロッパだけでなく、すべての地域に適用されるため、すべてのユーザーにとって正しいことを行うために懸命に取り組んできました。
人々が尋ねるであろう 1 つの質問は、収集するデータを見ることです。ただし、VS Code にはユーザーを一意に識別する「サインイン」エクスペリエンスがないため、これを行う信頼できる方法はありません。診断目的で単一ユーザーを近似するのに役立つ情報 (これは、デスクトップ上のネットワークアダプター NIC のハッシュと、Web 上でランダムに割り当てられた UUID に基づいています) を送信しますが、これは一意であるとは限りません。たとえば、仮想マシン (VM) は、NIC ID をローテーションしたり、プールから割り当てたりすることがよくあります。この手法は、問題を解決する際に役立ちますが、「データを提供する」には十分な信頼性がありません。
GDPR とユーザーの期待についてさらに学ぶにつれて、当社のアプローチは進化すると考えています。ユーザーが送信してくれるデータは非常に貴重であり、VS Code はそのおかげで誰にとってもより良い製品であるため、非常に感謝しています。また、プライバシーについて心配な場合は、「テレメトリーレポートを無効にする」で説明されているように、テレメトリーの送信を無効にする機能を提供しています。
Visual Studio ファミリーが GDPR にどのようにアプローチしているかについての詳細は、GDPR の Visual Studio ファミリーデータ主体要求をご覧ください。
オンラインサービスの管理
クラッシュレポートとテレメトリーに加えて、VS Code は、製品アップデートのダウンロード、拡張機能の検索、インストール、アップデート、設定の同期、または設定エディター内での自然言語検索の提供など、さまざまな目的でオンラインサービスを使用しています。これらのサービスを使用する機能をオン/オフにすることを選択できます。
これらの機能をオフにしても、VS Code がオフラインモードになるわけではないことに注意してください。たとえば、拡張機能ビューで拡張機能を検索すると、VS Code はオンラインの VS Code マーケットプレイスを検索します。設定により、VS Code が要求なしにオンラインサービスと通信しないようにします。
ファイル > 基本設定 > 設定から、タグ @tag:usesOnlineServices
を入力します。これにより、オンラインサービスの使用状況を制御するすべての設定が表示され、個別にオンまたはオフに切り替えることができます。
注: VS Code 拡張機能もオンラインサービスを使用している可能性があり、これらのオンラインサービスの使用状況を構成するための設定を提供していない場合や、
@tag:usesOnlineServices
を検索したときに設定が表示されるように登録していない場合があります。オンラインサービスの利用状況については、特定の拡張機能のドキュメントを参照してください。
VS Code で使用される Microsoft 以外のオンラインサービス
VS Code 用の組み込み npm サポート拡張機能は、https://registry.npmjs.org
および https://registry.bower.io
にリクエストを送信します。
組み込みの TypeScript および JavaScript 言語機能拡張機能は、https://registry.npmjs.org
で @types
ドメインをクエリします。
開発者: 開発者ツールの切り替え または 開発者: Webview 開発者ツールを開く を使用すると、VS Code は Google サーバーと通信して、開発者ツールを起動するために必要なデータをフェッチすることがあります。
拡張機能の推奨事項
VS Code は、ファイルの種類、ワークスペース、および環境に基づいて拡張機能の推奨事項を提供します。ファイルタイプの推奨事項は、事前計算または動的です。ワークスペースと環境の推奨事項は常に事前計算されます。
拡張機能が推奨されている理由を知りたい場合は、拡張機能の詳細ページを開きます。ページヘッダーに推奨理由があります。
事前計算された推奨事項
VS Code は、どの拡張機能がどのファイルタイプおよびどのワークスペース/フォルダーに対してアクティブ化されているかに関するテレメトリーを収集します。特定のフォルダーは、各フォルダーの Git リモートのハッシュを計算することによって識別されます。
この情報を使用して、匿名の推奨事項を事前計算します。事前計算された推奨事項は、拡張機能を推奨する必要がある条件を説明する指示です。たとえば、2 つの拡張機能 A と B の間に興味深い相関関係が見られる場合、1 つの指示は次のようになります。「ユーザーが拡張機能 A をインストールしているが B をインストールしていない場合は、拡張機能 B を推奨する。」
一部の事前計算された推奨事項は製品の一部として出荷されますが、追加の事前計算された推奨事項は、実行時にオンラインの Microsoft サービスからフェッチされます。VS Code は、ユーザー情報をオンラインサービスに送信せずに、事前計算された推奨事項を個別に評価および実行します。
動的な推奨事項
VS Code に事前計算された推奨事項がないファイルタイプを開くと、Extension Marketplace に、そのファイルタイプをサポートすると宣言している拡張機能を要求します。クエリがインストールしていない拡張機能を返す場合、VS Code は通知を提供します。
拡張機能の作成者向け
拡張機能ガイドのテレメトリードキュメントをお読みください。
次のステップ
- テレメトリーログレベルを一元管理する - 組織のテレメトリーログレベルを設定する方法について説明します。
- Visual Studio Code FAQ - 詳細については、よくある質問をご覧ください。
- ユーザー設定とワークスペース設定 - VS Code をカスタマイズするための利用可能なオプションについてお読みください。
- キーバインド - よく使用するキーボードショートカットを簡単に変更できます。