Open Bug 1945253 Opened 15 days ago Updated 1 day ago

Migrate Legacy Telemetry Environment fields to Glean metrics

Categories

(Toolkit :: Telemetry, task, P1)

task

Tracking

()

ASSIGNED

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.

Whiteboard: [f → [fog-migration]

: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?

Flags: needinfo?(chutten)

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.

Flags: needinfo?(chutten) → needinfo?(enordin)

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.

Flags: needinfo?(enordin)
You need to log in before you can comment on or make changes to this bug.