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 = {}