テレメトリー
Visual Studio Code は、製品を改善するために利用されるテレメトリーデータを収集します。例えば、この使用状況データは、起動時間の遅延などの問題をデバッグしたり、新機能の優先順位を付けたりするのに役立ちます。このデータが提供する洞察には感謝していますが、すべての人が使用状況データを送信したいわけではないことも認識しており、テレメトリーレポートの無効化で説明されているようにテレメトリーを無効にすることができます。詳細については、弊社のプライバシーに関する声明もご覧ください。
テレメトリーデータの種類
VS Code とこのページでは、テレメトリーに関して 3 種類のデータを参照しています。
クラッシュレポート - クラッシュレポートは、VS Code がクラッシュしたときに診断情報を収集し、クラッシュの原因と将来のクラッシュを防ぐために必要な変更を理解するために Microsoft に送信します。
エラーテレメトリー - エラーテレメトリーは、アプリケーションをクラッシュさせないが予期せぬエラーに関する情報を収集します。
使用状況データ - 使用状況データは、VS Code で機能がどのように使用され、どのように機能するかに関する情報を収集し、将来の製品改善の優先順位付けに役立ちます。
テレメトリーレポートの無効化
telemetry.telemetryLevel ユーザー設定を使用すると、単一の設定で送信するテレメトリーの種類を制御できます。telemetry.telemetryLevel の各値で送信されるデータの種類をまとめた表を以下に示します。
| クラッシュレポート | エラーテレメトリー | 使用状況データ | |
|---|---|---|---|
| すべて | ✓ | ✓ | ✓ |
| error | ✓ | ✓ | - |
| クラッシュ | ✓ | - | - |
| off | - | - | - |
例えば、Microsoft にテレメトリーデータを一切送信したくない場合は、telemetry.telemetryLevel ユーザー設定を 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.log にもログ記録されます。これは開発者: ログを開く...コマンドを使用し、ドロップダウンからテレメトリーを選択することで表示できます。

テレメトリーイベントのトレースを無効にするには、VS Code ウィンドウをリロードします (開発者: ウィンドウをリロードコマンド)。
すべてのテレメトリーイベントの表示
VS Code が送信する可能性のあるすべてのテレメトリーイベントを表示したい場合は、CLI で --telemetry フラグを使用できます。これにより JSON レポートが生成され、VS Code 内で表示できます。これらのレポートはビルドごとに生成され、拡張機能の作者がルートビルドディレクトリに 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 のユーザーを識別するために使用されます。これはクライアント側で一度ハッシュされ、その後パイプライン側で再度ハッシュされ、特定のユーザーを特定できないようにします。Web 版 VS Code では、このケースのために 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 Marketplace を検索します。設定は、ユーザーが要求しない限り、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 の間に興味深い相関関係が見られる場合、ある指示は「ユーザーが拡張機能 A をインストールしているが B をインストールしていない場合は拡張機能 B を推奨する」というものかもしれません。
一部の事前計算済み推奨事項は製品の一部として出荷されますが、追加の事前計算済み推奨事項は実行時にオンラインの Microsoft サービスからフェッチされます。VS Code は、ユーザー情報をオンラインサービスに送信することなく、事前計算済み推奨事項を独自に評価および実行します。
動的推奨事項
VS Code に事前計算された推奨事項がないファイルタイプを開くと、そのファイルタイプをサポートすると宣言している拡張機能について Extension Marketplace に問い合わせます。クエリでインストールされていない拡張機能が返された場合、VS Code は通知を提供します。
拡張機能の作者向け
拡張機能ガイド テレメトリー ドキュメントをお読みください。
次のステップ
- テレメトリーログレベルを一元的に管理する - 組織のテレメトリーログレベルを設定する方法を学びます。
- Visual Studio Code FAQ - 詳細については、よくある質問を参照してください。
- ユーザー設定とワークスペース設定 - VS Code をカスタマイズするために利用できるオプションについて読みます。
- キーバインディング - 一般的に使用されるキーボードショートカットを簡単に変更できます。