遥测

Visual Studio Code 收集遥测数据,用于帮助了解如何改进产品。例如,此使用数据有助于调试问题(例如启动时间慢)并确定新功能的优先级。虽然我们很欣赏这些数据提供的见解,但我们也知道并不是每个人都想发送使用数据,您可以按照禁用遥测报告中所述禁用遥测。您还可以阅读我们的隐私声明以了解更多信息。

遥测数据的类型

VS Code 和本页引用了与遥测相关的三种不同类型的数据。

崩溃报告- 崩溃报告会在 VS Code 崩溃时收集诊断信息,并将其发送给 Microsoft,以帮助了解发生崩溃的原因以及需要进行哪些更改来防止将来发生崩溃。

错误遥测- 错误遥测收集有关不会使应用程序崩溃但意外的错误的信息。

使用数据- 使用数据收集有关如何在 VS Code 中使用和执行功能的信息,这有助于我们确定未来产品改进的优先顺序。

禁用遥测报告

通过telemetry.telemetryLevel用户设置,您可以通过单个设置控制我们发送的不同类型的遥测数据。下面是随每个值发送的不同类型数据的表格telemetry.telemetryLevel

崩溃报告 错误遥测 使用数据
全部
错误 -
碰撞 - -
离开 - - -

例如,如果您不想向 Microsoft 发送任何遥测数据,则可以将telemetry.telemetryLevel用户设置设置为off

“文件” > “首选项” > “设置”中,搜索telemetry并将“遥测:遥测级别”设置设置为off。这将使 VS Code 中的所有遥测事件静音。遥测信息可能已被收集并发送,直到您禁用该设置为止。

禁用遥测

如果您使用 JSON 编辑器进行设置,请添加以下行:

    "telemetry.telemetryLevel": "off"

扩展和遥测

VS Code 允许您通过安装 Microsoft 和第三方扩展来向产品添加功能。这些扩展程序可能会收集自己的使用数据,并且不受telemetry.telemetryLevel设置控制。请参阅特定扩展的文档以了解其遥测报告以及是否可以禁用它。

扩展作者可以参考“对于扩展作者”部分,以获取在其扩展中实施遥测最佳实践的指导。

遥测事件的输出通道

如果您想在 VS Code 中查看发送的遥测事件,您可以启用跟踪,它将记录遥测事件。使用Developer: Set Log Level...命令并选择日志级别Trace。要查看日志记录输出,请转到“输出”面板 ( ⇧⌘U(Windows Ctrl+Shift+U、Linux Ctrl+K Ctrl+H )并从下拉列表中选择遥测。

输出面板日志遥测

跟踪遥测事件时,事件也会记录到本地文件中telemetry.log,您可以使用开发人员:打开日志文件...命令并从下拉列表中选择遥测来查看该文件。

打开遥测日志文件

查看所有遥测事件

如果您想查看 VS Code 可以发送的所有可能的遥测事件,可以--telemetry在 CLI 中使用该标志。这将生成一个 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 for the Web上,会为此情况生成一个 UUID。
  • none- 数据不需要任何特殊处理。

GDPR 和 VS 代码

除了支持通用数据保护条例 (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.orghttps://registry.bower.io

内置的TypeScript 和 JavaScript 语言功能扩展可@types查询https://registry.npmjs.org.

当您使用Developer: Toggle Developer ToolsDeveloper: Open Webview Developer Tools时,VS Code 可能会与 Google 服务器通信以获取启动开发人员工具所需的数据。

扩展建议

VS Code 根据您的文件类型、工作区和环境提供扩展建议。文件类型建议是预先计算的或动态的。工作空间和环境建议始终是预先计算的。

如果您想了解推荐扩展程序的原因,请打开扩展程序的详细信息页面。您可以在页眉中找到推荐原因。

基于文件的扩展推荐

预先计算的建议

VS Code 收集有关正在为哪些文件类型和哪些工作区/文件夹激活哪些扩展的遥测数据。通过计算每个文件夹的 Git 远程文件的哈希值来识别特定文件夹。

我们使用这些信息来预先计算匿名推荐。预先计算的建议是详细说明在哪些条件下应建议扩展的说明。例如,当我们看到两个扩展 A 和 B 之间存在有趣的相关性时,一条指令可能是:如果用户安装了扩展 A 但没有安装 B,则推荐扩展 B。

一些预先计算的建议作为产品的一部分提供,而其他预先计算的建议是在运行时从在线 Microsoft 服务获取的。VS Code 独立评估和执行预先计算的建议,无需将任何用户信息发送到任何在线服务。

动态推荐

当您打开 VS Code 没有任何预先计算建议的文件类型时,它会向扩展市场请求声明支持此文件类型的扩展。如果查询返回您尚未安装的扩展,VS Code 将提供通知。

对于扩展作者

请阅读扩展指南遥测文档

下一步