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

テレメトリー拡張機能の作成者向けガイド

Visual Studio Code は、製品とサービスの改善に役立てるため、使用状況データを収集し、Microsoft に送信します。詳細については、弊社のプライバシーに関する声明およびテレメトリーのドキュメントをお読みください。

このトピックには、拡張機能が VS Code のテレメトリー要件とベストプラクティスに準拠できるよう、拡張機能の作成者向けのガイドラインが記載されています。

: Microsoft に使用状況データを送信したくない場合は、ユーザー設定 telemetry.telemetryLeveloff に設定できます。

テレメトリーモジュール

VS Code チームは、VS Code 内でテレメトリーを収集するための、一貫性のある安全な方法を提供する @vscode/extension-telemetry npm モジュールを管理しています。このモジュールは、Azure Monitor および Application Insights にテレメトリーを報告し、以前のバージョンの VS Code との後方互換性を保証します。

Azure Monitor をセットアップし、Application Insights のインストルメンテーション キーを取得するには、このガイドに従ってください。

テレメトリーモジュールなしの場合

Application Insights を使用しない拡張機能の作成者は、独自のカスタムソリューションを利用してテレメトリーを送信できます。この場合でも、拡張機能の作成者は isTelemetryEnabled および onDidChangeTelemetryEnabled API を利用して、ユーザーの選択を尊重する必要があります。これにより、ユーザーはテレメトリー設定を制御するための集中管理された場所を持つことができます。

カスタムテレメトリー設定

拡張機能は、VS Code のテレメトリーとは別に、拡張機能固有のテレメトリーに対してユーザー制御を提供したい場合があります。この場合、特定の拡張機能設定を導入することをお勧めします。ユーザーが設定 UI でより簡単に検索できるように、カスタムテレメトリー設定には telemetryusesOnlineServices のタグを付けることをお勧めします。カスタムテレメトリー設定を追加しても、ユーザーの決定を尊重する義務が免除されるわけではなく、isTelemetryEnabled および onDidChangeTelemetryEnabled のフラグは常に尊重される必要があります。isTelemetryEnabled が false を報告した場合、たとえ設定が有効になっていても、テレメトリーを送信してはなりません。

telemetry.json

テレメトリーが多くのユーザーにとって敏感なトピックであることは理解しており、可能な限り透明性を確保することを目指しています。コアとなる VS Code 製品とほとんどのファーストパーティ拡張機能は、ルートに telemetry.json ファイルを同梱しています。これにより、ユーザーは --telemetry フラグを付けて VS Code CLI を使用することで、VS Code が生成するすべてのテレメトリーのダンプを受け取ることができます。拡張機能の作成者もルートに telemetry.json ファイルを含めることができ、そのファイルも CLI ダンプに表示されます。

すべきこととすべきでないこと

✔️ すべきこと

  • Application Insights の使用が適切であれば、@vscode/extension-telemetry npm モジュールを使用してください。
  • そうでない場合は、isTelemetryEnabled および onDidChangeTelemetryEnabled API を尊重してください。
  • カスタムテレメトリー設定がある場合は、telemetryusesOnlineServices でタグ付けしてください。
  • 可能な限り少ないテレメトリーを収集してください。
  • 収集する内容について、ユーザーに対して可能な限り透明性を保ってください。

❌ すべきでないこと

  • ユーザーの同意を求めないカスタムテレメトリー収集ソリューションを導入しないでください。
  • 個人を特定できる情報 (PII) を収集しないでください。
  • 必要以上にテレメトリーを収集しないでください。
  • telemetry.telemetryLevel 設定だけを使用しないでください。これは、isTelemetryEnabled と比較して誤っている場合があります。