テレメトリ
Visual Studio Code は、製品の改善方法を理解するためにテレメトリデータを収集します。例えば、この使用状況データは、起動時間の遅延などの問題をデバッグしたり、新機能の優先順位を決めたりするのに役立ちます。また、このデータを使用して、新機能を一般公開する前に 一部のユーザーに先行公開 することもあります。
このデータから得られる知見には感謝していますが、使用状況データを送信したくないユーザーがいることも理解しており、テレメトリレポートの無効化 で説明されている手順でテレメトリを無効にすることができます。詳細については、プライバシーに関する声明 をお読みください。
テレメトリデータの種類
VS Code およびこのページでは、テレメトリに関して3種類のデータについて言及しています。
クラッシュレポート - クラッシュレポートは、VS Code がクラッシュした際に診断情報を収集し、Microsoft に送信します。これは、クラッシュの原因と、将来的なクラッシュを防ぐためにどのような変更が必要かを理解するのに役立ちます。
エラーテレメトリ - エラーテレメトリは、アプリケーションのクラッシュには至らないものの、予期しないエラーに関する情報を収集します。
使用状況データ - 使用状況データは、VS Code で機能がどのように使用され、動作しているかに関する情報を収集します。これは、今後の製品改善の優先順位付けに役立ちます。
テレメトリレポートの無効化
telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it. ユーザー設定を使用すると、送信されるテレメトリの種類を単一の設定で制御できます。 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it. の各値で送信されるデータの種類の表を以下に示します。
| クラッシュレポート | エラーテレメトリ | 使用状況データ | |
|---|---|---|---|
| all | ✓ | ✓ | ✓ |
| エラー | ✓ | ✓ | - |
| crash | ✓ | - | - |
| オフ | - | - | - |
例えば、Microsoft にテレメトリデータを一切送信したくない場合は、 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it. ユーザー設定を off に設定できます。これにより、今後 VS Code から送信されるすべてのテレメトリイベントが停止されます。設定を無効にする時点まではテレメトリ情報が収集・送信されていた可能性があることに注意してください。

設定のJSONエディターを使用する場合は、次の行を追加します
"telemetry.telemetryLevel": "off"
A/B 実験に参加して新機能に早期アクセスするには、 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it. を all に設定して、使用状況データを有効にする必要があります。
機能の可用性とテレメトリ
VS Code は A/B 実験システムを使用して、新機能を一般公開する前に一部のユーザーに先行公開します。これにより、全員に公開する前に、多様なユーザー環境で新機能が期待どおりに動作することを確認できます。実験に参加することで、VS Code の品質向上に寄与し、早期フィードバックを通じて製品の将来を形作る手助けができます。
この実験システムを有効にするために、VS Code は使用状況テレメトリデータを使用して、どのユーザーに新機能を配信するかを判断し、その機能の使用状況を検証します。使用状況テレメトリを無効にして telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it. を error、crash、または off に設定すると、機能の使用状況を評価できないため、実験が無効になります。その結果、新機能の公開が一般公開まで遅れる可能性があります。
拡張機能とテレメトリ
VS Code では、Microsoft 製およびサードパーティ製の拡張機能をインストールすることで機能を追加できます。これらの拡張機能は独自のデータを収集している可能性があり、 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it. 設定では制御されません。各拡張機能のドキュメントを参照して、そのテレメトリレポートと無効化の可否について確認してください。
拡張機能の開発者は、「拡張機能の開発者向け」 セクションを参照して、拡張機能内でのテレメトリ導入のベストプラクティスに関するガイダンスを確認してください。
テレメトリイベントの出力チャネル
送信されるテレメトリイベントを確認するには、コマンドパレット () から Developer: Show Telemetry コマンドを実行します。このコマンドによりテレメトリイベントのトレースが有効になり、出力パネル (⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H)) に Telemetry 出力チャネルが開きます。テレメトリイベントが送信されるたびに、出力チャネルにイベントの詳細が表示されます。

テレメトリイベントのトレース中、イベントはローカルファイル telemetry.log にも記録されます。これは Developer: Open Log... コマンドを実行し、ドロップダウンから Telemetry を選択することで確認できます。

テレメトリイベントのトレースを無効にするには、VS Code ウィンドウをリロードします (Developer: Reload Window コマンド)。
すべてのテレメトリイベントの表示
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- 当社 Web サイトでの Google Analytics およびページビュー追跡に使用されます。これらは通常のデータよりも機密性が高く扱われます。MacAddressHash- VS Code のユーザーを識別するために使用されます。これはクライアント側で一度ハッシュ化され、次にパイプライン側で再度ハッシュ化されるため、特定のユーザーを識別することは不可能です。VS Code for the Web では、このケースのために UUID が生成されます。none- データに特別な取り扱いは不要です。
エージェント対話のための OpenTelemetry サポート
VS Code の Copilot Chat は、OpenTelemetry (OTel) を介してトレース、メトリクス、イベントをエクスポートし、エージェントとの対話、LLM の呼び出し、ツール実行、トークン使用量をリアルタイムで可視化できます。このテレメトリデータは、OTel 互換のあらゆるバックエンドで使用できます。
詳しくは、OpenTelemetry を使用したエージェント対話の監視 を参照してください。
GDPRとVS Code
VS Code チームは、一般データ保護規則 (GDPR) のサポートに加え、プライバシーを非常に重視しています。これは Microsoft という企業として、また特に VS Code チーム内においての方針です。
GDPR 準拠を確実にするため、VS Code にいくつかの更新を行いました。それには以下が含まれます。
- すべての既存ユーザーおよび新規ユーザーに対して製品内に通知を配置し、テレメトリ収集のオプトアウトを容易にしました。
- 送信するテレメトリをレビューおよび分類しました(当社の OSS コードベース に文書化されています)。
- クラッシュダンプなど、収集するすべてのデータに対して有効なデータ保持ポリシーが確実に実施されるようにしました。
要するに、これらの慣行はヨーロッパだけでなくすべての地域に適用されるため、すべてのユーザーのために正しいことを行うべく懸命に取り組んでいます。
人々から寄せられると予想される質問の一つに、収集したデータの開示があります。しかし、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 以外のオンラインサービス
組み込みの npm support for VS Code 拡張機能は、https://registry.npmjs.org および https://registry.bower.io にリクエストを送信します。
組み込みの TypeScript and JavaScript Language Features 拡張機能は、https://registry.npmjs.org の @types ドメインにクエリを送信します。
Developer: Toggle Developer Tools または Developer: Open Webview Developer Tools を使用すると、VS Code は開発者ツールの起動に必要なデータを取得するために Google サーバーと通信する場合があります。
拡張機能の推奨事項
VS Code は、ファイルの種類、ワークスペース、および環境に基づいて拡張機能を推奨します。ファイルタイプの推奨は、事前計算されるか動的に行われます。ワークスペースと環境の推奨は常に事前計算されます。
拡張機能が推奨される理由を知りたい場合は、その拡張機能の詳細ページを開いてください。推奨理由はページヘッダーで確認できます。

事前計算された推奨事項
VS Code は、どの拡張機能がどのファイルタイプやワークスペース/フォルダーに対してアクティブ化されているかに関するテレメトリを収集します。特定のフォルダーは、そのフォルダーの Git リモートのハッシュを計算することで識別されます。
この情報を使用して、匿名の推奨事項を事前計算します。事前計算された推奨事項は、どのような条件下で拡張機能を推奨すべきかを指定する命令です。例えば、2つの拡張機能 A と B の間に興味深い相関関係がある場合、「ユーザーが A をインストールしていて B をインストールしていない場合に拡張機能 B を推奨する」という命令になることがあります。
一部の事前計算された推奨事項は製品の一部として出荷され、追加の推奨事項はオンラインの Microsoft サービスから実行時に取得されます。VS Code は、ユーザー情報をオンラインサービスに送信することなく、独自に事前計算された推奨事項を評価および実行します。
動的な推奨事項
VS Code が事前計算された推奨事項を持たないファイルタイプを開くと、拡張機能マーケットプレイスに対してそのファイルタイプをサポートすると宣言している拡張機能を問い合わせます。クエリがインストールされていない拡張機能を返した場合、VS Code は通知を提供します。
拡張機能の開発者向け
拡張機能ガイドのテレメトリドキュメント をお読みください。
関連リソース
- テレメトリログレベルを中央管理する - 組織のテレメトリログレベルを設定する方法を学びます。
- Visual Studio Code FAQ - よくある質問を参照して詳細を確認します。
- ユーザー設定とワークスペース設定 - VS Code をカスタマイズするために利用可能なオプションについて学びます。