现已推出!阅读有关 10 月份新功能和修复的详细信息。

遥测扩展作者指南

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 文件。这允许用户使用 VS Code CLI 以及 --telemetry 标志来接收 VS Code 生成的所有遥测数据的转储。扩展作者可以在其根目录中包含一个 telemetry.json 文件,它也会出现在 CLI 转储中。

注意事项

✔️ 应该

  • 如果 Application Insights 对你有效,请使用 @vscode/extension-telemetry npm 模块。
  • 否则,请尊重 isTelemetryEnabledonDidChangeTelemetryEnabled API。
  • 如果你有一个自定义遥测设置,请将其标记为 telemetryusesOnlineServices
  • 尽可能少地收集遥测数据。
  • 尽可能透明地向用户告知你收集了哪些数据。

❌ 不应该

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