通用 ping 格式

这定义了遥测 ping 的顶层结构。它包含不同 ping 类型之间共享的基本信息,这使得服务器端能够正确存储和处理原始 ping。

它还包含可选的进一步信息

  • 环境数据,其中包含与测量结果相关联的重要信息

  • clientId,一个 UUID,用于识别配置文件并允许对数据进行面向配置文件的相关性分析

  • profileGroupId,一个 UUID,用于识别单个设备上配置文件的组并允许对数据进行面向用户的相关性分析

注意:由于隐私问题,并非所有 ping 类型都提交这些信息。这以及可以与其关联的数据在数据收集策略下进行检查。

最后,该结构还包含payload,这是为相应的ping 类型提交的特定数据。

结构

{
  type: <string>, // "main", "activation", "optout", "saved-session", ...
  id: <UUID>, // a UUID that identifies this ping
  creationDate: <ISO date>, // the date the ping was generated
  version: <number>, // the version of the ping format, currently 4

  application: {
    architecture: <string>, // build architecture, e.g. x86
    buildId: <string>, // "20141126041045"
    name: <string>, // "Firefox"
    version: <string>, // "35.0"
    displayVersion: <string>, // "35.0b3"
    vendor: <string>, // "Mozilla"
    platformVersion: <string>, // "35.0"
    xpcomAbi: <string>, // e.g. "x86-msvc"
    channel: <string>, // "beta"
  },

  clientId: <UUID>, // optional
  profileGroupId: <UUID>, // optional
  environment: { ... }, // optional, not all pings contain the environment
  payload: { ... }, // the actual payload data for this ping type
}