遥测扩展作者指南
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 转储中。
注意事项
✔️ 建议
- 如果使用 Application Insights 对您来说可行,请使用 @vscode/extension-telemetry npm 模块。
- 否则,请尊重
isTelemetryEnabled和onDidChangeTelemetryEnabledAPI。 - 如果您有自定义遥测设置,请将其标记为
telemetry和usesOnlineServices。 - 收集尽可能少的遥测数据。
- 尽可能向您的用户公开您收集的内容。
❌ 不建议
- 引入不要求用户同意的自定义遥测收集解决方案。
- 收集个人身份信息 (PII)。
- 收集比必要更多的遥测数据。
- 仅使用
telemetry.telemetryLevel设置,因为它有时可能与isTelemetryEnabled不符。