现已发布!阅读有关 11 月的新功能和修复的信息。

遥测扩展作者指南

Visual Studio Code 收集使用情况数据并将其发送给 Microsoft,以帮助改进我们的产品和服务。阅读我们的隐私声明遥测文档以了解更多信息。

本主题为扩展作者提供了指南,以便他们的扩展可以符合 VS Code 遥测要求和最佳实践。

注意:如果您不想向 Microsoft 发送使用情况数据,可以将 telemetry.telemetryLevel 用户设置设置为 off

遥测模块

VS Code 团队维护着 @vscode/extension-telemetry npm 模块,该模块提供了一种在 VS Code 中收集遥测数据的统一且安全的方法。该模块将遥测数据报告给 Azure Monitor 和 Application Insights,并保证与 VS Code 以前版本的向后兼容性。

按照本指南设置 Azure Monitor 并获取您的 Application Insights 检测密钥。

不使用遥测模块

不希望使用 Application Insights 的扩展作者可以使用他们自己的自定义解决方案来发送遥测数据。在这种情况下,仍然需要扩展作者通过使用 isTelemetryEnabledonDidChangeTelemetryEnabled API 来尊重用户的选择。通过这样做,用户将有一个集中的地方来控制他们的遥测设置。

自定义遥测设置

扩展可能希望为独立于 VS Code 遥测的扩展特定遥测提供用户控制。在这种情况下,我们建议您引入特定的扩展设置。建议使用 telemetryusesOnlineServices 标记自定义遥测设置,以便用户可以在“设置”UI 中更轻松地查询它们。添加自定义遥测设置并不能免除尊重用户决定的义务,并且必须始终遵守 isTelemetryEnabledonDidChangeTelemetryEnabled 标志。如果 isTelemetryEnabled 报告为 false,即使您的设置已启用,也不得发送遥测数据。

telemetry.json

我们理解遥测对于许多用户来说可能是一个敏感的话题,我们力求尽可能透明。核心 VS Code 产品和大多数第一方扩展在其根目录中都附带一个 telemetry.json 文件。这允许用户使用带有 --telemetry 标志的 VS Code CLI 来接收 VS Code 生成的所有遥测数据的转储。扩展作者可以在其根目录中包含一个 telemetry.json 文件,它也会出现在 CLI 转储中。

应该做和不应该做

✔️ 应该做

  • 如果使用 Application Insights 对您有效,请使用 @vscode/extension-telemetry npm 模块。
  • 否则,请尊重 isTelemetryEnabledonDidChangeTelemetryEnabled API。
  • 如果您的自定义遥测设置有,请用 telemetryusesOnlineServices 标记。
  • 尽可能少地收集遥测数据。
  • 尽可能向您的用户透明地说明您收集的内容。

❌ 不应该做

  • 引入不征求用户同意的自定义遥测收集解决方案。
  • 收集个人身份信息 (PII)。
  • 收集超过必要量的遥测数据。
  • 仅使用 telemetry.telemetryLevel 设置,因为它有时可能与 isTelemetryEnabled 相比不正确。