遥测

Visual Studio Code 会收集遥测数据,这些数据用于帮助了解如何改进产品。例如,这些使用数据有助于调试问题(如启动速度慢),并确定新功能的优先级。我们还使用这些数据在向所有用户普遍推出新功能之前,先向一部分用户推出新功能

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

遥测数据类型

就遥测而言,VS Code 和本页面提到了三种不同类型的数据。

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

错误遥测 - 错误遥测收集有关未导致应用程序崩溃但属于意外情况的错误的信息。

使用数据 - 使用数据收集有关功能在 VS Code 中如何被使用及其性能表现的信息,这有助于我们确定未来产品改进的优先级。

禁用遥测报告

使用 telemetry.telemetryLevel 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置可由您的组织管理。请联系您的管理员进行更改。 用户设置,您可以通过单个设置来控制我们发送的不同类型的遥测数据。以下是使用 telemetry.telemetryLevel 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置可由您的组织管理。请联系您的管理员进行更改。 的每个值时发送的不同类型数据的表格

崩溃报告 错误遥测 使用数据
all
error -
crash - -
off - - -

例如,如果您不想向 Microsoft 发送任何遥测数据,可以将 telemetry.telemetryLevel 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置可由您的组织管理。请联系您的管理员进行更改。 用户设置设为 off。这将关闭此后来自 VS Code 的所有遥测事件。请注意,在您禁用该设置之前,可能已经收集并发送了遥测信息。

Screenshot showing the Settings editor with telemetry disabled.

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

"telemetry.telemetryLevel": "off"
重要事项

要参与 A/B 实验并抢先体验新功能,必须通过将 telemetry.telemetryLevel 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置可由您的组织管理。请联系您的管理员进行更改。 设置为 all 来启用使用数据。

功能可用性与遥测

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

为了启用此实验系统,VS Code 会使用使用遥测数据来确定哪些用户应接收新功能,并验证该功能的使用情况。如果您通过将 telemetry.telemetryLevel 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置可由您的组织管理。请联系您的管理员进行更改。 设置为 errorcrashoff 来禁用使用数据遥测,我们将无法评估该功能的使用情况,因此实验功能将为您禁用。因此,向您推出新功能的时间可能会延迟,直到该功能普遍可用为止。

扩展与遥测

VS Code 允许您通过安装 Microsoft 和第三方扩展来为产品添加功能。这些 extensions 可能会收集它们自己的使用数据,并且不受 telemetry.telemetryLevel 在 VS Code 中打开 在 VS Code Insiders 中打开 此设置可由您的组织管理。请联系您的管理员进行更改。 设置的控制。请查阅特定扩展的文档,了解其遥测报告以及是否可以将其禁用。

扩展作者可以参考“面向扩展作者”一节,了解有关在其扩展中实现遥测最佳做法的指导。

遥测事件的输出通道

要在发送遥测事件时进行查看,请从命令面板()运行 Developer: Show Telemetry 命令。此命令会启用遥测事件的跟踪,并在“输出”面板(⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H))中打开 Telemetry 输出通道。发送遥测事件时,输出通道会显示事件详细信息。

output panel log telemetry

在跟踪遥测事件时,这些事件还会记录到本地文件 telemetry.log 中,您可以使用 Developer: Open Log... 命令并在下拉菜单中选择 Telemetry 来查看该文件。

open telemetry log file

要禁用遥测事件跟踪,请重新加载 VS Code 窗口(运行 Developer: Reload Window 命令)。

查看所有遥测事件

如果您想查看 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 - 可向公众公开的用户生成数据,例如已发布的扩展 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 - 数据不需要任何特殊处理。

用于智能体交互的 OpenTelemetry 支持

VS Code 中的 Copilot Chat 可以通过 OpenTelemetry (OTel) 导出跟踪、指标和事件,让您能够实时了解智能体交互、大语言模型调用、工具执行和 Token 使用情况。您可以将此遥测数据与任何兼容 OTel 的后端一起使用。

详细了解如何使用 OpenTelemetry 监控智能体交互

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 还将在线服务用于各种其他目的,例如下载产品更新、查找、安装和更新扩展、设置同步 (Settings Sync),或者在设置编辑器中提供自然语言搜索。您可以选择开启/关闭使用这些服务的功能。

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

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

online settings filter

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

VS Code 使用的非 Microsoft 在线服务

内置的 npm support for VS Code 扩展会向 https://registry.npmjs.orghttps://registry.bower.io 发送请求。

内置的 TypeScript and JavaScript Language Features 扩展会查询 https://registry.npmjs.org 上的 @types 域。

当您使用 Developer: Toggle Developer ToolsDeveloper: Open Webview Developer Tools 时,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 将提供通知。

面向扩展作者

请阅读扩展指南遥测文档

English 한국어 中文(简体) 中文(繁體)
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.