mirror of
https://github.com/twentyhq/twenty.git
synced 2024-12-24 04:23:57 +03:00
f06cdbdfc6
**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>
35 lines
1.2 KiB
Plaintext
35 lines
1.2 KiB
Plaintext
INCLUDE "../includes/timeSeries.incl"
|
|
|
|
NODE timeSeriesServerlessFunctionSuccessRateData
|
|
SQL >
|
|
%
|
|
SELECT
|
|
{% if granularity == "hour" %} toStartOfHour(timestamp)
|
|
{% else %} toDateTime64(toStartOfDay(timestamp), 3)
|
|
{% end %} AS interval,
|
|
round(
|
|
if(
|
|
uniqIf(*, success = true) = 0,
|
|
0,
|
|
(uniqIf(*, success = true) - uniqIf(*, success = false)) / uniqIf(*, success = true)
|
|
),
|
|
2
|
|
) as success_rate
|
|
FROM serverlessFunctionEventMV
|
|
WHERE
|
|
true
|
|
AND workspaceId
|
|
={{ String(workspaceId, '20202020-1c25-4d02-bf25-6aeccf7ea419', required=True) }}
|
|
AND functionId = {{ String(functionId, 'ad018fc5-eace-4f7e-942f-929560a16459', required=True) }}
|
|
AND timestamp >= parseDateTime64BestEffort({{ String(start, '2024-11-01T00:00:00.000Z') }}, 3)
|
|
AND timestamp < parseDateTime64BestEffort({{ String(end, '2024-11-02T00:00:00.000Z') }}, 3)
|
|
GROUP BY interval
|
|
ORDER BY interval
|
|
|
|
NODE endpoint
|
|
SQL >
|
|
%
|
|
SELECT formatDateTime(interval, '%FT%T.000%z') as start, success_rate
|
|
FROM selectIntervalByGranularity
|
|
LEFT JOIN timeSeriesServerlessFunctionSuccessRateData USING interval
|