新的指标和 Ping

要向 Firefox 桌面版添加新的指标或 Ping,您应该遵循关于此主题的 Glean SDK 文档,并在此处详细介绍一些调整

测试

检测作为代码,应该进行测试。除了Glean 自身的调试机制之外,Firefox on Glean 支持各种 Firefox 桌面测试套件

IPC

Firefox 桌面版由多个进程组成。您可以在 Firefox 桌面版中的任何进程中记录数据 需满足某些条件

如果您将在多个进程中将数据记录到此指标,则应了解这些条件。

在哪里定义新的指标和 Ping?

指标和 Ping 在其定义文件中定义(分别为 metrics.yamlpings.yaml)。但是,您在哪里可以找到 metrics.yamlpings.yaml

如果您不是组件中第一个提出此问题的人,答案可能是“在组件的根目录中”。在您正在检测代码附近查找定义文件。或者,您可以在 toolkit/components/glean/metrics_index.py 中查看所有当前已知的定义文件的列表。

如果您是组件中第一个提出此问题的人,您可以选择从哪里开始!我们建议将它们添加到组件的根目录中,紧挨着 moz.build。请确保在文件的顶部链接到本文档!它包含许多添加新指标的人应该了解的有用信息片段。最好使用此空白模板开始,替换来自列表的组件的 product :: component 标记。

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Adding a new metric? We have docs for that!
# https://firefox-source-docs.mozilla.ac.cn/toolkit/components/glean/user/new_definitions_file.html

---
$schema: moz://mozilla.org/schemas/glean/metrics/2-0-0
$tags:
  - 'Your Product :: Your Component'

如果添加新的定义文件,请务必编辑 toolkit/components/glean/metrics_index.py,将您的定义文件添加到其中的 Python 列表中。如果您不这样做,则不会为您的指标生成任何 API,并且您的构建将失败。您需要确定您的指标将在哪些产品中使用。对于在其他基于 Gecko 的产品(Firefox 桌面版、Firefox for Android、Focus for Android)中使用的代码,请使用 gecko_metrics。对于仅限桌面的检测,请使用 firefox_desktop_metrics。对于其他产品,请使用其各自的列表。

metrics_index.py 的更改每天都会使用probe-scraper 中的 fog-updater 自动化在数据管道中反映出来。数据要等到发生这种情况后才会出现在数据集中和工具中。如果某些内容不清楚或数据没有及时显示,您需要在 Data Platform and Tools :: General 中提交错误。

如果您有任何疑问,请务必在#glean 频道上提问。

注意:请勿使用 toolkit/components/glean/metrics.yamltoolkit/components/glean/pings.yaml。这些用于检测 toolkit/components/glean 下代码的指标,而不是添加指标和 Ping 的通用位置。

过期是如何工作的?

在 FOG 中,与其他使用 Glean-SDK 的项目不同,指标的过期基于 Firefox 应用程序版本。这是为了允许指标在整个应用程序版本的生命周期内保持有效,无论是在通常发布的 4-6 周内还是在 ESR 发布的 13 个月内。

FOG 的 metrics.yaml 中的 expires 字段接受三个值

  • "X"(其中 X 是 Firefox 桌面版版本的主版本号) - 当 MOZ_APP_VERSION 达到或超过 X 时,指标将过期。(例如,当 Firefox 版本为 88.0a1 时,所有标记为 expires: "88" 或更低的指标都将过期。)这是所有新指标的推荐形式,以确保它们在不再相关时停止记录。

  • expired - 用于将指标标记为手动过期。通常不使用,但有时对内部测试很有帮助。

  • never - 用于将指标标记为永久数据收集的一部分。标记为 never 的指标必须具有检测测试

有关过期含义和 metrics.yaml 格式的更多信息,请参阅关于此主题的 Glean SDK 文档。一些快速的事实

  • 收集到已过期指标的数据不会被记录或发送。

  • 向已过期指标进行记录在运行时不是错误。

  • 已过期(和未过期)指标在 metrics.yaml 中是一个 glean_parser 中的 lint 错误。

  • 不再有用的已过期(和未过期)指标应立即从您的 metrics.yaml 中删除。这通过减少需要生成的代码量来减小 Firefox 的大小并提高其性能(并加快 Firefox 的构建过程)。