遥测扩展作者指南
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
文件。这允许用户使用 VS Code CLI 以及 --telemetry
标志来接收 VS Code 生成的所有遥测数据的转储。扩展作者可以在其根目录中包含一个 telemetry.json
文件,它也会出现在 CLI 转储中。
注意事项
✔️ 应该
- 如果 Application Insights 对你有效,请使用 @vscode/extension-telemetry npm 模块。
- 否则,请尊重
isTelemetryEnabled
和onDidChangeTelemetryEnabled
API。 - 如果你有一个自定义遥测设置,请将其标记为
telemetry
和usesOnlineServices
。 - 尽可能少地收集遥测数据。
- 尽可能透明地向用户告知你收集了哪些数据。
❌ 不应该
- 引入不征求用户同意的自定义遥测数据收集解决方案。
- 收集个人身份信息 (PII)。
- 收集超过必要的遥测数据。
- 仅使用
telemetry.telemetryLevel
设置,因为它有时可能与isTelemetryEnabled
相比不准确。