遥测扩展作者指南

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

该做与不该做

✔️ 推荐做法

  • 如果使用 application insights 对你适用,请使用 @vscode/extension-telemetry npm 模块。
  • 否则,请遵守 isTelemetryEnabledonDidChangeTelemetryEnabled API。
  • 如果你有自定义遥测设置,请为其打上 telemetryusesOnlineServices 标签。
  • 尽可能少地收集遥测数据。
  • 关于你收集的内容,对用户保持尽可能高的透明度。

❌ 避免做法

  • 引入不需要征得用户同意的自定义遥测收集方案。
  • 收集个人身份信息 (PII)。
  • 收集超过必要限度的遥测数据。
  • 仅使用 telemetry.telemetryLevel 设置,因为与 isTelemetryEnabled 相比,它有时可能不准确。
English 한국어 中文(简体) 中文(繁體)
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.