Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Telemetry

Randall E. Barker edited this page Jul 6, 2020 · 22 revisions

For clients that have "send anonymous usage data" enabled, Firefox Reality sends a "core" ping and an "event" ping to Mozilla's telemetry service. Sending telemetry can be disabled in the app's settings. Builds of Firefox Reality have telemetry enabled by default ("opt-out").

Core ping

Firefox Reality creates and tries to send a "core" ping whenever the app is started or goes to the background. This core ping uses the same format as Firefox for Android and is documented on firefox-source-docs.mozilla.org.

Recorded searches

Event location identifier
Record Search actionbar search engine

Event ping

In addition to the core ping an event ping for UI telemetry is generated and sent as soon as the app is sent to the background.

Session

Event category method object value
Start session (App is in the foreground) action foreground app
Stop session (App is in the background) action background app

Browsing

Event category method object value extras
URL entered action type_url search_bar
Search entered action type_query search_bar bundled engine name

Page Load Time Histogram

Event category method object extras
Histogram for Page Load Times for Foreground Session histogram foreground browser histogram*

(*) There are 200 extras attached to this event, each a bucket of 100 ms each, with the key as the minimum value in the bucket and the value as the corresponding number of events in the bucket. Anything over 20,000 is put in the last bucket. For example:

{”0":"2"}
{“100”:"3"}
...
{"19900", "4"}

Time spent in Immersive mode

Event category method object extras
Histogram for Times spent in Immersive Mode histogram immersive_mode browser histogram*

(*) There are 200 extras attached to this event, each a bucket of 10000 ms each, with the key as the minimum value in the bucket and the value as the corresponding number of events in the bucket. Anything over 200,000 is put in the last bucket. For example:

{”0":"2"}
{“100”:"3"}
...
{"199000", "4"}

URI Count

Event Category Method Object Extra
The count of the total non-unique http(s) URIs visited in a subsession, including page reloads, after the session has been restored. This does not include background page requests and URIs from embedded pages or private browsing action open browser total_uri_count
The count of the unique domains visited in a subsession, after the session has been restored. Subdomains under eTLD are aggregated after the first level (i.e. test.example.com and other.example.com are only counted once). This does not include background page requests and domains from embedded pages or private browsing. action open browser unique_domains_count

Voice

Event Category Method Object value Extra
Search used voice input action voice_query voice_input bundled engine name

Multi-window

Event Category Method Object Extra
How long is a window open for histogram window_lifetime Window histogram*
Frequency of window moves per session action windows_move_freq Window {"windows_moves_count": num }
Frequency of window resizes per session action windows_resize_freq Window {"windows_resize_count": num }
Time spent in active window position, per session action place_active_time Window {"left_window_active_time": num, "front_window_active_time": num, "right_window_active_time": num }
How long are one, two or three windows open, per session action open_windows_time Window {"one_w_open_time": num, "two_w_open_time": num, "three_w_open_time": num }
How many windows are open at a time, per session action windows_open_w Window {"one_w_open": num, "two_w_open": num, "three_w_open": num, "one_pri_w_open": num, "two_pri_w_open": num, "thr_pri_w_open": num}

(*) There are 200 extras attached to this event, each a bucket of 1000 ms each, with the key as the minimum value in the bucket and the value as the corresponding number of events in the bucket. Anything over 200,000 is put in the last bucket.

Telemetry Status

This ping is the first ping to be sent when the user enables the Telemetry and the last one when the user disables it.

Event Category Method Object Extra
Current status of the telemetry action telemetry_status App {"telemetry_status": boolean }

Limits

No limits are set to the number of pings we send.

New Telemetry System - Glean

Firefox Reality is using Glean component to replace the existing system. Pings are defined by the Glean component and documented in the Glean repository. The list of metrics being collected is available in the metrics. The data is reviewed at this link.

Firefox Reality uses components from Mozilla Android Components. Some of them are using Glean as the tool to do data collection.

  • Sync Storage - A syncable implementation of concept-storage and documented in storage-sync. The list of metrics being collected is available in the metrics. The data is reviewed at this link.
  • Firefox accounts - A library for integrating with Firefox Accounts and documented in firefox-accounts. The list of metrics being collected is available in the metrics. The data is reviewed at this link.
Clone this wiki locally