opmon/firefox-default-browser-agent.toml (104 lines of code) (raw):
# Monitoring of Firefox Windows Default Browser Agent.
[project]
name = "Firefox Default Browser Agent"
platform = "firefox_desktop"
xaxis = "submission_date"
start_date = "2022-01-01"
# We want continuous monitoring of this data:
# end_date =
skip_default_metrics = true
metrics = [
"ping_volume",
"firefox_is_default_volume",
"firefox_won_default_volume",
"firefox_lost_default_volume",
"firefox_default_changed_volume",
]
[project.population]
data_source = "default_browser_agent"
monitor_entire_population = true
dimensions = ["normalized_channel", "windows_version"]
[dimensions.windows_version]
data_source = "default_browser_agent"
select_expression = "windows_version_info"
friendly_name = "Windows Version"
description = "Windows version, like 'Windows 11', 'Windows 10', etc. See https://github.com/mozilla/bigquery-etl/blob/generated-sql/sql/mozfun/norm/windows_version_info/udf.sql."
[dimensions.normalized_channel]
data_source = "default_browser_agent"
select_expression = "normalized_channel"
friendly_name = "Channel"
description = "Release channel, like 'release', 'beta', 'nightly', 'esr', 'devedition'."
[data_sources]
[data_sources.default_browser_agent]
# N.b.: there are appear to be issues fetching column `default_browser` from
# table `default_browser`, which naming the table `dba` works around.
from_expression = """
( SELECT * FROM (
SELECT
DATE(dba.submission_timestamp) AS submission_date,
-- We don't about builds and versions at this point.
NULL AS build_id,
-- WDBA doesn't have a longitudinal identifier.
dba.document_id AS client_id,
mozfun.norm.windows_version_info(
"Windows_NT",
CONCAT(SPLIT(dba.os_version, ".")[SAFE_OFFSET(0)], ".", SPLIT(dba.os_version, ".")[SAFE_OFFSET(1)]),
SAFE_CAST(SPLIT(dba.os_version, ".")[SAFE_OFFSET(2)] AS INT64)) AS windows_version_info,
-- This isn't perfect, but it's close.
dba.build_channel AS normalized_channel,
dba.default_browser AS default_browser,
dba.previous_default_browser AS previous_default_browser,
FROM
mozdata.default_browser_agent.default_browser dba
)
WHERE
-- Some clients are badly configured.
windows_version_info IS NOT NULL
-- Ancient versions of Windows are not relevant.
AND windows_version_info NOT IN ('Windows 95', 'Windows 98', 'Windows NT 4.0', 'Windows 2000', 'Windows XP', 'Windows Vista')
)
"""
submission_date_column = "submission_date"
build_id_column = "build_id"
client_id_column = "client_id"
[metrics]
[metrics.ping_volume]
data_source = "default_browser_agent"
# We should have at most one default browser ping per client per day,
# but we don't assert as much.
select_expression = "COUNT(*)"
type = "scalar"
[metrics.ping_volume.statistics]
sum = {}
# TODO: one week and one month smoothed?
[metrics.firefox_is_default_volume]
data_source = "default_browser_agent"
select_expression = 'COUNTIF(default_browser = "firefox")'
type = "scalar"
[metrics.firefox_is_default_volume.statistics]
sum = {}
mean = {}
[metrics.firefox_lost_default_volume]
data_source = "default_browser_agent"
select_expression = '- COUNTIF(previous_default_browser = "firefox" AND default_browser != "firefox")'
type = "scalar"
[metrics.firefox_lost_default_volume.statistics]
sum = {}
mean = {}
[metrics.firefox_won_default_volume]
data_source = "default_browser_agent"
select_expression = '+ COUNTIF(previous_default_browser != "firefox" AND default_browser = "firefox")'
type = "scalar"
[metrics.firefox_won_default_volume.statistics]
sum = {}
mean = {}
[metrics.firefox_default_changed_volume]
data_source = "default_browser_agent"
select_expression = '''
(COUNTIF(previous_default_browser != "firefox" AND default_browser = "firefox") -
COUNTIF(previous_default_browser = "firefox" AND default_browser != "firefox"))
'''
type = "scalar"
[metrics.firefox_default_changed_volume.statistics]
sum = {}
mean = {}