For Mozilla, getting reliable data from our products is critical to inform our decision making. Glean is our new product analytics & telemetry solution that provides that data for our products. It aims to be easy to integrate, reliable and transparent by providing an SDK and integrated tools.
It currently supports Android and iOS products, while Desktop support is planned. Note that this is different from Telemetry for Firefox Desktop (library, datasets), although it provides similar capabilities.
Glean consists of different pieces:
- Product-side tools - the Glean SDK is what products integrate and record data into.
- Services - this is where the data is stored and made available for analysis in our data platform.
- Data Tools - these are used to look at the data, performing analysis and setting up dashboards.
Glean is designed to support typical product analytics use-cases and encourage best practices by requiring clearly defined metrics through the following:
Basic product analytics are collected out-of-the-box in a standardized way. A baseline of analysis is important for all our mobile applications, from counting active users to retention and session times. This is supported out-of-the-box by the library and works consistently across our mobile products.
No custom code is required for adding new metrics to a product. To make engineers more productive, the SDK keeps the amount of instrumentation code required for metrics as small as possible. Engineers only need to specify what they want to instrument, with which semantics and then record the data using the Glean SDK. The SDK takes care of storing & sending that data reliably.
Following lean data practices through SDK design choices. It's easy to limit data collection to what's necessary and documentation can be generated easily, aiding both transparency & understanding for analysis.
Better data tooling integration due to standardized data types & registering them in machine-readable files. By having collected data described in machine-readable files, our various data tools can read them and support metrics automatically, without manual work.
Due to common high-level concepts for metrics, APIs & data tools can better match the use-cases. To make the choice easier for which metric type to use, we are introducing higher-level data types that offer clear and understandable semantics - for example, when you want to count something, you use the "count" type. This also gives us opportunities to offer better tooling for the data, both on the client and for data tooling.
Basic semantics on how the data is collected are clearly defined by the library. To make it easier to understand the general semantics of our data, the Glean SDK will define and document when which kind of data will get sent. This gives data analysis common basic semantics.
Integrate the Glean SDK / library into your product.
File a data engineering bug to enable your products application id.
Use Redash to write SQL queries & build dashboards using your products datasets, e.g.:
-- Count unique Client IDs observed on a given day SELECT count(distinct client_info.client_id) FROM org_mozilla_fenix.baseline WHERE date(submission_timestamp) = '2019-11-11'
(Work in progress) Use events and Amplitude for product analytics.
Use Databricks for deep-dive analysis.
Use the Glean debug ping viewer for QA & development.
For experimentation, you will be able to use Android experiments library, which integrates with Glean.
- #glean:mozilla.org on matrix
firstname.lastname@example.org reach out
email@example.com announcements etc.