遥测扩展作者指南
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 的扩展作者可以使用他们自己的自定义方案来发送遥测数据。在这种情况下,仍然要求扩展作者通过使用 isTelemetryEnabled 和 onDidChangeTelemetryEnabled API 来尊重用户的选择。通过这样做,用户将有一个集中化的位置来控制其遥测设置。
自定义遥测设置
扩展可能希望允许用户控制独立于 VS Code 遥测的扩展特定遥测。在这种情况下,我们建议你引入一个特定的扩展设置。建议为自定义遥测设置打上 telemetry 和 usesOnlineServices 标签,以便用户可以在设置 UI 中更轻松地查询它们。添加自定义遥测设置并不意味着可以不尊重用户的决定,并且必须始终遵守 isTelemetryEnabled 和 onDidChangeTelemetryEnabled 标志。如果 isTelemetryEnabled 报告为 false,则即使你的设置已启用,也绝不能发送遥测数据。
telemetry.json
我们理解遥测对于许多用户来说可能是一个敏感话题,我们的目标是尽最大可能保持透明。VS Code 核心产品和大多数第一方扩展在其根目录中都附带一个 telemetry.json file 文件。这允许用户结合 --telemetry 标志使用 VS Code CLI,以接收 VS Code 生成的所有遥测数据的转储。扩展作者可以在其根目录中包含一个 telemetry.json 文件,它也会出现在 CLI 转储中。
该做与不该做
✔️ 推荐做法
- 如果使用 application insights 对你适用,请使用 @vscode/extension-telemetry npm 模块。
- 否则,请遵守
isTelemetryEnabled和onDidChangeTelemetryEnabledAPI。 - 如果你有自定义遥测设置,请为其打上
telemetry和usesOnlineServices标签。 - 尽可能少地收集遥测数据。
- 关于你收集的内容,对用户保持尽可能高的透明度。
❌ 避免做法
- 引入不需要征得用户同意的自定义遥测收集方案。
- 收集个人身份信息 (PII)。
- 收集超过必要限度的遥测数据。
- 仅使用
telemetry.telemetryLevel设置,因为与isTelemetryEnabled相比,它有时可能不准确。