テレメトリー拡張機能の作成者向けガイド
Visual Studio Code は、製品とサービスの改善のために利用状況データを収集し、Microsoft に送信しています。詳細については、プライバシー ステートメントとテレメトリ ドキュメントをご覧ください。
このトピックでは、拡張機能の作成者が VS Code のテレメトリ要件とベスト プラクティスに準拠するためのガイドラインを提供します。
注意: 利用状況データを Microsoft に送信したくない場合は、ユーザー設定の
telemetry.telemetryLevel
をoff
に設定できます。
テレメトリーモジュール
VS Code チームは、VS Code 内でテレメトリを収集するための、一貫性があり安全な方法を提供する @vscode/extension-telemetry npm モジュールを管理しています。このモジュールは、Azure Monitor と Application Insights にテレメトリを報告し、以前のバージョンの VS Code との下位互換性を保証します。
Azure Monitor を設定し、Application Insights のインストルメンテーションキーを取得するには、このガイドに従ってください。
テレメトリーモジュールを使用しない場合
Application Insights を使用しない拡張機能の作成者は、独自のカスタム ソリューションを使用してテレメトリを送信できます。その場合でも、拡張機能の作成者は、isTelemetryEnabled
および onDidChangeTelemetryEnabled
API を使用してユーザーの選択を尊重する必要があります。これにより、ユーザーは 1 か所でテレメトリ設定を集中管理できます。
カスタムテレメトリー設定
拡張機能によっては、VS Code のテレメトリとは別に、拡張機能固有のテレメトリに対するユーザー制御を提供したい場合があります。その場合は、特定の拡張機能設定を導入することをお勧めします。カスタム テレメトリ設定には、設定 UI でユーザーが簡単にクエリを実行できるように、telemetry
と usesOnlineServices
でタグ付けすることをお勧めします。カスタム テレメトリ設定を追加しても、ユーザーの決定を尊重しないことにはならず、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 を尊重してください。 - カスタムテレメトリー設定がある場合は、
telemetry
およびusesOnlineServices
でタグ付けしてください。 - 可能な限りテレメトリーの収集量を少なくしてください。
- 収集するものについて、ユーザーに可能な限り透明性を高めてください。
❌ 非推奨
- ユーザーの同意を求めないカスタムテレメトリー収集ソリューションを導入しないでください。
- 個人を特定できる情報 (PII) を収集しないでください。
- 必要以上のテレメトリーを収集しないでください。
telemetry.telemetryLevel
設定のみを使用しないでください。isTelemetryEnabled
と比較して正しくない場合があります。