尝试以扩展 VS Code 中的代理模式!

遥测扩展作者指南

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 相比可能不准确。