遥测扩展作者指南

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 的扩展作者可以利用自己的自定义解决方案发送遥测数据。在这种情况下,仍然需要扩展作者通过使用API​​来尊重用户的isTelemetryEnabled选择onDidChangeTelemetryEnabled。通过这样做,用户将拥有一个集中的位置来控制他们的遥测设置。

自定义遥测设置

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

遥测.json

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

该做什么和不该做什么

✔️ 做

  • 如果使用应用程序洞察适合您,请使用@vscode/extension-telemetry npm 模块。
  • 否则,请尊重isTelemetryEnabledonDidChangeTelemetryEnabledAPI。
  • 如果您有自定义遥测设置,请使用telemetry和标记您的自定义遥测设置usesOnlineServices
  • 收集尽可能少的遥测数据。
  • 对您的用户尽可能透明地了解您收集的内容。

❌不要

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