遙測
Visual Studio Code 會收集遙測資料,這些資料用於協助了解如何改進產品。例如,這些使用資料有助於偵錯問題 (例如啟動時間過慢) 並排定新功能的優先順序。我們也使用這些資料在功能全面開放前,將新功能推廣給部分使用者。
我們感謝這些資料提供的洞見,但也了解並非所有人都希望傳送使用資料,您可以依照停用遙測報告中的說明來停用遙測。您也可以閱讀我們的隱私權聲明以了解更多資訊。
遙測資料的類型
VS Code 和本頁面提到了三種與遙測相關的不同資料類型。
當機報告 - 當 VS Code 當機時,會收集診斷資訊並傳送給 Microsoft,以協助了解當機原因以及未來需要進行哪些變更才能防止當機。
錯誤遙測 - 錯誤遙測會收集未導致應用程式當機但卻是意外錯誤的相關資訊。
使用資料 - 使用資料會收集有關 VS Code 中功能使用方式和效能的資訊,這有助於我們排定未來產品改進的優先順序。
停用遙測報告
透過使用者設定 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it.,您可以使用單一設定來控制我們傳送的不同遙測類型。以下是使用 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it.的每個值所傳送的不同資料類型的表格。
| 當機報告 | 錯誤遙測 | 使用資料 | |
|---|---|---|---|
| 所有 | ✓ | ✓ | ✓ |
| 錯誤 | ✓ | ✓ | - |
| 當機 | ✓ | - | - |
| 關閉 | - | - | - |
例如,如果您不想傳送任何遙測資料給 Microsoft,您可以將使用者設定 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it.設為off。這將會停止所有從 VS Code 發送的遙測事件。請注意,遙測資訊可能已經在您停用設定之前被收集並傳送。

如果您使用 JSON 編輯器來調整設定,請新增以下行:
"telemetry.telemetryLevel": "off"
若要參與 A/B 實驗並搶先體驗新功能,您必須將 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it.設為all來啟用使用資料。
功能可用性與遙測
VS Code 使用 A/B 實驗系統在功能全面開放前,將新功能推廣給部分使用者。這有助於我們在將新功能推廣給所有人之前,驗證該功能是否在不同使用者群中按預期運作。透過參與實驗,您可以協助我們提升 VS Code 的品質,並透過早期回饋來協助塑造產品的未來。
為了啟用此實驗系統,VS Code 會使用使用遙測資料來判斷哪些使用者應該接收新功能,並驗證該功能的使用方式。如果您將 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it.設為error、crash或off來停用使用資料遙測,我們將無法評估該功能的使用情況,因此將為您停用實驗功能。因此,新功能的推廣可能對您延遲,直到該功能全面開放。
擴充功能與遙測
VS Code 允許您透過安裝 Microsoft 和第三方擴充功能來為產品新增功能。這些擴充功能可能會收集自己的使用資料,並且不受 telemetry.telemetryLevel This setting is managed at the organization level. Contact your administrator to change it.設定的控制。請查閱特定擴充功能的說明文件,以了解其遙測報告以及是否可以停用。
擴充功能作者可以參考「致擴充功能作者」一節,以取得在其擴充功能中實作遙測最佳實務的指南。
遙測事件的輸出通道
若要在 VS Code 中檢視傳送中的遙測事件,請從命令選擇區 (Command Palette) () 執行開發人員:顯示遙測 (Developer: Show Telemetry) 命令。此命令會啟用遙測事件的追蹤,並在輸出面板 (Output panel) (⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H)) 中開啟遙測 (Telemetry) 輸出通道。當遙測事件傳送時,輸出通道會顯示事件詳細資料。

追蹤遙測事件時,事件也會記錄到本機檔案telemetry.log中,您可以使用開發人員:開啟記錄檔... (Developer: Open Log...) 命令並從下拉式選單中選擇遙測 (Telemetry) 來檢視。

若要停用遙測事件追蹤,請重新載入 VS Code 視窗 (開發人員:重新載入視窗 (Developer: Reload Window) 命令)。
檢視所有遙測事件
如果您想檢視 VS Code 可能傳送的所有遙測事件,可以在 CLI 中使用--telemetry旗標。這將產生一份 JSON 報告,您可以在 VS Code 中檢視。這些報告是針對每個建置產生的,並且不包含擴充功能遙測,除非擴充功能作者在其根建置目錄中新增了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- 用於我們網站上的 Google Analytics 和追蹤頁面瀏覽量。這些資料的處理方式比我們一般資料更為敏感。MacAddressHash- 用於識別 VS Code 使用者。這會在用戶端進行一次雜湊處理,然後在管線端再次雜湊處理,使其無法識別特定使用者。在網頁版 VS Code 中,會為此情況產生一個 UUID。none- 資料不需要任何特殊處理。
OpenTelemetry 對代理互動的支援
VS Code 中的Copilot Chat可以透過OpenTelemetry (OTel) 匯出追蹤、指標和事件,讓您即時了解代理互動、LLM 呼叫、工具執行和權杖使用情況。您可以將此遙測資料與任何相容 OTel 的後端一起使用。
了解更多關於如何使用OpenTelemetry 監控代理互動。
GDPR 與 VS Code
除了支援《一般資料保護條例》(GDPR) 之外,VS Code 團隊也非常重視隱私權。這不僅是 Microsoft 公司層面的考量,也是 VS Code 團隊內部特別重視的部分。
為確保符合 GDPR 規範,我們對 VS Code 進行了幾項更新,其中包括:
- 透過在產品中為所有現有和新使用者放置通知,讓選擇退出遙測資料收集更容易。
- 審查和分類我們傳送的遙測資料 (記載於我們的 OSS 程式碼庫中)。
- 確保我們對所收集的任何資料 (例如當機傾印) 都有有效的資料保留政策。
簡而言之,我們努力為所有使用者做正確的事,因為這些做法適用於所有地區,而不僅限於歐洲。
我們預期人們會問的一個問題是能否查看我們收集的資料。然而,我們沒有可靠的方法可以做到這一點,因為 VS Code 沒有可以唯一識別使用者的「登入」體驗。我們確實會傳送有助於我們近似單一使用者以進行診斷目的的資訊 (這是基於桌面網路介面卡 NIC 的雜湊值以及網頁上隨機分配的 UUID),但這並不保證是唯一的。例如,虛擬機器 (VM) 通常會輪換 NIC ID 或從共用池分配。這種技術足以幫助我們解決問題,但其可靠性不足以讓我們「提供您的資料」。
我們預期隨著我們對 GDPR 和使用者期望的了解更多,我們的方法也會不斷演進。我們非常感謝使用者傳送給我們的資料,因為它非常有價值,也因此讓 VS Code 成為對所有人來說更好的產品。再次強調,如果您擔心隱私權,我們提供停用遙測傳送的功能,如停用遙測報告中所述。
您可以透過Visual Studio 系列針對 GDPR 的資料主體要求,找到更多關於 Visual Studio 系列如何處理 GDPR 的資訊。
管理線上服務
除了當機報告和遙測之外,VS Code 還將線上服務用於各種其他目的,例如下載產品更新、尋找、安裝和更新擴充功能、設定同步,或在設定編輯器中提供自然語言搜尋。您可以選擇開啟/關閉使用這些服務的功能。
請注意,關閉這些功能並不會讓 VS Code 進入離線模式。例如,如果您在擴充功能 (Extensions) 檢視中搜尋擴充功能,VS Code 仍然會搜尋線上的 VS Code Marketplace。這些設定確保 VS Code 不會在您未要求的情況下與線上服務通訊。
從檔案 (File) > 喜好設定 (Preferences) > 設定 (Settings) 中,輸入標籤@tag:usesOnlineServices。這將會顯示所有控制線上服務使用情況的設定,您可以單獨開啟或關閉它們。

注意:VS Code 擴充功能也可能使用線上服務,並且可能未提供設定來配置這些線上服務的使用,或者它們可能未註冊其設定以便在搜尋
@tag:usesOnlineServices時顯示。請查閱特定擴充功能的說明文件,以了解其線上服務的使用情況。
VS Code 使用的非 Microsoft 線上服務
內建的VS Code npm 支援 (npm support for VS Code) 擴充功能會將請求傳送至https://registry.npmjs.org和https://registry.bower.io。
內建的TypeScript 和 JavaScript 語言功能 (TypeScript and JavaScript Language Features) 擴充功能會向https://registry.npmjs.org上的@types網域進行查詢。
當您使用開發人員:切換開發人員工具 (Developer: Toggle Developer Tools) 或開發人員:開啟 Webview 開發人員工具 (Developer: Open Webview Developer Tools) 時,VS Code 可能會與 Google 伺服器通訊以獲取啟動開發人員工具所需的資料。
延伸模組建議
VS Code 會根據您的檔案類型、工作區和環境提供擴充功能建議。檔案類型建議可以是預先計算的或動態的。工作區和環境建議始終是預先計算的。
如果您想知道為什麼推薦某個擴充功能,請開啟該擴充功能的詳細資料頁面。您可以在頁面標頭中找到推薦原因。

預先計算的建議
VS Code 會收集遙測資料,了解哪些擴充功能針對哪些檔案類型以及哪些工作區/資料夾被啟用。特定的資料夾透過計算每個資料夾的 Git 遠端雜湊來識別。
我們使用此資訊來預先計算匿名建議。預先計算的建議是闡明在何種條件下應推薦某個擴充功能的指示。例如,當我們看到擴充功能 A 和 B 之間存在有趣的關聯時,一個指示可能是:如果使用者已安裝擴充功能 A 但未安裝 B,則推薦擴充功能 B。
部分預先計算的建議作為產品的一部分發佈,而額外的預先計算建議則在執行時從 Microsoft 線上服務獲取。VS Code 獨立評估和執行預先計算的建議,而不會將任何使用者資訊傳送給任何線上服務。
動態建議
當您開啟一個 VS Code 沒有任何預先計算建議的檔案類型時,它會向擴充功能市集查詢聲明支援此檔案類型的擴充功能。如果查詢返回了您尚未安裝的擴充功能,VS Code 將提供通知。
致擴充功能作者
請閱讀擴充功能指南遙測文件。
相關資源
- 集中管理遙測記錄層級 - 了解如何為您的組織設定遙測記錄層級。
- Visual Studio Code 常見問題 - 查閱常見問題以了解更多資訊。
- 使用者和工作區設定 - 閱讀有關自訂 VS Code 的可用選項。