会话

会话是指从 Firefox 启动到关闭的时间段。一个会话可以运行很长时间。例如,对于始终将电脑置于睡眠模式的用户,Firefox 可能会运行数周。我们将会话划分为较小的逻辑单元,称为子会话

子会话

第一个子会话在浏览器启动时开始。之后,我们会因不同的原因拆分子会话

  • daily,跨越本地午夜时。这通过至少每天为大多数活跃用户触发一次 Ping 来保持可接受的延迟。

  • environment-change,当环境发生变化时。这发生在 Firefox 设置发生重要更改时,以及附加组件激活或停用时。

在子会话拆分时,将提交具有该原因的主 Ping。我们将原因存储在 Ping 的有效负载中,以查看是什么触发了它。

会话始终以具有以下两个原因之一的子会话结束

  • shutdown,当浏览器干净地关闭时。为了避免延迟关闭,我们只将此 Ping 保存到磁盘,并在下一次机会(通常是下一个浏览会话)发送它。

  • aborted-session,当浏览器崩溃时。在 Firefox 处于活动状态时,我们每 5 分钟将当前的main Ping 数据写入磁盘。如果浏览器崩溃,我们将在下次启动时在磁盘上找到此数据并使用此原因发送它。

../../../../_images/subsession_triggers.png

子会话数据

子会话数据包括

  • 一般信息:子会话开始的日期、持续时间等。

  • 特定测量:直方图 & 标量数据等。

这有一些优势

  • 延迟 - 在子会话结束后的立即发送包含所有数据的 Ping 意味着我们能够更快地从安装中获取数据。对于main Ping,我们的目标是通过在本地午夜开始一个新的子会话来至少每天发送一次 Ping。

  • 关联 - 通过在基本设置更改时(即环境更改)启动新的子会话,我们可以更好地将子会话的数据与这些设置关联起来。