本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

遥测扩展作者指南

Visual Studio Code 收集使用数据并将其发送给微软,以帮助改进我们的产品和服务。阅读我们的隐私声明遥测文档以了解更多信息。

此话题为扩展作者提供了指南,以便他们的扩展符合 VS Code 的遥测要求和最佳实践。

注意:如果您不想向微软发送使用数据,您可以设置遥测.遥测级别 用户 设置输入:.

遥测模块

VS Code团队维护着@vscode/extension-telemetry npm模块,该模块提供了一种在VS Code内一致且安全的方式来收集遥测数据。该模块将遥测数据报告到Azure Monitor和Application Insights,并保证与VS Code的以前版本的向后兼容性。

按照本指南设置 Azure Monitor 并获取您的 Application Insights 仪器化密钥。

没有遥测模块

希望不使用 Application Insights 的扩展作者可以使用他们自己的自定义解决方案发送遥测数据。在这种情况下,仍然要求扩展作者通过使用用户的选择来尊重用户的选择。是否启用遥测onDidChangeTelemetryEnabledAPI。通过这样做,用户将有一个中央位置来控制他们的遥测设置。

自定义遥测设置

扩展可能会希望为扩展特定的遥测数据给予用户控制权,而不受 VS Code 遥测数据的影响。在这种情况下,我们建议您引入一个特定的扩展设置。建议将自定义遥测数据设置标记为遥测使用在线服务这样用户可以在设置用户界面中更轻松地查询它们。添加自定义遥测设置并不免除尊重用户决定的责任,并且是否启用遥测onDidChangeTelemetryEnabled旗帜必须始终被尊重。如果是否启用遥测即使您的设置已启用,报告为假时,不得发送遥测数据。

telemetry.json

我们理解遥测对于许多用户来说可能是一个敏感话题,我们旨在尽可能透明。核心 VS Code 产品和大多数第一方扩展都配备了telemetry.json在他们的根目录下创建一个文件。这允许用户使用VS Code CLI与--遥测标志以接收 VS Code 产生的所有遥测数据的转储。扩展作者可能会包括telemetry.json文件在他们的根目录下,它也会出现在CLI转储中。

注意事项

✔️ 做

  • 如果使用应用洞察对您有帮助,请使用 @vscode/extension-telemetry npm 模块。
  • 否则,请遵守是否启用遥测onDidChangeTelemetryEnabled应用程序编程接口。
  • 请将您的自定义遥测设置标记为遥测使用在线服务如果你有一个。
  • 尽可能少地收集遥测数据。
  • 尽可能向您的用户透明地说明您收集的内容。

❌ 不要

  • 引入一种不征求用户同意的自定义遥测收集解决方案。
  • 收集个人可识别信息 (PII)。
  • 收集比必要的更多的遥测数据。
  • 仅使用遥测.遥测级别设置,因为它有时可能与实际不一致。是否启用遥测输入:.