遥测

Visual Studio Code 收集遥测数据,用于帮助理解如何改进产品。例如,这些使用数据有助于调试启动慢等问题,并优先考虑新功能。我们还利用这些数据向部分用户推送新功能,然后再正式开放。

虽然我们感谢这些数据带来的见解,但我们也知道并非所有人都愿意发送使用数据,你可以按照禁用遥测报告中描述的禁用遥测数据。您也可以阅读我们的隐私声明了解更多信息。

遥测数据的类型

VS Code 和本页指的关于遥测的三种不同类型的数据。

崩溃报告——崩溃报告收集VS Code崩溃时的诊断信息,并发送给Microsoft,帮助了解崩溃原因及未来需要做哪些改进以防止崩溃。

错误遥测——错误遥测收集不会导致应用程序崩溃但意外错误的信息。

使用数据——使用数据收集功能在VS Code中如何使用和表现的信息,帮助我们优先考虑未来的产品改进。

禁用遥测报告

遥测。遥测水平
  • 在VS代码中打开
  • 在VS Code Insiders中开放
ORG用户设置中,你可以用一个设置控制我们发送的不同类型的遥测数据。以下是根据每个值发送的不同类型数据的表格
遥测。遥测水平
  • 在VS代码中打开
  • 在VS Code Insiders中开放
组织
:

事故报告 错误遥测 使用数据
全部
错误 -
撞击声 - -
不对劲 - - -

例如,如果你不想向Microsoft发送任何遥测数据,你可以设置

遥测。遥测水平
  • 在VS代码中打开
  • 在VS Code Insiders中开放
ORG 用户设置为不对劲.这将使 VS Code 未来所有遥测事件静音。注意,遥测信息可能一直被收集并发送到你关闭该设置的那一刻。

截图显示设置编辑器中禁用遥测功能。

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

"telemetry.telemetryLevel": "off"
重要

要参与A/B实验并提前访问新功能,您必须通过以下方式启用使用数据

遥测。遥测水平
  • 在VS代码中打开
  • 在VS Code Insiders中开放
ORG全部.

功能可用性与遥测

VS Code 使用A/B实验系统,先向部分用户推出新功能,然后再正式开放。这有助于我们在向所有人推广前,验证新功能在多样化用户群体中是否正常运行。通过参与实验,你帮助我们提升VS Code的质量,并通过早期反馈塑造产品的未来。

为了支持该实验系统,VS Code 利用使用遥测数据确定哪些用户应接收新功能,并验证功能使用情况。如果你通过设置禁用使用数据遥测

遥测。遥测水平
  • 在VS代码中打开
  • 在VS Code Insiders中开放
ORG错误,撞击声,或者不对劲我们无法评估该功能的使用情况,因此您的实验功能被禁用。因此,新功能的推出可能会被推迟,直到功能正式上线。

分机与遥测

VS Code 允许你通过安装 Microsoft 和第三方扩展来为产品添加功能。这些扩展可能在收集自己的使用数据,不受

遥测。遥测水平
  • 在VS代码中打开
  • 在VS Code Insiders中开放
组织设置。请参阅该扩展的文档,了解其遥测报告及是否可以被禁用。

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

遥测事件输出通道

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

输出面板日志遥测

在追踪遥测事件时,事件也会被记录到本地文件telemetry.log你可以使用“开发者:打开日志......”命令,并从下拉菜单中选择遥测“查看。

打开遥测日志文件

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

查看所有遥测事件

如果你想查看 VS Code 可能发送的所有遥测事件,可以使用——遥测CLI中的flag。这会生成一份JSON报告,你可以在VS Code中查看。这些报告是每个构建生成的,除非扩展作者添加telemetry.json文件存入他们的根构建目录。

比如,跑步代码——遥测> telemetry.json & 代码telemetry.json将生成一个telemetry.json文件放到你当前的工作目录里,然后用 VS Code 打开它。你不能这样管道输出,代码——遥测 |代码——,由于遥测报告的长度。

以下章节详细介绍用于对遥测数据分类、描述其用途及指示特殊处理的事件元数据。

赛事分类

分类字段描述数据类型。

  • 系统元数据- 由 VS Code 生成的无法个人识别的数值。
  • 调用堆栈或例外- 程序执行失败引起的错误。这些文件包含了已被清除的用户路径的栈迹。
  • PublicNonPersonalData- 用户生成的数据,向公众开放,例如已发布的扩展编号。
  • 终端用户假名化信息- 用于识别唯一用户但无法识别该用户身份的哈希值。例如,一个哈希处理的Mac地址。

活动目的

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

  • 表现与健康- 确保VS Code产品和服务健康且快速。
  • 特色洞察- 理解功能使用及开发投资的持续方向。
  • 商业洞察- 就VS Code、Microsoft和GitHub的业务做出决策。

事件端点

终点字段描述数据被发送到哪个数据处理程序。这通常适用于需要额外清除和安全以保护用户隐私的特殊数据。

  • 谷歌分析ID- 用于我们网站的Google Analytics和页面浏览量追踪。这些数据的处理比我们平时的数据更为敏感。
  • Mac地址哈希- 用于识别 VS Code 用户。客户端对此进行一次哈希,管道端再进行一次哈希,使得无法识别特定用户。在 VS Code for the Web 中,会为此情况生成一个 UUID。
  • 没有- 数据无需特殊处理。

GDPR和VS规范

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

为确保GDPR合规,我们对VS代码进行了多项更新,包括:

  • 通过在产品中为所有现有和新用户设置通知,更容易选择退出遥测采集。
  • 审查和分类我们发送的遥测数据(记录在我们的OSS代码库中)。
  • 确保我们收集到的数据(例如崩溃数据)都有有效的数据保留政策。

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

我们期望人们提出的一个问题是查看我们收集的数据。然而,我们没有可靠的方法来实现这一点,因为 VS Code 没有能够唯一识别用户的“登录”体验。我们确实会发送帮助我们近似单个用户进行诊断的信息(基于桌面网络适配器网卡的哈希值和网页上的随机分配UUID),但这并不保证是唯一的。例如,虚拟机(VM)通常会轮换NIC ID或从池中分配。这种技术在解决问题时足以帮助我们,但还不够可靠,无法“提供你的数据”。

随着我们对GDPR及用户期望的深入了解,我们的方法也将不断演变。我们非常感谢用户向我们发送的数据,因为这些数据非常有价值,VS Code因此成为了对所有人更好的产品。同样,如果您担心隐私问题,我们提供关闭发送遥测的能力,具体内容见禁用遥测报告

你可以在 Visual Studio 家族GDPR数据主体请求中了解更多关于Visual Studio家族如何应对GDPR的信息。

管理在线服务

除了崩溃报告和遥测数据外,VS Code 还利用在线服务进行多种其他用途,如下载产品更新、查找、安装和更新扩展、设置同步,或在设置编辑器中提供自然语言搜索。你可以选择开启或关闭使用这些服务的功能。

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

文件>偏好设置>,输入标签 @tag:使用在线服务. 它会显示所有控制在线服务使用的设置,你可以单独开关它们。

在线设置过滤器

注意:VS Code 扩展也可能使用在线服务,但可能不提供设置来配置这些在线服务的使用,或者它们可能不会注册设置以在搜索时显示@tag:使用在线服务. 请参阅该扩展的文档,了解其在线服务的使用情况。

VS Code 使用的非 Microsoft 在线服务

内置的 npm 对 VS Code 扩展的支持会发送请求到https://registry.npmjs.org以及https://registry.bower.io.

内置的TypeScript和JavaScript语言特性扩展查询@typeshttps://registry.npmjs.org.

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

扩展建议

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

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

基于文件的扩展推荐

预计算推荐

VS Code 收集了哪些扩展名被激活、适用于哪些文件类型以及哪些工作区/文件夹的遥测数据。通过计算每个文件夹的 Git 远程哈希来识别特定文件夹。

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

部分预计算推荐作为产品一部分发布,额外的预计算推荐则在运行时从在线 Microsoft 服务获取。VS Code 独立评估和执行预计算推荐,且不向任何在线服务发送用户信息。

动态推荐

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

对于扩展作者

请阅读扩展指南的遥测文档