Skip to content

Conversation

@travis79
Copy link
Member

@travis79 travis79 commented Nov 5, 2025

Description

Related Tickets & Documents

  • DENG-XXXX
  • DSRE-XXXX

Reviewer, please follow this checklist

This adds the following Glean Health Scorecard related views and derived tables for firefox_desktop:
- `telemetry_health_glean_errors`
- `telemetry_health_ping_latency`
- `telemetry_health_ping_volume_p80`
- `telemetry_health_sequence_holes`
This adds the following Glean Health Scorecard related views and derived tables for fenix:
- `telemetry_health_glean_errors`
- `telemetry_health_ping_latency`
- `telemetry_health_ping_volume_p80`
- `telemetry_health_sequence_holes`
@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

This adds the following Glean Health Scorecard related views and derived tables for firefox_ios:
- `telemetry_health_glean_errors`
- `telemetry_health_ping_latency`
- `telemetry_health_ping_volume_p80`
- `telemetry_health_sequence_holes`
@dataops-ci-bot
Copy link

Integration report for "Add firefox_ios derived tables and views for health scorecards"

sql.diff

Click to expand!
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/dags/bqetl_default.py /tmp/workspace/generated-sql/dags/bqetl_default.py
--- /tmp/workspace/main-generated-sql/dags/bqetl_default.py	2025-11-05 18:43:30.000000000 +0000
+++ /tmp/workspace/generated-sql/dags/bqetl_default.py	2025-11-05 18:47:20.000000000 +0000
@@ -53,6 +53,19 @@
     catchup=False,
 ) as dag:
 
+    wait_for_copy_deduplicate_all = ExternalTaskSensor(
+        task_id="wait_for_copy_deduplicate_all",
+        external_dag_id="copy_deduplicate",
+        external_task_id="copy_deduplicate_all",
+        execution_delta=datetime.timedelta(seconds=10800),
+        check_existence=True,
+        mode="reschedule",
+        poke_interval=datetime.timedelta(minutes=5),
+        allowed_states=ALLOWED_STATES,
+        failed_states=FAILED_STATES,
+        pool="DATA_ENG_EXTERNALTASKSENSOR",
+    )
+
     analysis__bqetl_default_task__v1 = bigquery_etl_query(
         #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
         task_id="analysis__bqetl_default_task__v1",
@@ -64,3 +77,195 @@
         date_partition_parameter="submission_date",
         depends_on_past=False,
     )
+
+    fenix_derived__telemetry_health_glean_errors__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="fenix_derived__telemetry_health_glean_errors__v1",
+        destination_table="telemetry_health_glean_errors_v1",
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    fenix_derived__telemetry_health_ping_latency__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="fenix_derived__telemetry_health_ping_latency__v1",
+        destination_table="telemetry_health_ping_latency_v1",
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    fenix_derived__telemetry_health_ping_volume_p80__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="fenix_derived__telemetry_health_ping_volume_p80__v1",
+        destination_table="telemetry_health_ping_volume_p80_v1",
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    fenix_derived__telemetry_health_sequence_holes__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="fenix_derived__telemetry_health_sequence_holes__v1",
+        destination_table="telemetry_health_sequence_holes_v1",
+        dataset_id="fenix_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_desktop_derived__telemetry_health_glean_errors__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_desktop_derived__telemetry_health_glean_errors__v1",
+        destination_table="telemetry_health_glean_errors_v1",
+        dataset_id="firefox_desktop_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_desktop_derived__telemetry_health_ping_latency__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_desktop_derived__telemetry_health_ping_latency__v1",
+        destination_table="telemetry_health_ping_latency_v1",
+        dataset_id="firefox_desktop_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_desktop_derived__telemetry_health_ping_volume_p80__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_desktop_derived__telemetry_health_ping_volume_p80__v1",
+        destination_table="telemetry_health_ping_volume_p80_v1",
+        dataset_id="firefox_desktop_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_desktop_derived__telemetry_health_sequence_holes__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_desktop_derived__telemetry_health_sequence_holes__v1",
+        destination_table="telemetry_health_sequence_holes_v1",
+        dataset_id="firefox_desktop_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_ios_derived__telemetry_health_glean_errors__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_ios_derived__telemetry_health_glean_errors__v1",
+        destination_table="telemetry_health_glean_errors_v1",
+        dataset_id="firefox_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_ios_derived__telemetry_health_ping_latency__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_ios_derived__telemetry_health_ping_latency__v1",
+        destination_table="telemetry_health_ping_latency_v1",
+        dataset_id="firefox_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_ios_derived__telemetry_health_ping_volume_p80__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_ios_derived__telemetry_health_ping_volume_p80__v1",
+        destination_table="telemetry_health_ping_volume_p80_v1",
+        dataset_id="firefox_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    firefox_ios_derived__telemetry_health_sequence_holes__v1 = bigquery_etl_query(
+        #### WARNING: This task has been scheduled in the default DAG. It can be moved to a more suitable DAG using `bqetl query schedule`.
+        task_id="firefox_ios_derived__telemetry_health_sequence_holes__v1",
+        destination_table="telemetry_health_sequence_holes_v1",
+        dataset_id="firefox_ios_derived",
+        project_id="moz-fx-data-shared-prod",
+        owner="[email protected]",
+        email=["[email protected]", "[email protected]"],
+        date_partition_parameter="submission_date",
+        depends_on_past=False,
+    )
+
+    fenix_derived__telemetry_health_glean_errors__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    fenix_derived__telemetry_health_ping_latency__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    fenix_derived__telemetry_health_ping_volume_p80__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    fenix_derived__telemetry_health_sequence_holes__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_desktop_derived__telemetry_health_glean_errors__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_desktop_derived__telemetry_health_ping_latency__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_desktop_derived__telemetry_health_ping_volume_p80__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_desktop_derived__telemetry_health_sequence_holes__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_ios_derived__telemetry_health_glean_errors__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_ios_derived__telemetry_health_ping_latency__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_ios_derived__telemetry_health_ping_volume_p80__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
+
+    firefox_ios_derived__telemetry_health_sequence_holes__v1.set_upstream(
+        wait_for_copy_deduplicate_all
+    )
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix: telemetry_health_glean_errors
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix: telemetry_health_ping_latency
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix: telemetry_health_ping_volume_p80
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix: telemetry_health_sequence_holes
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived: telemetry_health_glean_errors_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived: telemetry_health_ping_latency_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived: telemetry_health_ping_volume_p80_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived: telemetry_health_sequence_holes_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop: telemetry_health_glean_errors
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop: telemetry_health_ping_latency
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop: telemetry_health_ping_volume_p80
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop: telemetry_health_sequence_holes
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived: telemetry_health_glean_errors_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived: telemetry_health_ping_latency_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived: telemetry_health_ping_volume_p80_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived: telemetry_health_sequence_holes_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios: telemetry_health_glean_errors
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios: telemetry_health_ping_latency
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios: telemetry_health_ping_volume_p80
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios: telemetry_health_sequence_holes
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios_derived: telemetry_health_glean_errors_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios_derived: telemetry_health_ping_latency_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios_derived: telemetry_health_ping_volume_p80_v1
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios_derived: telemetry_health_sequence_holes_v1
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Glean Errors
+description: |-
+  Counts the number of Glean metrics with recording errors that exceed 1% of clients per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.fenix_derived.telemetry_health_glean_errors_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_glean_errors/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.fenix.telemetry_health_glean_errors`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.fenix_derived.telemetry_health_glean_errors_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Ping Latency
+description: |-
+  Reports latency percentiles (p95, median) for collection-to-submission, submission-to-ingestion, and collection-to-ingestion for telemetry pings per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.fenix_derived.telemetry_health_ping_latency_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_latency/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.fenix.telemetry_health_ping_latency`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.fenix_derived.telemetry_health_ping_latency_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Ping Volume 80th Percentile
+description: |-
+  Calculates the 80th percentile of ping volume per client per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.fenix_derived.telemetry_health_ping_volume_p80_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_ping_volume_p80/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.fenix.telemetry_health_ping_volume_p80`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.fenix_derived.telemetry_health_ping_volume_p80_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Sequence Holes
+description: |-
+  Counts the number of clients experiencing sequence holes in their Glean pings per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.fenix_derived.telemetry_health_sequence_holes_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/telemetry_health_sequence_holes/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.fenix.telemetry_health_sequence_holes`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.fenix_derived.telemetry_health_sequence_holes_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Glean Errors
+description: |-
+  Counts the number of Glean metrics with recording errors that exceed 1% of clients per day.
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.fenix.metrics
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,60 @@
+-- Query for telemetry health glean errors
+WITH sample AS (
+  SELECT
+    client_info.client_id AS client_id,
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    metrics.labeled_counter.glean_error_invalid_value AS ev,
+    metrics.labeled_counter.glean_error_invalid_label AS el,
+    metrics.labeled_counter.glean_error_invalid_state AS es,
+    metrics.labeled_counter.glean_error_invalid_overflow AS eo
+  FROM
+    `moz-fx-data-shared-prod.fenix.metrics`
+  WHERE
+    sample_id = 0
+    AND submission_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
+),
+-- Denominator: distinct clients per app and day
+app_day_totals AS (
+  SELECT
+    submission_date,
+    normalized_channel,
+    COUNT(DISTINCT client_id) AS total_clients
+  FROM
+    sample
+  GROUP BY
+    submission_date,
+    normalized_channel
+),
+-- Numerator per metric key: distinct clients with any error for that key on that day
+metric_clients_by_day AS (
+  SELECT
+    s.normalized_channel,
+    s.submission_date,
+    e.key AS metric_key,
+    COUNT(DISTINCT s.client_id) AS clients_with_error
+  FROM
+    sample AS s
+  JOIN
+    UNNEST(ARRAY_CONCAT(IFNULL(ev, []), IFNULL(el, []), IFNULL(es, []), IFNULL(eo, []))) AS e
+  WHERE
+    NOT STARTS_WITH(e.key, 'glean')
+    AND NOT STARTS_WITH(e.key, 'fog')
+    AND e.value > 0
+  GROUP BY
+    s.submission_date,
+    s.normalized_channel,
+    metric_key
+)
+SELECT
+  m.normalized_channel,
+  m.submission_date,
+  COUNTIF(SAFE_DIVIDE(m.clients_with_error, t.total_clients) > 0.01) AS num_metrics_over_1pct
+FROM
+  metric_clients_by_day AS m
+JOIN
+  app_day_totals AS t
+  USING (submission_date, normalized_channel)
+GROUP BY
+  m.submission_date,
+  m.normalized_channel
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_glean_errors_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,10 @@
+fields:
+- name: normalized_channel
+  type: STRING
+  mode: NULLABLE
+- name: submission_date
+  type: DATE
+  mode: NULLABLE
+- name: num_metrics_over_1pct
+  type: INTEGER
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Ping Latency
+description: |-
+  Reports latency percentiles (p95, median) for collection-to-submission, submission-to-ingestion, and collection-to-ingestion for telemetry pings per day.
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.fenix.baseline
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,44 @@
+WITH sample AS (
+  SELECT
+    normalized_channel,
+    metadata.header.parsed_date,
+    ping_info.parsed_end_time,
+    submission_timestamp,
+  FROM
+    `moz-fx-data-shared-prod.fenix.baseline`
+  WHERE
+    sample_id = 0
+    AND DATE(submission_timestamp) >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
+),
+latency_quantiles AS (
+  SELECT
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    APPROX_QUANTILES(
+      TIMESTAMP_DIFF(parsed_date, parsed_end_time, SECOND),
+      100
+    ) AS collection_to_submission_latency,
+    APPROX_QUANTILES(
+      TIMESTAMP_DIFF(submission_timestamp, parsed_date, SECOND),
+      100
+    ) AS submission_to_ingestion_latency,
+    APPROX_QUANTILES(
+      TIMESTAMP_DIFF(submission_timestamp, parsed_end_time, SECOND),
+      100
+    ) AS collection_to_ingestion_latency
+  FROM
+    sample
+  GROUP BY
+    ALL
+)
+SELECT
+  normalized_channel,
+  submission_date,
+  collection_to_submission_latency[OFFSET(95)] AS collection_to_submission_latency_p95,
+  collection_to_submission_latency[OFFSET(50)] AS collection_to_submission_latency_median,
+  submission_to_ingestion_latency[OFFSET(95)] AS submission_to_ingestion_latency_p95,
+  submission_to_ingestion_latency[OFFSET(50)] AS submission_to_ingestion_latency_median,
+  collection_to_ingestion_latency[OFFSET(95)] AS collection_to_ingestion_latency_p95,
+  collection_to_ingestion_latency[OFFSET(50)] AS collection_to_ingestion_latency_median
+FROM
+  latency_quantiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_latency_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,25 @@
+fields:
+  - name: normalized_channel
+    type: STRING
+    mode: REQUIRED
+  - name: submission_date
+    type: DATE
+    mode: REQUIRED
+  - name: collection_to_submission_latency_p95
+    type: INTEGER
+    mode: NULLABLE
+  - name: collection_to_submission_latency_median
+    type: INTEGER
+    mode: NULLABLE
+  - name: submission_to_ingestion_latency_p95
+    type: INTEGER
+    mode: NULLABLE
+  - name: submission_to_ingestion_latency_median
+    type: INTEGER
+    mode: NULLABLE
+  - name: collection_to_ingestion_latency_p95
+    type: INTEGER
+    mode: NULLABLE
+  - name: collection_to_ingestion_latency_median
+    type: INTEGER
+    mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Ping Volume 80th Percentile
+description: |-
+  Calculates the 80th percentile of ping volume per client per day.
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.fenix.baseline
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,32 @@
+-- Query for telemetry health ping volume p80
+WITH sample AS (
+  SELECT
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    COUNT(1) AS ping_count
+  FROM
+    `moz-fx-data-shared-prod.fenix.baseline`
+  WHERE
+    sample_id = 0
+    AND DATE(submission_timestamp) >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
+  GROUP BY
+    normalized_channel,
+    submission_date,
+    client_info.client_id
+),
+ping_count_quantiles AS (
+  SELECT
+    normalized_channel,
+    submission_date,
+    APPROX_QUANTILES(ping_count, 100) AS quantiles,
+  FROM
+    sample
+  GROUP BY
+    ALL
+)
+SELECT
+  normalized_channel,
+  submission_date,
+  quantiles[OFFSET(80)] AS p80
+FROM
+  ping_count_quantiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_ping_volume_p80_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,10 @@
+fields:
+  - name: normalized_channel
+    type: STRING
+    mode: REQUIRED
+  - name: submission_date
+    type: DATE
+    mode: REQUIRED
+  - name: p80
+    type: INTEGER
+    mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Sequence Holes
+description: |-
+  Counts the number of clients experiencing sequence holes in their Glean pings per day..
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.fenix.baseline
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,51 @@
+-- Query for telemetry health sequence holes
+WITH sample AS (
+  SELECT
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    client_info.client_id,
+    ping_info.seq AS sequence_number
+  FROM
+    `moz-fx-data-shared-prod.fenix.baseline`
+  WHERE
+    sample_id = 0
+    AND DATE(submission_timestamp) >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
+),
+lagged AS (
+  SELECT
+    normalized_channel,
+    submission_date,
+    client_id,
+    sequence_number,
+    LAG(sequence_number) OVER (
+      PARTITION BY
+        submission_date,
+        client_id
+      ORDER BY
+        sequence_number
+    ) AS prev_seq
+  FROM
+    sample
+),
+per_client_day AS (
+  SELECT
+    normalized_channel,
+    submission_date,
+    client_id,
+    -- A client has a gap on that date if any step isn't prev+1.
+    LOGICAL_OR(prev_seq IS NOT NULL AND sequence_number != prev_seq + 1) AS has_gap
+  FROM
+    lagged
+  GROUP BY
+    ALL
+)
+SELECT
+  normalized_channel,
+  submission_date,
+  COUNTIF(has_gap) AS clients_with_sequence_gaps_1pct,
+  COUNT(DISTINCT client_id) AS total_unique_clients_1pct,
+  SAFE_DIVIDE(COUNTIF(has_gap), COUNT(DISTINCT client_id)) * 100 AS pct_clients_with_gaps
+FROM
+  per_client_day
+GROUP BY
+  ALL
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix_derived/telemetry_health_sequence_holes_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,16 @@
+fields:
+  - name: normalized_channel
+    type: STRING
+    mode: REQUIRED
+  - name: submission_date
+    type: DATE
+    mode: REQUIRED
+  - name: clients_with_sequence_gaps_1pct
+    type: INTEGER
+    mode: NULLABLE
+  - name: total_unique_clients_1pct
+    type: INTEGER
+    mode: NULLABLE
+  - name: pct_clients_with_gaps
+    type: FLOAT
+    mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/metadata.yaml	2025-11-05 18:40:13.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Glean Errors
+description: |-
+  Counts the number of Glean metrics with recording errors that exceed 1% of clients per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_glean_errors_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_glean_errors/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.firefox_desktop.telemetry_health_glean_errors`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_glean_errors_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/metadata.yaml	2025-11-05 18:40:13.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Ping Latency
+description: |-
+  Reports latency percentiles (p95, median) for collection-to-submission, submission-to-ingestion, and collection-to-ingestion for telemetry pings per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_ping_latency_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_latency/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.firefox_desktop.telemetry_health_ping_latency`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_ping_latency_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/metadata.yaml	2025-11-05 18:40:13.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Ping Volume 80th Percentile
+description: |-
+  Calculates the 80th percentile of ping volume per client per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_ping_volume_p80_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_ping_volume_p80/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.firefox_desktop.telemetry_health_ping_volume_p80`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_ping_volume_p80_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/metadata.yaml	2025-11-05 18:40:13.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Sequence Holes
+description: |-
+  Counts the number of clients experiencing sequence holes in their Glean pings per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_sequence_holes_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/telemetry_health_sequence_holes/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.firefox_desktop.telemetry_health_sequence_holes`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.firefox_desktop_derived.telemetry_health_sequence_holes_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Glean Errors
+description: |-
+  Counts the number of Glean metrics with recording errors that exceed 1% of clients per day.
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.firefox_desktop.metrics
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,60 @@
+-- Query for telemetry health glean errors
+WITH sample AS (
+  SELECT
+    client_info.client_id AS client_id,
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    metrics.labeled_counter.glean_error_invalid_value AS ev,
+    metrics.labeled_counter.glean_error_invalid_label AS el,
+    metrics.labeled_counter.glean_error_invalid_state AS es,
+    metrics.labeled_counter.glean_error_invalid_overflow AS eo
+  FROM
+    `moz-fx-data-shared-prod.firefox_desktop.metrics`
+  WHERE
+    sample_id = 0
+    AND submission_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
+),
+-- Denominator: distinct clients per app and day
+app_day_totals AS (
+  SELECT
+    submission_date,
+    normalized_channel,
+    COUNT(DISTINCT client_id) AS total_clients
+  FROM
+    sample
+  GROUP BY
+    submission_date,
+    normalized_channel
+),
+-- Numerator per metric key: distinct clients with any error for that key on that day
+metric_clients_by_day AS (
+  SELECT
+    s.normalized_channel,
+    s.submission_date,
+    e.key AS metric_key,
+    COUNT(DISTINCT s.client_id) AS clients_with_error
+  FROM
+    sample AS s
+  JOIN
+    UNNEST(ARRAY_CONCAT(IFNULL(ev, []), IFNULL(el, []), IFNULL(es, []), IFNULL(eo, []))) AS e
+  WHERE
+    NOT STARTS_WITH(e.key, 'glean')
+    AND NOT STARTS_WITH(e.key, 'fog')
+    AND e.value > 0
+  GROUP BY
+    s.submission_date,
+    s.normalized_channel,
+    metric_key
+)
+SELECT
+  m.normalized_channel,
+  m.submission_date,
+  COUNTIF(SAFE_DIVIDE(m.clients_with_error, t.total_clients) > 0.01) AS num_metrics_over_1pct
+FROM
+  metric_clients_by_day AS m
+JOIN
+  app_day_totals AS t
+  USING (submission_date, normalized_channel)
+GROUP BY
+  m.submission_date,
+  m.normalized_channel
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_glean_errors_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,10 @@
+fields:
+- name: normalized_channel
+  type: STRING
+  mode: NULLABLE
+- name: submission_date
+  type: DATE
+  mode: NULLABLE
+- name: num_metrics_over_1pct
+  type: INTEGER
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/metadata.yaml	2025-11-05 18:40:11.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Ping Latency
+description: |-
+  Reports latency percentiles (p95, median) for collection-to-submission, submission-to-ingestion, and collection-to-ingestion for telemetry pings per day.
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.firefox_desktop.baseline
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,44 @@
+WITH sample AS (
+  SELECT
+    normalized_channel,
+    metadata.header.parsed_date,
+    ping_info.parsed_end_time,
+    submission_timestamp,
+  FROM
+    `moz-fx-data-shared-prod.firefox_desktop.baseline`
+  WHERE
+    sample_id = 0
+    AND DATE(submission_timestamp) >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
+),
+latency_quantiles AS (
+  SELECT
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    APPROX_QUANTILES(
+      TIMESTAMP_DIFF(parsed_date, parsed_end_time, SECOND),
+      100
+    ) AS collection_to_submission_latency,
+    APPROX_QUANTILES(
+      TIMESTAMP_DIFF(submission_timestamp, parsed_date, SECOND),
+      100
+    ) AS submission_to_ingestion_latency,
+    APPROX_QUANTILES(
+      TIMESTAMP_DIFF(submission_timestamp, parsed_end_time, SECOND),
+      100
+    ) AS collection_to_ingestion_latency
+  FROM
+    sample
+  GROUP BY
+    ALL
+)
+SELECT
+  normalized_channel,
+  submission_date,
+  collection_to_submission_latency[OFFSET(95)] AS collection_to_submission_latency_p95,
+  collection_to_submission_latency[OFFSET(50)] AS collection_to_submission_latency_median,
+  submission_to_ingestion_latency[OFFSET(95)] AS submission_to_ingestion_latency_p95,
+  submission_to_ingestion_latency[OFFSET(50)] AS submission_to_ingestion_latency_median,
+  collection_to_ingestion_latency[OFFSET(95)] AS collection_to_ingestion_latency_p95,
+  collection_to_ingestion_latency[OFFSET(50)] AS collection_to_ingestion_latency_median
+FROM
+  latency_quantiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_latency_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,25 @@
+fields:
+  - name: normalized_channel
+    type: STRING
+    mode: REQUIRED
+  - name: submission_date
+    type: DATE
+    mode: REQUIRED
+  - name: collection_to_submission_latency_p95
+    type: INTEGER
+    mode: NULLABLE
+  - name: collection_to_submission_latency_median
+    type: INTEGER
+    mode: NULLABLE
+  - name: submission_to_ingestion_latency_p95
+    type: INTEGER
+    mode: NULLABLE
+  - name: submission_to_ingestion_latency_median
+    type: INTEGER
+    mode: NULLABLE
+  - name: collection_to_ingestion_latency_p95
+    type: INTEGER
+    mode: NULLABLE
+  - name: collection_to_ingestion_latency_median
+    type: INTEGER
+    mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/metadata.yaml	2025-11-05 18:40:11.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Ping Volume 80th Percentile
+description: |-
+  Calculates the 80th percentile of ping volume per client per day.
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.firefox_desktop.baseline
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,32 @@
+-- Query for telemetry health ping volume p80
+WITH sample AS (
+  SELECT
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    COUNT(1) AS ping_count
+  FROM
+    `moz-fx-data-shared-prod.firefox_desktop.baseline`
+  WHERE
+    sample_id = 0
+    AND DATE(submission_timestamp) >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
+  GROUP BY
+    normalized_channel,
+    submission_date,
+    client_info.client_id
+),
+ping_count_quantiles AS (
+  SELECT
+    normalized_channel,
+    submission_date,
+    APPROX_QUANTILES(ping_count, 100) AS quantiles,
+  FROM
+    sample
+  GROUP BY
+    ALL
+)
+SELECT
+  normalized_channel,
+  submission_date,
+  quantiles[OFFSET(80)] AS p80
+FROM
+  ping_count_quantiles
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_ping_volume_p80_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,10 @@
+fields:
+  - name: normalized_channel
+    type: STRING
+    mode: REQUIRED
+  - name: submission_date
+    type: DATE
+    mode: REQUIRED
+  - name: p80
+    type: INTEGER
+    mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,27 @@
+friendly_name: Telemetry Health Sequence Holes
+description: |-
+  Counts the number of clients experiencing sequence holes in their Glean pings per day..
+owners:
+- [email protected]
+labels:
+  incremental: true
+  owner1: tlong
+  dag: bqetl_default
+scheduling:
+  dag_name: bqetl_default
+bigquery:
+  time_partitioning:
+    type: day
+    field: submission_date
+    require_partition_filter: true
+    expiration_days: 775.0
+  range_partitioning: null
+  clustering: null
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  query.sql:
+  - moz-fx-data-shared-prod.firefox_desktop.baseline
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/query.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/query.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/query.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/query.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,51 @@
+-- Query for telemetry health sequence holes
+WITH sample AS (
+  SELECT
+    normalized_channel,
+    DATE(submission_timestamp) AS submission_date,
+    client_info.client_id,
+    ping_info.seq AS sequence_number
+  FROM
+    `moz-fx-data-shared-prod.firefox_desktop.baseline`
+  WHERE
+    sample_id = 0
+    AND DATE(submission_timestamp) >= DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
+),
+lagged AS (
+  SELECT
+    normalized_channel,
+    submission_date,
+    client_id,
+    sequence_number,
+    LAG(sequence_number) OVER (
+      PARTITION BY
+        submission_date,
+        client_id
+      ORDER BY
+        sequence_number
+    ) AS prev_seq
+  FROM
+    sample
+),
+per_client_day AS (
+  SELECT
+    normalized_channel,
+    submission_date,
+    client_id,
+    -- A client has a gap on that date if any step isn't prev+1.
+    LOGICAL_OR(prev_seq IS NOT NULL AND sequence_number != prev_seq + 1) AS has_gap
+  FROM
+    lagged
+  GROUP BY
+    ALL
+)
+SELECT
+  normalized_channel,
+  submission_date,
+  COUNTIF(has_gap) AS clients_with_sequence_gaps_1pct,
+  COUNT(DISTINCT client_id) AS total_unique_clients_1pct,
+  SAFE_DIVIDE(COUNTIF(has_gap), COUNT(DISTINCT client_id)) * 100 AS pct_clients_with_gaps
+FROM
+  per_client_day
+GROUP BY
+  ALL
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop_derived/telemetry_health_sequence_holes_v1/schema.yaml	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,16 @@
+fields:
+  - name: normalized_channel
+    type: STRING
+    mode: REQUIRED
+  - name: submission_date
+    type: DATE
+    mode: REQUIRED
+  - name: clients_with_sequence_gaps_1pct
+    type: INTEGER
+    mode: NULLABLE
+  - name: total_unique_clients_1pct
+    type: INTEGER
+    mode: NULLABLE
+  - name: pct_clients_with_gaps
+    type: FLOAT
+    mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Glean Errors
+description: |-
+  Counts the number of Glean metrics with recording errors that exceed 1% of clients per day.
+owners:
+- [email protected]
+labels:
+  owner: tlong
+  owner1: tlong
+workgroup_access:
+- role: roles/bigquery.dataViewer
+  members:
+  - workgroup:mozilla-confidential
+references:
+  view.sql:
+  - moz-fx-data-shared-prod.firefox_ios_derived.telemetry_health_glean_errors_v1
+require_column_descriptions: false
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/view.sql	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_glean_errors/view.sql	2025-11-05 18:36:48.000000000 +0000
@@ -0,0 +1,7 @@
+CREATE OR REPLACE VIEW
+  `moz-fx-data-shared-prod.firefox_ios.telemetry_health_glean_errors`
+AS
+SELECT
+  *
+FROM
+  `moz-fx-data-shared-prod.firefox_ios_derived.telemetry_health_glean_errors_v1`
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_ping_latency/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_ping_latency/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_ping_latency/metadata.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_ios/telemetry_health_ping_latency/metadata.yaml	2025-11-05 18:40:12.000000000 +0000
@@ -0,0 +1,16 @@
+friendly_name: Telemetry Health Ping Latency
+descri

⚠️ Only part of the diff is displayed.

Link to full diff

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.

3 participants