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

Telemetry

Daosheng Mu edited this page Oct 31, 2019 · 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 many too-many-window dialogs happen action max_windows_dialog Window
Usage long press to open new window action context_menu Window
How long is a window open for histogram window_lifetime Window histogram*
Frequency of window moves action windows_move_freq Window
Frequency of window resizes action windows_resize_freq Window
Most common window position action placements_active_time_pct Window
Curved windows setting use action curved_mode_active Window
Percentage of time spent in active window position, per session action placements_active_time_pct Window {"left_window_active_time_pct": num, "front_window_active_time_pct": num, "right_window_active_time_pct": num }
Percentage of time are one, two or three windows open, per session action open_windows_time_pct Window {"one_windows_open_time_pct": num, "two_windows_open_time_pct": num, "three_windows_open_time_pct": num }
Weighted mean of how many windows are open at a time, per session action window_open_w_mean Window {"window_open_w_mean": num, "window_open_private_w_mean": 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.

Tray

Event Category Method Object Extra
Usage of new window tray button action tray_new_window Tray

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 data is reviewed at this link.

Firefox Reality use 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.
  • Firefox accounts - A library for integrating with Firefox Accounts and documented in firefox-accounts
Clone this wiki locally