遥测扩展作者指南
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
文件。这允许用户使用带有--telemetry
标志的VS Code CLI来接收VS Code生成的所有遥测数据的转储。扩展作者可以在其根目录中包含一个telemetry.json
文件,它也会出现在CLI转储中。
该做和不该做的事
✔️ 做
- 如果应用程序洞察对您有效,请使用@vscode/extension-telemetry npm模块。
- 否则,请遵循
isTelemetryEnabled
和onDidChangeTelemetryEnabled
API。 - 如果你有自定义的遥测设置,请用
telemetry
和usesOnlineServices
标记它。 - 尽可能少地收集遥测数据。
- 尽可能向用户透明地展示你所收集的内容。
❌ 不要
- 引入一个不需要用户同意的自定义遥测收集解决方案。
- 收集个人身份信息(PII)。
- 收集比必要更多的遥测数据。
- 仅使用
telemetry.telemetryLevel
设置,因为与isTelemetryEnabled
相比,它有时可能不正确。