Migrate Legacy Telemetry Environment fields to Glean metrics
Categories
(Toolkit :: Telemetry, task, P1)
Tracking
()
People
(Reporter: chutten, Assigned: chutten)
References
(Blocks 1 open bug)
Details
(Whiteboard: [fog-migration])
This bug is about migrating the 119 not-already-handled Legacy Telemetry Environment fields to Glean.
As much as possible we'll define these metrics in the components that make the most sense to own this information (e.g. gfx for gfx stuff, search for search stuff), though the instrumentation code itself will be in TelemetryEnvironment.sys.mjs
and the tests will be in toolkit/component/telemetry/tests
.
Despite most of these pieces of information ultimately coming from gecko in a way that should make them available in every app that embeds gecko (and that supports the instrumentation (e.g. we don't expect windows ubr on Android)), being instrumented in TelemetryEnvironment.sys.mjs
means these data will only be available in firefox_desktop
.
The following suffix will be added to the Descriptions to help people understand what's going on here:
This metric is an echo of the Legacy Telemetry Environment field path.to.field.
Like its counterpart, it will only have data in Firefox Desktop and
at times and on platforms where the environment would have value.
Assignee | ||
Updated•15 days ago
|
Updated•15 days ago
|
Comment 1•3 days ago
•
|
||
:chutten,
This is awesome! I'm glad to see this.
If I'm understanding correctly, this set of data includes things such as CPU core count, cache sizes, speed (MHz), etc. and it will still be available only on firefox_desktop
due to being instrumented in TelemetryEnvironment.sys.mjs
?
I ask because the Translations team is interested in collecting CPU info for Android devices to get a better feel for how our models are performing on that hardware. Currently, that data only seems to be available on legacy telemetry (i.e. also only on Desktop).
Do you think it would be possible to get the CPU info data sets on both platforms once it's on Glean?
Assignee | ||
Comment 2•3 days ago
|
||
I have good news, then, as the plan is to get the instrumentation out of TelemetryEnvironment.sys.mjs
after migration as centralizing all that data is doing us few favours.
Where in the tree would your instrumentation go if it were to record this information cross-platform? Maybe we can put it there immediately, or at least we can put it there as well as in TelemetryEnvironment.sys.mjs
so we can cover your cases.
Comment 3•3 days ago
•
|
||
That's fantastic :chutten, thank you!
In terms of where to collect it, our primary use case is cross referencing metrics collected in toolkit/components/translations/metrics.yaml with CPU info based on the unique client_id
value.
Right now, that looks like this:
FROM firefox_desktop.events_stream AS fes
LEFT JOIN telemetry.clients_daily AS cls
ON fes.legacy_telemetry_client_id = cls.client_id
AND DATE(fes.submission_timestamp) = cls.submission_date
Where I am using values such as cls.cpu_model
, cls.cpu_cores
, cls.cpu_speed_mhz
etc.
All of these are null on Android.
My hope is to achieve something like this:
FROM firefox_desktop.events_stream AS fes
LEFT JOIN {NEW_GLEAN_METRICS} AS ngm
ON fes.client_id = ngm.client_id
AND DATE(fes.submission_timestamp) = ngm.submission_date
Where I can cross reference our Translations event data with CPU info on both platforms.
Description
•