Skip to content

Commit

Permalink
Add vpnsession and daemonsession pings to vpn events unnested (#6338)
Browse files Browse the repository at this point in the history
  • Loading branch information
BenWu authored Oct 11, 2024
1 parent 8f3e440 commit dec443d
Showing 1 changed file with 123 additions and 0 deletions.
123 changes: 123 additions & 0 deletions sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/view.sql
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,131 @@ SELECT
event.category AS event_category,
event.name AS event_name,
event.extra AS event_extra,
"main" AS source_ping,
FROM
`moz-fx-data-shared-prod.mozilla_vpn.main` AS e
CROSS JOIN
UNNEST(e.events) AS event
WITH OFFSET AS event_offset
UNION ALL
SELECT
e.* EXCEPT (events, metrics) REPLACE(
"release" AS normalized_channel,
-- Order of some fields differs between tables; we're verbose here for compatibility
STRUCT(
client_info.android_sdk_version AS android_sdk_version,
client_info.app_build AS app_build,
client_info.app_channel AS app_channel,
client_info.app_display_version AS app_display_version,
client_info.architecture AS architecture,
client_info.client_id AS client_id,
client_info.device_manufacturer AS device_manufacturer,
client_info.device_model AS device_model,
client_info.first_run_date AS first_run_date,
client_info.locale AS locale,
client_info.os AS os,
client_info.os_version AS os_version,
client_info.telemetry_sdk_build AS telemetry_sdk_build,
client_info.build_date AS build_date
) AS client_info,
(
SELECT AS STRUCT
metadata.* REPLACE (
STRUCT(
metadata.header.`date` AS `date`,
metadata.header.dnt AS dnt,
metadata.header.x_debug_id AS x_debug_id,
metadata.header.x_pingsender_version AS x_pingsender_version,
metadata.header.x_source_tags AS x_source_tags,
metadata.header.x_telemetry_agent AS x_telemetry_agent,
metadata.header.x_foxsec_ip_reputation AS x_foxsec_ip_reputation,
metadata.header.x_lb_tags AS x_lb_tags,
metadata.header.parsed_date AS parsed_date,
metadata.header.parsed_x_source_tags AS parsed_x_source_tags,
metadata.header.parsed_x_lb_tags AS parsed_x_lb_tags
) AS header
)
) AS metadata,
STRUCT(
ping_info.end_time,
ping_info.experiments,
ping_info.ping_type,
ping_info.seq,
ping_info.start_time,
ping_info.reason,
ping_info.parsed_start_time,
ping_info.parsed_end_time
) AS ping_info
),
CONCAT(document_id, '-', event_offset) AS event_id,
event.timestamp AS event_timestamp,
event.category AS event_category,
event.name AS event_name,
event.extra AS event_extra,
"vpnsession" AS source_ping,
FROM
`moz-fx-data-shared-prod.mozilla_vpn.vpnsession` AS e
CROSS JOIN
UNNEST(e.events) AS event
WITH OFFSET AS event_offset
UNION ALL
SELECT
e.* EXCEPT (events, metrics) REPLACE(
"release" AS normalized_channel,
-- Order of some fields differs between tables; we're verbose here for compatibility
STRUCT(
client_info.android_sdk_version AS android_sdk_version,
client_info.app_build AS app_build,
client_info.app_channel AS app_channel,
client_info.app_display_version AS app_display_version,
client_info.architecture AS architecture,
client_info.client_id AS client_id,
client_info.device_manufacturer AS device_manufacturer,
client_info.device_model AS device_model,
client_info.first_run_date AS first_run_date,
client_info.locale AS locale,
client_info.os AS os,
client_info.os_version AS os_version,
client_info.telemetry_sdk_build AS telemetry_sdk_build,
client_info.build_date AS build_date
) AS client_info,
(
SELECT AS STRUCT
metadata.* REPLACE (
STRUCT(
metadata.header.`date` AS `date`,
metadata.header.dnt AS dnt,
metadata.header.x_debug_id AS x_debug_id,
metadata.header.x_pingsender_version AS x_pingsender_version,
metadata.header.x_source_tags AS x_source_tags,
metadata.header.x_telemetry_agent AS x_telemetry_agent,
metadata.header.x_foxsec_ip_reputation AS x_foxsec_ip_reputation,
metadata.header.x_lb_tags AS x_lb_tags,
metadata.header.parsed_date AS parsed_date,
metadata.header.parsed_x_source_tags AS parsed_x_source_tags,
metadata.header.parsed_x_lb_tags AS parsed_x_lb_tags
) AS header
)
) AS metadata,
STRUCT(
ping_info.end_time,
ping_info.experiments,
ping_info.ping_type,
ping_info.seq,
ping_info.start_time,
ping_info.reason,
ping_info.parsed_start_time,
ping_info.parsed_end_time
) AS ping_info
),
CONCAT(document_id, '-', event_offset) AS event_id,
event.timestamp AS event_timestamp,
event.category AS event_category,
event.name AS event_name,
event.extra AS event_extra,
"daemonsession" AS source_ping,
FROM
`moz-fx-data-shared-prod.mozilla_vpn.daemonsession` AS e
CROSS JOIN
UNNEST(e.events) AS event
WITH OFFSET AS event_offset

1 comment on commit dec443d

@dataops-ci-bot
Copy link

Choose a reason for hiding this comment

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

Integration report for "Add vpnsession and daemonsession pings to vpn events unnested (#6338)"

sql.diff

Click to expand!
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/metadata.yaml	2024-10-11 17:27:39.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/metadata.yaml	2024-10-11 17:27:48.000000000 +0000
@@ -13,4 +13,6 @@
   - workgroup:mozilla-confidential
 references:
   view.sql:
+  - moz-fx-data-shared-prod.mozilla_vpn.daemonsession
   - moz-fx-data-shared-prod.mozilla_vpn.main
+  - moz-fx-data-shared-prod.mozilla_vpn.vpnsession
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/view.sql	2024-10-11 17:25:32.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/mozilla_vpn/events_unnested/view.sql	2024-10-11 17:25:32.000000000 +0000
@@ -58,8 +58,131 @@
   event.category AS event_category,
   event.name AS event_name,
   event.extra AS event_extra,
+  "main" AS source_ping,
 FROM
   `moz-fx-data-shared-prod.mozilla_vpn.main` AS e
 CROSS JOIN
   UNNEST(e.events) AS event
   WITH OFFSET AS event_offset
+UNION ALL
+SELECT
+  e.* EXCEPT (events, metrics) REPLACE(
+    "release" AS normalized_channel,
+    -- Order of some fields differs between tables; we're verbose here for compatibility
+    STRUCT(
+      client_info.android_sdk_version AS android_sdk_version,
+      client_info.app_build AS app_build,
+      client_info.app_channel AS app_channel,
+      client_info.app_display_version AS app_display_version,
+      client_info.architecture AS architecture,
+      client_info.client_id AS client_id,
+      client_info.device_manufacturer AS device_manufacturer,
+      client_info.device_model AS device_model,
+      client_info.first_run_date AS first_run_date,
+      client_info.locale AS locale,
+      client_info.os AS os,
+      client_info.os_version AS os_version,
+      client_info.telemetry_sdk_build AS telemetry_sdk_build,
+      client_info.build_date AS build_date
+    ) AS client_info,
+    (
+      SELECT AS STRUCT
+        metadata.* REPLACE (
+          STRUCT(
+            metadata.header.`date` AS `date`,
+            metadata.header.dnt AS dnt,
+            metadata.header.x_debug_id AS x_debug_id,
+            metadata.header.x_pingsender_version AS x_pingsender_version,
+            metadata.header.x_source_tags AS x_source_tags,
+            metadata.header.x_telemetry_agent AS x_telemetry_agent,
+            metadata.header.x_foxsec_ip_reputation AS x_foxsec_ip_reputation,
+            metadata.header.x_lb_tags AS x_lb_tags,
+            metadata.header.parsed_date AS parsed_date,
+            metadata.header.parsed_x_source_tags AS parsed_x_source_tags,
+            metadata.header.parsed_x_lb_tags AS parsed_x_lb_tags
+          ) AS header
+        )
+    ) AS metadata,
+    STRUCT(
+      ping_info.end_time,
+      ping_info.experiments,
+      ping_info.ping_type,
+      ping_info.seq,
+      ping_info.start_time,
+      ping_info.reason,
+      ping_info.parsed_start_time,
+      ping_info.parsed_end_time
+    ) AS ping_info
+  ),
+  CONCAT(document_id, '-', event_offset) AS event_id,
+  event.timestamp AS event_timestamp,
+  event.category AS event_category,
+  event.name AS event_name,
+  event.extra AS event_extra,
+  "vpnsession" AS source_ping,
+FROM
+  `moz-fx-data-shared-prod.mozilla_vpn.vpnsession` AS e
+CROSS JOIN
+  UNNEST(e.events) AS event
+  WITH OFFSET AS event_offset
+UNION ALL
+SELECT
+  e.* EXCEPT (events, metrics) REPLACE(
+    "release" AS normalized_channel,
+    -- Order of some fields differs between tables; we're verbose here for compatibility
+    STRUCT(
+      client_info.android_sdk_version AS android_sdk_version,
+      client_info.app_build AS app_build,
+      client_info.app_channel AS app_channel,
+      client_info.app_display_version AS app_display_version,
+      client_info.architecture AS architecture,
+      client_info.client_id AS client_id,
+      client_info.device_manufacturer AS device_manufacturer,
+      client_info.device_model AS device_model,
+      client_info.first_run_date AS first_run_date,
+      client_info.locale AS locale,
+      client_info.os AS os,
+      client_info.os_version AS os_version,
+      client_info.telemetry_sdk_build AS telemetry_sdk_build,
+      client_info.build_date AS build_date
+    ) AS client_info,
+    (
+      SELECT AS STRUCT
+        metadata.* REPLACE (
+          STRUCT(
+            metadata.header.`date` AS `date`,
+            metadata.header.dnt AS dnt,
+            metadata.header.x_debug_id AS x_debug_id,
+            metadata.header.x_pingsender_version AS x_pingsender_version,
+            metadata.header.x_source_tags AS x_source_tags,
+            metadata.header.x_telemetry_agent AS x_telemetry_agent,
+            metadata.header.x_foxsec_ip_reputation AS x_foxsec_ip_reputation,
+            metadata.header.x_lb_tags AS x_lb_tags,
+            metadata.header.parsed_date AS parsed_date,
+            metadata.header.parsed_x_source_tags AS parsed_x_source_tags,
+            metadata.header.parsed_x_lb_tags AS parsed_x_lb_tags
+          ) AS header
+        )
+    ) AS metadata,
+    STRUCT(
+      ping_info.end_time,
+      ping_info.experiments,
+      ping_info.ping_type,
+      ping_info.seq,
+      ping_info.start_time,
+      ping_info.reason,
+      ping_info.parsed_start_time,
+      ping_info.parsed_end_time
+    ) AS ping_info
+  ),
+  CONCAT(document_id, '-', event_offset) AS event_id,
+  event.timestamp AS event_timestamp,
+  event.category AS event_category,
+  event.name AS event_name,
+  event.extra AS event_extra,
+  "daemonsession" AS source_ping,
+FROM
+  `moz-fx-data-shared-prod.mozilla_vpn.daemonsession` AS e
+CROSS JOIN
+  UNNEST(e.events) AS event
+  WITH OFFSET AS event_offset

Link to full diff

Please sign in to comment.