Remove unused Legacy Telemetry Environment fields
Categories
(Toolkit :: Telemetry, task, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox158 | --- | fixed |
People
(Reporter: chutten, Assigned: chutten, NeedInfo)
References
Details
(Whiteboard: [fog-migration])
Attachments
(10 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Per my investigation in bug 2068267, quite a lot of the Legacy Telemetry Environment is unused by SQL or dataset derivation. If we remove them then we can ensure that no one suddenly starts using them and simplify somewhat the later tasks of working with owning teams to migrate the pieces that are in use.
Fields not in use include:
- build.applicationId (probably because it's shadowed by the common ping format's application.buildId)
- build.applicationName (probably because it's shadowed by the common ping format's application.name)
- build.vendor
- build.version (probably because it's shadowed by the common ping format's application.version)
- build.displayVersion (probably because it's shadowed by the common ping format's application.displayVersion)
- build.platformVersion (probably because it hasn't been different from the other versions for Quite Some Time)
- build.updaterAvailable (long superseded by
environment.settings.update.enabled) - settings.addonCompatibilityCheckEnabled (should've been removed along with active addons, come to think on it)
- settings.blocklistEnabled (ditto)
- settings.defaultPrivateSearchEngine
- settings.launcherProcessState
- settings.e10sEnabled (one of the first things I worked on at Moz back in 2015)
- settings.e10sMultiProcesses (2016)
- settings.fissionEnabled (long since enabled)
- settings.telemetryEnabled (you'd think it was a weird thing to communicate via telemetry, but this reported the pref which was about extended telemetry. If you don't know what that is, good, you don't need to.)
- settings.defaultPrivateSearchEngineData.*
- settings.intl.*
- settings.update.{autoDownload,background}
- settings.sandbox.* (well, it was used in January. But not since.)
- settings.services.* (there are other, better ways to figure out when and how accounts and sync are enabled)
- profile.{resetDate,firstUseDate} (honestly,
profile.creationDateshould also be unused because it is very flawed but folks are still using it as of May, so it gets to stick around) - partner.{distributionVersion,partnerNames}
- system.{virtualMaxMB,isWowARM64,hasWinPackageId,winPackageFamilyName,appleModelId} (memoryMB and isWow64 have been used semi-recently, otherwise we could be rid of the whole lot)
- system.cpu.{pcount,mcount,ecount} (This one I'm confused about as I remember the efforts we exerted to add them)
- system.cpu.{l2cacheKB,l3cacheKB,speedMHz,extensions}
- system.os.{windowsUBR,installYear,locale,hasPrefetch,hasSuperfetch}
- system.hdd.{profile|binary|system}.*
- system.sec.*
(( system.gfx.* shall be removed as part of the broader GFX team's removal of legacy telemetry which can proceed now that https://mozilla-hub.atlassian.net/browse/DENG-10458 has been completed as part of https://mozilla-hub.atlassian.net/browse/DENG-11194. ))
Removing all these ought to make the remaining pieces a lot easier to keep in mind at once.
Updated•15 days ago
|
| Assignee | ||
Comment 1•14 days ago
|
||
Hey, :mstriemer, remember when we added all that intl stuff to the Legacy Telemetry Environment back in bug 1502921? I'm removing it! The data's all been in Glean metrics for a year (e.g. intl.available_locales), so it's time.
My question: is there a place perhaps inside LocaleService where we could put the calls setting these Glean metrics? The Glean calls will probably do better if they live closer to the code responsible for the data, and eventually we'll want to be rid of ol' TelemetryEnvironment.sys.mjs.
| Assignee | ||
Comment 2•14 days ago
|
||
environment.build has the honour of being the only section of the
Environment that has required fields. And some of those required fields
must be of specific types and/or specific patterns.
This means that "removing" the seven unused fields results in:
- 2 set to "" to satisfy required strings
- 2 set to "00." to satisfy required strings with version patterns
- 1 set to null as vendor is required but can be null or string
- 2 actually removed (displayVersion and updaterAvailable)
And it only results in one decrement of the count, for updaterAvailable,
as the rest weren't ever mirrored in Glean inside the Environment
(because they were either already instrumented in client_info, or they
weren't useful data to mirror).
| Assignee | ||
Comment 3•14 days ago
|
||
| Assignee | ||
Comment 4•14 days ago
|
||
| Assignee | ||
Comment 5•8 days ago
|
||
In an abundance of caution I'll be leaving partner.{distributionVersion,partnerNames} alone. I'm still very certain that the values are unused, but these seem like the sort of distribution data that might have a data need sneak up on us unexpectedly. They can wait.
Updated•6 days ago
|
Updated•6 days ago
|
Updated•6 days ago
|
| Assignee | ||
Comment 6•6 days ago
|
||
| Assignee | ||
Comment 7•6 days ago
|
||
| Assignee | ||
Comment 8•6 days ago
|
||
| Assignee | ||
Comment 9•6 days ago
|
||
| Assignee | ||
Comment 10•6 days ago
|
||
| Assignee | ||
Comment 11•6 days ago
|
||
Comment 12•6 days ago
|
||
Comment 13•6 days ago
|
||
Comment 14•6 days ago
|
||
Backed out for causing xpcshells and TV failures
Backout Link
Push with failures
Failure Log
Failure line TEST-UNEXPECTED-FAIL | toolkit/components/utils/test/unit/test_ClientEnvironment.js | testLiveTelemetry - [testLiveTelemetry : 119] Telemetry data is available - "undefined" == "158.0a1"
| Assignee | ||
Comment 15•6 days ago
|
||
More generally, perhaps unconstrained access to the Legacy Telemetry
internals via ClientEnvironment should be discouraged.
| Assignee | ||
Updated•5 days ago
|
Comment 16•21 hours ago
|
||
Comment 17•2 hours ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/7cd63cd12484
https://hg.mozilla.org/mozilla-central/rev/8fbb594d6368
https://hg.mozilla.org/mozilla-central/rev/49139d3a40ec
https://hg.mozilla.org/mozilla-central/rev/fa6015b5b5d2
https://hg.mozilla.org/mozilla-central/rev/4c70718ee403
https://hg.mozilla.org/mozilla-central/rev/6eca17103fd8
https://hg.mozilla.org/mozilla-central/rev/df6f26abe88a
https://hg.mozilla.org/mozilla-central/rev/97d3b5cbcfd7
https://hg.mozilla.org/mozilla-central/rev/077bdc111666
https://hg.mozilla.org/mozilla-central/rev/b754b02c4bed
Description
•