🚀 在 VS Code 中

遙測擴充功能作者指南

Visual Studio Code 收集使用狀況資料並傳送給 Microsoft,以協助改善我們的產品和服務。請閱讀我們的隱私權聲明遙測文件以深入瞭解。

本主題提供擴充功能作者指南,使其擴充功能可以符合 VS Code 遙測需求和最佳實務。

注意:如果您不想將使用狀況資料傳送給 Microsoft,您可以將 telemetry.telemetryLevel 使用者設定設為 off

遙測模組

VS Code 團隊維護 @vscode/extension-telemetry npm 模組,該模組提供在 VS Code 內收集遙測資料的一致且安全的方式。該模組將遙測資料回報給Azure Monitor 和 Application Insights,並保證與先前版本的 VS Code 的回溯相容性。

請遵循本指南設定 Azure Monitor 並取得您的 Application Insights 檢測金鑰。

不使用遙測模組

不希望使用 Application Insights 的擴充功能作者可以利用他們自己的自訂解決方案來傳送遙測資料。在這種情況下,仍然需要擴充功能作者透過使用 isTelemetryEnabledonDidChangeTelemetryEnabled API 來尊重使用者的選擇。透過這樣做,使用者將有一個集中位置來控制他們的遙測設定。

自訂遙測設定

擴充功能可能希望讓使用者控制獨立於 VS Code 遙測的擴充功能特定遙測。在這種情況下,我們建議您引入特定的擴充功能設定。建議自訂遙測設定標記 telemetryusesOnlineServices,以便使用者可以在「設定」UI 中更輕鬆地查詢它們。新增自訂遙測設定並不能免除尊重使用者決定的責任,並且必須始終尊重 isTelemetryEnabledonDidChangeTelemetryEnabled 旗標。如果 isTelemetryEnabled 報告 false,即使您的設定已啟用,也不得傳送遙測資料。

telemetry.json

我們瞭解遙測對於許多使用者來說可能是一個敏感的主題,我們的目標是盡可能透明。核心 VS Code 產品和大多數第一方擴充功能在其根目錄中隨附 telemetry.json 檔案。這允許使用者使用 VS Code CLI 和 --telemetry 旗標來接收 VS Code 產生的所有遙測資料的傾印。擴充功能作者可以在其根目錄中包含 telemetry.json 檔案,它也會出現在 CLI 傾印中。

應做與不應做

✔️ 應做

  • 如果使用 Application Insights 適用於您,請使用 @vscode/extension-telemetry npm 模組。
  • 否則,請尊重 isTelemetryEnabledonDidChangeTelemetryEnabled API。
  • 如果您有自訂遙測設定,請使用 telemetryusesOnlineServices 標記您的設定。
  • 盡可能收集最少的遙測資料。
  • 盡可能對您的使用者透明地說明您收集的內容。

❌ 不應做

  • 引入未徵求使用者同意的自訂遙測收集解決方案。
  • 收集個人身分識別資訊 (PII)。
  • 收集超過必要的遙測資料。
  • 僅使用 telemetry.telemetryLevel 設定,因為與 isTelemetryEnabled 相比,有時可能不正確。