🚀 在 VS Code 中

遙測

Visual Studio Code 收集遙測資料,這些資料有助於我們瞭解如何改進產品。 例如,這些使用資料有助於偵錯問題,例如啟動速度緩慢,以及判斷新功能的優先順序。 雖然我們感謝這些資料提供的深入資訊,但我們也知道並非每個人都想傳送使用資料,您可以依照停用遙測報告中的說明停用遙測功能。 您也可以閱讀我們的隱私權聲明以瞭解更多資訊。

遙測資料類型

VS Code 和本頁面指的是與遙測相關的三種不同資料類型。

當機報告 - 當機報告會在 VS Code 當機時收集診斷資訊,並將其傳送給 Microsoft,以協助瞭解當機發生的原因以及防止未來當機所需的變更。

錯誤遙測 - 錯誤遙測會收集有關未造成應用程式當機但為非預期錯誤的相關資訊。

使用資料 - 使用資料會收集有關功能在 VS Code 中如何使用和執行的相關資訊,這有助於我們判斷未來產品改進的優先順序。

停用遙測報告

透過 telemetry.telemetryLevel 使用者設定,您可以使用單一設定控制我們傳送的不同遙測資料類型。 以下表格列出針對 telemetry.telemetryLevel 的每個值所傳送的不同資料類型

當機報告 錯誤遙測 使用資料
全部
錯誤 -
當機 - -
關閉 - - -

例如,如果您不想將任何遙測資料傳送給 Microsoft,您可以將 telemetry.telemetryLevel 使用者設定設定為 off

檔案 > 喜好設定 > 設定,搜尋 telemetry,並將 遙測: 遙測層級 設定設為 off。 這會讓 VS Code 未來停止傳送所有遙測事件。 遙測資訊可能會在您停用設定之前收集和傳送。

disable telemetry

如果您使用 JSON 編輯器來設定設定,請新增下列行

    "telemetry.telemetryLevel": "off"

擴充功能與遙測

VS Code 可讓您透過安裝 Microsoft 和協力廠商擴充功能來新增產品功能。 這些擴充功能可能會收集自己的使用資料,且不受 telemetry.telemetryLevel 設定所控制。 請參閱特定擴充功能的說明文件,以瞭解其遙測報告以及是否可以停用。

擴充功能作者可以參考「給擴充功能作者」章節,以取得在其擴充功能中實作遙測最佳實務的指南。

遙測事件的輸出通道

如果您想要檢閱 VS Code 中傳送的遙測事件,您可以啟用追蹤,它會記錄遙測事件。 使用開發人員: 設定記錄層級... 命令,然後選取記錄層級追蹤。 若要檢視記錄輸出,請前往 [輸出] 面板 (⇧⌘U (Windows Ctrl+Shift+U,Linux Ctrl+K Ctrl+H)),然後從下拉式清單中選取 遙測

output panel log telemetry

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

open telemetry log file

檢視所有遙測事件

如果您想要檢視 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 - 使用者產生的資料,可供公眾使用,例如,已發佈的擴充功能識別碼。
  • EndUserPseudonymizedInformation - 用於識別唯一使用者但無法識別使用者身分的雜湊。 例如,雜湊的 Mac 位址。

事件目的

purpose 欄位描述收集資料的原因。

  • PerformanceAndHealth - 確保 VS Code 產品和服務的健康且快速。
  • FeatureInsight - 瞭解功能使用情況以及繼續開發投資的方向。
  • BusinessInsight - 制定與 VS Code、Microsoft 和 GitHub 業務相關的決策。

事件端點

endpoint 欄位描述資料傳送到的資料處理常式。 這通常適用於需要額外清除和安全性的特殊資料,以保護使用者隱私權。

  • GoogleAnalyticsId - 用於我們網站上的 Google Analytics (分析) 和追蹤頁面瀏覽次數。 這些資料的處理方式比我們的正常資料更為敏感。
  • MacAddressHash - 用於識別 VS Code 的使用者。 這會在用戶端進行一次雜湊處理,然後在管線端再次雜湊處理,使其無法識別特定使用者。 在VS Code 網頁版上,會針對此案例產生 UUID。
  • none - 資料不需要任何特殊處理。

GDPR 與 VS Code

除了支援一般資料保護規範 (GDPR) 之外,VS Code 團隊也非常重視隱私權。 這適用於 Microsoft 公司,也特別適用於 VS Code 團隊。

為了確保符合 GDPR 規範,我們對 VS Code 進行了數項更新,包括

  • 更輕鬆地退出遙測資料收集,方法是在產品中為所有現有和新使用者放置通知。
  • 檢閱和分類我們傳送的遙測 (記錄在我們的 OSS codebase 中)。
  • 確保我們已針對我們收集的任何資料 (例如當機傾印) 制定有效的資料保留政策。

簡而言之,我們已努力為所有使用者做正確的事,因為這些實務適用於所有地區,而不僅僅是歐洲。

我們預期人們會問的一個問題是查看我們收集的資料。 不過,我們沒有可靠的方法可以執行此動作,因為 VS Code 沒有可唯一識別使用者的「登入」體驗。 我們確實會傳送有助於我們針對診斷目的約略估計單一使用者的資訊 (這會根據桌面上網路介面卡 NIC 的雜湊和網頁上隨機指派的 UUID),但這不能保證是唯一的。 例如,虛擬機器 (VM) 通常會輪替 NIC ID 或從集區配置。 這項技術足以協助我們解決問題,但不足以讓我們「提供您的資料」。

我們預期我們的方法會隨著我們更瞭解 GDPR 和使用者的期望而演進。 我們非常感謝使用者傳送給我們的資料,因為它非常有價值,而且 VS Code 因為這些資料而成為對所有人來說更好的產品。 再次強調,如果您擔心隱私權,我們提供停用傳送遙測的功能,如停用遙測報告中所述。

您可以在Visual Studio 系列資料主體要求 (適用於 GDPR)中找到有關 Visual Studio 系列如何處理 GDPR 的詳細資訊。

管理線上服務

除了當機報告和遙測之外,VS Code 還基於各種其他目的使用線上服務,例如下載產品更新、尋找、安裝和更新擴充功能、設定同步,或在設定編輯器中提供自然語言搜尋。 您可以選擇開啟/關閉使用這些服務的功能。

請注意,關閉這些功能不會讓 VS Code 進入離線模式。 例如,如果您在擴充功能檢視中搜尋擴充功能,VS Code 仍然會搜尋線上 VS Code Marketplace。 這些設定可確保 VS Code 不會在您要求的情況下與線上服務交談。

檔案 > 喜好設定 > 設定,輸入標籤 @tag:usesOnlineServices。 這會顯示所有控制線上服務使用情況的設定,您可以個別開啟或關閉這些設定。

online settings filter

注意:VS Code 擴充功能也可能使用線上服務,並且可能未提供設定來設定這些線上服務的使用情況,或者它們可能未註冊其設定,以便在搜尋 @tag:usesOnlineServices 時顯示。 請參閱特定擴充功能的說明文件,以瞭解其線上服務的使用情況。

VS Code 使用的非 Microsoft 線上服務

內建的 npm support for VS Code 擴充功能會將要求傳送至 https://registry.npmjs.orghttps://registry.bower.io

內建的 TypeScript and JavaScript Language Features 擴充功能會查詢 https://registry.npmjs.org@types 網域。

當您使用開發人員: 切換開發人員工具開發人員: 開啟 WebView 開發人員工具時,VS Code 可能會與 Google 伺服器通訊,以擷取啟動開發人員工具所需的資料。

擴充功能建議

VS Code 會根據您的檔案類型、您的工作區和您的環境提供擴充功能建議。 檔案類型建議是預先計算的或動態的。 工作區和環境建議一律為預先計算的。

如果您想知道為什麼建議擴充功能,請開啟擴充功能的詳細資訊頁面。 您可以在頁面標頭中找到建議原因。

extension recommendation based on files

預先計算的建議

VS Code 會收集有關哪些擴充功能針對哪些檔案類型以及哪些工作區/資料夾啟用的遙測。 特定資料夾會透過計算每個資料夾的 Git 遠端的雜湊來識別。

我們使用此資訊來預先計算匿名建議。 預先計算的建議是說明在哪些條件下應建議擴充功能的指示。 例如,當我們看到兩個擴充功能 A 和 B 之間存在有趣的關聯性時,其中一個指示可能是:如果使用者已安裝擴充功能 A 但未安裝 B,則建議擴充功能 B。

某些預先計算的建議會作為產品的一部分出貨,而其他預先計算的建議則會在執行階段從 Microsoft 線上服務擷取。 VS Code 會獨立評估和執行預先計算的建議,而不會將任何使用者資訊傳送至任何線上服務。

動態建議

當您開啟 VS Code 沒有任何預先計算建議的檔案類型時,它會向擴充功能市集詢問宣告支援此檔案類型的擴充功能。 如果查詢傳回您未安裝的擴充功能,VS Code 將會提供通知。

給擴充功能作者

請閱讀擴充功能指南遙測文件

後續步驟