遙測
Visual Studio Code 收集遙測資料,這些資料用於協助我們瞭解如何改進產品。例如,此使用量資料有助於偵錯問題,例如啟動時間緩慢,以及判斷新功能的優先順序。雖然我們感謝此資料提供的深入解析,但我們也知道並非每個人都想傳送使用量資料,您可以依照停用遙測報告中的說明停用遙測。您也可以閱讀我們的隱私權聲明以深入瞭解。
遙測資料類型
VS Code 和此頁面提及關於遙測的三種不同資料類型。
當機報告 - 當機報告會在 VS Code 當機時收集診斷資訊,並將其傳送給 Microsoft,以協助瞭解當機發生的原因以及防止未來當機所需的變更。
錯誤遙測 - 錯誤遙測收集關於不會造成應用程式當機但屬於非預期的錯誤資訊。
使用量資料 - 使用量資料收集關於功能在 VS Code 中如何使用和執行的資訊,這有助於我們判斷未來產品改進的優先順序。
停用遙測報告
透過 telemetry.telemetryLevel 使用者設定,您可以使用單一設定控制我們傳送的不同遙測資料類型。以下表格列出針對 telemetry.telemetryLevel 的每個值傳送的不同資料類型
當機報告 | 錯誤遙測 | 使用量資料 | |
---|---|---|---|
全部 | ✓ | ✓ | ✓ |
錯誤 | ✓ | ✓ | - |
當機 | ✓ | - | - |
關閉 | - | - | - |
例如,如果您不想傳送任何遙測資料給 Microsoft,您可以將 telemetry.telemetryLevel 使用者設定設為 關閉
。
從 檔案 > 喜好設定 > 設定中,搜尋 遙測
,並將 遙測: 遙測層級 設定設為 關閉
。這會靜止 VS Code 未來的所有遙測事件。遙測資訊可能已在您停用設定之前收集並傳送。
如果您使用 JSON 編輯器進行設定,請新增下列行
"telemetry.telemetryLevel": "off"
擴充功能與遙測
VS Code 可讓您透過安裝 Microsoft 和第三方擴充功能,將功能新增至產品。這些擴充功能可能會收集自己的使用量資料,且不受 telemetry.telemetryLevel 設定控制。請參閱特定擴充功能的說明文件,以瞭解其遙測報告以及是否可以停用。
擴充功能作者可以參考「適用於擴充功能作者」章節,以取得在其擴充功能內實作遙測最佳做法的指引。
遙測事件的輸出通道
如果您想要檢閱 VS Code 中的遙測事件 (在傳送時),您可以啟用追蹤,它會記錄遙測事件。使用 開發人員: 設定記錄層級... 命令,並選取記錄層級 追蹤。若要檢視記錄輸出,請前往 [輸出] 面板 (⇧⌘U (Windows Ctrl+Shift+U,Linux Ctrl+K Ctrl+H)),並從下拉式選單中選擇 遙測。
追蹤遙測事件時,事件也會記錄到本機檔案 telemetry.log
,您可以使用 開發人員: 開啟記錄檔... 命令並從下拉式選單中選擇 遙測 來檢視該檔案。
檢視所有遙測事件
如果您想要檢視 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
。這會顯示所有控制線上服務使用量的設定,您可以個別開啟或關閉這些設定。
注意:VS Code 擴充功能也可能使用線上服務,而且可能未提供設定來設定這些線上服務的使用量,或者它們可能未註冊其設定以在搜尋
@tag:usesOnlineServices
時顯示。請參閱特定擴充功能的說明文件,以瞭解其線上服務的使用量。
VS Code 使用的非 Microsoft 線上服務
內建的 VS Code 的 npm 支援 擴充功能會將要求傳送至 https://registry.npmjs.org
和 https://registry.bower.io
。
內建的 TypeScript 和 JavaScript 語言功能 擴充功能會查詢 https://registry.npmjs.org
上的 @types
網域。
當您使用 開發人員: 切換開發人員工具 或 開發人員: 開啟 Webview 開發人員工具 時,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。
- 按鍵繫結 - 您可以輕鬆修改常用的鍵盤快速鍵。