refactor webhookAnalytics call and enrich analytics module (#8253)
**TLDR** Refactor WebhoonAnalytics Graph to a more abstract version AnalyticsGraph (in analytics module). Thus enabling the components to be used on different instances (ex: new endpoint, new kind of graph). **In order to test:** 1. Set ANALYTICS_ENABLED to true 2. Set TINYBIRD_JWT_TOKEN to the ADMIN token from the workspace twenty_analytics_playground 3. Set TINYBIRD_JWT_TOKEN to the datasource or your admin token from the workspace twenty_analytics_playground 4. Create a Webhook in twenty and set wich events it needs to track 5. Run twenty-worker in order to make the webhooks work. 6. Do your tasks in order to populate the data 7. Enter to settings> webhook>your webhook and the statistics section should be displayed. --------- Co-authored-by: Félix Malfait <felix@twenty.com>
This commit is contained in:
committed by
GitHub
parent
f9c076df31
commit
f06cdbdfc6
@ -6,18 +6,14 @@ SQL >
|
||||
%
|
||||
WITH
|
||||
toStartOfDay(
|
||||
toDateTime64({{ DateTime64(start, '2024-10-16 00:00:00.000') }}, 3),
|
||||
{{ String(timezone, 'UTC') }}
|
||||
parseDateTime64BestEffort({{ String(start, '2024-11-01T00:00:00.000Z') }}, 3)
|
||||
) AS start,
|
||||
toStartOfDay(
|
||||
toDateTime64({{ DateTime64(end, '2024-10-23 00:00:00.000') }}, 3),
|
||||
{{ String(timezone, 'UTC') }}
|
||||
) AS
|
||||
toStartOfDay(parseDateTime64BestEffort({{ String(end, '2024-11-02T00:00:00.000Z') }}, 3)) AS
|
||||
end
|
||||
SELECT
|
||||
arrayJoin(
|
||||
arrayMap(
|
||||
x -> toDateTime64(toStartOfDay(toDateTime64(x, 3), {{ String(timezone, 'UTC') }}), 3),
|
||||
x -> toDateTime64(toStartOfDay(toDateTime64(x, 3)), 3),
|
||||
range(toUInt32(start + 86400), toUInt32(end + 86400),
|
||||
86400
|
||||
)
|
||||
@ -29,13 +25,9 @@ SQL >
|
||||
%
|
||||
WITH
|
||||
toStartOfHour(
|
||||
toDateTime64({{ DateTime64(start, '2024-10-22 00:00:00.000') }}, 3),
|
||||
{{ String(timezone, 'UTC') }}
|
||||
parseDateTime64BestEffort({{ String(start, '2024-11-01T00:00:00.000Z') }}, 3)
|
||||
) AS start,
|
||||
toStartOfHour(
|
||||
toDateTime64({{ DateTime64(end, '2024-10-23 00:00:00.000') }}, 3),
|
||||
{{ String(timezone, 'UTC') }}
|
||||
) AS
|
||||
toStartOfHour(parseDateTime64BestEffort({{ String(end, '2024-11-02T00:00:00.000Z') }}, 3)) AS
|
||||
end
|
||||
SELECT
|
||||
arrayJoin(
|
||||
@ -43,45 +35,7 @@ SQL >
|
||||
)
|
||||
) as interval
|
||||
|
||||
NODE customIntervals
|
||||
SQL >
|
||||
%
|
||||
WITH
|
||||
time_series AS (
|
||||
SELECT
|
||||
toDateTime64(
|
||||
toDateTime(
|
||||
toStartOfInterval(
|
||||
toDateTime64({{ DateTime64(start, '2024-10-22 00:00:00.000') }}, 3),
|
||||
INTERVAL {{ Int32(tickIntervalInMinutes, 420) }} MINUTE
|
||||
)
|
||||
)
|
||||
+ INTERVAL number * {{ Int32(tickIntervalInMinutes, 420) }} MINUTE,
|
||||
3
|
||||
) AS interval
|
||||
FROM
|
||||
numbers(
|
||||
0,
|
||||
1 + intDiv(
|
||||
dateDiff(
|
||||
'minute',
|
||||
toDateTime64({{ DateTime64(start, '2024-10-22 00:00:00.000') }}, 3),
|
||||
toDateTime64({{ DateTime64(end, '2024-10-23 00:00:00.000') }}, 3)
|
||||
),
|
||||
{{ Int32(tickIntervalInMinutes, 420) }}
|
||||
)
|
||||
)
|
||||
WHERE interval <= toDateTime64({{ DateTime64(end, '2024-10-23 00:00:00.000') }}, 3)
|
||||
)
|
||||
SELECT interval
|
||||
FROM time_series
|
||||
|
||||
NODE selectIntervalByGranularity
|
||||
SQL >
|
||||
%
|
||||
SELECT *
|
||||
FROM
|
||||
{% if granularity == "custom" %} customIntervals
|
||||
{% elif granularity == "hour" %} hourIntervals
|
||||
{% else %} dayIntervals
|
||||
{% end %}
|
||||
SELECT * FROM {% if granularity == "hour" %} hourIntervals {% else %} dayIntervals {% end %}
|
||||
|
||||
Reference in New Issue
Block a user