Skip to content

Conversation

@kik-kik
Copy link
Contributor

@kik-kik kik-kik commented Aug 19, 2025

feat(DENG-9250): update firefox app store territory report to include new connector data

@kik-kik kik-kik self-assigned this Aug 19, 2025
@kik-kik kik-kik force-pushed the feat/DENG-9250/update-firefox-app-store-territory-report-to-include-new-connector-data branch 2 times, most recently from 75fd8cf to 6e89135 Compare August 19, 2025 16:01
@kik-kik kik-kik requested a review from SuYoungHong August 19, 2025 16:01
@dataops-ci-bot

This comment has been minimized.

@kik-kik kik-kik marked this pull request as ready for review August 19, 2025 17:28
@dataops-ci-bot

This comment has been minimized.

Copy link

@SuYoungHong SuYoungHong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I think I see what's happening between :

  • sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/view.sql
  • sql/moz-fx-data-shared-prod/firefox_ios_derived/app_store_funnel_v1/query.sql

So before, firefox_app_store_territory_source_type_report used to only report impressions, but firefox_downloads_territory_source_type_report would separately include downloads.

Now, the new format is, both download and impression metrics are reported in firefox_app_store_territory_source_type_report.

We used to combine them separately under a query in app_store_funnel_v1, but things have changed.

I think it's good to be thoughtful how we encode the logic for easy interpretation in the future. I think there's two, equally good options:

  1. update the firefox_app_store_territory_source_type_report view logic to include pulling download numbers from firefox_downloads_territory_source_type_report before the cutoff date, and then keep app_store_funnel_v1 logic simple (just pull directly from the view, no before/after logic)
  2. keep the before/after logic in the app_store_funnel_v1, but version the firefox_app_store_territory_source_type_report views, so they're separate tables pre-cutoff and post cutoff.

I just don't want to logic to be split across multiple places.

Let me know what you think.

page_views,
page_views_unique_device,
-- These fields did not exist in the previous version.
CAST(NULL AS INTEGER) AS first_time_downloads,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @kik-kik , so these metrics exist in the last format, they just were split out in a different table:

  • moz-fx-data-shared-prod.app_store.firefox_downloads_territory_source_type_report

Let's source it from here, instead of casting as null so we don't lose data

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't review the data in moz-fx-data-bq-fivetran.firefox_app_store_v2_apple_store.apple_store__territory_report because I don't have access. But is that data available and complete pre-"2024-01-01"?

Copy link
Contributor Author

@kik-kik kik-kik Aug 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @SuYoungHong, firefox_app_store_v2_apple_store only contains data as far back as 2024-01-01.

Regarding this:

Let's source it from here, instead of casting as null so we don't lose data

We are not losing any data here with the casting, these fields simply do not exist in the source referenced here.

But also seeing that this only gets referenced inside the app_store_funnel_v1 query I'd probably just delete this view entirely keep the view unmodified.

@@ -1,75 +1,128 @@
-- TODO: should we run this job with 7 day delay to make sure all data landed (a wider window to be on the safe side).
WITH views_data AS (
WITH historical_store_data AS (

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hey, I'm not sure why the historical data subquery is required here... because the split logic for how we define things (pull downloads and impressions separately from separate tables under old format, and from one table from new format) should be encoded in the firefox_app_store_territory_source_type_report view above, no?

It's a bit confusing seeing that logic twice, maybe better to just keep that logic in one place?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we require the historical in case we want to run the query for past data prior to 2024-01-01. historical_store_data basically should contain the old logic which required us to combine two different data sources to get impression and downloads information. The new connector based dataset already has all of this data in a single dataset so we do not need to do any additional joins.

WHERE
DATE(`date`) = DATE_SUB(@submission_date, INTERVAL 7 DAY)
AND source_type <> 'Institutional Purchase'
AND app_id = 989804926 -- Filter to only include the Firefox app

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thikn we only filter for institutional purchase in the downloads section in the old query... I'm totally okay with changing it (might prefer it in fact), but I'd like to check if it affects the numbers at all (I'll need access to moz-fx-data-shared-prod.app_store.firefox_downloads_territory_source_type_report to check though).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto for the app_id filter (I'm assuming it won't affect numbers and is good defensive coding, but want to validate directly)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could create a temp table for you which include app_id dimension

@dataops-ci-bot

This comment has been minimized.

Copy link

@SuYoungHong SuYoungHong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, this looks good to me.

Just 2 things I'd like noted (for documentation purposes)

  1. we're explicitly filtering by app_id = 989804926, which we weren't before
  2. we're explicitly filtering out source_type <> 'Institutional Purchase' for both views and installs (previously we only filtered for installs).

Both of these changes are probably appropriate, but good to note it will be different from the past

Also, we're defining new profiles via moz-fx-data-shared-prod.firefox_ios.new_profiles.

Before we were moz-fx-data-shared-prod.firefox_ios.firefox_ios_clients.

Just want to confirm that firefox_ios.new_profiles is the preferred / recommended method for counting new profiles instead of firefox_ios.firefox_ios_clients. Would the numbers change due to this, or would they be reporting essentially the same thing?

Other then that, looks good. I know we discussed getting access to the moz-fx-data-bq-fivetran.firefox_app_store_v2_apple_store.apple_store__territory_report to do some validation, which I think we should still do, but I don't think that should block approval.

Thank you!

Copy link

@SuYoungHong SuYoungHong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

requesting one addition due to an issue i discovered in the data.

SELECT
DATE(`date`) AS `date`,
territory AS country_name,
SUM(impressions_unique_device) AS impressions,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi,

So I reviewed this, and this looks good to me.

However, I found a data issue in the new data that Apple is sending back, that I think we should address within this query / PR.

So in the v1 of the data Apple was sending back, visits from source_type:

  • App Referrer
  • Unavailable
  • Web Referrer

Were generating an impression as well as a pageview.

In the new data Apple is sending back (v2), it seems to only generate a pageview. I think this probably makes sense, and is an improvement on their part.

Can we add the following logic to the query?

SUM(case when source_type in ('App Referrer', 'Unavailable', 'Web Referrer') THEN 0 ELSE impressions_unique_device END) 
-- add comment: apple used to count pageviews from these sources as impressions as well but no longer do in the new data they're sending back

This way, the logic for what is in impression is consistent for data from v1 data and v2 data in this aggregation.

Thanks!

Other then that, I think we're good to go with this query.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the impression logic to the query to the historical data.

@kik-kik kik-kik force-pushed the feat/DENG-9250/update-firefox-app-store-territory-report-to-include-new-connector-data branch from 2ba973c to fd99637 Compare September 10, 2025 11:13
@dataops-ci-bot

This comment has been minimized.

…rsion of the data to match the new report data
@dataops-ci-bot

This comment has been minimized.

@SuYoungHong
Copy link

@kik-kik , one addition I'd like to request like I mentioned in Slack.

Can we add a page_views column based on the page_views_unique_device metric to the app_store_funnel_v1 query?

Same logic for v1 and v2 sources. Just:
sum(page_views_unique_device) as page_views

Thanks!

@dataops-ci-bot

This comment has been minimized.

@alekhyamoz alekhyamoz requested a review from a team as a code owner October 8, 2025 17:09
@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@alekhyamoz
Copy link
Contributor

@SuYoungHong this PR is ready to be merged. Pending your approval

@SuYoungHong SuYoungHong self-requested a review October 9, 2025 07:19
Copy link

@SuYoungHong SuYoungHong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@alekhyamoz alekhyamoz enabled auto-merge October 9, 2025 13:25
@dataops-ci-bot
Copy link

Integration report for "Merge branch 'main' into feat/DENG-9250/update-firefox-app-store-territory-report-to-include-new-connector-data"

sql.diff

Click to expand!
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_firefox_ios.py /tmp/workspace/generated-sql/dags/bqetl_firefox_ios.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_firefox_ios.py	2025-10-09 13:35:25.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_firefox_ios.py	2025-10-09 13:49:50.000000000 +0000
@@ -72,6 +72,19 @@
     catchup=False,
 ) as dag:
 
+    wait_for_bigeye__firefox_ios_derived__new_profiles__v1 = ExternalTaskSensor(
+        task_id="wait_for_bigeye__firefox_ios_derived__new_profiles__v1",
+        external_dag_id="bqetl_mobile_kpi_metrics",
+        external_task_id="firefox_ios.bigeye__firefox_ios_derived__new_profiles__v1",
+        execution_delta=datetime.timedelta(days=-1, seconds=57600),
+        check_existence=True,
+        mode="reschedule",
+        poke_interval=datetime.timedelta(minutes=5),
+        allowed_states=ALLOWED_STATES,
+        failed_states=FAILED_STATES,
+        pool="DATA_ENG_EXTERNALTASKSENSOR",
+    )
+
     wait_for_copy_deduplicate_all = ExternalTaskSensor(
         task_id="wait_for_copy_deduplicate_all",
         external_dag_id="copy_deduplicate",
@@ -176,17 +189,15 @@
         pool="DATA_ENG_EXTERNALTASKSENSOR",
     )
 
-    checks__fail_firefox_ios_derived__app_store_funnel__v1 = bigquery_dq_check(
-        task_id="checks__fail_firefox_ios_derived__app_store_funnel__v1",
-        source_table="app_store_funnel_v1",
-        dataset_id="firefox_ios_derived",
-        project_id="moz-fx-data-shared-prod",
-        is_dq_check_fail=True,
+    bigeye__firefox_ios_derived__app_store_funnel__v1 = bigquery_bigeye_check(
+        task_id="bigeye__firefox_ios_derived__app_store_funnel__v1",
+        table_id="moz-fx-data-shared-prod.firefox_ios_derived.app_store_funnel_v1",
+        warehouse_id="1939",
         owner="[email protected]",
         email=["[email protected]", "[email protected]", "[email protected]"],
         depends_on_past=False,
-        parameters=["submission_date:DATE:{{ds}}"],
-        retries=0,
+        execution_timeout=datetime.timedelta(hours=1),
+        retries=1,
     )
 
     checks__fail_firefox_ios_derived__baseline_clients_yearly__v1 = bigquery_dq_check(
@@ -309,19 +320,6 @@
         retries=0,
     )
 
-    checks__warn_firefox_ios_derived__app_store_funnel__v1 = bigquery_dq_check(
-        task_id="checks__warn_firefox_ios_derived__app_store_funnel__v1",
-        source_table="app_store_funnel_v1",
-        dataset_id="firefox_ios_derived",
-        project_id="moz-fx-data-shared-prod",
-        is_dq_check_fail=False,
-        owner="[email protected]",
-        email=["[email protected]", "[email protected]", "[email protected]"],
-        depends_on_past=False,
-        parameters=["submission_date:DATE:{{ds}}"],
-        retries=0,
-    )
-
     checks__warn_firefox_ios_derived__firefox_ios_clients__v1 = bigquery_dq_check(
         task_id="checks__warn_firefox_ios_derived__firefox_ios_clients__v1",
         source_table="firefox_ios_clients_v1",
@@ -498,18 +496,10 @@
         depends_on_past=True,
     )
 
-    checks__fail_firefox_ios_derived__app_store_funnel__v1.set_upstream(
-        checks__fail_firefox_ios_derived__firefox_ios_clients__v1
-    )
-
-    checks__fail_firefox_ios_derived__app_store_funnel__v1.set_upstream(
+    bigeye__firefox_ios_derived__app_store_funnel__v1.set_upstream(
         firefox_ios_derived__app_store_funnel__v1
     )
 
-    checks__fail_firefox_ios_derived__app_store_funnel__v1.set_upstream(
-        firefox_ios_derived__clients_activation__v1
-    )
-
     checks__fail_firefox_ios_derived__baseline_clients_yearly__v1.set_upstream(
         firefox_ios_derived__baseline_clients_yearly__v1
     )
@@ -526,18 +516,6 @@
         firefox_ios_derived__new_profile_activation__v2
     )
 
-    checks__warn_firefox_ios_derived__app_store_funnel__v1.set_upstream(
-        checks__fail_firefox_ios_derived__firefox_ios_clients__v1
-    )
-
-    checks__warn_firefox_ios_derived__app_store_funnel__v1.set_upstream(
-        firefox_ios_derived__app_store_funnel__v1
-    )
-
-    checks__warn_firefox_ios_derived__app_store_funnel__v1.set_upstream(
-        firefox_ios_derived__clients_activation__v1
-    )
-
     checks__warn_firefox_ios_derived__firefox_ios_clients__v1.set_upstream(
         firefox_ios_derived__firefox_ios_clients__v1
     )
@@ -547,11 +525,7 @@
     )
 
     firefox_ios_derived__app_store_funnel__v1.set_upstream(
-        checks__fail_firefox_ios_derived__firefox_ios_clients__v1
-    )
-
-    firefox_ios_derived__app_store_funnel__v1.set_upstream(
-        firefox_ios_derived__clients_activation__v1
+        wait_for_bigeye__firefox_ios_derived__new_profiles__v1
     )
 
     firefox_ios_derived__attributable_clients__v1.set_upstream(
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_mobile_kpi_metrics.py /tmp/workspace/generated-sql/dags/bqetl_mobile_kpi_metrics.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_mobile_kpi_metrics.py	2025-10-09 13:35:30.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_mobile_kpi_metrics.py	2025-10-09 13:50:00.000000000 +0000
@@ -734,6 +734,21 @@
         task_group=task_group_firefox_ios,
     )
 
+    with TaskGroup(
+        "bigeye__firefox_ios_derived__new_profiles__v1_external",
+        parent_group=task_group_firefox_ios,
+    ) as bigeye__firefox_ios_derived__new_profiles__v1_external:
+        ExternalTaskMarker(
+            task_id="bqetl_firefox_ios__wait_for_bigeye__firefox_ios_derived__new_profiles__v1",
+            external_dag_id="bqetl_firefox_ios",
+            external_task_id="wait_for_bigeye__firefox_ios_derived__new_profiles__v1",
+            execution_date="{{ (execution_date - macros.timedelta(seconds=28800)).isoformat() }}",
+        )
+
+        bigeye__firefox_ios_derived__new_profiles__v1_external.set_upstream(
+            bigeye__firefox_ios_derived__new_profiles__v1
+        )
+
     bigeye__firefox_ios_derived__retention__v1 = bigquery_bigeye_check(
         task_id="bigeye__firefox_ios_derived__retention__v1",
         table_id="moz-fx-data-shared-prod.firefox_ios_derived.retention_v1",
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios_derived/app_store_funnel_v1: bigconfig.yml
Only in /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_ios_derived/app_store_funnel_v1: checks.sql
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/org_mozilla_fenix/metrics: schema.yaml
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:32:45.000000000 +0000
@@ -53,7 +53,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-10-08"
+  DATE(submission_timestamp) >= "2025-10-09"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_daily_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_daily_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_daily_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_daily_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -39,7 +39,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -49,7 +49,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -48,7 +48,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:32:45.000000000 +0000
@@ -53,7 +53,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-10-08"
+  DATE(submission_timestamp) >= "2025-10-09"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/metrics_clients_daily_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/metrics_clients_daily_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/metrics_clients_daily_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/metrics_clients_daily_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -34,7 +34,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:32:45.000000000 +0000
@@ -53,7 +53,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-10-08"
+  DATE(submission_timestamp) >= "2025-10-09"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/schema.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/schema.yaml	2025-10-09 13:34:14.000000000 +0000
@@ -29,6 +29,3 @@
 - name: page_views_unique_device
   type: INTEGER
   mode: NULLABLE
-- name: date_pst
-  type: TIMESTAMP
-  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/app_store/firefox_app_store_territory_source_type_report/view.sql	2025-10-09 13:28:12.000000000 +0000
@@ -5,7 +5,9 @@
   -- https://developer.apple.com/help/app-store-connect/view-sales-and-trends/download-and-view-reports
   -- "Time zone: Reports are based on Pacific Time (PT). A day includes transactions that happened from 12:00 a.m. to 11:59 p.m. PT."
   -- Date conversion in the query is required to unify the dates to UTC timezone which is what we use.
-  * REPLACE (TIMESTAMP(DATETIME(`date`, "America/Los_Angeles")) AS `date`),
-  `date` AS date_pst,
+  -- However, the `date` timestamp field appear to always show midnight meaning if we do timezone conversion
+  -- we will end up moving all results 1 day back if we attempt conversion to UTC.
+  -- This is why we are not doing timezone converstions here.
+  *,
 FROM
   `moz-fx-data-shared-prod.app_store_syndicate.app_store_territory_source_type_report`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:32:45.000000000 +0000
@@ -119,7 +119,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-10-08"
+  DATE(submission_timestamp) >= "2025-10-09"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_daily_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_daily_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_daily_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_daily_v1/metadata.yaml	2025-10-09 13:43:02.000000000 +0000
@@ -39,7 +39,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_first_seen_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_first_seen_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_first_seen_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_first_seen_v1/metadata.yaml	2025-10-09 13:43:02.000000000 +0000
@@ -49,7 +49,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_last_seen_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_last_seen_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_last_seen_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/baseline_clients_last_seen_v1/metadata.yaml	2025-10-09 13:43:02.000000000 +0000
@@ -48,7 +48,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_daily_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_daily_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_daily_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_daily_v1/metadata.yaml	2025-10-09 13:43:02.000000000 +0000
@@ -34,7 +34,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_last_seen_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_last_seen_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_last_seen_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/metrics_clients_last_seen_v1/metadata.yaml	2025-10-09 13:43:02.000000000 +0000
@@ -48,7 +48,7 @@
   enabled: false
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml	2025-10-09 13:35:07.000000000 +0000
@@ -1,49 +1,49 @@
 fields:
-- mode: NULLABLE
-  name: submission_date
+- name: submission_date
   type: DATE
-- mode: NULLABLE
-  name: source
+  mode: NULLABLE
+- name: source
   type: STRING
-- mode: NULLABLE
-  name: event_type
+  mode: NULLABLE
+- name: event_type
   type: STRING
-- mode: NULLABLE
-  name: form_factor
+  mode: NULLABLE
+- name: form_factor
   type: STRING
-- mode: NULLABLE
-  name: country
+  mode: NULLABLE
+- name: country
   type: STRING
-- mode: NULLABLE
-  name: subdivision1
+  mode: NULLABLE
+- name: subdivision1
   type: STRING
-- mode: NULLABLE
-  name: advertiser
+  mode: NULLABLE
+- name: advertiser
   type: STRING
-- mode: NULLABLE
-  name: release_channel
+  mode: NULLABLE
+- name: release_channel
   type: STRING
-- mode: NULLABLE
-  name: position
+  mode: NULLABLE
+- name: position
   type: INTEGER
-- mode: NULLABLE
-  name: provider
+  mode: NULLABLE
+- name: provider
   type: STRING
-- mode: NULLABLE
-  name: match_type
+  mode: NULLABLE
+- name: match_type
   type: STRING
-- mode: NULLABLE
-  name: normalized_os
+  mode: NULLABLE
+- name: normalized_os
   type: STRING
-- mode: NULLABLE
-  name: suggest_data_sharing_enabled
+  mode: NULLABLE
+- name: suggest_data_sharing_enabled
   type: BOOLEAN
-- mode: NULLABLE
-  name: event_count
+  mode: NULLABLE
+- name: event_count
   type: INTEGER
-- mode: NULLABLE
-  name: user_count
+  mode: NULLABLE
+- name: user_count
   type: INTEGER
-- mode: NULLABLE
-  name: query_type
+  mode: NULLABLE
+- name: query_type
   type: STRING
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml	2025-10-09 13:35:16.000000000 +0000
@@ -1,40 +1,40 @@
 fields:
-- mode: NULLABLE
-  name: submission_date
+- name: submission_date
   type: DATE
-- mode: NULLABLE
-  name: form_factor
+  mode: NULLABLE
+- name: form_factor
   type: STRING
-- mode: NULLABLE
-  name: country
+  mode: NULLABLE
+- name: country
   type: STRING
-- mode: NULLABLE
-  name: advertiser
+  mode: NULLABLE
+- name: advertiser
   type: STRING
-- mode: NULLABLE
-  name: normalized_os
+  mode: NULLABLE
+- name: normalized_os
   type: STRING
-- mode: NULLABLE
-  name: release_channel
+  mode: NULLABLE
+- name: release_channel
   type: STRING
-- mode: NULLABLE
-  name: position
+  mode: NULLABLE
+- name: position
   type: INTEGER
-- mode: NULLABLE
-  name: provider
+  mode: NULLABLE
+- name: provider
   type: STRING
-- mode: NULLABLE
-  name: match_type
+  mode: NULLABLE
+- name: match_type
   type: STRING
-- mode: NULLABLE
-  name: suggest_data_sharing_enabled
+  mode: NULLABLE
+- name: suggest_data_sharing_enabled
   type: BOOLEAN
-- mode: NULLABLE
-  name: impression_count
+  mode: NULLABLE
+- name: impression_count
   type: INTEGER
-- mode: NULLABLE
-  name: click_count
+  mode: NULLABLE
+- name: click_count
   type: INTEGER
-- mode: NULLABLE
-  name: query_type
+  mode: NULLABLE
+- name: query_type
   type: STRING
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:32:45.000000000 +0000
@@ -53,7 +53,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-10-08"
+  DATE(submission_timestamp) >= "2025-10-09"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_daily_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_daily_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_daily_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_daily_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -39,7 +39,7 @@
   enabled: true
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_first_seen_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -49,7 +49,7 @@
   enabled: true
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/baseline_clients_last_seen_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -51,7 +51,7 @@
   enabled: true
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-10-09 13:32:45.000000000 +0000
@@ -53,7 +53,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-10-08"
+  DATE(submission_timestamp) >= "2025-10-09"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/metrics_clients_daily_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/metrics_clients_daily_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/metrics_clients_daily_v1/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/metrics_clients_daily_v1/metadata.yaml	2025-10-09 13:43:03.000000000 +0000
@@ -34,7 +34,7 @@
   enabled: true
   collection: null
   partition_column: null
-  partition_column_set: true
+  partition_column_set: false
   freshness:
     blocking: false
   volume:
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml	2025-10-09 13:43:01.000000000 +0000
@@ -1,6 +1,10 @@
-friendly_name: Broken Site Report
+friendly_name: App-specific view for Glean ping "broken-site-report"
 description: |-
-  Please provide a description for the query
+  This a view that UNIONs the stable ping tables
+  across all channels of the Glean application "Firefox for Android"
+  (org_mozilla_firefox.broken_site_report, org_mozilla_firefox_beta.broken_site_report, org_mozilla_fenix.broken_site_report, org_mozilla_fenix_nightly.broken_site_report, org_mozilla_fennec_aurora.broken_site_report).
+
+  It is used by Looker.
 owners: []
 labels: {}
 bigquery: null
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml	2025-10-09 13:43:01.000000000 +0000
@@ -1,6 +1,10 @@
-friendly_name: Crash
+friendly_name: App-specific view for Glean ping "crash"
 description: |-
-  Please provide a description for the query
+  This a view that UNIONs the stable ping tables
+  across all channels of the Glean application "Firefox for Android"
+  (org_mozilla_firefox.crash, org_mozilla_firefox_beta.crash, org_mozilla_fenix.crash, org_mozilla_fenix_nightly.crash, org_mozilla_fennec_aurora.crash).
+
+  It is used by Looker.
 owners: []
 labels: {}
 bigquery: null
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml	2025-10-09 13:34:45.000000000 +0000
@@ -26,6 +26,9 @@
 - name: adjust_network
   type: STRING
   mode: NULLABLE
+- name: install_source
+  type: STRING
+  mode: NULLABLE
 - name: retained_week_2
   type: BOOLEAN
   mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml	2025-10-09 13:34:23.000000000 +0000
@@ -48,6 +48,9 @@
   description: 'The type of source of a client installation.
 
     '
+- name: install_source
+  type: STRING
+  mode: NULLABLE
 - name: new_profiles
   type: INTEGER
   mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/schema.yaml	2025-10-09 13:40:38.000000000 +0000
@@ -1068,6 +1068,11 @@
         default: true
 
         '
+    - name: preferences_global_privacy_control_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: Measures user retention of the Global Privacy Control (GPC) setting
+        at start-up.
   - name: counter
     type: RECORD
     mode: NULLABLE
@@ -17977,6 +17982,34 @@
       description: 'Counts the number of times the user edits or deletes comments.
 
         '
+    - name: power_cpu_ms_per_thread_inference_process
+      type: RECORD
+      mode: REPEATED
+      fields:
+      - name: key
+        type: STRING
+        mode: NULLABLE
+      - name: value
+        type: INTEGER
+        mode: NULLABLE
+      description: 'How many miliseconds of CPU time were used. Broken down by thread
+        name for a given process type.
+
+        '
+    - name: power_wakeups_per_thread_inference_process
+      type: RECORD
+      mode: REPEATED
+      fields:
+      - name: key
+        type: STRING
+        mode: NULLABLE
+      - name: value
+        type: INTEGER
+        mode: NULLABLE
+      description: 'How many times threads woke up and could have woken up a CPU core.
+        Broken down by thread name for a given process type.
+
+        '
   - name: quantity
     type: RECORD
     mode: NULLABLE
@@ -19178,6 +19211,23 @@
       description: 'The mode of the toolbar. Possible values are: simple or expanded.
 
         '
+    - name: preferences_doh_protection_level
+      type: STRING
+      mode: NULLABLE
+      description: 'Measures user retention of the DNS over HTTPS (DoH) setting at
+        start-up.
+
+        Example values include: "Default", "Increased", "Max", "Off".
+
+        '
+    - name: preferences_https_only_mode
+      type: STRING
+      mode: NULLABLE
+      description: 'Measures user retention of the HTTPS-Only setting at start-up.
+
+        Example values include: "DISABLED", "ENABLED_PRIVATE_ONLY", "ENABLED".
+
+        '
   - name: string_list
     type: RECORD
     mode: NULLABLE
@@ -40219,7 +40269,8 @@
         - name: value
           type: INTEGER
           mode: NULLABLE
-      description: 'Memory used by the garbage-collected JavaScript heap (KB)
+      description: 'Memory used by the garbage-collected JavaScript heap (KB) by process
+        type
 
         This metric was generated to correspond to the Legacy Telemetry exponential
         histogram MEMORY_JS_GC_HEAP.
@@ -40247,7 +40298,7 @@
         - name: value
           type: INTEGER
           mode: NULLABLE
-      description: 'Resident memory size (KB)
+      description: 'Resident memory size (KB) by process type
 
         This metric was generated to correspond to the Legacy Telemetry exponential
         histogram MEMORY_RESIDENT_FAST.
@@ -40275,7 +40326,7 @@
         - name: value
           type: INTEGER
           mode: NULLABLE
-      description: 'Peak resident memory size (KB)
+      description: 'Peak resident memory size (KB) by process type
 
         This metric was generated to correspond to the Legacy Telemetry exponential
         histogram MEMORY_RESIDENT_PEAK.
@@ -40360,7 +40411,7 @@
         - name: value
           type: INTEGER
           mode: NULLABLE
-      description: 'Unique Set Size (KB)
+      description: 'Unique Set Size (KB) by process type
 
         This metric was generated to correspond to the Legacy Telemetry exponential
         histogram MEMORY_UNIQUE.
@@ -47157,6 +47208,147 @@
         page itself or the sum of subresources.
 
         '
+    - name: memory_js_gc_heap
+      type: RECORD
+      mode: REPEATED
+      fields:
+      - name: key
+        type: STRING
+        mode: NULLABLE
+      - name: value
+        type: RECORD
+        mode: NULLABLE
+        fields:
+        - name: count
+          type: INTEGER
+          mode: NULLABLE
+          description: This was accidentally sent in the past and is now deprecated.
+            See https://bugzilla.mozilla.org/show_bug.cgi?id=1799509#c5
+        - name: sum
+          type: INTEGER
+          mode: NULLABLE
+        - name: values
+          type: RECORD
+          mode: REPEATED
+          fields:
+          - name: key
+            type: STRING
+            mode: NULLABLE
+          - name: value
+            type: INTEGER
+            mode: NULLABLE
+      description: 'Memory used by the garbage-collected JavaScript heap (KB) by process
+        type
+
+        This metric was generated to correspond to the Legacy Telemetry exponential
+        histogram MEMORY_JS_GC_HEAP.
+
+        '
+    - name: memory_resident_fast
+      type: RECORD
+      mode: REPEATED
+      fields:
+      - name: key
+        type: STRING
+        mode: NULLABLE
+      - name: value
+        type: RECORD
+        mode: NULLABLE
+        fields:
+        - name: count
+          type: INTEGER
+          mode: NULLABLE
+          description: This was accidentally sent in the past and is now deprecated.
+            See https://bugzilla.mozilla.org/show_bug.cgi?id=1799509#c5
+        - name: sum
+          type: INTEGER
+          mode: NULLABLE
+        - name: values
+          type: RECORD
+          mode: REPEATED
+          fields:
+          - name: key
+            type: STRING
+            mode: NULLABLE
+          - name: value
+            type: INTEGER
+            mode: NULLABLE
+      description: 'Resident memory size (KB) by process type
+
+        This metric was generated to correspond to the Legacy Telemetry exponential
+        histogram MEMORY_RESIDENT_FAST.
+
+        '
+    - name: memory_resident_peak
+      type: RECORD
+      mode: REPEATED
+      fields:
+      - name: key
+        type: STRING
+        mode: NULLABLE
+      - name: value
+        type: RECORD
+        mode: NULLABLE
+        fields:
+        - name: count
+          type: INTEGER
+          mode: NULLABLE
+          description: This was accidentally sent in the past and is now deprecated.
+            See https://bugzilla.mozilla.org/show_bug.cgi?id=1799509#c5
+        - name: sum
+          type: INTEGER
+          mode: NULLABLE
+        - name: values
+          type: RECORD
+          mode: REPEATED
+          fields:
+          - name: key
+            type: STRING
+            mode: NULLABLE
+          - name: value
+            type: INTEGER
+            mode: NULLABLE
+      description: 'Peak resident memory size (KB) by process type
+
+        This metric was generated to correspond to the Legacy Telemetry exponential
+        histogram MEMORY_RESIDENT_PEAK.
+
+        '
+    - name: memory_unique
+      type: RECORD
+      mode: REPEATED
+      fields:
+      - name: key
+        type: STRING
+        mode: NULLABLE
+      - name: value
+        type: RECORD
+        mode: NULLABLE
+        fields:
+        - name: count
+          type: INTEGER
+          mode: NULLABLE
+          description: This was accidentally sent in the past and is now deprecated.
+            See https://bugzilla.mozilla.org/show_bug.cgi?id=1799509#c5
+        - name: sum
+          type: INTEGER
+          mode: NULLABLE
+        - name: values
+          type: RECORD
+          mode: REPEATED
+          fields:
+          - name: key
+            type: STRING
+            mode: NULLABLE
+          - name: value
+            type: INTEGER
+            mode: NULLABLE
+      description: 'Unique Set Size (KB) by process type
+
+        This metric was generated to correspond to the Legacy Telemetry exponential
+        histogram MEMORY_UNIQUE.
+
+        '
   - name: dual_labeled_counter
     type: RECORD
     mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/view.sql	2025-10-09 13:30:40.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/metrics/view.sql	2025-10-09 13:33:27.000000000 +0000
@@ -121,7 +121,8 @@
       metrics.boolean.contentblocking_tp_allowlist_convenience_enabled,
       metrics.boolean.preferences_isolated_content_processes_enabled,
       metrics.boolean.preferences_show_non_sponsor_suggestions_enabled,
-      metrics.boolean.preferences_show_sponsor_suggestions_enabled
+      metrics.boolean.preferences_show_sponsor_suggestions_enabled,
+      metrics.boolean.preferences_global_privacy_control_enabled
     ) AS `boolean`,
     STRUCT(
       metrics.counter.events_total_uri_count,
@@ -1067,7 +1068,9 @@
       metrics.labeled_counter.urlclassifier_lookup_miss,
       metrics.labeled_counter.profiles_creation_place,
       metrics.labeled_counter.media_recorder_mime_type_query,
-      metrics.labeled_counter.pdfjs_comment_edit
+      metrics.labeled_counter.pdfjs_comment_edit,
+      metrics.labeled_counter.power_cpu_ms_per_thread_inference_process,
+      metrics.labeled_counter.power_wakeups_per_thread_inference_process
     ) AS `labeled_counter`,
     STRUCT(
       metrics.quantity.gfx_adapter_primary_ram,
@@ -1213,7 +1216,9 @@
       metrics.string.system_win_package_family_name,
       metrics.string.update_settings_channel,
       metrics.string.xpi_database_startup_error,
-      metrics.string.preferences_toolbar_mode_setting
+      metrics.string.preferences_toolbar_mode_setting,
+      metrics.string.preferences_doh_protection_level,
+      metrics.string.preferences_https_only_mode
     ) AS `string`,
     STRUCT(
       metrics.string_list.metrics_mozilla_products,
@@ -1973,7 +1978,11 @@
       metrics.labeled_memory_distribution.network_cache_size,
       metrics.labeled_memory_distribution.networking_trr_request_size,
       metrics.labeled_memory_distribution.networking_trr_response_size,
-      metrics.labeled_memory_distribution.network_page_load_size
+      metrics.labeled_memory_distribution.network_page_load_size,
+      metrics.labeled_memory_distribution.memory_js_gc_heap,
+      metrics.labeled_memory_distribution.memory_resident_fast,
+      metrics.labeled_memory_distribution.memory_resident_peak,
+      metrics.labeled_memory_distribution.memory_unique
     ) AS `labeled_memory_distribution`,
     STRUCT(
       metrics.dual_labeled_counter.application_reputation_server_verdict_2,
@@ -2143,7 +2152,8 @@
       metrics.boolean.contentblocking_tp_allowlist_convenience_enabled,
       metrics.boolean.preferences_isolated_content_processes_enabled,
       metrics.boolean.preferences_show_non_sponsor_suggestions_enabled,
-      metrics.boolean.preferences_show_sponsor_suggestions_enabled
+      metrics.boolean.preferences_show_sponsor_suggestions_enabled,
+      metrics.boolean.preferences_global_privacy_control_enabled
     ) AS `boolean`,
     STRUCT(
       metrics.counter.events_total_uri_count,
@@ -3089,7 +3099,9 @@
       metrics.labeled_counter.urlclassifier_lookup_miss,
       metrics.labeled_counter.profiles_creation_place,
       metrics.labeled_counter.media_recorder_mime_type_query,
-      metrics.labeled_counter.pdfjs_comment_edit
+      metrics.labeled_counter.pdfjs_comment_edit,
+      metrics.labeled_counter.power_cpu_ms_per_thread_inference_process,
+      metrics.labeled_counter.power_wakeups_per_thread_inference_process
     ) AS `labeled_counter`,
     STRUCT(
       metrics.quantity.gfx_adapter_primary_ram,
@@ -3235,7 +3247,9 @@
       metrics.string.system_win_package_family_name,
       metrics.string.update_settings_channel,
       metrics.string.xpi_database_startup_error,
-      metrics.string.preferences_toolbar_mode_setting
+      metrics.string.preferences_toolbar_mode_setting,
+      metrics.string.preferences_doh_protection_level,
+      metrics.string.preferences_https_only_mode
     ) AS `string`,
     STRUCT(
       metrics.string_list.metrics_mozilla_products,
@@ -3995,7 +4009,11 @@
       metrics.labeled_memory_distribution.network_cache_size,
       metrics.labeled_memory_distribution.networking_trr_request_size,
       metrics.labeled_memory_distribution.networking_trr_response_size,
-      metrics.labeled_memory_distribution.network_page_load_size
+      metrics.labeled_memory_distribution.network_page_load_size,
+      metrics.labeled_memory_distribution.memory_js_gc_heap,
+      metrics.labeled_memory_distribution.memory_resident_fast,
+      metrics.labeled_memory_distribution.memory_resident_peak,
+      metrics.labeled_memory_distribution.memory_unique
     ) AS `labeled_memory_distribution`,
     STRUCT(
       metrics.dual_labeled_counter.application_reputation_server_verdict_2,
@@ -4071,42 +4089,12 @@
     client_info.windows_build_number,
     client_info.session_count,
     client_info.session_id,
-    STRUCT(
-      client_info.attribution.campaign,
-      client_info.attribution.content,
-      client_info.attribution.medium,
-      client_info.attribution.source,
-      client_info.attribution.term,
-      client_info.attribution.ext
-    ) AS `attribution`,
-    STRUCT(client_info.distribution.name, client_info.distribution.ext) AS `distribution`
+    client_info.attribution,
+    client_info.distribution
   ) AS `client_info`,
   document_id,
   events,
-  STRUCT(
-    STRUCT(
-      metadata.geo.city,
-      metadata.geo.country,
-      metadata.geo.db_version,
-      metadata.geo.subdivision1,
-      metadata.geo.subdivision2
-    ) AS `geo`,
-    STRUCT(
-      metadata.header.date,
-      metadata.header.dnt,
-      metadata.header.x_debug_id,
-      metadata.header.x_pingsender_version,
-      metadata.header.x_source_tags,
-      metadata.header.x_telemetry_agent,
-      metadata.header.x_foxsec_ip_reputation,
-      metadata.header.x_lb_tags,
-      metadata.header.parsed_date,
-      metadata.header.parsed_x_source_tags,
-      metadata.header.parsed_x_lb_tags
-    ) AS `header`,
-    metadata.user_agent,
-    STRUCT(metadata.isp.db_version, metadata.isp.name, metadata.isp.organization) AS `isp`
-  ) AS `metadata`,
+  metadata,
   STRUCT(
     STRUCT(
       metrics.boolean.gfx_status_headless,
@@ -4215,7 +4203,8 @@
       metrics.boolean.contentblocking_tp_allowlist_convenience_enabled,
       metrics.boolean.preferences_isolated_content_processes_enabled,
       metrics.boolean.preferences_show_non_sponsor_suggestions_enabled,
-      metrics.boolean.preferences_show_sponsor_suggestions_enabled
+      metrics.boolean.preferences_show_sponsor_suggestions_enabled,
+      metrics.boolean.preferences_global_privacy_control_enabled
     ) AS `boolean`,
     STRUCT(
       metrics.counter.events_total_uri_count,
@@ -4462,1641 +4451,333 @@
       metrics.counter.media_mkv_content_count
     ) AS `counter`,
     STRUCT(
-      STRUCT(
-        metrics.custom_distribution.geckoview_document_site_origins.sum,
-        metrics.custom_distribution.geckoview_document_site_origins.values,
-        metrics.custom_distribution.geckoview_document_site_origins.count
-      ) AS `geckoview_document_site_origins`,
-      STRUCT(
-        metrics.custom_distribution.gfx_checkerboard_peak_pixel_count.sum,
-        metrics.custom_distribution.gfx_checkerboard_peak_pixel_count.values,
-        metrics.custom_distribution.gfx_checkerboard_peak_pixel_count.count
-      ) AS `gfx_checkerboard_peak_pixel_count`,
-      STRUCT(
-        metrics.custom_distribution.gfx_checkerboard_severity.sum,
-        metrics.custom_distribution.gfx_checkerboard_severity.values,
-        metrics.custom_distribution.gfx_checkerboard_severity.count
-      ) AS `gfx_checkerboard_severity`,
-      STRUCT(
-        metrics.custom_distribution.gfx_content_frame_time_from_paint.sum,
-        metrics.custom_distribution.gfx_content_frame_time_from_paint.values,
-        metrics.custom_distribution.gfx_content_frame_time_from_paint.count
-      ) AS `gfx_content_frame_time_from_paint`,
-      STRUCT(
-        metrics.custom_distribution.gfx_content_frame_time_from_vsync.sum,
-        metrics.custom_distribution.gfx_content_frame_time_from_vsync.values,
-        metrics.custom_distribution.gfx_content_frame_time_from_vsync.count
-      ) AS `gfx_content_frame_time_from_vsync`,
-      STRUCT(
-        metrics.custom_distribution.gfx_content_frame_time_with_svg.sum,
-        metrics.custom_distribution.gfx_content_frame_time_with_svg.values,
-        metrics.custom_distribution.gfx_content_frame_time_with_svg.count
-      ) AS `gfx_content_frame_time_with_svg`,
-      STRUCT(
-        metrics.custom_distribution.gfx_content_frame_time_without_resource_upload.sum,
-        metrics.custom_distribution.gfx_content_frame_time_without_resource_upload.values,
-        metrics.custom_distribution.gfx_content_frame_time_without_resource_upload.count
-      ) AS `gfx_content_frame_time_without_resource_upload`,
-      STRUCT(
-        metrics.custom_distribution.gfx_content_frame_time_without_upload.sum,
-        metrics.custom_distribution.gfx_content_frame_time_without_upload.values,
-        metrics.custom_distribution.gfx_content_frame_time_without_upload.count
-      ) AS `gfx_content_frame_time_without_upload`,
-      STRUCT(
-        metrics.custom_distribution.geckoview_per_document_site_origins.sum,
-        metrics.custom_distribution.geckoview_per_document_site_origins.values,
-        metrics.custom_distribution.geckoview_per_document_site_origins.count
-      ) AS `geckoview_per_document_site_origins`,
-      STRUCT(
-        metrics.custom_distribution.js_baseline_compile_percentage.sum,
-        metrics.custom_distribution.js_baseline_compile_percentage.values,
-        metrics.custom_distribution.js_baseline_compile_percentage.count
-      ) AS `js_baseline_compile_percentage`,
-      STRUCT(
-        metrics.custom_distribution.js_delazification_percentage.sum,
-        metrics.custom_distribution.js_delazification_percentage.values,
-        metrics.custom_distribution.js_delazification_percentage.count
-      ) AS `js_delazification_percentage`,
-      STRUCT(
-        metrics.custom_distribution.js_execution_percentage.sum,
-        metrics.custom_distribution.js_execution_percentage.values,
-        metrics.custom_distribution.js_execution_percentage.count
-      ) AS `js_execution_percentage`,
-      STRUCT(
-        metrics.custom_distribution.js_xdr_encode_percentage.sum,
-        metrics.custom_distribution.js_xdr_encode_percentage.values,
-        metrics.custom_distribution.js_xdr_encode_percentage.count
-      ) AS `js_xdr_encode_percentage`,
-      STRUCT(
-        metrics.custom_distribution.performance_clone_deserialize_items.sum,
-        metrics.custom_distribution.performance_clone_deserialize_items.values,
-        metrics.custom_distribution.performance_clone_deserialize_items.count
-      ) AS `performance_clone_deserialize_items`,
-      STRUCT(
-        metrics.custom_distribution.search_terms_group_size_distribution.sum,
-        metrics.custom_distribution.search_terms_group_size_distribution.values,
-        metrics.custom_distribution.search_terms_group_size_distribution.count
-      ) AS `search_terms_group_size_distribution`,
-      STRUCT(
-        metrics.custom_distribution.power_battery_percentage_when_user_active.sum,
-        metrics.custom_distribution.power_battery_percentage_when_user_active.values,
-        metrics.custom_distribution.power_battery_percentage_when_user_active.count
-      ) AS `power_battery_percentage_when_user_active`,
-      STRUCT(
-        metrics.custom_distribution.pdfjs_time_to_view.count,
-        metrics.custom_distribution.pdfjs_time_to_view.sum,
-        metrics.custom_distribution.pdfjs_time_to_view.values
-      ) AS `pdfjs_time_to_view`,
-      STRUCT(
-        metrics.custom_distribution.timer_thread_timers_fired_per_wakeup.count,
-        metrics.custom_distribution.timer_thread_timers_fired_per_wakeup.sum,
-        metrics.custom_distribution.timer_thread_timers_fired_per_wakeup.values
-      ) AS `timer_thread_timers_fired_per_wakeup`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_access_fixup_diff.count,
-        metrics.custom_distribution.networking_cookie_access_fixup_diff.sum,
-        metrics.custom_distribution.networking_cookie_access_fixup_diff.values
-      ) AS `networking_cookie_access_fixup_diff`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_creation_fixup_diff.count,
-        metrics.custom_distribution.networking_cookie_creation_fixup_diff.sum,
-        metrics.custom_distribution.networking_cookie_creation_fixup_diff.values
-      ) AS `networking_cookie_creation_fixup_diff`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_1_download_throughput.count,
-        metrics.custom_distribution.networking_http_1_download_throughput.sum,
-        metrics.custom_distribution.networking_http_1_download_throughput.values
-      ) AS `networking_http_1_download_throughput`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_2_download_throughput.count,
-        metrics.custom_distribution.networking_http_2_download_throughput.sum,
-        metrics.custom_distribution.networking_http_2_download_throughput.values
-      ) AS `networking_http_2_download_throughput`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_3_download_throughput.count,
-        metrics.custom_distribution.networking_http_3_download_throughput.sum,
-        metrics.custom_distribution.networking_http_3_download_throughput.values
-      ) AS `networking_http_3_download_throughput`,
-      STRUCT(
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_count_per_window_frame.count,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_count_per_window_frame.sum,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_count_per_window_frame.values
-      ) AS `cookie_banners_click_query_selector_run_count_per_window_frame`,
-      STRUCT(
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_count_per_window_top_level.count,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_count_per_window_top_level.sum,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_count_per_window_top_level.values
-      ) AS `cookie_banners_click_query_selector_run_count_per_window_top_level`,
-      STRUCT(
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_duration_per_window_frame.count,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_duration_per_window_frame.sum,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_duration_per_window_frame.values
-      ) AS `cookie_banners_click_query_selector_run_duration_per_window_frame`,
-      STRUCT(
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_duration_per_window_top_level.count,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_duration_per_window_top_level.sum,
-        metrics.custom_distribution.cookie_banners_click_query_selector_run_duration_per_window_top_level.values
-      ) AS `cookie_banners_click_query_selector_run_duration_per_window_top_level`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_1_upload_throughput.count,
-        metrics.custom_distribution.networking_http_1_upload_throughput.sum,
-        metrics.custom_distribution.networking_http_1_upload_throughput.values
-      ) AS `networking_http_1_upload_throughput`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_2_upload_throughput.count,
-        metrics.custom_distribution.networking_http_2_upload_throughput.sum,
-        metrics.custom_distribution.networking_http_2_upload_throughput.values
-      ) AS `networking_http_2_upload_throughput`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_3_upload_throughput.count,
-        metrics.custom_distribution.networking_http_3_upload_throughput.sum,
-        metrics.custom_distribution.networking_http_3_upload_throughput.values
-      ) AS `networking_http_3_upload_throughput`,
-      STRUCT(
-        metrics.custom_distribution.fog_validation_gvsv_number_of_unique_site_origins_all_tabs.count,
-        metrics.custom_distribution.fog_validation_gvsv_number_of_unique_site_origins_all_tabs.sum,
-        metrics.custom_distribution.fog_validation_gvsv_number_of_unique_site_origins_all_tabs.values
-      ) AS `fog_validation_gvsv_number_of_unique_site_origins_all_tabs`,
-      STRUCT(
-        metrics.custom_distribution.extensions_timing_event_page_running_time.count,
-        metrics.custom_distribution.extensions_timing_event_page_running_time.sum,
-        metrics.custom_distribution.extensions_timing_event_page_running_time.values
-      ) AS `extensions_timing_event_page_running_time`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_count_part_by_key.count,
-        metrics.custom_distribution.networking_cookie_count_part_by_key.sum,
-        metrics.custom_distribution.networking_cookie_count_part_by_key.values
-      ) AS `networking_cookie_count_part_by_key`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_count_partitioned.count,
-        metrics.custom_distribution.networking_cookie_count_partitioned.sum,
-        metrics.custom_distribution.networking_cookie_count_partitioned.values
-      ) AS `networking_cookie_count_partitioned`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_count_total.count,
-        metrics.custom_distribution.networking_cookie_count_total.sum,
-        metrics.custom_distribution.networking_cookie_count_total.values
-      ) AS `networking_cookie_count_total`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_count_unpart_by_key.count,
-        metrics.custom_distribution.networking_cookie_count_unpart_by_key.sum,
-        metrics.custom_distribution.networking_cookie_count_unpart_by_key.values
-      ) AS `networking_cookie_count_unpart_by_key`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_count_unpartitioned.count,
-        metrics.custom_distribution.networking_cookie_count_unpartitioned.sum,
-        metrics.custom_distribution.networking_cookie_count_unpartitioned.values
-      ) AS `networking_cookie_count_unpartitioned`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_purge_entry_max.count,
-        metrics.custom_distribution.networking_cookie_purge_entry_max.sum,
-        metrics.custom_distribution.networking_cookie_purge_entry_max.values
-      ) AS `networking_cookie_purge_entry_max`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_purge_max.count,
-        metrics.custom_distribution.networking_cookie_purge_max.sum,
-        metrics.custom_distribution.networking_cookie_purge_max.values
-      ) AS `networking_cookie_purge_max`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_1_upload_throughput_100.count,
-        metrics.custom_distribution.networking_http_1_upload_throughput_100.sum,
-        metrics.custom_distribution.networking_http_1_upload_throughput_100.values
-      ) AS `networking_http_1_upload_throughput_100`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_1_upload_throughput_10_50.count,
-        metrics.custom_distribution.networking_http_1_upload_throughput_10_50.sum,
-        metrics.custom_distribution.networking_http_1_upload_throughput_10_50.values
-      ) AS `networking_http_1_upload_throughput_10_50`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_1_upload_throughput_50_100.count,
-        metrics.custom_distribution.networking_http_1_upload_throughput_50_100.sum,
-        metrics.custom_distribution.networking_http_1_upload_throughput_50_100.values
-      ) AS `networking_http_1_upload_throughput_50_100`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_2_upload_throughput_100.count,
-        metrics.custom_distribution.networking_http_2_upload_throughput_100.sum,
-        metrics.custom_distribution.networking_http_2_upload_throughput_100.values
-      ) AS `networking_http_2_upload_throughput_100`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_2_upload_throughput_10_50.count,
-        metrics.custom_distribution.networking_http_2_upload_throughput_10_50.sum,
-        metrics.custom_distribution.networking_http_2_upload_throughput_10_50.values
-      ) AS `networking_http_2_upload_throughput_10_50`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_2_upload_throughput_50_100.count,
-        metrics.custom_distribution.networking_http_2_upload_throughput_50_100.sum,
-        metrics.custom_distribution.networking_http_2_upload_throughput_50_100.values
-      ) AS `networking_http_2_upload_throughput_50_100`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_3_upload_throughput_100.count,
-        metrics.custom_distribution.networking_http_3_upload_throughput_100.sum,
-        metrics.custom_distribution.networking_http_3_upload_throughput_100.values
-      ) AS `networking_http_3_upload_throughput_100`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_3_upload_throughput_10_50.count,
-        metrics.custom_distribution.networking_http_3_upload_throughput_10_50.sum,
-        metrics.custom_distribution.networking_http_3_upload_throughput_10_50.values
-      ) AS `networking_http_3_upload_throughput_10_50`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_3_upload_throughput_50_100.count,
-        metrics.custom_distribution.networking_http_3_upload_throughput_50_100.sum,
-        metrics.custom_distribution.networking_http_3_upload_throughput_50_100.values
-      ) AS `networking_http_3_upload_throughput_50_100`,
-      STRUCT(
-        metrics.custom_distribution.pdfjs_editing_highlight_thickness.count,
-        metrics.custom_distribution.pdfjs_editing_highlight_thickness.sum,
-        metrics.custom_distribution.pdfjs_editing_highlight_thickness.values
-      ) AS `pdfjs_editing_highlight_thickness`,
-      STRUCT(
-        metrics.custom_distribution.network_tls_early_data_bytes_written.count,
-        metrics.custom_distribution.network_tls_early_data_bytes_written.sum,
-        metrics.custom_distribution.network_tls_early_data_bytes_written.values
-      ) AS `network_tls_early_data_bytes_written`,
-      STRUCT(
-        metrics.custom_distribution.cert_compression_brotli_saved_bytes.count,
-        metrics.custom_distribution.cert_compression_brotli_saved_bytes.sum,
-        metrics.custom_distribution.cert_compression_brotli_saved_bytes.values
-      ) AS `cert_compression_brotli_saved_bytes`,
-      STRUCT(
-        metrics.custom_distribution.cert_compression_zlib_saved_bytes.count,
-        metrics.custom_distribution.cert_compression_zlib_saved_bytes.sum,
-        metrics.custom_distribution.cert_compression_zlib_saved_bytes.values
-      ) AS `cert_compression_zlib_saved_bytes`,
-      STRUCT(
-        metrics.custom_distribution.bounce_tracking_protection_num_hosts_per_purge_run.count,
-        metrics.custom_distribution.bounce_tracking_protection_num_hosts_per_purge_run.sum,
-        metrics.custom_distribution.bounce_tracking_protection_num_hosts_per_purge_run.values
-      ) AS `bounce_tracking_protection_num_hosts_per_purge_run`,
-      STRUCT(
-        metrics.custom_distribution.cert_compression_zstd_saved_bytes.count,
-        metrics.custom_distribution.cert_compression_zstd_saved_bytes.sum,
-        metrics.custom_distribution.cert_compression_zstd_saved_bytes.values
-      ) AS `cert_compression_zstd_saved_bytes`,
-      STRUCT(
-        metrics.custom_distribution.networking_cookie_chips_partition_limit_overflow.count,
-        metrics.custom_distribution.networking_cookie_chips_partition_limit_overflow.sum,
-        metrics.custom_distribution.networking_cookie_chips_partition_limit_overflow.values
-      ) AS `networking_cookie_chips_partition_limit_overflow`,
-      STRUCT(
-        metrics.custom_distribution.geolocation_accuracy.count,
-        metrics.custom_distribution.geolocation_accuracy.sum,
-        metrics.custom_distribution.geolocation_accuracy.values
-      ) AS `geolocation_accuracy`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_3_download_throughput_100.count,
-        metrics.custom_distribution.networking_http_3_download_throughput_100.sum,
-        metrics.custom_distribution.networking_http_3_download_throughput_100.values
-      ) AS `networking_http_3_download_throughput_100`,
-      STRUCT(
-        metrics.custom_distribution.networking_http_3_download_throughput_10_50.count,
-        metrics.custom_distribution.networking_http_3_download_throughput_10_50.sum,
-        metrics.custom_distribution.networking_http_3_download_throughput_10_50.values
-

⚠️ Only part of the diff is displayed.

Link to full diff

@alekhyamoz alekhyamoz added this pull request to the merge queue Oct 9, 2025
Merged via the queue into main with commit 2d56c14 Oct 9, 2025
22 checks passed
@alekhyamoz alekhyamoz deleted the feat/DENG-9250/update-firefox-app-store-territory-report-to-include-new-connector-data branch October 9, 2025 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants