🚀 在 VS Code 中

遙測

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

遙測資料類型

VS Code 和此頁面提及關於遙測的三種不同資料類型。

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

錯誤遙測 - 錯誤遙測收集關於不會造成應用程式當機但屬於非預期的錯誤資訊。

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

停用遙測報告

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

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

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

檔案 > 喜好設定 > 設定中,搜尋 遙測,並將 遙測: 遙測層級 設定設為 關閉。這會靜止 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 程式碼庫中)。
  • 確保我們針對我們收集的任何資料 (例如當機傾印) 制定有效的資料保留原則。

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

我們預期人們會問的一個問題是查看我們收集的資料。但是,我們沒有可靠的方法可以執行此動作,因為 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 線上服務

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

內建的 TypeScript 和 JavaScript 語言功能 擴充功能會查詢 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 會提供通知。

適用於擴充功能作者

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

後續步驟