新的指标和 Ping¶
要向 Firefox 桌面版添加新的指标或 Ping,您应该遵循关于此主题的 Glean SDK 文档,并在此处详细介绍一些调整
测试¶
检测作为代码,应该进行测试。除了Glean 自身的调试机制之外,Firefox on Glean 支持各种 Firefox 桌面测试套件。
IPC¶
Firefox 桌面版由多个进程组成。您可以在 Firefox 桌面版中的任何进程中记录数据 需满足某些条件。
如果您将在多个进程中将数据记录到此指标,则应了解这些条件。
在哪里定义新的指标和 Ping?¶
指标和 Ping 在其定义文件中定义(分别为 metrics.yaml
或 pings.yaml
)。但是,您在哪里可以找到 metrics.yaml
或 pings.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.yaml
或 toolkit/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 的构建过程)。