🚀 在 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 相比,它有時可能不正確。