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:
Ana Sofia Marin Alexandre
2024-11-08 06:00:51 -03:00
committed by GitHub
parent f9c076df31
commit f06cdbdfc6
62 changed files with 1429 additions and 539 deletions

View File

@ -1,11 +1,11 @@
SCHEMA >
`action` String `json:$.action`,
`action` LowCardinality(String) `json:$.action`,
`timestamp` DateTime64(3) `json:$.timestamp`,
`version` String `json:$.version`,
`version` LowCardinality(String) `json:$.version`,
`userId` String `json:$.userId` DEFAULT '',
`workspaceId` String `json:$.workspaceId` DEFAULT '',
`payload` String `json:$.payload`
ENGINE MergeTree
ENGINE_PARTITION_KEY toYear(timestamp)
ENGINE_SORTING_KEY action, timestamp
ENGINE_SORTING_KEY action, workspaceId, timestamp

View File

@ -1,16 +1,16 @@
SCHEMA >
`href` String `json:$.href`,
`locale` String `json:$.locale`,
`locale` LowCardinality(String) `json:$.locale`,
`pathname` String `json:$.pathname`,
`referrer` String `json:$.referrer`,
`sessionId` String `json:$.sessionId`,
`timeZone` String `json:$.timeZone`,
`timeZone` LowCardinality(String) `json:$.timeZone`,
`timestamp` DateTime64(3) `json:$.timestamp`,
`userAgent` String `json:$.userAgent`,
`userId` String `json:$.userId` DEFAULT '',
`version` String `json:$.version`,
`workspaceId` String `json:$.workspaceId`
`version` LowCardinality(String) `json:$.version`,
`workspaceId` String `json:$.workspaceId` DEFAULT ''
ENGINE MergeTree
ENGINE_PARTITION_KEY toYear(timestamp)
ENGINE_SORTING_KEY timestamp, userId, version, workspaceId
ENGINE_SORTING_KEY workspaceId, userId, timestamp

View File

@ -4,8 +4,9 @@ SCHEMA >
`functionId` String,
`durationInMs` Int64,
`success` Bool,
`errorType` String
`errorType` LowCardinality(String),
`version` LowCardinality(String)
ENGINE MergeTree
ENGINE_PARTITION_KEY toYYYYMM(timestamp)
ENGINE_SORTING_KEY timestamp, functionId, success
ENGINE_SORTING_KEY workspaceId, functionId, timestamp

View File

@ -3,11 +3,11 @@ SCHEMA >
`workspaceId` String,
`webhookId` String,
`url` String,
`success` UInt8,
`success` Bool,
`status` Int64,
`eventName` String,
`version` String
`eventName` LowCardinality(String),
`version` LowCardinality(String)
ENGINE MergeTree
ENGINE_PARTITION_KEY toYYYYMM(timestamp)
ENGINE_SORTING_KEY timestamp, workspaceId
ENGINE_SORTING_KEY workspaceId, webhookId, timestamp