本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

遥测

Visual Studio Code 收集遥测数据,这些数据用于帮助理解如何改进产品。例如,这些使用数据有助于调试问题,如启动时间缓慢,并且有助于确定新功能的优先级。我们还使用这些数据来在向所有用户推出之前向部分用户推出新功能

虽然我们感谢这些数据提供的见解,但我们也知道并非所有人都希望发送使用数据,您可以按照禁用遥测报告中的说明禁用遥测。您还可以阅读我们的隐私声明以了解更多信息。

遥测数据类型

VS Code 和此页面涉及三种不同类型的遥测数据。

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

错误遥测 - 错误遥测收集有关未使应用程序崩溃但出乎意料的错误信息。

使用数据 - 使用数据收集有关 VS Code 中功能的使用和性能信息,这有助于我们确定未来产品改进的优先事项。

禁用遥测报告

随着

遥测.遥测级别
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG 用户设置,您可以使用一个设置来控制我们发送的不同类型的遥测数据。以下是每个值发送的不同类型数据的表格
遥测.遥测级别
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
组织
:

崩溃报告 错误遥测 使用数据
全部 输入:✓ 输入:✓ 输入:✓
错误 输入:✓ 输入:✓ 输入:-
崩溃 输入:✓ 输入:- 输入:-
输入:- 输入:- 输入:-

例如,如果您不想向微软发送任何遥测数据,您可以设置

遥测.遥测级别
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG 用户设置为 这将从 VS Code 起停所有遥测事件。请注意,即使在您禁用该设置之前,遥测信息可能已被收集并发送。

截图显示设置编辑器,其中遥测已禁用。

如果你使用JSON编辑器来设置,添加以下行:

"遥测遥测级别""关闭"
重要

要参与A/B测试并提前使用新功能,您必须通过设置启用使用数据

遥测.遥测级别
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
组织全部输入:.

功能可用性和遥测数据

VS Code 使用 A/B 测试系统在向所有用户广泛提供新功能之前将其提供给一部分用户。这有助于我们在向所有人发布之前验证新功能在各种用户群体中是否按预期工作。通过参与测试,您帮助我们提高 VS Code 的质量,并可以通过早期反馈帮助塑造产品的未来。

要启用此实验系统,VS Code 使用使用遥测数据来确定哪些用户应接收新功能,并验证该功能的使用情况。如果您通过设置禁用使用数据遥测

遥测.遥测级别
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
组织错误崩溃,或我们无法评估该功能的使用情况,因此为您禁用了实验功能。因此,新功能的推出可能会延迟,直到该功能普遍可用。

扩展和遥测

VS Code 通过安装 Microsoft 和第三方扩展来让你为产品添加功能。这些扩展可能会收集它们自己的使用数据,并且不受控制。

遥测.遥测级别
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
ORG 设置。查阅具体扩展的文档,了解其遥测报告以及是否可以禁用。

扩展作者可以参考“扩展作者”部分,了解在扩展中实现遥测最佳实践的指导。

遥测事件输出通道

要在 VS Code 中查看发送的遥测事件,请运行 开发者:显示遥测 命令,从命令面板 () 这个命令启用遥测事件的跟踪,并在输出面板中打开遥测输出通道(⇧⌘U(Windows Ctrl+Shift+U,Linux Ctrl+K Ctrl+H)。当遥测事件发送时,输出通道会显示事件详情。

输出面板日志遥测

在跟踪遥测事件时,这些事件也会被记录到本地文件中。telemetry.log,您可以通过开发者:打开日志...命令并选择遥测下拉菜单查看。

打开遥测日志文件

要禁用跟踪遥测事件,请重新加载 VS Code Windows (开发者:重新加载Windows 命令)。

查看所有遥测事件

如果您想查看 VS Code 可能发送的所有遥测事件,您可以使用--遥测在 CLI 中使用 flag。这将生成一个 JSON 报告,您可以在 VS Code 中查看。这些报告是按构建生成的,除非扩展作者添加,否则不包含扩展遥测数据。telemetry.json将文件复制到他们的根构建目录。

例如,运行代码 --telemetry > telemetry.json 并且 代码 telemetry.json将创建一个telemetry.json在你当前的工作目录中创建一个文件,然后在 VS Code 中打开它。你不能像这样将输出管道化。代码 --遥测 | 代码 -由于遥测报告的长度。

以下是用于分类遥测数据、描述其目的以及指示任何特殊处理的事件元数据的详细信息。

事件分类

分类字段描述了数据的类型。

  • 系统元数据- VS Code生成的非个人可识别的信息。
  • 调用栈或异常- 由程序执行故障引起的错误。这些包含已经清理掉用户路径的堆栈跟踪信息。
  • 公共非个人数据- 用户生成的数据对公众可用,例如,已发布的扩展ID。
  • 终端用户去标识化信息- 使用哈希值来识别唯一用户,但无法识别该用户是谁。例如,哈希后的MAC地址。

活动目的

目的字段描述了数据收集的原因。

  • 表现与健康- 确保 VS Code 产品和服务健康且快速。
  • 功能洞察- 了解功能的使用情况以及在哪里继续投资开发。
  • 商业洞察- 为 VS Code、Microsoft 和 GitHub 的业务相关决策。

事件端点

端点字段描述了数据发送到的数据处理器。这通常应用于需要额外清理和保护用户隐私的特殊数据。

  • 谷歌分析ID- 用于我们网站的 Google Analytics 和跟踪页面浏览量。这些数据比我们通常的数据受到更严格的处理。
  • MAC地址哈希 - 用于标识 VS Code 的用户。这在客户端进行一次哈希处理,然后在管道侧再次哈希处理,使得无法识别给定的用户。在 VS Code for the Web 中,会为此生成一个 UUID。
  • - 数据不需要任何特殊处理。

GDPR 和 VS Code

除了支持《通用数据保护条例》(GDPR) 之外,VS Code 团队非常重视隐私。这不仅适用于微软公司,也特别适用于 VS Code 团队。

为了确保符合GDPR,我们对VS Code进行了几次更新,这些更新包括:

  • 通过在产品中放置通知,使现有和新用户更容易选择退出遥测数据收集。
  • 审查和分类我们发送的遥测数据(详见我们的开源代码库)。
  • 确保我们对所收集的任何数据(例如崩溃转储)都有有效的数据保留政策。

简而言之,我们一直在努力为所有用户做正确的事情,因为这些做法适用于所有地区,而不仅仅是欧洲。

我们预计人们会问的一个问题是查看我们收集的数据。然而,我们没有可靠的方法来做到这一点,因为 VS Code 没有像 'sign-in' 这样的体验,可以唯一地标识用户。我们确实会发送一些信息,以帮助我们进行诊断(这基于桌面设备的网络适配器 NIC 的哈希值和网络上的随机生成的 UUID),但这不保证是唯一的。例如,虚拟机 (VM) 往往会轮换 NIC ID 或从池中分配。这种技术在我们解决问题时是足够的,但不足以让我们 '提供您的数据'。

我们预计随着我们对GDPR和用户期望的了解越来越多,我们的方法将会不断发展。我们非常感谢用户发送给我们的数据,因为这些数据非常宝贵,由于这些数据,VS Code对每个人都是一款更好的产品。再次强调,如果您担心隐私问题,我们提供了在禁用遥测报告中描述的禁用遥测报告的能力。

您可以在 Visual Studio Family 数据主体请求 - 适用于 GDPR找到有关 Visual Studio 家族如何处理 GDPR 的更多信息。

管理在线服务

除了崩溃报告和遥测数据,VS Code 还使用在线服务用于其他各种目的,例如下载产品更新、查找、安装和更新扩展、设置同步,或在设置编辑器中提供自然语言搜索。您可以选择启用/禁用使用这些服务的功能。

请注意,关闭这些功能不会将 VS Code 设置为离线模式。例如,如果您在扩展视图中搜索扩展,VS Code 仍然会在线搜索 VS Code 市场。这些设置确保在您没有要求的情况下,VS Code 不会与在线服务通信。

文件 > 首选项 > 设置,并输入标签 @标签:使用在线服务这将显示所有控制在线服务使用的设置,您可以单独打开或关闭它们。

在线设置过滤器

注意:VS Code 扩展可能会使用在线服务,并且可能不会提供用于配置这些在线服务使用的设置,或者它们可能不会注册其设置以便在搜索时显示@标签:使用在线服务查阅特定扩展的文档,了解其对在线服务的使用。

VS Code 使用的非微软在线服务

内置的VS Code 的 npm 支持 扩展发送请求到 https://registry.npmjs.orghttps://registry.bower.io输入:.

内置的 TypeScript 和 JavaScript 语言特性 扩展查询 @类型域名在https://registry.npmjs.org输入:.

当你使用 开发者:切换开发者工具开发者:打开网页视图开发者工具,VS Code 可能会与 Google 服务器通信以获取启动开发者工具所需的数据。

扩展推荐

VS Code 根据您的文件类型、工作区和环境提供扩展推荐。文件类型推荐是预先计算的或动态的。工作区和环境推荐总是预先计算的。

如果你想了解为什么某个扩展被推荐,打开扩展的详细页面。你可以在页面标题中找到推荐原因。

基于文件的扩展推荐

预计算推荐

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

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

一些预计算的建议作为产品的一部分一起发布,而其他预计算的建议在运行时从在线微软服务中获取。VS Code 独立地评估和执行预计算的建议,而不向任何在线服务发送任何用户信息。

动态推荐

当您打开 VS Code 没有预计算推荐的文件类型时,它会向扩展市场查询声明支持该文件类型的扩展。如果查询返回您未安装的扩展,VS Code 会提供一个通知。

对于扩展作者

请阅读扩展指南遥测文档