将 Firefox 遥测迁移到 Glean

本指南旨在帮助您将各个数据收集从 Firefox 遥测 通过 Firefox on Glean 迁移到 Glean

这旨在作为参考,以帮助您填写 迁移工作表,或在心理上将遥测概念转换为 Glean 概念。

需要牢记的一般事项

您应该熟悉 有关向 Firefox 桌面添加新指标的指南。它的建议与本指南中包含的建议相叠加,因为(一旦您弄清楚了哪种类型)您确实将添加新的指标。

还有一些其他与将 Firefox 遥测内容迁移到 Glean 内容相关的广泛主题。

进程无关性:不再有 record_in_processes 字段

Glean(以及 FOG)不知道任何关于进程的信息,除了确保所有数据都发送到父进程所需的信息外。Firefox 遥测非常关心哪个进程正在收集哪些特定数据,并将它们分开。

如果您在多个进程中收集数据并希望将每个进程类型的数据分开,则需要自己提供这种分离。

请参阅 此开发文档,了解如何执行此操作的示例。

渠道无关性:不再有 release_channel_collection: opt-out

FOG 不会区分预发布版 Firefox 和正式版 Firefox,除非必须将正确的渠道放入 client_info.app_channel 中。

这意味着所有数据都在所有构建配置中收集。

如果您希望或需要仅在预发布版 Firefox 中收集数据,请使用 EARLY_BETA_OR_EARLIER #defineAppConstant

文件级产品包含/排除:不再有 products 字段

Glean 通过 依赖项树确定哪些指标在哪些产品中记录。这意味着 FOG 不会在每个产品的级别区分产品。

如果您的某些指标在不同的产品集中记录(例如,您的某些指标在 Firefox 桌面版和 Firefox for Android 中都收集,但其他指标是 Firefox 桌面版特有的),则必须将它们分成单独的 定义文件

许多定义文件

预计每个组件都拥有并维护其自己的 指标定义文件。没有集中的 Histograms.jsonScalars.yamlEvents.yaml

相反,正在检测的组件将拥有自己的 metrics.yaml(以及任何 [自定义 Ping][custom-pings] 的 pings.yaml),您将在其中定义数据。

有关详细信息,请参阅 本指南

测试

Firefox 遥测对测试检测代码的支持非常不均衡。FOG 有更好的支持。您可以在任何可以检测的地方进行测试。

它就像调用 testGetValue 一样简单。

所有迁移的集合都应进行测试。如果您无法测试它们,那么您最好有一个非常好的理由说明为什么不能。

有关更多详细信息,请参阅 检测工具测试文档

我应该使用哪种 Glean 指标类型?

Glean 使用比 Firefox 遥测更高的指标类型。这使得迁移变得复杂,因为 Firefox 遥测中的“只是一个数字”可能映射到任何数量的 Glean 指标类型。

请选择最能解决您问题的特定指标类型。这将使分析更容易,因为

  1. 其他人将更多地了解如何从更具体的类型分析指标。

  2. 工具将能够仅针对更具体的类型显示相关操作。

示例

在 Firefox Telemetry 中,我记录了 Firefox 桌面运行的计算机连接的显示器数量。我可以将此数量记录为stringcounterquantitystring 显然是一个陷阱,它甚至没有正确的的数据类型(字符串 vs 数字)。但它是 counter 还是 quantity 呢?如果您关注本指南,您将了解到 counter 用于累积信息的总和,而 quantity 指标用于记录特定值。“一段时间内的显示器总和” 没有意义,因此 counter 不适用。 quantity 是正确选择。

直方图

直方图 是最古老的 Firefox Telemetry 数据类型,因此它们积累了 (哈!) 最多的使用方法。

直方图中的标量值:kind flagcount

如果您有一个恰好记录一个值的直方图,请向下滚动并查看相关标量的迁移指南。

  • 对于 kind 为 flag 的直方图,请参阅“kind 为 bool 的标量”。

  • 对于 kind 为 count 的直方图,请参阅“kind 为 uint 的标量”。

连续分布:kind linearexponential

如果您要迁移的直方图由多个桶组成,这些桶共同形成一个连续范围(例如,您有 1-5、6-10、11-19 和 20-50 这些桶 - 它们形成了 1-50 的范围),那么您需要在 Glean 中使用“分布”指标类型。哪种“分布”指标类型取决于样本是什么。

计时样本 - 使用 Glean 的 timing_distribution

Firefox Telemetry 中最常见的连续分布类型是计时样本的直方图,例如 GC_MS

在 Glean 中,此类数据使用 timing-distribution 指标类型进行记录。

您将不再需要担心值的范围或桶的数量或分布(由直方图定义中的 lowhighn_bucketskind 表示)。Glean 使用 巧妙的自动分桶算法 取而代之。

因此,对于一个像这样记录计时样本的直方图

  "GC_MS": {
    "record_in_processes": ["main", "content"],
    "products": ["firefox"],
    "alert_emails": ["[email protected]", "[email protected]"],
    "expires_in_version": "never",
    "releaseChannelCollection": "opt-out",
    "kind": "exponential",
    "high": 10000,
    "n_buckets": 50,
    "bug_numbers": [1636419],
    "description": "Time spent running JS GC (ms)"
  },

您将迁移到一个像这样的 timing_distibution 指标类型

js:
  gc:
    type: timing_distribution
    time_unit: millisecond
    description: |
      Time spent running the Javascript Garbage Collector.
      Migrated from Firefox Telemetry's `GC_MS`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1636419
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1636419#c8
    data_sensitivity:
      - technical
    notification_emails:
      - [email protected]
      - [email protected]
    expires: never

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

内存样本 - 使用 Glean 的 memory_distribution

Firefox Telemetry 中 linearexponential 直方图的另一个常见内容是内存样本。例如,MEMORY_TOTAL 的样本以千字节为单位。

在 Glean 中,此类数据使用 memory-distribution 指标类型进行记录。

您将不再需要担心值的范围或桶的数量或分布(由直方图定义中的 lowhighn_bucketskind 表示)。Glean 使用 巧妙的自动分桶算法 取而代之。

因此,对于一个像这样记录内存样本的直方图

  "MEMORY_TOTAL": {
    "record_in_processes": ["main"],
    "products": ["firefox", "thunderbird"],
    "alert_emails": ["[email protected]", "[email protected]"],
    "bug_numbers": [1198209, 1511918],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 32768,
    "high": 16777216,
    "n_buckets": 100,
    "description": "Total Memory Across All Processes (KB)",
    "releaseChannelCollection": "opt-out"
  },

您将迁移到一个像这样的 memory_distribution 指标类型

memory:
  total:
    type: memory_distribution
    memory_unit: kilobyte
    description: |
      The total memory allocated across all processes.
      Migrated from Telemetry's `MEMORY_TOTAL`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1198209
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1511918
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1511918#c9
    data_sensitivity:
      - technical
    notification_emails:
      - [email protected]
      - [email protected]
    expires: never

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

百分比样本 - 在 bug 1657467 上发表评论

Firefox 桌面中一个非常常见的直方图是百分比样本的分布。 例如,GC_SLICE_DURING_IDLE

Glean 目前没有一个好的指标类型来处理这种情况。但是我们 打算添加一个。如果您正在迁移此类型的收集,请在错误报告中添加一条评论,详细说明您正在迁移哪个探测器,以及您需要在何时迁移。我们将根据此优先级添加此指标类型。

其他 - 使用 Glean 的 custom_distribution

连续分布直方图已经存在足够长的时间,以至于变得很奇怪。如果您正在迁移其中一个具有像 “像素平方根乘以毫秒” 这样的单位的直方图,我们有一个“万能”的指标类型供您使用:自定义分布

遗憾的是,您必须关心此分桶算法和桶范围。因此,对于一个具有手工样本的直方图,例如

  "CHECKERBOARD_SEVERITY": {
    "record_in_processes": ["main", "content", "gpu"],
    "products": ["firefox"],
    "alert_emails": ["[email protected]", "[email protected]"],
    "bug_numbers": [1238040, 1539309, 1584109],
    "releaseChannelCollection": "opt-out",
    "expires_in_version": "never",
    "kind": "exponential",
    "high": 1073741824,
    "n_buckets": 50,
    "description": "Opaque measure of the severity of a checkerboard event"
  },

您将将其迁移到一个像这样的 custom_distribution

gfx.checkerboard:
  severity:
    type: custom_distribution
    range_max: 1073741824
    bucket_count: 50
    histogram_type: exponential
    unit: Opaque unit
    description: >
      An opaque measurement of the severity of a checkerboard event.
      This doesn't have units, it's just useful for comparing two checkerboard
      events to see which one is worse, for some implementation-specific
      definition of "worse". The larger the value, the worse the
      checkerboarding.
      Migrated from Telemetry's `CHECKERBOARD_SEVERITY`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1238040
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1539309
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1584109
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1584109#c1
    notification_emails:
      - [email protected]
      - [email protected]
    data_sensitivity:
      - technical
    expires: never

待办事项 Bug 1677447自定义分布尚未在 FOG 中实现。我们正在努力。完成后,我们将看看它们是否像其他分布一样支持 GIFFT。

具有连续样本分布的键控直方图 - 在 #glean:mozilla.org 上寻求帮助

Glean 目前没有一个好的指标类型来处理像按编解码器键控的视频播放时间这样的键控连续分布。请 联系我们 解释您的用例。我们将帮助您在 Glean 目前提供的功能范围内工作,或者 为您设计一个新的指标类型

离散分布:kind categoricalenumeratedboolean - 使用 Glean 的 labeled_counter

如果样本不落在连续范围内,而是落在已知的桶数量中,Glean 为这些情况提供了 带标签的计数器

只需在 labeled_counter 中将离散类别枚举为 labels

例如,对于一个 kind 为 categorical 的直方图,例如

  "AVIF_DECODE_RESULT": {
    "record_in_processes": ["main", "content"],
    "products": ["firefox"],
    "alert_emails": ["[email protected]", "[email protected]"],
    "expires_in_version": "never",
    "releaseChannelCollection": "opt-out",
    "kind": "categorical",
    "labels": [
      "success",
      "parse_error",
      "no_primary_item",
      "decode_error",
      "size_overflow",
      "out_of_memory",
      "pipe_init_error",
      "write_buffer_error",
      "alpha_y_sz_mismatch",
      "alpha_y_bpc_mismatch"
    ],
    "description": "Decode result of AVIF image",
    "bug_numbers": [1670827]
  },

您将迁移到一个像这样的 labeled_counter

avif:
  decode_result:
    type: labeled_counter,
    description: |
      Each AVIF image's decode result.
      Migrated from Telemetry's `AVIF_DECODE_RESULT`.
    labels:
      - success
      - parse_error
      - no_primary_item
      - decode_error
      - size_overflow
      - out_of_memory
      - pipe_init_error
      - write_buffer_error
      - alpha_y_sz_mismatch
      - alpha_y_bpc_mismatch
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1670827
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1670827#c9
    data_sensitivity:
      - technical
    notification_emails:
      - [email protected]
      - [email protected]
    expires: never

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。注意:这将镜像回 kind 为 uint 的键控标量,而不是任何类型的直方图,因此您最初未迁移的直方图不能用作镜像。

具有离散样本分布的键控直方图:"keyed": true 和 kind categoricalenumeratedboolean - 在 bug 1657470 上发表评论

Glean 目前没有一个好的指标类型来处理这种情况。但是我们 打算添加一个。如果您正在迁移此类型的收集,请在错误报告中添加一条评论,详细说明您正在迁移哪个探测器,以及您需要在何时迁移。我们将根据此优先级添加此指标类型。

标量

标量 是具有多种用途的低级单个数据收集。

您对其调用 scalarAddkind: uint 的标量 - 使用 Glean 的 counter

最常见的标量类型是 kind: uint。此类标量最常见的用法是,在可计数的事情发生时重复对其调用 scalarAdd

可计数事物的 Glean 指标类型是 counter 指标类型

因此,对于一个像这样的标量

script.preloader:
  mainthread_recompile:
    bug_numbers:
      - 1364235
    description:
      How many times we ended up recompiling a script from the script preloader
      on the main thread.
    expires: "100"
    keyed: false
    kind: uint
    notification_emails:
      - [email protected]
      - [email protected]
    release_channel_collection: opt-out
    products:
      - 'firefox'
      - 'fennec'
    record_in_processes:
      - 'main'
      - 'content'

您将迁移到一个像这样的 counter 指标类型

script.preloader:
  mainthread_recompile:
    type: counter
    description: |
      How many times we ended up recompiling a script from the script preloader
      on the main thread.
      Migrated from Telemetry's `script.preloader.mainthread_recompile`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1364235
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1364235#c25
    data_sensitivity:
      - technical
    notification_emails:
      - [email protected]
      - [email protected]
    expires: "100"

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

您对其调用 scalarAddkind: uint 的键控标量 - 使用 Glean 的 labeled_counter

标量的另一个非常常见的用法是具有 kind: uint 的键控标量。这通常用于跟踪 UI 使用情况。

这由 Glean labeled_counter 指标类型 支持。

因此,对于一个像这样的 kind: uint 的键控标量

urlbar:
  tips:
    bug_numbers:
      - 1608461
    description: >
      A keyed uint recording how many times particular tips are shown in the
      Urlbar and how often their confirm and help buttons are pressed.
    expires: never
    kind: uint
    keyed: true
    notification_emails:
      - [email protected]
    release_channel_collection: opt-out
    products:
      - 'firefox'
    record_in_processes:
      - main

您将将其迁移到一个像这样的 labeled_counter

urlbar:
  tips:
    type: labeled_counter
    description: >
      A keyed uint recording how many times particular tips are shown in the
      Urlbar and how often their confirm and help buttons are pressed.
      Migrated from Telemetry's `urlbar.tips`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1608461
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1608461#c42
    data_sensitivity:
      - interaction
    expires: never
    notification_emails:
      - [email protected]

现在,如果您的键控标量具有已知键的列表,您应该使用 labels 属性将其提供给 labeled_counter,如下所示

urlbar:
  tips:
    type: labeled_counter
    labels:
      - tabtosearch_onboard_shown
      - tabtosearch_shown
      - searchtip_onboard_shown
    ...

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

您对其调用 scalarSetkind: uint 的标量 - 使用 Glean 的 quantity

与作为部分总和的计数不同,您设置kind: uint 的标量可能包含任何内容。最佳指标类型取决于您正在设置的数据类型(请参阅“其他类似标量的类型”以了解一些可能性)。

如果它是一个您正在设置的数值,那么您很有可能最适合使用 Glean 的 quantity 指标类型

对于一个这样的定量标量,例如

gfx.display:
  primary_height:
    bug_numbers:
      - 1594145
    description: >
      Height of the primary display, takes device rotation into account.
    expires: never
    kind: uint
    notification_emails:
      - [email protected]
      - [email protected]
    products:
      - 'firefox'
    record_in_processes:
      - 'main'
    release_channel_collection: opt-out

您将将其迁移到一个像这样的 quantity

gfx.display:
  primary_height:
    type: quantity
    unit: pixels
    description: >
      Height of the primary display, takes device rotation into account.
      Migrated from Telemetry's `gfx.display.primary_height`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1594145
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1687219
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1594145#c4
    data_sensitivity:
      - technical
    notification_emails:
      - [email protected]
    expires: never

请注意必需的 unit 属性。

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

IPC 注意:由于 set 不是 交换操作,因此在非父进程上使用 quantity 是禁止的。这是一个优先考虑正确性而不是友好的限制,如果足够多的用例需要,我们可能会重新考虑。如果您希望我们这样做,请 联系我们

您对其调用 scalarSetkind: uint 的键控标量 - 在 #glean:mozilla.org 上寻求帮助

Glean 目前没有针对带键数量的良好指标类型。请联系我们解释您的用例。我们将帮助您在 Glean 当前提供的功能范围内工作,或者为您设计新的指标类型

您称为 scalarSetMaximum 或某些操作组合的 kind: uint 类型的标量 - 请在 #glean:mozilla.org 上寻求帮助

Glean 目前没有针对处理最大值或同时计数和设置值的良好指标类型。请联系我们解释您的用例。我们将帮助您在 Glean 当前提供的功能范围内工作,或者为您设计新的指标类型

kind: string 类型的标量 - 使用 Glean 的 string

如果您的字符串值是唯一标识符,则首先考虑Glean 的 uuid 指标类型

如果字符串标量值不适合该类型或任何其他更具体的指标类型,则Glean 的 string 指标类型 可以使用。

对于像这样的 kind: string 类型的标量

widget:
  gtk_version:
    bug_numbers:
      - 1670145
    description: >
      The version of Gtk 3 in use.
    kind: string
    expires: never
    notification_emails:
      - [email protected]
    release_channel_collection: opt-out
    products:
      - 'firefox'
    record_in_processes:
      - 'main'

您将将其迁移到像这样的 string 指标

widget:
  gtk_version:
    type: string
    description: >
      The version of Gtk 3 in use.
      Migrated from Telemetry's `widget.gtk_version`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1670145
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1670145#c7
    data_sensitivity:
      - technical
    notification_emails:
      - [email protected]
    expires: never

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

IPC 注意:由于 set 不是交换操作,因此禁止在非父进程上使用 string。这是一个优先考虑正确性而非友好的限制,如果足够多的用例需要,我们可能会重新考虑。如果您希望我们这样做,请联系我们

kind: boolean 类型的标量 - 使用 Glean 的 boolean

如果您需要存储简单的真/假值,Glean 的 boolean 指标类型 可能是最佳选择。

如果您需要存储的不仅仅是 truefalse,您可能更倾向于使用 labeled_counter

对于像这样的 kind: boolean 类型的标量

widget:
  dark_mode:
    bug_numbers:
      - 1601846
    description: >
      Whether the OS theme is dark.
    expires: never
    kind: boolean
    notification_emails:
      - [email protected]
      - [email protected]
    release_channel_collection: opt-out
    products:
      - 'firefox'
      - 'fennec'
    record_in_processes:
      - 'main'

您将迁移到像这样的 boolean 指标类型

widget:
  dark_mode:
    type: boolean
    description: >
      Whether the OS theme is dark.
      Migrated from Telemetry's `widget.dark_mode`.
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1601846
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1601846#c5
    data_sensitivity:
      - technical
    notification_emails:
      - [email protected]
      - [email protected]
    expires: never

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

IPC 注意:由于 set 不是交换操作,因此禁止在非父进程上使用 boolean。这是一个优先考虑正确性而非友好的限制,如果足够多的用例需要,我们可能会重新考虑。如果您希望我们这样做,请联系我们

带键的 kind: boolean 类型的标量 - 使用 Glean 的 labeled_boolean

如果您有多个相关的真/假值,您可能已将它们放在带键的 kind: boolean 类型的标量中。

最匹配的类型是Glean 的 labeled_boolean 指标类型

对于像这样的带键的 kind: boolean 类型的标量

devtools.tool:
  registered:
    bug_numbers:
      - 1447302
      - 1503568
      - 1587985
    description: >
      Recorded on enable tool checkbox check/uncheck in Developer Tools options
      panel. Boolean stating if the tool was enabled or disabled by the user.
      Keyed by tool id. Current default tools with their id's are defined in
      https://searchfox.org/mozilla-central/source/devtools/client/definitions.js
    expires: never
    kind: boolean
    keyed: true
    notification_emails:
      - [email protected]
      - [email protected]
    release_channel_collection: opt-out
    products:
      - 'firefox'
      - 'fennec'
    record_in_processes:
      - 'main'

您将迁移到像这样的 labeled_boolean

devtools.tool:
  registered:
    type: labeled_boolean
    description: >
      Recorded on enable tool checkbox check/uncheck in Developer Tools options
      panel. Boolean stating if the tool was enabled or disabled by the user.
      Migrated from Telemetry's `devtools.tool`.
    labels:
      - options
      - inspector
      - webconsole
      - jsdebugger
      - styleeditor
      - performance
      - memory
      - netmonitor
      - storage
      - dom
      - accessibility
      - application
      - dark
      - light
    bugs:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1447302
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1503568
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1587985
    data_reviews:
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1447302#c17
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1503568#c3
      - https://bugzilla.mozilla.org/show_bug.cgi?id=1587985#c5
    data_sensitivity:
      - interaction
    notification_emails:
      - [email protected]
      - [email protected]
    expires: never

GIFFT:这种类型的收集可以通过 用于 Firefox Telemetry 的 Glean 接口 镜像回 Firefox Telemetry。请参阅 指南 获取说明。

IPC 注意:由于 set 不是交换操作,因此禁止在非父进程上使用 labeled_boolean。这是一个优先考虑正确性而非友好的限制,如果足够多的用例需要,我们可能会重新考虑。如果您希望我们这样做,请联系我们

其他类似标量的类型:ratetimespandatetimeuuid

Glean SDK 为特定数据提供了一些非常方便的高级指标类型。如果您的数据

GIFFT:这些类型的收集可以通过用于 Firefox 遥测的 Glean 接口镜像回 Firefox 遥测。有关说明,请参阅指南

事件 - 使用 Glean 的 event

遥测事件 是 Firefox 桌面中使用较少的一种数据收集形式。Glean 旨在消除仪表员在Glean 的 event 指标类型中使用事件时面临的一些障碍。

  • 不要担心启用事件类别。在 Glean 中,所有 events 始终处于启用状态。

  • 不再有事件 name。Glean 中的事件遵循与其他指标相同的 category.name.metric_name 命名结构。

  • 不再有 method/object/value。Glean 中的事件仅是其标识符和一个 extras 键值字典。

由于这两种事件类型并不完全类似,您需要决定您的事件

  • 是否更倾向于将其 method/object/value 放入 extras 字典中

  • 是否更倾向于将其 method/object/value 折叠到其标识符中

GIFFT:事件可以通过用于 Firefox 遥测的 Glean 接口镜像回 Firefox 遥测。有关说明,请参阅指南

其他:环境、崩溃注释、使用计数器等 - 请在 #glean:mozilla.org 上寻求帮助

遥测有很多收集子系统构建在已提及的那些旁边。我们有针对常见子系统的解决方案,但它们完全取决于具体的用例。请联系我们解释它,以便我们能够帮助您在 Glean 当前提供的功能范围内工作,或者为您设计新的指标类型