From 058e23375c1e235bcb9887d88d2fc0b41555432f Mon Sep 17 00:00:00 2001 From: alrocar Date: Tue, 14 Jan 2025 17:21:45 +0100 Subject: [PATCH 1/6] top browsers --- tinybird/pipes/auth0_top_browsers.pipe | 7 +++++-- tinybird/pipes/pagerduty_incidents_over_time.pipe | 2 +- tinybird/pipes/pagerduty_interruptions.pipe | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tinybird/pipes/auth0_top_browsers.pipe b/tinybird/pipes/auth0_top_browsers.pipe index 566615d..d438e21 100644 --- a/tinybird/pipes/auth0_top_browsers.pipe +++ b/tinybird/pipes/auth0_top_browsers.pipe @@ -23,7 +23,7 @@ SQL > FROM auth0 WHERE 1 AND event_time >= {{DateTime(date_from, '2024-01-01 00:00:00')}} - AND event_time <= {{DateTime(date_to, '2025-01-01 23:59:59')}} + AND event_time <= {{DateTime(date_to, '2026-01-01 23:59:59')}} AND event.data.user_agent IS NOT NULL {% if defined(event_type) %} AND event_type = {{String(event_type)}} @@ -37,6 +37,9 @@ SQL > {% if defined(tenant_name) %} AND event.data.tenant_name::String = {{String(tenant_name)}} {% end %} + AND browser != 'Unknown' GROUP BY browser ORDER BY request_count DESC - LIMIT 10 \ No newline at end of file + LIMIT 10 + +TYPE endpoint \ No newline at end of file diff --git a/tinybird/pipes/pagerduty_incidents_over_time.pipe b/tinybird/pipes/pagerduty_incidents_over_time.pipe index 5911be2..c13365d 100644 --- a/tinybird/pipes/pagerduty_incidents_over_time.pipe +++ b/tinybird/pipes/pagerduty_incidents_over_time.pipe @@ -9,7 +9,7 @@ SQL > SELECT 0 AS number UNION ALL SELECT number + 1 - FROM system.numbers + FROM numbers(100) WHERE number < dateDiff('hour', toStartOfHour(toDateTime({{DateTime(date_from, '2024-01-01 00:00:00')}})), toStartOfHour(toDateTime({{DateTime(date_to, '2024-12-31 23:59:59')}}))) ) SELECT addHours(toStartOfHour(toDateTime({{DateTime(date_from, '2024-01-01 00:00:00')}})), number) as hour diff --git a/tinybird/pipes/pagerduty_interruptions.pipe b/tinybird/pipes/pagerduty_interruptions.pipe index f26bed3..480b566 100644 --- a/tinybird/pipes/pagerduty_interruptions.pipe +++ b/tinybird/pipes/pagerduty_interruptions.pipe @@ -9,7 +9,7 @@ SQL > SELECT 0 AS number UNION ALL SELECT number + 1 - FROM system.numbers + FROM numbers(100) WHERE number < dateDiff('day', toDate(toDateTime({{DateTime(date_from, '2024-01-01 00:00:00')}})), toDate(toDateTime({{DateTime(date_to, '2024-12-31 23:59:59')}}))) ) SELECT addDays(toDate(toDateTime({{DateTime(date_from, '2024-01-01 00:00:00')}})), number) as day From e5812c27a1fff2b14a015bf4a74c9a0af9db5328 Mon Sep 17 00:00:00 2001 From: alrocar Date: Tue, 14 Jan 2025 18:57:34 +0100 Subject: [PATCH 2/6] top browsers --- tinybird/endpoints/auth0_top_browsers.pipe | 42 +++++++++++++ tinybird/tests/auth0_top_browsers.yaml | 68 ++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 tinybird/endpoints/auth0_top_browsers.pipe create mode 100644 tinybird/tests/auth0_top_browsers.yaml diff --git a/tinybird/endpoints/auth0_top_browsers.pipe b/tinybird/endpoints/auth0_top_browsers.pipe new file mode 100644 index 0000000..21e91d5 --- /dev/null +++ b/tinybird/endpoints/auth0_top_browsers.pipe @@ -0,0 +1,42 @@ +NODE extract_browser +SQL > + + % + SELECT + case + when match(event.data.user_agent::String, '(?i)firefox') + then 'Firefox' + when match(event.data.user_agent::String, '(?i)chrome|crios') + then 'Chrome' + when match(event.data.user_agent::String, '(?i)opera') + then 'Opera' + when match(event.data.user_agent::String, '(?i)msie|trident') + then 'Internet Explorer' + when match(event.data.user_agent::String, '(?i)iphone|ipad|safari') + then 'Safari' + else 'Unknown' + END as browser, + count(*) as request_count + FROM auth0 + WHERE 1 + AND event_time >= {{DateTime(date_from, '2024-01-01 00:00:00')}} + AND event_time <= {{DateTime(date_to, '2026-01-01 23:59:59')}} + AND event.data.user_agent IS NOT NULL + {% if defined(event_type) %} + AND event_type = {{String(event_type)}} + {% end %} + {% if defined(client_name) %} + AND event.data.client_name::String = {{String(client_name)}} + {% end %} + {% if defined(connection_id) %} + AND event.data.connection_id::String = {{String(connection_id)}} + {% end %} + {% if defined(tenant_name) %} + AND event.data.tenant_name::String = {{String(tenant_name)}} + {% end %} + AND browser != 'Unknown' + GROUP BY browser + ORDER BY request_count DESC + LIMIT 10 + +TYPE endpoint diff --git a/tinybird/tests/auth0_top_browsers.yaml b/tinybird/tests/auth0_top_browsers.yaml new file mode 100644 index 0000000..6e06846 --- /dev/null +++ b/tinybird/tests/auth0_top_browsers.yaml @@ -0,0 +1,68 @@ + +- name: all_time_top_browsers + description: Get top browsers for all time with no filters + parameters: '' + expected_result: | + {"browser":"Chrome","request_count":7844} + {"browser":"Firefox","request_count":623} + {"browser":"Safari","request_count":584} + {"browser":"Opera","request_count":3} + {"browser":"Internet Explorer","request_count":3} + +- name: filtered_by_client_and_event + description: Get top browsers filtered by client name and event type + parameters: date_from=2024-01-01%2000:00:00&date_to=2026-01-01%2023:59:59&client_name=Tinybird%20UI%20login&event_type=s + expected_result: | + {"browser":"Chrome","request_count":5195} + {"browser":"Firefox","request_count":382} + {"browser":"Safari","request_count":280} + +- name: specific_tenant_connection + description: Get top browsers for a specific tenant and connection ID + parameters: date_from=2024-01-01%2000:00:00&date_to=2025-12-31%2023:59:59&tenant_name=tinybird-prod&connection_id=con_44Dbx1tiicQTA5zj + expected_result: | + {"browser":"Chrome","request_count":13} + {"browser":"Firefox","request_count":1} + +- name: custom_date_range + description: Get top browsers for a specific date range + parameters: date_from=2025-01-01%2000:00:00&date_to=2025-01-01%2023:59:59 + expected_result: | + {"browser":"Chrome","request_count":155} + {"browser":"Safari","request_count":15} + {"browser":"Firefox","request_count":9} + {"browser":"Opera","request_count":1} + {"browser":"Internet Explorer","request_count":1} + +- name: default_date_range + description: Test with default date range and no filters + parameters: tb pipe data auth0_top_browsers + expected_result: | + {"browser":"Chrome","request_count":7844} + {"browser":"Firefox","request_count":623} + {"browser":"Safari","request_count":584} + {"browser":"Opera","request_count":3} + {"browser":"Internet Explorer","request_count":3} + +- name: filtered_by_client_name + description: Test filtering by specific client name + parameters: client_name=Tinybird%20UI%20login + expected_result: | + {"browser":"Chrome","request_count":6302} + {"browser":"Firefox","request_count":471} + {"browser":"Safari","request_count":340} + +- name: filtered_by_date_range + description: Test with custom date range + parameters: date_from=2025-01-02%2000:00:00&date_to=2025-01-02%2023:59:59 + expected_result: | + {"browser":"Chrome","request_count":513} + {"browser":"Firefox","request_count":46} + {"browser":"Safari","request_count":22} + +- name: connection_specific + description: Test filtering by connection ID + parameters: connection_id=con_44Dbx1tiicQTA5zj&client_name=Tinybird%20UI%20login + expected_result: | + {"browser":"Chrome","request_count":12} + {"browser":"Firefox","request_count":1} From e0bc98eee0cf7ac4cd49965bd55e5c9e6b2a8848 Mon Sep 17 00:00:00 2001 From: alrocar Date: Tue, 14 Jan 2025 19:01:26 +0100 Subject: [PATCH 3/6] ignore tests --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7eafe5c..7a1c2ec 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ .tmp .tb_error* tinybird/fixtures - +tinybird/tests From 9fc036d0d069017296633c98a4b0e4eb8e6fbaca Mon Sep 17 00:00:00 2001 From: alrocar Date: Tue, 14 Jan 2025 19:03:16 +0100 Subject: [PATCH 4/6] ignore tests --- tinybird/tests/.gitkeep | 0 tinybird/tests/auth0_top_browsers.yaml | 68 -------------------------- 2 files changed, 68 deletions(-) delete mode 100644 tinybird/tests/.gitkeep delete mode 100644 tinybird/tests/auth0_top_browsers.yaml diff --git a/tinybird/tests/.gitkeep b/tinybird/tests/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tinybird/tests/auth0_top_browsers.yaml b/tinybird/tests/auth0_top_browsers.yaml deleted file mode 100644 index 6e06846..0000000 --- a/tinybird/tests/auth0_top_browsers.yaml +++ /dev/null @@ -1,68 +0,0 @@ - -- name: all_time_top_browsers - description: Get top browsers for all time with no filters - parameters: '' - expected_result: | - {"browser":"Chrome","request_count":7844} - {"browser":"Firefox","request_count":623} - {"browser":"Safari","request_count":584} - {"browser":"Opera","request_count":3} - {"browser":"Internet Explorer","request_count":3} - -- name: filtered_by_client_and_event - description: Get top browsers filtered by client name and event type - parameters: date_from=2024-01-01%2000:00:00&date_to=2026-01-01%2023:59:59&client_name=Tinybird%20UI%20login&event_type=s - expected_result: | - {"browser":"Chrome","request_count":5195} - {"browser":"Firefox","request_count":382} - {"browser":"Safari","request_count":280} - -- name: specific_tenant_connection - description: Get top browsers for a specific tenant and connection ID - parameters: date_from=2024-01-01%2000:00:00&date_to=2025-12-31%2023:59:59&tenant_name=tinybird-prod&connection_id=con_44Dbx1tiicQTA5zj - expected_result: | - {"browser":"Chrome","request_count":13} - {"browser":"Firefox","request_count":1} - -- name: custom_date_range - description: Get top browsers for a specific date range - parameters: date_from=2025-01-01%2000:00:00&date_to=2025-01-01%2023:59:59 - expected_result: | - {"browser":"Chrome","request_count":155} - {"browser":"Safari","request_count":15} - {"browser":"Firefox","request_count":9} - {"browser":"Opera","request_count":1} - {"browser":"Internet Explorer","request_count":1} - -- name: default_date_range - description: Test with default date range and no filters - parameters: tb pipe data auth0_top_browsers - expected_result: | - {"browser":"Chrome","request_count":7844} - {"browser":"Firefox","request_count":623} - {"browser":"Safari","request_count":584} - {"browser":"Opera","request_count":3} - {"browser":"Internet Explorer","request_count":3} - -- name: filtered_by_client_name - description: Test filtering by specific client name - parameters: client_name=Tinybird%20UI%20login - expected_result: | - {"browser":"Chrome","request_count":6302} - {"browser":"Firefox","request_count":471} - {"browser":"Safari","request_count":340} - -- name: filtered_by_date_range - description: Test with custom date range - parameters: date_from=2025-01-02%2000:00:00&date_to=2025-01-02%2023:59:59 - expected_result: | - {"browser":"Chrome","request_count":513} - {"browser":"Firefox","request_count":46} - {"browser":"Safari","request_count":22} - -- name: connection_specific - description: Test filtering by connection ID - parameters: connection_id=con_44Dbx1tiicQTA5zj&client_name=Tinybird%20UI%20login - expected_result: | - {"browser":"Chrome","request_count":12} - {"browser":"Firefox","request_count":1} From 8abeb3277645d37196e5b827c565a7ec917ccb24 Mon Sep 17 00:00:00 2001 From: alrocar Date: Tue, 14 Jan 2025 19:07:52 +0100 Subject: [PATCH 5/6] ignore tests --- .gitignore | 2 +- tinybird/tests/.gitkeep | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 tinybird/tests/.gitkeep diff --git a/.gitignore b/.gitignore index 7a1c2ec..b702128 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,4 @@ .tmp .tb_error* tinybird/fixtures -tinybird/tests +tinybird/tests/*.yaml diff --git a/tinybird/tests/.gitkeep b/tinybird/tests/.gitkeep new file mode 100644 index 0000000..e69de29 From a0d0f9809dd5863e9c3c3bdcfb6bba609fce3223 Mon Sep 17 00:00:00 2001 From: alrocar Date: Wed, 15 Jan 2025 09:38:31 +0100 Subject: [PATCH 6/6] add endpoint --- tinybird/pipes/auth0_apis.pipe | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tinybird/pipes/auth0_apis.pipe b/tinybird/pipes/auth0_apis.pipe index 3ae0239..13ff075 100644 --- a/tinybird/pipes/auth0_apis.pipe +++ b/tinybird/pipes/auth0_apis.pipe @@ -27,3 +27,5 @@ SQL > event.data.audience::String ORDER BY total_events DESC + +TYPE endpoint