Open Bug 1352981 Opened 7 years ago Updated 8 months ago

[meta] Enable Telemetry on 3rd parties Firefox for Linux

Categories

(Toolkit :: Telemetry, enhancement, P3)

All
Linux
enhancement

Tracking

()

Tracking Status
firefox55 --- affected

People

(Reporter: Dexter, Unassigned)

References

(Depends on 2 open bugs)

Details

(Keywords: meta, Whiteboard: [measurement:client][measurement:client:project])

This bug is about tracking the work to enable Telemetry in Firefox binaries that are distributed by 3rd party packagers and available for install through distro-specific channels
Depends on: 1233687, 1285195, 1285201
Keywords: meta
Whiteboard: [measurement:client]
I'm dropping this comment here (taken from another bug), as it might affect other Red-Hat derived distros.

(In reply to Mike Kaply [:mkaply] from bug 1285195 comment #6)
> FYI, I am working with Jan Horak on a separate project to build a Flatpak of
> Firefox.
> 
> If we go that route, we will own the package that is shipped on anything Red
> Hat so we can make sure telemetry is enabled.
> 
> See bug 1278719
Whiteboard: [measurement:client] → [measurement:client][measurement:client:project]
Was this discussed on mailing lists? Bug 722240 comment 5 did mention downstream pings are undesired while MOZILLA_OFFICIAL is an overloaded knob that doesn't make sense outside of Mozilla CI.

Do you want other Unices (e.g. BSDs) to send telemetry as well? bsdstats.org has some numbers but making sense of it is hard apart from Firefox being 2x as popular as Chromium or ESR portion being tiny.
See Also: → 1284010
Fwiw, on openbsd i kept the default re telemetry, but i have no idea if pings are sent or not, nor if they're processed.
There was no new discussion about it; we are trying to enable this Firefox feature together with maintainers as it fits for their distribution.

For officially supported platforms (Linux) that only repackage, we definitely want Telemetry, but should be able to tell it apart using the distribution id.
If distributions change features of Firefox significantly (e.g. former Iceweasel), we probably wouldn't use the Telemetry.
For other platforms like BSD i don't think enabling Telemetry is useful - i don't think anyone would look at that data specifically.

Alessio, can you comment with a short summary on:
- what's required to enable Firefox Telemetry for distributions
- a simple test for it
Flags: needinfo?(alessio.placitelli)
(In reply to Georg Fritzsche [:gfritzsche] from comment #4)
> Alessio, can you comment with a short summary on:
> - what's required to enable Firefox Telemetry for distributions

Enabling Telemetry from a Firefox packaged for a Linux distribution is fairly straightforward, if building the binaries from a local mercurial repository (building from the source archive will be automatically handled when bug 1338099 is fixed). The packager needs to:

- Define MOZILLA_OFFICIAL (this will enable sending pings to Mozilla servers)
- Define MOZ_TELEMETRY_REPORTING (this will enable the Telemetry bits)
- Add (or simply check) the distribution.ini [1] file so that data shows up with the right distribution id (example for Ubuntu [2]).

Before bug 1338099 is fixed, it's still possible to enable Telemetry. However it's a bit trickier, as we need to manually feed in the repository information and source revision data, which is needed to correlate measurements with a particular version of Firefox on our end.

- MOZ_SOURCE_REPO="repo url", e.g. https://hg.mozilla.org/mozilla-central for nightly
- MOZ_SOURCE_CHANGESET="revision hash" e.g. "1066262b8bfd4c85b0b3fea1cea7945050b25b3b"

> - a simple test for it

There are 3 different, basic, aspects to check to make sure this is enabled.

1) Make sure that the pings are are reporting the correct data. The most basic thing to check the correct revision information and distribution data.


- Run Firefox and open the about:telemetry page.
- Select "Raw JSON".
- Look for the "revision" entry in the "info" section.
- For the current Firefox release, its value looks like that: "https://hg.mozilla.org/releases/mozilla-release/rev/e81854d6ce91f3174774a50c9c5813c33b9aac58" . The value shown here changes depending on the channel and might look different. It should not be an empty string and must correctly point to a valid revision URL.
- Look for the "partner" section in "environment". It should contain the data from the distribution.ini files. In particular, "distributionId", "distributionVersion" and "partnerNames" must not be null and contain valid data, so that we can tell what data comes from which Firefox builds.

2) Make sure that pings are being sent.

- That can be checked easily using our gzipServer, see the README [3]

3) Make sure that pings are NOT being sent if Telemetry is disabled by the user.

This means that no ping must be sent before the "Data Choice" infobar is displayed the first time Firefox is ran on a new profile. Moreover no ping except the "deletion" ping must be sent if data upload is disabled in about:preferences -> Advanced -> Data Choices ("Enable Firefox Health Report").

There are other aspects to test as well, see bug 1285195 comment 4, but this is the bare minimum to make sure we're sending valid data and making sure to respect the user settings.

[1] - https://wiki.mozilla.org/Distribution_INI_File
[2] - http://bazaar.launchpad.net/~mozillateam/firefox/firefox-trunk.head/view/2026/debian/distribution.ini
[3] - https://github.com/mozilla/gzipServer
Flags: needinfo?(alessio.placitelli)
Priority: -- → P3
Depends on: 1355413
Depends on: 1358422
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.