– 代理会话日,2月19日

遥测扩展作者指南

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 不正确。
© . This site is unofficial and not affiliated with Microsoft.