Skip to content

[DENG-11122] Don't skip generation of deprecated apps#1441

Merged
scholtzan merged 1 commit into
mainfrom
update-deprecation-handling
May 19, 2026
Merged

[DENG-11122] Don't skip generation of deprecated apps#1441
scholtzan merged 1 commit into
mainfrom
update-deprecation-handling

Conversation

@scholtzan
Copy link
Copy Markdown
Contributor

@scholtzan scholtzan commented May 15, 2026

https://mozilla-hub.atlassian.net/browse/DENG-11122

We had a recent case where deprecating mozilla_vpn resulted in various artifacts not being generated anymore, which broke lookml validation and existing . See #1438

This PR removes the logic that skips generation for deprecated apps. Instead these apps need to leverage the disallow-namespaces.yaml after going through the deprecation process.

Depends on mozilla/bigquery-etl#9374

Comment on lines +3 to +9
- bergamot
- experimenter_backend
- firefox_echo_show
- firefox_fire_tv
- firefox_reality
- firefox_reality_pc
- firefox_translations
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

these apps are deprecated

@github-actions
Copy link
Copy Markdown

Integration report for "this commit"

lookml.diff

Click to expand!
Only in /tmp/workspace/looker-hub/: bergamot
Only in /tmp/workspace/looker-hub/firefox_ios: dashboards
Only in /tmp/workspace/looker-hub/: firefox_translations
Only in /tmp/workspace/looker-hub/marketing: datagroups
Only in /tmp/workspace/generated-lookml/monitoring/datagroups: probe_scraper_applications_last_updated.datagroup.lkml
Only in /tmp/workspace/generated-lookml/monitoring/explores: probe_scraper_applications.explore.lkml
Only in /tmp/workspace/generated-lookml/monitoring/views: probe_scraper_applications.view.lkml
Only in /tmp/workspace/looker-hub/search_private/datagroups: search_term_data_validation_reports_last_updated.datagroup.lkml
Only in /tmp/workspace/looker-hub/search_private/datagroups: search_term_sanitization_job_metadata_daily_last_updated.datagroup.lkml
Only in /tmp/workspace/looker-hub/: user_journey
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/datagroups/custom_last_updated.datagroup.lkml /tmp/workspace/generated-lookml/bergamot/datagroups/custom_last_updated.datagroup.lkml
--- /tmp/workspace/looker-hub/bergamot/datagroups/custom_last_updated.datagroup.lkml	2026-05-15 20:19:01.603797690 +0000
+++ /tmp/workspace/generated-lookml/bergamot/datagroups/custom_last_updated.datagroup.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-# *Do not manually modify this file*
-
-# This file has been generated via https://github.com/mozilla/lookml-generator
-
-# Using a datagroup in an Explore: https://cloud.google.com/looker/docs/reference/param-explore-persist-with
-# Using a datagroup in a derived table: https://cloud.google.com/looker/docs/reference/param-view-datagroup-trigger
-
-datagroup: custom_last_updated {
-  label: "custom Last Updated"
-  sql_trigger: SELECT MAX(storage_last_modified_time)
-    FROM (
-        
-    SELECT MAX(storage_last_modified_time) AS storage_last_modified_time
-    FROM `moz-fx-data-shared-prod`.`region-us`.INFORMATION_SCHEMA.TABLE_STORAGE
-    WHERE (table_schema = 'org_mozilla_bergamot_stable' AND table_name = 'custom_v1')
-
-    ) ;;
-  description: "Updates for custom when referenced tables are modified."
-  max_cache_age: "24 hours"
-}
\ No newline at end of file
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/datagroups/custom_table_last_updated.datagroup.lkml /tmp/workspace/generated-lookml/bergamot/datagroups/custom_table_last_updated.datagroup.lkml
--- /tmp/workspace/looker-hub/bergamot/datagroups/custom_table_last_updated.datagroup.lkml	2026-05-15 20:19:01.603832953 +0000
+++ /tmp/workspace/generated-lookml/bergamot/datagroups/custom_table_last_updated.datagroup.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-# *Do not manually modify this file*
-
-# This file has been generated via https://github.com/mozilla/lookml-generator
-
-# Using a datagroup in an Explore: https://cloud.google.com/looker/docs/reference/param-explore-persist-with
-# Using a datagroup in a derived table: https://cloud.google.com/looker/docs/reference/param-view-datagroup-trigger
-
-datagroup: custom_table_last_updated {
-  label: "custom_table Last Updated"
-  sql_trigger: SELECT MAX(storage_last_modified_time)
-    FROM (
-        
-    SELECT MAX(storage_last_modified_time) AS storage_last_modified_time
-    FROM `moz-fx-data-shared-prod`.`region-us`.INFORMATION_SCHEMA.TABLE_STORAGE
-    WHERE (table_schema = 'org_mozilla_bergamot_stable' AND table_name = 'custom_v1')
-
-    ) ;;
-  description: "Updates for custom_table when referenced tables are modified."
-  max_cache_age: "24 hours"
-}
\ No newline at end of file
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/datagroups/deletion_request_last_updated.datagroup.lkml /tmp/workspace/generated-lookml/bergamot/datagroups/deletion_request_last_updated.datagroup.lkml
--- /tmp/workspace/looker-hub/bergamot/datagroups/deletion_request_last_updated.datagroup.lkml	2026-05-15 20:19:01.603863138 +0000
+++ /tmp/workspace/generated-lookml/bergamot/datagroups/deletion_request_last_updated.datagroup.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-# *Do not manually modify this file*
-
-# This file has been generated via https://github.com/mozilla/lookml-generator
-
-# Using a datagroup in an Explore: https://cloud.google.com/looker/docs/reference/param-explore-persist-with
-# Using a datagroup in a derived table: https://cloud.google.com/looker/docs/reference/param-view-datagroup-trigger
-
-datagroup: deletion_request_last_updated {
-  label: "deletion_request Last Updated"
-  sql_trigger: SELECT MAX(storage_last_modified_time)
-    FROM (
-        
-    SELECT MAX(storage_last_modified_time) AS storage_last_modified_time
-    FROM `moz-fx-data-shared-prod`.`region-us`.INFORMATION_SCHEMA.TABLE_STORAGE
-    WHERE (table_schema = 'org_mozilla_bergamot_stable' AND table_name = 'deletion_request_v1')
-
-    ) ;;
-  description: "Updates for deletion_request when referenced tables are modified."
-  max_cache_age: "24 hours"
-}
\ No newline at end of file
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/datagroups/deletion_request_table_last_updated.datagroup.lkml /tmp/workspace/generated-lookml/bergamot/datagroups/deletion_request_table_last_updated.datagroup.lkml
--- /tmp/workspace/looker-hub/bergamot/datagroups/deletion_request_table_last_updated.datagroup.lkml	2026-05-15 20:19:01.603893563 +0000
+++ /tmp/workspace/generated-lookml/bergamot/datagroups/deletion_request_table_last_updated.datagroup.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-# *Do not manually modify this file*
-
-# This file has been generated via https://github.com/mozilla/lookml-generator
-
-# Using a datagroup in an Explore: https://cloud.google.com/looker/docs/reference/param-explore-persist-with
-# Using a datagroup in a derived table: https://cloud.google.com/looker/docs/reference/param-view-datagroup-trigger
-
-datagroup: deletion_request_table_last_updated {
-  label: "deletion_request_table Last Updated"
-  sql_trigger: SELECT MAX(storage_last_modified_time)
-    FROM (
-        
-    SELECT MAX(storage_last_modified_time) AS storage_last_modified_time
-    FROM `moz-fx-data-shared-prod`.`region-us`.INFORMATION_SCHEMA.TABLE_STORAGE
-    WHERE (table_schema = 'org_mozilla_bergamot_stable' AND table_name = 'deletion_request_v1')
-
-    ) ;;
-  description: "Updates for deletion_request_table when referenced tables are modified."
-  max_cache_age: "24 hours"
-}
\ No newline at end of file
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/datagroups/events_table_last_updated.datagroup.lkml /tmp/workspace/generated-lookml/bergamot/datagroups/events_table_last_updated.datagroup.lkml
--- /tmp/workspace/looker-hub/bergamot/datagroups/events_table_last_updated.datagroup.lkml	2026-05-15 20:19:01.603923809 +0000
+++ /tmp/workspace/generated-lookml/bergamot/datagroups/events_table_last_updated.datagroup.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-# *Do not manually modify this file*
-
-# This file has been generated via https://github.com/mozilla/lookml-generator
-
-# Using a datagroup in an Explore: https://cloud.google.com/looker/docs/reference/param-explore-persist-with
-# Using a datagroup in a derived table: https://cloud.google.com/looker/docs/reference/param-view-datagroup-trigger
-
-datagroup: events_table_last_updated {
-  label: "events_table Last Updated"
-  sql_trigger: SELECT MAX(storage_last_modified_time)
-    FROM (
-        
-    SELECT MAX(storage_last_modified_time) AS storage_last_modified_time
-    FROM `moz-fx-data-shared-prod`.`region-us`.INFORMATION_SCHEMA.TABLE_STORAGE
-    WHERE (table_schema = 'org_mozilla_bergamot_stable' AND table_name = 'events_v1')
-
-    ) ;;
-  description: "Updates for events_table when referenced tables are modified."
-  max_cache_age: "24 hours"
-}
\ No newline at end of file
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/explores/custom.explore.lkml /tmp/workspace/generated-lookml/bergamot/explores/custom.explore.lkml
--- /tmp/workspace/looker-hub/bergamot/explores/custom.explore.lkml	2026-05-15 20:19:01.603982787 +0000
+++ /tmp/workspace/generated-lookml/bergamot/explores/custom.explore.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,73 +0,0 @@
-
-# *Do not manually modify this file*
-#
-# This file has been generated via https://github.com/mozilla/lookml-generator
-# You can extend this view in the looker-spoke-default project (https://github.com/mozilla/looker-spoke-default)
-
-include: "/looker-hub/bergamot/views/custom.view.lkml"
-include: "/looker-hub/bergamot/datagroups/custom_last_updated.datagroup.lkml"
-
-explore: custom {
-  sql_always_where: ${custom.submission_date} >= '2010-01-01' ;;
-  view_label: " Custom"
-  description: "Explore for the custom ping. A custom ping, sending time is fully controlled by the application."
-  view_name: custom
-
-  join: custom__metrics__labeled_counter__glean_error_invalid_label {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.metrics__labeled_counter__glean_error_invalid_label}) AS custom__metrics__labeled_counter__glean_error_invalid_label ON ${custom.document_id} = ${custom__metrics__labeled_counter__glean_error_invalid_label.document_id} ;;
-  }
-
-  join: custom__metrics__labeled_counter__glean_error_invalid_overflow {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.metrics__labeled_counter__glean_error_invalid_overflow}) AS custom__metrics__labeled_counter__glean_error_invalid_overflow ON ${custom.document_id} = ${custom__metrics__labeled_counter__glean_error_invalid_overflow.document_id} ;;
-  }
-
-  join: custom__metrics__labeled_counter__glean_error_invalid_state {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.metrics__labeled_counter__glean_error_invalid_state}) AS custom__metrics__labeled_counter__glean_error_invalid_state ON ${custom.document_id} = ${custom__metrics__labeled_counter__glean_error_invalid_state.document_id} ;;
-  }
-
-  join: custom__metrics__labeled_counter__glean_error_invalid_type {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.metrics__labeled_counter__glean_error_invalid_type}) AS custom__metrics__labeled_counter__glean_error_invalid_type ON ${custom.document_id} = ${custom__metrics__labeled_counter__glean_error_invalid_type.document_id} ;;
-  }
-
-  join: custom__metrics__labeled_counter__glean_error_invalid_value {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.metrics__labeled_counter__glean_error_invalid_value}) AS custom__metrics__labeled_counter__glean_error_invalid_value ON ${custom.document_id} = ${custom__metrics__labeled_counter__glean_error_invalid_value.document_id} ;;
-  }
-
-  join: custom__events {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.events}) AS custom__events ;;
-  }
-
-  join: custom__events__extra {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom__events.extra}) AS custom__events__extra ;;
-  }
-
-  join: custom__ping_info__experiments {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.ping_info__experiments}) AS custom__ping_info__experiments ;;
-  }
-
-  join: custom__ping_info__server_knobs_config__metrics_enabled {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.ping_info__server_knobs_config__metrics_enabled}) AS custom__ping_info__server_knobs_config__metrics_enabled ;;
-  }
-
-  join: custom__ping_info__server_knobs_config__pings_enabled {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${custom.ping_info__server_knobs_config__pings_enabled}) AS custom__ping_info__server_knobs_config__pings_enabled ;;
-  }
-
-  persist_with: custom_last_updated
-
-  always_filter: {
-    filters: [
-      submission_date: "28 days",
-    ]
-  }
-}
\ No newline at end of file
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/explores/deletion_request.explore.lkml /tmp/workspace/generated-lookml/bergamot/explores/deletion_request.explore.lkml
--- /tmp/workspace/looker-hub/bergamot/explores/deletion_request.explore.lkml	2026-05-15 20:19:01.604021985 +0000
+++ /tmp/workspace/generated-lookml/bergamot/explores/deletion_request.explore.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,73 +0,0 @@
-
-# *Do not manually modify this file*
-#
-# This file has been generated via https://github.com/mozilla/lookml-generator
-# You can extend this view in the looker-spoke-default project (https://github.com/mozilla/looker-spoke-default)
-
-include: "/looker-hub/bergamot/views/deletion_request.view.lkml"
-include: "/looker-hub/bergamot/datagroups/deletion_request_last_updated.datagroup.lkml"
-
-explore: deletion_request {
-  sql_always_where: ${deletion_request.submission_date} >= '2010-01-01' ;;
-  view_label: " Deletion_Request"
-  description: "Explore for the deletion_request ping. This ping is submitted when a user opts out of sending technical and interaction data to Mozilla. This ping is intended to communicate to the Data Pipeline that the user wishes to have their reported Telemetry data deleted. As such it attempts to send itself at the moment the user opts out of data collection."
-  view_name: deletion_request
-
-  join: deletion_request__metrics__labeled_counter__glean_error_invalid_label {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.metrics__labeled_counter__glean_error_invalid_label}) AS deletion_request__metrics__labeled_counter__glean_error_invalid_label ON ${deletion_request.document_id} = ${deletion_request__metrics__labeled_counter__glean_error_invalid_label.document_id} ;;
-  }
-
-  join: deletion_request__metrics__labeled_counter__glean_error_invalid_overflow {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.metrics__labeled_counter__glean_error_invalid_overflow}) AS deletion_request__metrics__labeled_counter__glean_error_invalid_overflow ON ${deletion_request.document_id} = ${deletion_request__metrics__labeled_counter__glean_error_invalid_overflow.document_id} ;;
-  }
-
-  join: deletion_request__metrics__labeled_counter__glean_error_invalid_state {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.metrics__labeled_counter__glean_error_invalid_state}) AS deletion_request__metrics__labeled_counter__glean_error_invalid_state ON ${deletion_request.document_id} = ${deletion_request__metrics__labeled_counter__glean_error_invalid_state.document_id} ;;
-  }
-
-  join: deletion_request__metrics__labeled_counter__glean_error_invalid_type {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.metrics__labeled_counter__glean_error_invalid_type}) AS deletion_request__metrics__labeled_counter__glean_error_invalid_type ON ${deletion_request.document_id} = ${deletion_request__metrics__labeled_counter__glean_error_invalid_type.document_id} ;;
-  }
-
-  join: deletion_request__metrics__labeled_counter__glean_error_invalid_value {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.metrics__labeled_counter__glean_error_invalid_value}) AS deletion_request__metrics__labeled_counter__glean_error_invalid_value ON ${deletion_request.document_id} = ${deletion_request__metrics__labeled_counter__glean_error_invalid_value.document_id} ;;
-  }
-
-  join: deletion_request__events {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.events}) AS deletion_request__events ;;
-  }
-
-  join: deletion_request__events__extra {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request__events.extra}) AS deletion_request__events__extra ;;
-  }
-
-  join: deletion_request__ping_info__experiments {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.ping_info__experiments}) AS deletion_request__ping_info__experiments ;;
-  }
-
-  join: deletion_request__ping_info__server_knobs_config__metrics_enabled {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.ping_info__server_knobs_config__metrics_enabled}) AS deletion_request__ping_info__server_knobs_config__metrics_enabled ;;
-  }
-
-  join: deletion_request__ping_info__server_knobs_config__pings_enabled {
-    relationship: one_to_many
-    sql: LEFT JOIN UNNEST(${deletion_request.ping_info__server_knobs_config__pings_enabled}) AS deletion_request__ping_info__server_knobs_config__pings_enabled ;;
-  }
-
-  persist_with: deletion_request_last_updated
-
-  always_filter: {
-    filters: [
-      submission_date: "28 days",
-    ]
-  }
-}
\ No newline at end of file
diff -x '.*' -bur --no-dereference --new-file /tmp/workspace/looker-hub/bergamot/views/custom.view.lkml /tmp/workspace/generated-lookml/bergamot/views/custom.view.lkml
--- /tmp/workspace/looker-hub/bergamot/views/custom.view.lkml	2026-05-15 20:19:01.604085611 +0000
+++ /tmp/workspace/generated-lookml/bergamot/views/custom.view.lkml	1970-01-01 00:00:00.000000000 +0000
@@ -1,1957 +0,0 @@
-
-# *Do not manually modify this file*
-#
-# This file has been generated via https://github.com/mozilla/lookml-generator
-# You can extend this view in the looker-spoke-default project (https://github.com/mozilla/looker-spoke-default)
-
-view: custom {
-  dimension: metrics__counter__errors_marian {
-    label: "Errors: Marian"
-    hidden: no
-    sql: ${TABLE}.metrics.counter.errors_marian ;;
-    type: number
-    group_label: "Errors"
-    group_item_label: "Marian"
-
-    link: {
-      label: "Glean Dictionary reference for Errors: Marian"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/errors_marian"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Marian code related error.
-"
-  }
-
-  dimension: metrics__counter__errors_memory {
-    label: "Errors: Memory"
-    hidden: no
-    sql: ${TABLE}.metrics.counter.errors_memory ;;
-    type: number
-    group_label: "Errors"
-    group_item_label: "Memory"
-
-    link: {
-      label: "Glean Dictionary reference for Errors: Memory"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/errors_memory"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Memory allocation error.
-"
-  }
-
-  dimension: metrics__counter__errors_model_download {
-    label: "Errors: Model Download"
-    hidden: no
-    sql: ${TABLE}.metrics.counter.errors_model_download ;;
-    type: number
-    group_label: "Errors"
-    group_item_label: "Model Download"
-
-    link: {
-      label: "Glean Dictionary reference for Errors: Model Download"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/errors_model_download"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Failed to download a model for a supported language pair.
-"
-  }
-
-  dimension: metrics__counter__errors_translation {
-    label: "Errors: Translation"
-    hidden: no
-    sql: ${TABLE}.metrics.counter.errors_translation ;;
-    type: number
-    group_label: "Errors"
-    group_item_label: "Translation"
-
-    link: {
-      label: "Glean Dictionary reference for Errors: Translation"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/errors_translation"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "The translation procedure has failed.
-"
-  }
-
-  dimension: metrics__string__metadata_bergamot_translator_version {
-    label: "Metadata: Bergamot Translator Version"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_bergamot_translator_version ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "Bergamot Translator Version"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: Bergamot Translator Version"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_bergamot_translator_version"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Bergamot translator engine version
-"
-  }
-
-  dimension: metrics__quantity__metadata_cpu_cores_count {
-    label: "Metadata: CPU Cores Count"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.metadata_cpu_cores_count ;;
-    type: number
-    group_label: "Metadata"
-    group_item_label: "CPU Cores Count"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Cores Count"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_cores_count"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.cores` metric
-"
-  }
-
-  dimension: metrics__quantity__metadata_cpu_count {
-    label: "Metadata: CPU Count"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.metadata_cpu_count ;;
-    type: number
-    group_label: "Metadata"
-    group_item_label: "CPU Count"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Count"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_count"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.count` metric
-"
-  }
-
-  dimension: metrics__string__metadata_cpu_extensions {
-    label: "Metadata: CPU Extensions"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_cpu_extensions ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "CPU Extensions"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Extensions"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_extensions"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.extensions` metric
-"
-  }
-
-  dimension: metrics__string__metadata_cpu_family {
-    label: "Metadata: CPU Family"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_cpu_family ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "CPU Family"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Family"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_family"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.family` metric
-"
-  }
-
-  dimension: metrics__quantity__metadata_cpu_l2_cache {
-    label: "Metadata: CPU L2 Cache"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.metadata_cpu_l2_cache ;;
-    type: number
-    group_label: "Metadata"
-    group_item_label: "CPU L2 Cache"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU L2 Cache"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_l2_cache"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.l2cacheKB` metric
-"
-  }
-
-  dimension: metrics__quantity__metadata_cpu_l3_cache {
-    label: "Metadata: CPU L3 Cache"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.metadata_cpu_l3_cache ;;
-    type: number
-    group_label: "Metadata"
-    group_item_label: "CPU L3 Cache"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU L3 Cache"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_l3_cache"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.l3cacheKB` metric
-"
-  }
-
-  dimension: metrics__string__metadata_cpu_model {
-    label: "Metadata: CPU Model"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_cpu_model ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "CPU Model"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Model"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_model"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.model` metric
-"
-  }
-
-  dimension: metrics__quantity__metadata_cpu_speed {
-    label: "Metadata: CPU Speed"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.metadata_cpu_speed ;;
-    type: number
-    group_label: "Metadata"
-    group_item_label: "CPU Speed"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Speed"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_speed"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.speedMHz` metric
-"
-  }
-
-  dimension: metrics__string__metadata_cpu_stepping {
-    label: "Metadata: CPU Stepping"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_cpu_stepping ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "CPU Stepping"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Stepping"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_stepping"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.stepping` metric
-"
-  }
-
-  dimension: metrics__string__metadata_cpu_vendor {
-    label: "Metadata: CPU Vendor"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_cpu_vendor ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "CPU Vendor"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: CPU Vendor"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_cpu_vendor"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.cpu.vendor` metric
-"
-  }
-
-  dimension: metrics__string__metadata_extension_build_id {
-    label: "Metadata: Extension Build ID"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_extension_build_id ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "Extension Build ID"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: Extension Build ID"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_extension_build_id"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Extension build id, indicating which git revision
-and build config was used to produce this build
-"
-  }
-
-  dimension: metrics__string__metadata_extension_version {
-    label: "Metadata: Extension Version"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_extension_version ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "Extension Version"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: Extension Version"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_extension_version"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Extension version
-"
-  }
-
-  dimension: metrics__string__metadata_firefox_client_id {
-    label: "Metadata: Firefox Client ID"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_firefox_client_id ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "Firefox Client ID"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: Firefox Client ID"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_firefox_client_id"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Firefox Telemetry client id.
-"
-  }
-
-  dimension: metrics__string__metadata_from_lang {
-    label: "Metadata: From Lang"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_from_lang ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "From Lang"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: From Lang"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_from_lang"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Translation source language.
-"
-  }
-
-  dimension: metrics__quantity__metadata_system_memory {
-    label: "Metadata: System Memory"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.metadata_system_memory ;;
-    type: number
-    group_label: "Metadata"
-    group_item_label: "System Memory"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: System Memory"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_system_memory"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Telemetry Environment `system.memoryMB` metric
-"
-  }
-
-  dimension: metrics__string__metadata_to_lang {
-    label: "Metadata: To Lang"
-    hidden: no
-    sql: ${TABLE}.metrics.string.metadata_to_lang ;;
-    type: string
-    group_label: "Metadata"
-    group_item_label: "To Lang"
-
-    link: {
-      label: "Glean Dictionary reference for Metadata: To Lang"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/metadata_to_lang"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Translation target language.
-"
-  }
-
-  dimension: metrics__timespan__performance_full_page_translated_time__value {
-    label: "Performance: Full Page Translated Time Value"
-    hidden: no
-    sql: ${TABLE}.metrics.timespan.performance_full_page_translated_time.value ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Full Page Translated Time Value"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Full Page Translated Time Value"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_full_page_translated_time"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Timing from \"translation button pressed\"
-to \"full page is translated\".
-"
-  }
-
-  dimension: metrics__quantity__performance_full_page_translated_wps {
-    label: "Performance: Full Page Translated Wps"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.performance_full_page_translated_wps ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Full Page Translated Wps"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Full Page Translated Wps"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_full_page_translated_wps"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Speed of the translation from \"translation button
-pressed\" to \"full page is translated\".
-"
-  }
-
-  dimension: metrics__string__performance_model_download_time {
-    label: "Performance: Model Download Time"
-    hidden: yes
-    sql: ${TABLE}.metrics.string.performance_model_download_time ;;
-    type: string
-    group_label: "Performance"
-    group_item_label: "Model Download Time"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Model Download Time"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_model_download_time"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Time spent on downloading a translation model for a language pair (ms).
-"
-  }
-
-  dimension: metrics__timespan__performance_model_download_time_num__value {
-    label: "Performance: Model Download Time Num Value"
-    hidden: no
-    sql: ${TABLE}.metrics.timespan.performance_model_download_time_num.value ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Model Download Time Num Value"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Model Download Time Num Value"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_model_download_time_num"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Time spent on downloading a translation model for a language pair.
-(Renamed from model_download_time to model_download_time_num as part of
-changing type from string to quantity)
-"
-  }
-
-  dimension: metrics__string__performance_model_load_time {
-    label: "Performance: Model Load Time"
-    hidden: yes
-    sql: ${TABLE}.metrics.string.performance_model_load_time ;;
-    type: string
-    group_label: "Performance"
-    group_item_label: "Model Load Time"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Model Load Time"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_model_load_time"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Time spent on loading a model into memory to start translation (ms).
-"
-  }
-
-  dimension: metrics__timespan__performance_model_load_time_num__value {
-    label: "Performance: Model Load Time Num Value"
-    hidden: no
-    sql: ${TABLE}.metrics.timespan.performance_model_load_time_num.value ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Model Load Time Num Value"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Model Load Time Num Value"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_model_load_time_num"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Time spent on loading a model into memory to start translation.
-(Renamed from model_load_time to model_load_time_num as part of
-changing type from string to quantity)
-"
-  }
-
-  dimension: metrics__timespan__performance_translation_engine_time__value {
-    label: "Performance: Translation Engine Time Value"
-    hidden: no
-    sql: ${TABLE}.metrics.timespan.performance_translation_engine_time.value ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Translation Engine Time Value"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Translation Engine Time Value"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_translation_engine_time"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Time spent on translation by the translation engine.
-"
-  }
-
-  dimension: metrics__quantity__performance_translation_engine_wps {
-    label: "Performance: Translation Engine Wps"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.performance_translation_engine_wps ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Translation Engine Wps"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Translation Engine Wps"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_translation_engine_wps"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Speed of translation as measured by the translation engine.
-"
-  }
-
-  dimension: metrics__string__performance_translation_quality {
-    label: "Performance: Translation Quality"
-    hidden: no
-    sql: ${TABLE}.metrics.string.performance_translation_quality ;;
-    type: string
-    group_label: "Performance"
-    group_item_label: "Translation Quality"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Translation Quality"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_translation_quality"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Quality estimation of translation.
-"
-  }
-
-  dimension: metrics__string__performance_translation_time {
-    label: "Performance: Translation Time"
-    hidden: yes
-    sql: ${TABLE}.metrics.string.performance_translation_time ;;
-    type: string
-    group_label: "Performance"
-    group_item_label: "Translation Time"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Translation Time"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_translation_time"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Time spent on web page translation (ms).
-"
-  }
-
-  dimension: metrics__quantity__performance_word_count {
-    label: "Performance: Word Count"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.performance_word_count ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Word Count"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Word Count"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_word_count"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Total number of words on the original web page.
-"
-  }
-
-  dimension: metrics__quantity__performance_word_count_visible_in_viewport {
-    label: "Performance: Word Count Visible In Viewport"
-    hidden: no
-    sql: ${TABLE}.metrics.quantity.performance_word_count_visible_in_viewport ;;
-    type: number
-    group_label: "Performance"
-    group_item_label: "Word Count Visible In Viewport"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Word Count Visible In Viewport"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_word_count_visible_in_viewport"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Total number of visible words on the original web page that
-were visible in the viewport at the time of \"translation button pressed\".
-"
-  }
-
-  dimension: metrics__string__performance_words_per_second {
-    label: "Performance: Words Per Second"
-    hidden: yes
-    sql: ${TABLE}.metrics.string.performance_words_per_second ;;
-    type: string
-    group_label: "Performance"
-    group_item_label: "Words Per Second"
-
-    link: {
-      label: "Glean Dictionary reference for Performance: Words Per Second"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/performance_words_per_second"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Speed of translation.
-"
-  }
-
-  dimension: metrics__counter__service_lang_mismatch {
-    label: "Service: Lang Mismatch"
-    hidden: no
-    sql: ${TABLE}.metrics.counter.service_lang_mismatch ;;
-    type: number
-    group_label: "Service"
-    group_item_label: "Lang Mismatch"
-
-    link: {
-      label: "Glean Dictionary reference for Service: Lang Mismatch"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/service_lang_mismatch"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "The user and website languages do not match.
-"
-  }
-
-  dimension: metrics__counter__service_not_supported {
-    label: "Service: Not Supported"
-    hidden: no
-    sql: ${TABLE}.metrics.counter.service_not_supported ;;
-    type: number
-    group_label: "Service"
-    group_item_label: "Not Supported"
-
-    link: {
-      label: "Glean Dictionary reference for Service: Not Supported"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/service_not_supported"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Language pair of user and website languages is not supported.
-"
-  }
-
-  dimension: metrics__counter__service_not_suppported {
-    label: "Service: Not Suppported"
-    hidden: yes
-    sql: ${TABLE}.metrics.counter.service_not_suppported ;;
-    type: number
-    group_label: "Service"
-    group_item_label: "Not Suppported"
-
-    link: {
-      label: "Glean Dictionary reference for Service: Not Suppported"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/service_not_suppported"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Language pair of user and website languages is not supported.
-"
-  }
-
-  dimension: metrics__counter__test_counter_test {
-    label: "Test: Counter Test"
-    hidden: no
-    sql: ${TABLE}.metrics.counter.test_counter_test ;;
-    type: number
-    group_label: "Test"
-    group_item_label: "Counter Test"
-
-    link: {
-      label: "Glean Dictionary reference for Test: Counter Test"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/test_counter_test"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Test counter.
-"
-  }
-
-  dimension: metrics__string__test_string_test {
-    label: "Test: String Test"
-    hidden: no
-    sql: ${TABLE}.metrics.string.test_string_test ;;
-    type: string
-    group_label: "Test"
-    group_item_label: "String Test"
-
-    link: {
-      label: "Glean Dictionary reference for Test: String Test"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/test_string_test"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Test string.
-"
-  }
-
-  dimension: metrics__string__glean_client_annotation_experimentation_id {
-    label: "Glean Client Annotation: Experimentation ID"
-    hidden: no
-    sql: ${TABLE}.metrics.string.glean_client_annotation_experimentation_id ;;
-    type: string
-    group_label: "Glean Client Annotation"
-    group_item_label: "Experimentation ID"
-
-    link: {
-      label: "Glean Dictionary reference for Glean Client Annotation: Experimentation ID"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/glean_client_annotation_experimentation_id"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "An experimentation identifier derived and provided by the application
-for the purpose of experimentation enrollment.
-"
-  }
-
-  dimension: metrics__labeled_counter__glean_error_invalid_label {
-    label: "Glean Error: Invalid Label"
-    hidden: yes
-    sql: ${TABLE}.metrics.labeled_counter.glean_error_invalid_label ;;
-    group_label: "Glean Error"
-    group_item_label: "Invalid Label"
-
-    link: {
-      label: "Glean Dictionary reference for Glean Error: Invalid Label"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/glean_error_invalid_label"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Counts the number of times a metric was set with an invalid label.
-The labels are the `category.name` identifier of the metric.
-"
-  }
-
-  dimension: metrics__labeled_counter__glean_error_invalid_overflow {
-    label: "Glean Error: Invalid Overflow"
-    hidden: yes
-    sql: ${TABLE}.metrics.labeled_counter.glean_error_invalid_overflow ;;
-    group_label: "Glean Error"
-    group_item_label: "Invalid Overflow"
-
-    link: {
-      label: "Glean Dictionary reference for Glean Error: Invalid Overflow"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/glean_error_invalid_overflow"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Counts the number of times a metric was set a value that overflowed.
-The labels are the `category.name` identifier of the metric.
-"
-  }
-
-  dimension: metrics__labeled_counter__glean_error_invalid_state {
-    label: "Glean Error: Invalid State"
-    hidden: yes
-    sql: ${TABLE}.metrics.labeled_counter.glean_error_invalid_state ;;
-    group_label: "Glean Error"
-    group_item_label: "Invalid State"
-
-    link: {
-      label: "Glean Dictionary reference for Glean Error: Invalid State"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/glean_error_invalid_state"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Counts the number of times a timing metric was used incorrectly.
-The labels are the `category.name` identifier of the metric.
-"
-  }
-
-  dimension: metrics__labeled_counter__glean_error_invalid_type {
-    label: "Glean Error: Invalid Type"
-    hidden: yes
-    sql: ${TABLE}.metrics.labeled_counter.glean_error_invalid_type ;;
-    group_label: "Glean Error"
-    group_item_label: "Invalid Type"
-
-    link: {
-      label: "Glean Dictionary reference for Glean Error: Invalid Type"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/glean_error_invalid_type"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Counts the number of times a metric set a value which was not of the
-expected type.
-The labels are the `category.name` identifier of the metric.
-
-This error type is only recorded by the Glean JavaScript SDK.
-This error may only happen in dynamically typed languages.
-"
-  }
-
-  dimension: metrics__labeled_counter__glean_error_invalid_value {
-    label: "Glean Error: Invalid Value"
-    hidden: yes
-    sql: ${TABLE}.metrics.labeled_counter.glean_error_invalid_value ;;
-    group_label: "Glean Error"
-    group_item_label: "Invalid Value"
-
-    link: {
-      label: "Glean Dictionary reference for Glean Error: Invalid Value"
-      url: "https://dictionary.telemetry.mozilla.org/apps/bergamot/metrics/glean_error_invalid_value"
-      icon_url: "https://dictionary.telemetry.mozilla.org/favicon.png"
-    }
-
-    description: "Counts the number of times a metric was set to an invalid value.
-The labels are the `category.name` identifier of the metric.
-"
-  }
-
-  dimension: additional_properties {
-    sql: ${TABLE}.additional_properties ;;
-    hidden: yes
-    description: "A JSON string containing any payload properties not present in the schema"
-  }
-
-  dimension: app_version_major {
-    sql: ${TABLE}.app_version_major ;;
-    type: number
-    suggest_persist_for: "24 hours"
-  }
-
-  dimension: app_version_minor {
-    sql: ${TABLE}.app_version_minor ;;
-    type: number
-    suggest_persist_for: "24 hours"
-  }
-
-  dimension: app_version_patch {
-    sql: ${TABLE}.app_version_patch ;;
-    type: number
-    suggest_persist_for: "24 hours"
-  }
-
-  dimension: client_info__android_sdk_version {
-    sql: ${TABLE}.client_info.android_sdk_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Android SDK Version"
-    description: "The optional Android specific SDK version of the software running on this hardware device."
-  }
-
-  dimension: client_info__app_build {
-    sql: ${TABLE}.client_info.app_build ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "App Build"
-    description: "The build identifier generated by the CI system (e.g. \"1234/A\"). For language bindings that provide automatic detection for this value, (e.g. Android/Kotlin), in the unlikely event that the build identifier can not be retrieved from the OS, it is set to \"inaccessible\". For other language bindings, if the value was not provided through configuration, this metric gets set to `Unknown`."
-  }
-
-  dimension: client_info__app_channel {
-    sql: ${TABLE}.client_info.app_channel ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "App Channel"
-    description: "The channel the application is being distributed on."
-  }
-
-  dimension: client_info__app_display_version {
-    sql: ${TABLE}.client_info.app_display_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "App Display Version"
-    description: "The user visible version string (e.g. \"1.0.3\").  In the unlikely event that the display version can not be retrieved, it is set to \"inaccessible\"."
-  }
-
-  dimension: client_info__architecture {
-    sql: ${TABLE}.client_info.architecture ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Architecture"
-    description: "The architecture of the device, (e.g. \"arm\", \"x86\")."
-  }
-
-  dimension: client_info__attribution__campaign {
-    sql: ${TABLE}.client_info.attribution.campaign ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info: Attribution"
-    group_item_label: "Campaign"
-    description: "The attribution campaign (e.g. 'mozilla-org')."
-  }
-
-  dimension: client_info__attribution__content {
-    sql: ${TABLE}.client_info.attribution.content ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info: Attribution"
-    group_item_label: "Content"
-    description: "The attribution content (e.g. 'firefoxview')."
-  }
-
-  dimension: client_info__attribution__ext {
-    sql: ${TABLE}.client_info.attribution.ext ;;
-    hidden: yes
-  }
-
-  dimension: client_info__attribution__medium {
-    sql: ${TABLE}.client_info.attribution.medium ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info: Attribution"
-    group_item_label: "Medium"
-    description: "The attribution medium (e.g. 'organic' for a search engine)."
-  }
-
-  dimension: client_info__attribution__source {
-    sql: ${TABLE}.client_info.attribution.source ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info: Attribution"
-    group_item_label: "Source"
-    description: "The attribution source (e.g. 'google-play')."
-  }
-
-  dimension: client_info__attribution__term {
-    sql: ${TABLE}.client_info.attribution.term ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info: Attribution"
-    group_item_label: "Term"
-    description: "The attribution term (e.g. 'browser with developer tools for android')."
-  }
-
-  dimension: client_info__build_date {
-    sql: ${TABLE}.client_info.build_date ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Build Date"
-    description: "The date & time the application was built"
-  }
-
-  dimension: client_info__client_id {
-    sql: ${TABLE}.client_info.client_id ;;
-    hidden: yes
-    description: "A UUID uniquely identifying the client."
-  }
-
-  dimension: client_info__device_manufacturer {
-    sql: ${TABLE}.client_info.device_manufacturer ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Device Manufacturer"
-    description: "The manufacturer of the device the application is running on. Not set if the device manufacturer can't be determined (e.g. on Desktop)."
-  }
-
-  dimension: client_info__device_model {
-    sql: ${TABLE}.client_info.device_model ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Device Model"
-    description: "The model of the device the application is running on. On Android, this is Build.MODEL, the user-visible marketing name, like \"Pixel 2 XL\". Not set if the device model can't be determined (e.g. on Desktop)."
-  }
-
-  dimension: client_info__distribution__ext {
-    sql: ${TABLE}.client_info.distribution.ext ;;
-    hidden: yes
-  }
-
-  dimension: client_info__distribution__name {
-    sql: ${TABLE}.client_info.distribution.name ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info: Distribution"
-    group_item_label: "Name"
-    description: "The distribution name (e.g. 'MozillaOnline')."
-  }
-
-  dimension: client_info__first_run_date {
-    sql: ${TABLE}.client_info.first_run_date ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "First Run Date"
-    description: "The date of the first run of the application."
-  }
-
-  dimension: client_info__locale {
-    sql: ${TABLE}.client_info.locale ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Locale"
-    description: "The locale of the application during initialization (e.g. \"es-ES\"). If the locale can't be determined on the system, the value is [\"und\"](https://unicode.org/reports/tr35/#Unknown_or_Invalid_Identifiers), to indicate \"undetermined\"."
-  }
-
-  dimension: client_info__os {
-    sql: ${TABLE}.client_info.os ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "OS"
-    description: "The name of the operating system. Possible values: Android, iOS, Linux, Darwin, Windows, FreeBSD, NetBSD, OpenBSD, Solaris, unknown"
-  }
-
-  dimension: client_info__os_version {
-    sql: ${TABLE}.client_info.os_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "OS Version"
-    description: "The user-visible version of the operating system (e.g. \"1.2.3\"). If the version detection fails, this metric gets set to `Unknown`."
-  }
-
-  dimension: client_info__session_count {
-    sql: ${TABLE}.client_info.session_count ;;
-    type: number
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Session Count"
-    description: "An optional running counter of the number of sessions for a client."
-  }
-
-  dimension: client_info__session_id {
-    sql: ${TABLE}.client_info.session_id ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Session ID"
-    description: "An optional UUID uniquely identifying the client's current session."
-  }
-
-  dimension: client_info__telemetry_sdk_build {
-    sql: ${TABLE}.client_info.telemetry_sdk_build ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Telemetry SDK Build"
-    description: "The version of the Glean SDK"
-  }
-
-  dimension: client_info__windows_build_number {
-    sql: ${TABLE}.client_info.windows_build_number ;;
-    type: number
-    suggest_persist_for: "24 hours"
-    group_label: "Client Info"
-    group_item_label: "Windows Build Number"
-    description: "The optional Windows build number, reported by Windows (e.g. 22000) and not set for other platforms"
-  }
-
-  dimension: document_id {
-    sql: ${TABLE}.document_id ;;
-    hidden: yes
-    description: "The document ID specified in the URI when the client sent this message"
-    primary_key: yes
-  }
-
-  dimension: events {
-    sql: ${TABLE}.events ;;
-    hidden: yes
-  }
-
-  dimension: is_bot_generated {
-    sql: ${TABLE}.is_bot_generated ;;
-    type: yesno
-    suggest_persist_for: "24 hours"
-  }
-
-  dimension: metadata__geo__city {
-    sql: ${TABLE}.metadata.geo.city ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Geo"
-    group_item_label: "City"
-  }
-
-  dimension: metadata__geo__country {
-    sql: ${TABLE}.metadata.geo.country ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Geo"
-    group_item_label: "Country"
-    map_layer_name: countries
-    description: "An ISO 3166-1 alpha-2 country code"
-  }
-
-  dimension: metadata__geo__db_version {
-    sql: ${TABLE}.metadata.geo.db_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Geo"
-    group_item_label: "DB Version"
-    description: "The specific geo database version used for this lookup"
-  }
-
-  dimension: metadata__geo__subdivision1 {
-    sql: ${TABLE}.metadata.geo.subdivision1 ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Geo"
-    group_item_label: "Subdivision1"
-    description: "First major country subdivision, typically a state, province, or county"
-  }
-
-  dimension: metadata__geo__subdivision2 {
-    sql: ${TABLE}.metadata.geo.subdivision2 ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Geo"
-    group_item_label: "Subdivision2"
-    description: "Second major country subdivision; not applicable for most countries"
-  }
-
-  dimension: metadata__header__date {
-    sql: ${TABLE}.metadata.header.date ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "Date"
-    description: "Date HTTP header"
-  }
-
-  dimension: metadata__header__dnt {
-    sql: ${TABLE}.metadata.header.dnt ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "DNT"
-    description: "DNT (Do Not Track) HTTP header"
-  }
-
-  dimension: metadata__header__parsed_x_lb_tags__tls_cipher_hex {
-    sql: ${TABLE}.metadata.header.parsed_x_lb_tags.tls_cipher_hex ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header: Parsed X LB Tags"
-    group_item_label: "TLS Cipher Hex"
-  }
-
-  dimension: metadata__header__parsed_x_lb_tags__tls_version {
-    sql: ${TABLE}.metadata.header.parsed_x_lb_tags.tls_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header: Parsed X LB Tags"
-    group_item_label: "TLS Version"
-  }
-
-  dimension: metadata__header__parsed_x_source_tags {
-    sql: ${TABLE}.metadata.header.parsed_x_source_tags ;;
-    hidden: yes
-  }
-
-  dimension: metadata__header__x_debug_id {
-    sql: ${TABLE}.metadata.header.x_debug_id ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "X Debug ID"
-    description: "X-Debug-Id HTTP header"
-  }
-
-  dimension: metadata__header__x_foxsec_ip_reputation {
-    sql: ${TABLE}.metadata.header.x_foxsec_ip_reputation ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "X Foxsec IP Reputation"
-    description: "X-Foxsec-IP-Reputation header (deprecated, https://mozilla-hub.atlassian.net/browse/DENG-10434)"
-  }
-
-  dimension: metadata__header__x_lb_tags {
-    sql: ${TABLE}.metadata.header.x_lb_tags ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "X LB Tags"
-    description: "X-LB-Tags HTTP header"
-  }
-
-  dimension: metadata__header__x_pingsender_version {
-    sql: ${TABLE}.metadata.header.x_pingsender_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "X Pingsender Version"
-    description: "X-PingSender-Version HTTP header"
-  }
-
-  dimension: metadata__header__x_source_tags {
-    sql: ${TABLE}.metadata.header.x_source_tags ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "X Source Tags"
-    description: "X-Source-Tags HTTP header"
-  }
-
-  dimension: metadata__header__x_telemetry_agent {
-    sql: ${TABLE}.metadata.header.x_telemetry_agent ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: Header"
-    group_item_label: "X Telemetry Agent"
-    description: "X-Telemetry-Agent HTTP header"
-  }
-
-  dimension: metadata__isp__db_version {
-    sql: ${TABLE}.metadata.isp.db_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: ISP"
-    group_item_label: "DB Version"
-    description: "The specific geo ISP database version used for this lookup"
-  }
-
-  dimension: metadata__isp__name {
-    sql: ${TABLE}.metadata.isp.name ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: ISP"
-    group_item_label: "Name"
-    description: "The name of the ISP associated with the client's IP address"
-  }
-
-  dimension: metadata__isp__organization {
-    sql: ${TABLE}.metadata.isp.organization ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: ISP"
-    group_item_label: "Organization"
-    description: "The name of a specific business entity associated with the client's IP address when available; otherwise the ISP name"
-  }
-
-  dimension: metadata__user_agent__browser {
-    sql: ${TABLE}.metadata.user_agent.browser ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: User Agent"
-    group_item_label: "Browser"
-  }
-
-  dimension: metadata__user_agent__os {
-    sql: ${TABLE}.metadata.user_agent.os ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: User Agent"
-    group_item_label: "OS"
-  }
-
-  dimension: metadata__user_agent__version {
-    sql: ${TABLE}.metadata.user_agent.version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Metadata: User Agent"
-    group_item_label: "Version"
-  }
-
-  dimension: normalized_app_name {
-    sql: ${TABLE}.normalized_app_name ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    description: "Set to \"Other\" if this message contained an unrecognized app name"
-  }
-
-  dimension: normalized_channel {
-    sql: ${TABLE}.normalized_channel ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    description: "Set to \"Other\" if this message contained an unrecognized channel name"
-  }
-
-  dimension: normalized_country_code {
-    sql: ${TABLE}.normalized_country_code ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    description: "An ISO 3166-1 alpha-2 country code"
-  }
-
-  dimension: normalized_os {
-    sql: ${TABLE}.normalized_os ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    description: "Set to \"Other\" if this message contained an unrecognized OS name"
-  }
-
-  dimension: normalized_os_version {
-    sql: ${TABLE}.normalized_os_version ;;
-    type: string
-    suggest_persist_for: "24 hours"
-  }
-
-  dimension: ping_info__end_time {
-    sql: ${TABLE}.ping_info.end_time ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Ping Info"
-    group_item_label: "End Time"
-  }
-
-  dimension: ping_info__experiments {
-    sql: ${TABLE}.ping_info.experiments ;;
-    hidden: yes
-  }
-
-  dimension: ping_info__ping_type {
-    sql: ${TABLE}.ping_info.ping_type ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Ping Info"
-    group_item_label: "Ping Type"
-  }
-
-  dimension: ping_info__reason {
-    sql: ${TABLE}.ping_info.reason ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Ping Info"
-    group_item_label: "Reason"
-  }
-
-  dimension: ping_info__seq {
-    sql: ${TABLE}.ping_info.seq ;;
-    type: number
-    suggest_persist_for: "24 hours"
-    group_label: "Ping Info"
-    group_item_label: "Seq"
-  }
-
-  dimension: ping_info__server_knobs_config__event_threshold {
-    sql: ${TABLE}.ping_info.server_knobs_config.event_threshold ;;
-    type: number
-    suggest_persist_for: "24 hours"
-    group_label: "Ping Info: Server Knobs Config"
-    group_item_label: "Event Threshold"
-    description: "Optional threshold for event buffering before an events ping is collected and submitted"
-  }
-
-  dimension: ping_info__server_knobs_config__metrics_enabled {
-    sql: ${TABLE}.ping_info.server_knobs_config.metrics_enabled ;;
-    hidden: yes
-    description: "Map of metric identifiers (category.name) to boolean values indicating whether the metric is enabled"
-  }
-
-  dimension: ping_info__server_knobs_config__pings_enabled {
-    sql: ${TABLE}.ping_info.server_knobs_config.pings_enabled ;;
-    hidden: yes
-    description: "Map of ping names to boolean values indicating whether the ping is enabled"
-  }
-
-  dimension: ping_info__start_time {
-    sql: ${TABLE}.ping_info.start_time ;;
-    type: string
-    suggest_persist_for: "24 hours"
-    group_label: "Ping Info"
-    group_item_label: "Start Time"
-  }
-
-  dimension: sample_id {
-    sql: ${TABLE}.sample_id ;;
-    type: number
-    suggest_persist_for: "24 hours"
-    description: "Hashed version of client_id (if present) useful for partitioning; ranges from 0 to 99"
-  }
-
-  dimension_group: metadata__header__parsed {
-    sql: ${TABLE}.metadata.header.parsed_date ;;
-    type: time
-    timeframes: [
-      raw,
-      time,
-      date,
-      week,
-      month,
-      quarter,
-      year,
-    ]
-    label: "

⚠️ Only part of the diff is displayed.

Link to full diff

@scholtzan scholtzan added this pull request to the merge queue May 19, 2026
Merged via the queue into main with commit 29a07a3 May 19, 2026
18 checks passed
@scholtzan scholtzan deleted the update-deprecation-handling branch May 19, 2026 16:34
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.

2 participants