遥测
Storybook 收集完全匿名的数据,以帮助我们改善用户体验。参与此匿名计划是可选的,如果您不想共享任何信息,可以选择退出。
为什么要收集遥测数据?
数十万开发者每天都在使用 Storybook 来构建、测试和记录组件。Storybook 与前端生态系统集成,并且与框架无关。
- JavaScript 框架,例如 React、Vue 3、Svelte 和 Solid
- 库,例如 Styled-Components、Tailwind、Redux
- 设计工具,例如 Figma、Sketch、Zeplin 和 InVision
- 工作流工具,例如 Notion、Confluence 和 Jira
过去,我们的改进流程依赖于手动收集反馈。但随着用户群的增长以及对支持各种集成的需求,我们需要一种更准确的方法来衡量 Storybook 的使用情况和痛点。
这些遥测数据帮助我们(维护者)优先处理影响最大的项目。这使我们能够跟上前端生态系统的趋势,并验证我们社区的辛勤工作是否取得了预期效果。
收集了哪些信息?
我们收集一般使用情况详细信息,包括命令调用、Storybook 版本、插件和视图层。
具体来说,我们在遥测事件中跟踪以下信息
- 事件发生的时间戳。
- 调用的命令(例如,
init
、upgrade
、dev
、build
)。 - Storybook 唯一标识符:在 Storybook 安装过程中生成的单向哈希。
- 发生事件的 IP 地址的单向哈希,用于垃圾邮件检测。
- 故事数量。
- Storybook 版本。
- Storybook 元数据
- 包管理器信息(例如,
npm
、yarn
)。 - 单仓信息(例如,NX、Turborepo)。
- 应用内事件(例如,Storybook 指导教程)。
对原始数据的访问受到严格控制,仅限于 Storybook 核心团队中维护遥测数据的特定成员。我们无法从数据集中识别单个用户:它是匿名的,无法追溯到用户。
敏感信息怎么办?
我们非常重视您的隐私和我们的安全。我们采取额外措施,确保安全数据(例如,环境变量或其他形式的敏感数据)**不会**进入我们的分析。您可以通过将 STORYBOOK_TELEMETRY_DEBUG
设置为 1
来查看我们收集的所有信息,以打印出收集到的信息。例如
将生成以下输出
此外,如果启用了 Storybook 的指导教程,它将生成以下输出
这些数据会被共享吗?
我们收集的数据是匿名的,无法追溯到来源,并且只有在聚合形式下才有意义。我们收集的任何数据都不是个人身份信息。将来,我们计划通过公开仪表板(或类似的数据表示格式)与社区共享相关数据。
如何选择退出
您可以通过将 Storybook 的配置元素 disableTelemetry
设置为 true
,使用 --disable-telemetry
标志,或将环境变量 STORYBOOK_DISABLE_TELEMETRY
设置为 1
来选择退出遥测。例如
有一个不包含元数据的 boot
事件(用于确保遥测正常工作)。它在评估您的 Storybook 配置文件(即 main.js|ts
)之前发送,因此不受 disableTelemetry
选项的影响。如果您想确保该事件不会发送,请使用 STORYBOOK_DISABLE_TELEMETRY
环境变量。
崩溃报告(默认情况下禁用)
除了常规使用遥测之外,您还可以选择共享崩溃报告。Storybook 随后会对错误对象进行清理(删除所有用户路径)并将其附加到遥测事件中。要启用崩溃报告,您可以将 enableCrashReports
配置元素设置为 true
,使用 --enable-crash-reports
标志,或将 STORYBOOK_ENABLE_CRASH_REPORTS
环境变量设置为 1
。例如
在遥测事件中生成以下项目