遙測
Visual Studio Code 會收集遙測資料,用來協助我們了解如何改善產品。例如,此使用量資料有助於對問題進行偵錯 (例如啟動緩慢),並排定新功能的優先順序。我們也會使用此資料,在將新功能全面推出給所有使用者之前,先向部分使用者推出新功能。
雖然我們很感激這些資料提供的見解,但也知道並非所有人都想傳送使用量資料,您可以按照停用遙測回報中的說明來停用遙測。您也可以閱讀我們的隱私權聲明以深入了解。
遙測資料類型
就遙測而言,VS Code 和本頁面會提及三種不同類型的資料。
損毀報告 - 當 VS Code 損毀時,損毀報告會收集診斷資訊並將其傳送給 Microsoft,以協助了解損毀發生的原因,以及未來需要進行哪些變更來預防損毀。
錯誤遙測 - 錯誤遙測會收集關於未導致應用程式損毀但屬於非預期之錯誤的資訊。
使用量資料 - 使用量資料會收集關於功能在 VS Code 中的使用方式與效能的資訊,這有助於我們排定未來產品改進的優先順序。
停用遙測回報
透過 telemetry.telemetryLevel This setting can be managed by your organization. Contact your administrator to change it. 使用者設定,您可以透過單一設定來控制我們傳送的不同遙測類型。以下是當 telemetry.telemetryLevel This setting can be managed by your organization. Contact your administrator to change it. 為不同值時所傳送之不同資料類型的表格
| 損毀報告 | 錯誤遙測 | 使用量資料 | |
|---|---|---|---|
| all | ✓ | ✓ | ✓ |
| 錯誤 | ✓ | ✓ | - |
| 損毀 | ✓ | - | - |
| 關閉 | - | - | - |
例如,如果您不想將任何遙測資料傳送給 Microsoft,您可以將 telemetry.telemetryLevel This setting can be managed by your organization. Contact your administrator to change it. 使用者設定設為 off。這將會關閉之後來自 VS Code 的所有遙測事件。請注意,在您停用此設定之前,可能已經收集並傳送了遙測資訊。

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

追蹤遙測事件時,事件也會記錄到本機檔案 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 呼叫、工具執行和 Token 使用量的狀況。您可以在任何相容於 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 還會將線上服務用於各種其他目的,例如下載產品更新、尋找、安裝與更新擴充功能、設定同步 (Settings Sync),或在設定編輯器中提供自然語言搜尋。您可以選擇開啟/關閉使用這些服務的功能。
請注意,關閉這些功能並不會讓 VS Code 進入離線模式。例如,如果您在擴充功能檢視中搜尋擴充功能,VS Code 仍然會搜尋線上的 VS Code Marketplace。這些設定可確保 VS Code 不會在您未要求的情況下與線上服務進行通訊。
從 檔案 > 喜好設定 > 設定,並輸入標籤 @tag:usesOnlineServices。這將會顯示所有控制線上服務使用方式的設定,您可以個別將其開啟或關閉。

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

預先計算的建議
VS Code 會收集關於哪些擴充功能針對哪些檔案類型以及哪些工作區/資料夾進行啟動的遙測。特定資料夾是透過計算每個資料夾之 Git 遠端儲存庫的雜湊來識別的。
我們使用此資訊來預先計算匿名建議。預先計算的建議是詳細說明在什麼條件下應該建議擴充功能的指令。例如,當我們看到兩個擴充功能 A 和 B 之間存在有趣的關聯性時,其中一個指令可能是:如果使用者已安裝擴充功能 A 但未安裝 B,則建議安裝擴充功能 B。
部分預先計算的建議隨產品一起隨附,而其他預先計算的建議則是在執行階段從 Microsoft 線上服務擷取。VS Code 會獨立評估並執行預先計算的建議,而不會將任何使用者資訊傳送至任何線上服務。
動態建議
當您開啟 VS Code 沒有任何預先計算建議的檔案類型時,它會向擴充功能市集 (Extension Marketplace) 詢問宣告支援此檔案類型的擴充功能。如果查詢傳回您尚未安裝的擴充功能,VS Code 將會提供通知。
給擴充功能作者
請閱讀擴充功能指南遙測文件。
相關資源
- 集中管理遙測記錄層級 - 了解如何為您的組織設定遙測記錄層級。
- Visual Studio Code 常見問題集 - 請參閱常見問題集以深入了解。
- 使用者與工作區設定 - 閱讀關於自訂 VS Code 之可用選項的資訊。