Open Bug 1361713 Opened 8 years ago Updated 2 years ago

Pre-aggregate telemetry data to expose to UITour without impacting performance

Categories

(Firefox :: Tours, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: pdol, Unassigned)

References

(Blocks 4 open bugs)

Details

(Whiteboard: [measurement:client:tracking])

User Story

We do not want the use of telemetry attributes within snippets (example: bug 1343510) to impact the performance of Firefox for users.  As such, we need a method of pre-aggregating telemetry data that can be then exposed to UITour to avoid delays while computation happens on about:newtab/Activity Stream load.

Starting telemetry attributes:
bug 1343510
Profile age
Profile reset date
Time last used

bug 1357433
Active Hours

bug 1354606
Opened inspect Element

bug 1357439
Searches done
No description provided.
Priority: -- → P3
High-level i would propose hiding the implementation details of whats needed here in a new object/module/... that focuses on offering interesting user data. This approach could be useful for other projects as well (test pilot, shield studies, ...). These data points are rather cheap to access right now: - Profile age, profile reset: we load this information anyway - devtools/inspect usage: per bug 1354606, comment 2 this is cheap through pref access - Time last used: we can just look at the most recent timestamp in TelemetryArchive.promiseArchivedPingList(). Edge-cases to think more about before we settle on this are startup crashes and mid-session crashes. Currently not cheap: - searches done - active hours Aggregating those from the pings on disk would potentially do a lot of I/O. We could instead consider aggregating these into running totals, e.g. on each Telemetry ping write. With bug 789945 in place, prefs could be feasible for storage. We'd need to clear up how to keep a running total over a N day window though. E.g. by storing a list of per-day totals and dropping all values older than N days.
Whiteboard: [measurement:client:tracking]
We should also beware of clock skew. Any data building on dates might be way off. The kinto-based "services.blocklist.clock_skew_seconds" might help for diagnosis?
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.