From 076a77947aa8f861d4680a2a3500ce51667cffd1 Mon Sep 17 00:00:00 2001 From: Eduardo Filho Date: Tue, 4 Jun 2024 18:00:11 -0400 Subject: [PATCH] fix(geckoview_version): Replace geckoview.version field with valid gecko.version (#5736) --- .../geckoview_version_v1/query.sql | 20 +++---- .../geckoview_version_v1/bootstrap.py | 5 +- .../geckoview_version_v1/metrics.schema.json | 5 ++ .../org_mozilla_fenix.metrics.schema.json | 5 ++ ..._mozilla_fenix_nightly.metrics.schema.json | 5 ++ ..._mozilla_fennec_aurora.metrics.schema.json | 5 ++ .../org_mozilla_fenix.metrics.yaml | 4 +- .../org_mozilla_fenix_nightly.metrics.yaml | 52 +++++++++---------- .../org_mozilla_fennec_aurora.metrics.yaml | 4 +- 9 files changed, 65 insertions(+), 40 deletions(-) diff --git a/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/query.sql b/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/query.sql index 4c03aa8491..20473b1e44 100644 --- a/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/query.sql +++ b/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/query.sql @@ -2,10 +2,12 @@ WITH extracted AS ( -- We'll look at the metrics ping to estimate the major geckoview version. -- The metrics section is aliased, so we must rename the table for this to -- work as expected (e.g. t1). + -- geckoview_version was replaced with gecko_version but still used as fallback + -- in case we're processing that is prior to the replacement. SELECT submission_timestamp, client_info.app_build, - metrics.string.geckoview_version, + COALESCE(metrics.string.gecko_version, metrics.string.geckoview_version) AS gecko_version, FROM org_mozilla_fenix.metrics AS t1 WHERE @@ -14,21 +16,21 @@ WITH extracted AS ( SELECT submission_timestamp, client_info.app_build, - metrics.string.geckoview_version, + COALESCE(metrics.string.gecko_version, metrics.string.geckoview_version) AS gecko_version, FROM org_mozilla_fenix_nightly.metrics AS t1 UNION ALL SELECT submission_timestamp, client_info.app_build, - metrics.string.geckoview_version, + COALESCE(metrics.string.gecko_version, metrics.string.geckoview_version) AS gecko_version, FROM org_mozilla_fennec_aurora.metrics AS t1 ), transformed AS ( SELECT app_build, - geckoview_version, + gecko_version, -- Truncate to the hour, since older builds give minute resolution. DATETIME_TRUNC(mozfun.norm.fenix_build_to_datetime(app_build), HOUR) AS build_hour FROM @@ -43,22 +45,22 @@ grouped_build_hours AS ( -- We choose a minimum number of pings for each group to filter out noise. SELECT build_hour, - geckoview_version, + gecko_version, COUNT(*) AS n_pings FROM transformed WHERE - geckoview_version IS NOT NULL + gecko_version IS NOT NULL AND app_build IS NOT NULL AND build_hour IS NOT NULL GROUP BY build_hour, - geckoview_version + gecko_version HAVING n_pings > 5 ORDER BY build_hour DESC, - geckoview_version + gecko_version ), aggregated_build_hours AS ( SELECT @@ -97,7 +99,7 @@ estimated_version AS ( build_hour, -- Versions are expected to be monotonically increasing. We use the major -- version for integer comparisons when the version hits 100. - MAX(CAST(SPLIT(geckoview_version, ".")[OFFSET(0)] AS INT64)) OVER ( + MAX(CAST(SPLIT(gecko_version, ".")[OFFSET(0)] AS INT64)) OVER ( ORDER BY build_hour ASC ROWS BETWEEN diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/bootstrap.py b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/bootstrap.py index 6e22e1910e..06ef687858 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/bootstrap.py +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/bootstrap.py @@ -28,7 +28,10 @@ def input_row(submission_offset, build_offset, version_offset=0): "submission_timestamp": (START_DATE - timedelta(submission_offset)).isoformat(), "client_info": {"app_build": app_build(START_DATE - timedelta(build_offset))}, "metrics": { - "string": {"geckoview_version": f"{START_VERSION-version_offset}.0.0"} + "string": { + "gecko_version": f"{START_VERSION-version_offset}.0.0", + "geckoview_version": f"{START_VERSION-version_offset}.0.0", + }, }, } diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/metrics.schema.json b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/metrics.schema.json index 4952baf0c8..e68499cb14 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/metrics.schema.json +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/metrics.schema.json @@ -26,6 +26,11 @@ "name": "string", "mode": "NULLABLE", "fields": [ + { + "type": "STRING", + "name": "gecko_version", + "mode": "NULLABLE" + }, { "type": "STRING", "name": "geckoview_version", diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix.metrics.schema.json b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix.metrics.schema.json index 4952baf0c8..e68499cb14 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix.metrics.schema.json +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix.metrics.schema.json @@ -26,6 +26,11 @@ "name": "string", "mode": "NULLABLE", "fields": [ + { + "type": "STRING", + "name": "gecko_version", + "mode": "NULLABLE" + }, { "type": "STRING", "name": "geckoview_version", diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix_nightly.metrics.schema.json b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix_nightly.metrics.schema.json index 4952baf0c8..e68499cb14 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix_nightly.metrics.schema.json +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fenix_nightly.metrics.schema.json @@ -26,6 +26,11 @@ "name": "string", "mode": "NULLABLE", "fields": [ + { + "type": "STRING", + "name": "gecko_version", + "mode": "NULLABLE" + }, { "type": "STRING", "name": "geckoview_version", diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fennec_aurora.metrics.schema.json b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fennec_aurora.metrics.schema.json index 4952baf0c8..e68499cb14 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fennec_aurora.metrics.schema.json +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/org_mozilla_fennec_aurora.metrics.schema.json @@ -26,6 +26,11 @@ "name": "string", "mode": "NULLABLE", "fields": [ + { + "type": "STRING", + "name": "gecko_version", + "mode": "NULLABLE" + }, { "type": "STRING", "name": "geckoview_version", diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix.metrics.yaml b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix.metrics.yaml index 32661d8bea..67dbc7f7ee 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix.metrics.yaml +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix.metrics.yaml @@ -3,11 +3,11 @@ app_build: 0000374784 metrics: string: - geckoview_version: -1230.0.0 + gecko_version: -1230.0.0 submission_timestamp: '2020-05-23T00:00:00' - client_info: app_build: 0000374784 metrics: string: - geckoview_version: -1230.0.0 + gecko_version: -1230.0.0 submission_timestamp: '2020-05-27T00:00:00' diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix_nightly.metrics.yaml b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix_nightly.metrics.yaml index 064d1493a4..262ca96916 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix_nightly.metrics.yaml +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fenix_nightly.metrics.yaml @@ -4,182 +4,182 @@ app_build: '0000377664' metrics: string: - geckoview_version: 92.0.0 + gecko_version: 92.0.0 submission_timestamp: '2020-05-17T00:00:00' - &id002 client_info: app_build: 0000377856 metrics: string: - geckoview_version: 93.0.0 + gecko_version: 93.0.0 submission_timestamp: '2020-05-18T00:00:00' - &id003 client_info: app_build: 0000378048 metrics: string: - geckoview_version: 94.0.0 + gecko_version: 94.0.0 submission_timestamp: '2020-05-19T00:00:00' - &id004 client_info: app_build: 0000378240 metrics: string: - geckoview_version: 95.0.0 + gecko_version: 95.0.0 submission_timestamp: '2020-05-20T00:00:00' - &id005 client_info: app_build: 0000378432 metrics: string: - geckoview_version: 96.0.0 + gecko_version: 96.0.0 submission_timestamp: '2020-05-21T00:00:00' - &id006 client_info: app_build: 0000378624 metrics: string: - geckoview_version: 97.0.0 + gecko_version: 97.0.0 submission_timestamp: '2020-05-22T00:00:00' - &id007 client_info: app_build: 0000378816 metrics: string: - geckoview_version: 98.0.0 + gecko_version: 98.0.0 submission_timestamp: '2020-05-23T00:00:00' - &id008 client_info: app_build: 0000379008 metrics: string: - geckoview_version: 99.0.0 + gecko_version: 99.0.0 submission_timestamp: '2020-05-24T00:00:00' - &id009 client_info: app_build: 0000379200 metrics: string: - geckoview_version: 100.0.0 + gecko_version: 100.0.0 submission_timestamp: '2020-05-25T00:00:00' - &id010 client_info: app_build: 0000379392 metrics: string: - geckoview_version: 101.0.0 + gecko_version: 101.0.0 submission_timestamp: '2020-05-26T00:00:00' - &id011 client_info: app_build: 0000379584 metrics: string: - geckoview_version: 102.0.0 + gecko_version: 102.0.0 submission_timestamp: '2020-05-27T00:00:00' - &id012 client_info: app_build: 0000379776 metrics: string: - geckoview_version: 103.0.0 + gecko_version: 103.0.0 submission_timestamp: '2020-05-28T00:00:00' - &id013 client_info: app_build: 0000379968 metrics: string: - geckoview_version: 104.0.0 + gecko_version: 104.0.0 submission_timestamp: '2020-05-29T00:00:00' - &id014 client_info: app_build: 0000380160 metrics: string: - geckoview_version: 105.0.0 + gecko_version: 105.0.0 submission_timestamp: '2020-05-30T00:00:00' - &id015 client_info: app_build: 0000380352 metrics: string: - geckoview_version: 106.0.0 + gecko_version: 106.0.0 submission_timestamp: '2020-05-31T00:00:00' - &id016 client_info: app_build: 0000380544 metrics: string: - geckoview_version: 107.0.0 + gecko_version: 107.0.0 submission_timestamp: '2020-06-01T00:00:00' - &id017 client_info: app_build: 0000380736 metrics: string: - geckoview_version: 108.0.0 + gecko_version: 108.0.0 submission_timestamp: '2020-06-02T00:00:00' - &id018 client_info: app_build: 0000380928 metrics: string: - geckoview_version: 109.0.0 + gecko_version: 109.0.0 submission_timestamp: '2020-06-03T00:00:00' - &id019 client_info: app_build: 0000381120 metrics: string: - geckoview_version: 110.0.0 + gecko_version: 110.0.0 submission_timestamp: '2020-06-04T00:00:00' - &id020 client_info: app_build: 0000381312 metrics: string: - geckoview_version: 111.0.0 + gecko_version: 111.0.0 submission_timestamp: '2020-06-05T00:00:00' - &id021 client_info: app_build: 0000381504 metrics: string: - geckoview_version: 112.0.0 + gecko_version: 112.0.0 submission_timestamp: '2020-06-06T00:00:00' - &id022 client_info: app_build: 0000381696 metrics: string: - geckoview_version: 113.0.0 + gecko_version: 113.0.0 submission_timestamp: '2020-06-07T00:00:00' - &id023 client_info: app_build: 0000381888 metrics: string: - geckoview_version: 114.0.0 + gecko_version: 114.0.0 submission_timestamp: '2020-06-08T00:00:00' - &id024 client_info: app_build: 0000382080 metrics: string: - geckoview_version: 115.0.0 + gecko_version: 115.0.0 submission_timestamp: '2020-06-09T00:00:00' - &id025 client_info: app_build: 0000382272 metrics: string: - geckoview_version: 116.0.0 + gecko_version: 116.0.0 submission_timestamp: '2020-06-10T00:00:00' - &id026 client_info: app_build: 0000382464 metrics: string: - geckoview_version: 117.0.0 + gecko_version: 117.0.0 submission_timestamp: '2020-06-11T00:00:00' - *id001 - *id002 diff --git a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fennec_aurora.metrics.yaml b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fennec_aurora.metrics.yaml index 32661d8bea..67dbc7f7ee 100644 --- a/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fennec_aurora.metrics.yaml +++ b/tests/sql/moz-fx-data-shared-prod/org_mozilla_fenix_derived/geckoview_version_v1/test_aggregation/org_mozilla_fennec_aurora.metrics.yaml @@ -3,11 +3,11 @@ app_build: 0000374784 metrics: string: - geckoview_version: -1230.0.0 + gecko_version: -1230.0.0 submission_timestamp: '2020-05-23T00:00:00' - client_info: app_build: 0000374784 metrics: string: - geckoview_version: -1230.0.0 + gecko_version: -1230.0.0 submission_timestamp: '2020-05-27T00:00:00'