テレメトリ
Visual Studio Codeは、製品の改善方法を理解するために使用されるテレメトリデータを収集しています。たとえば、この使用状況データは、起動時間の遅延などの問題のデバッグや、新しい機能の優先順位付けに役立ちます。また、このデータを使用して、新しい機能を一般公開する前に一部のユーザーに段階的に展開することもあります。
このデータがもたらすインサイトには感謝していますが、すべての人が使用状況データを送信したいわけではないことも理解しています。テレメトリレポートの無効化で説明されているように、テレメトリを無効にすることができます。詳細については、弊社のプライバシー ステートメントもご覧ください。
テレメトリデータの種類
VS Codeおよびこのページでは、テレメトリに関して3つの異なるタイプのデータを参照しています。
クラッシュレポート - クラッシュレポートは、VS Codeがクラッシュしたときに診断情報を収集してMicrosoftに送信し、クラッシュが発生した理由と、将来のクラッシュを防ぐためにどのような変更が必要かを理解するのに役立てられます。
エラーテレメトリ - エラーテレメトリは、アプリケーションはクラッシュしないものの、予期しないエラーに関する情報を収集します。
使用状況データ - 使用状況データは、VS Codeで機能がどのように使用され、どのように動作しているかに関する情報を収集し、将来の製品改善の優先順位付けに役立てられます。
テレメトリレポートの無効化
ユーザー設定 telemetry.telemetryLevel この設定は組織レベルで管理されています。変更するには、管理者にお問い合わせください。 を使用すると、1つの設定で送信するテレメトリの異なるタイプを制御できます。以下は、 telemetry.telemetryLevel この設定は組織レベルで管理されています。変更するには、管理者にお問い合わせください。 の各値で送信されるデータの異なるタイプの表です。
| クラッシュレポート | エラーテレメトリ | 使用状況データ | |
|---|---|---|---|
| all | ✓ | ✓ | ✓ |
| エラー | ✓ | ✓ | - |
| crash | ✓ | - | - |
| オフ | - | - | - |
たとえば、Microsoftにテレメトリデータを一切送信したくない場合は、 telemetry.telemetryLevel この設定は組織レベルで管理されています。変更するには、管理者にお問い合わせください。 ユーザー設定を off に設定できます。これにより、今後はVS Codeからのすべてのテレメトリイベントが抑制されます。設定を無効にする時点までは、テレメトリ情報が収集および送信されていた可能性があることに注意してください。

設定のJSONエディターを使用する場合は、次の行を追加します
"telemetry.telemetryLevel": "off"
A/Bテストに参加し、新しい機能に早期アクセスするには、 telemetry.telemetryLevel この設定は組織レベルで管理されています。変更するには、管理者にお問い合わせください。 を all に設定して、使用状況データを有効にする必要があります。
機能の可用性とテレメトリ
VS Codeは、A/Bテストシステムを使用して、新しい機能を一般提供する前に一部のユーザーに段階的に展開しています。これにより、すべての人に展開する前に、多様なユーザーの間で新しい機能が期待どおりに動作しているかを検証できます。テストに参加することで、VS Codeの品質向上に貢献し、早期のフィードバックを通じて製品の将来を形成するのに役立ちます。
このテストシステムを有効にするため、VS Codeは使用状況のテレメトリデータを使用して、どのユーザーが新しい機能を受け取るべきかを判断し、その機能がどのように使用されているかを検証します。 telemetry.telemetryLevel この設定は組織レベルで管理されています。変更するには、管理者にお問い合わせください。 を error、crash、または off に設定して使用状況データのテレメトリを無効にすると、機能の使用状況を評価できないため、テストは無効になります。その結果、新しい機能が一般提供されるまで、お客様への展開が遅れる場合があります。
拡張機能とテレメトリ
VS Codeでは、Microsoftやサードパーティの拡張機能をインストールすることで、製品に機能を追加できます。これらの拡張機能は独自に使用状況データを収集している場合があり、 telemetry.telemetryLevel この設定は組織レベルで管理されています。変更するには、管理者にお問い合わせください。 設定では制御されません。テレメトリレポートの詳細や、それを無効にできるかどうかについては、各拡張機能のドキュメントを参照してください。
拡張機能の作成者は、拡張機能内でテレメトリのベストプラクティスを実装するためのガイダンスとして、「拡張機能の作成者向け」セクションを参照してください。
テレメトリイベントの出力チャネル
VS Codeで送信されるテレメトリイベントを確認するには、コマンドパレット()から「デベロッパー: テレメトリの表示(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- 弊社ウェブサイトでGoogleアナリティクスやページビューの追跡に使用されます。これらは通常のデータよりも機密性の高い方法で処理されます。MacAddressHash- VS Codeのユーザーを識別するために使用されます。これはクライアント側で一度ハッシュ化され、パイプライン側で再度ハッシュ化されるため、特定のユーザーを特定することは不可能です。Web版 VS Codeでは、このケースに対してUUIDが生成されます。none- 特別な処理を必要としないデータ。
エージェントのインタラクションに対するOpenTelemetryのサポート
VS CodeのCopilot チャットは、OpenTelemetry(OTel)を介してトレース、メトリクス、イベントをエクスポートし、エージェントのインタラクション、LLM呼び出し、ツールの実行、およびトークンの使用状況をリアルタイムで視覚化できます。このテレメトリデータは、任意のOTel互換バックエンドで使用できます。
詳細については、OpenTelemetryを使用したエージェントのインタラクションの監視についてのドキュメントをご覧ください。
GDPRとVS Code
一般データ保護規則(GDPR)をサポートすることに加え、VS Codeチームはプライバシーを非常に重視しています。これは、会社としての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がオンラインサービスと通信しないようにするためのものです。
ファイル > ユーザー設定 > 設定(macOSでは 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)またはデベロッパー: Webview開発者ツールを開く(Developer: Open Webview Developer Tools)を使用すると、VS Codeは開発者ツールの起動に必要なデータを取得するためにGoogleサーバーと通信することがあります。
拡張機能の推奨事項
VS Codeは、ファイルの種類、ワークスペース、および環境に基づいて拡張機能の推奨を提供します。ファイルの種類に基づく推奨は、事前に計算されているか動的です。ワークスペースと環境に基づく推奨は、常に事前に計算されています。
なぜ拡張機能が推奨されているのかを知りたい場合は、その拡張機能の詳細ページを開いてください。ページのヘッダーで推奨の理由を確認できます。

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