VS Codeのエージェントモードを拡張するには、を試してください!

テレメトリー

Visual Studio Code は、製品の改善方法を理解するために使用されるテレメトリ データを収集します。たとえば、この利用状況データは、起動時間の遅延などの問題のデバッグや、新機能の優先順位付けに役立ちます。このデータが提供する洞察に感謝する一方で、すべての人が利用状況データを送信したいわけではないことも理解しており、テレメトリ レポートの無効化で説明されているようにテレメトリを無効にすることができます。詳細については、プライバシーに関する声明もお読みいただけます。

テレメトリ データの種類

VS Code とこのページでは、テレメトリに関して 3 つの異なる種類のデータを参照します。

クラッシュ レポート - VS Code がクラッシュしたときに診断情報を収集し、Microsoft に送信して、クラッシュが発生した理由と将来のクラッシュを防ぐために必要な変更を理解するのに役立てます。

エラー テレメトリ - アプリケーションをクラッシュさせないが予期しないエラーに関する情報を収集します。

利用状況データ - VS Code の機能がどのように使用され、どのように機能するかに関する情報を収集します。これは、将来の製品改善の優先順位付けに役立ちます。

テレメトリ レポートの無効化

telemetry.telemetryLevel のユーザー設定を使用すると、1 つの設定で送信するさまざまな種類のテレメトリを制御できます。telemetry.telemetryLevel の各値で送信されるデータの種類を次の表に示します。

クラッシュ レポート エラー テレメトリ 利用状況データ
all
error -
crash - -
off - - -

たとえば、Microsoft にテレメトリ データを送信したくない場合は、telemetry.telemetryLevel のユーザー設定off に設定できます。これにより、VS Code からのすべてのテレメトリ イベントが今後送信されなくなります。設定を無効にする時点まで、テレメトリ情報が収集され送信されていた可能性があることに注意してください。

disable telemetry

設定にJSONエディターを使用している場合は、次の行を追加します。

"telemetry.telemetryLevel": "off"

拡張機能とテレメトリ

VS Code では、Microsoft およびサードパーティの拡張機能をインストールして、製品に機能を追加できます。これらの拡張機能は独自の利用状況データを収集している可能性があり、telemetry.telemetryLevel 設定では制御されません。特定の拡張機能のドキュメントを参照して、そのテレメトリ レポートと無効にできるかどうかを確認してください。

拡張機能の作成者は、「拡張機能の作成者向け」セクションを参照して、拡張機能内でテレメトリのベスト プラクティスを実装するためのガイダンスを確認できます。

テレメトリ イベントの出力チャネル

VS Code で送信されるテレメトリ イベントを確認するには、コマンド パレット () から Developer: Show Telemetry コマンドを実行します。このコマンドはテレメトリ イベントのトレースを有効にし、出力パネル (⇧⌘U (Windows Ctrl+Shift+U、Linux Ctrl+K Ctrl+H)) に Telemetry 出力チャネルを開きます。テレメトリ イベントが送信されると、出力チャネルにイベントの詳細が表示されます。

output panel log telemetry

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

open telemetry log file

テレメトリ イベントのトレースを無効にするには、VS Code ウィンドウをリロードします (Developer: Reload Window コマンド)。

すべてのテレメトリ イベントの表示

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 - 当社の Web サイトで Google Analytics およびページ ビューの追跡に使用されます。これらは通常のデータよりも慎重に扱われます。
  • MacAddressHash - VS Code のユーザーを識別するために使用されます。これはクライアント側で 1 回ハッシュ化され、パイプライン側で再度ハッシュ化されるため、特定のユーザーを識別することは不可能です。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 を入力します。これにより、オンライン サービスの使用を制御するすべての設定が表示され、個別にオン/オフを切り替えることができます。

online settings filter

注意: 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 は、ファイルの種類、ワークスペース、環境に基づいて拡張機能の推奨を提供します。ファイルの種類による推奨は、事前計算されるか、動的です。ワークスペースと環境の推奨は、常に事前計算されます。

拡張機能が推奨される理由を知りたい場合は、その拡張機能の詳細ページを開いてください。推奨の理由はページ ヘッダーに記載されています。

extension recommendation based on files

事前計算された推奨

VS Code は、どの拡張機能がどのファイルの種類やワークスペース/フォルダーでアクティブ化されているかに関するテレメトリを収集します。特定のフォルダーは、各フォルダーの Git リモートのハッシュを計算することによって識別されます。

この情報を使用して、匿名の推奨を事前計算します。事前計算された推奨は、どの条件下で拡張機能が推奨されるべきかを詳述する指示です。たとえば、2 つの拡張機能 A と B の間に興味深い相関関係が見られる場合、1 つの指示は次のようになります: ユーザーが拡張機能 A をインストールしていて B をインストールしていない場合に、拡張機能 B を推奨する。

一部の事前計算された推奨は製品の一部として出荷されますが、追加の事前計算された推奨は実行時にオンラインの Microsoft サービスから取得されます。VS Code は、ユーザー情報をオンライン サービスに送信することなく、事前計算された推奨を独立して評価し、実行します。

動的な推奨

VS Code が事前計算された推奨を持たないファイルの種類を開くと、拡張機能マーケットプレイスに、このファイルの種類をサポートすると宣言している拡張機能について問い合わせます。クエリによってインストールしていない拡張機能が返された場合、VS Code は通知を提供します。

拡張機能の作成者向け

拡張機能ガイドのテレメトリ ドキュメントをお読みください。

次のステップ