Skip to content

Aggregate epic promotion snowplow event in Usage Ping

What does this MR do?

In !39270 (merged), we started sending the epic promotion snowplow event to the Product Analytics collector.

As part of the MVC for &3480 (closed), we now want to aggregate and report this event via usage ping.

It is currently placed in counts and counts_monthly, but we may consider adding a new object for snowplow events in the future.

Once usage ping reports some data to us, we can compare the count with snowflake (data warehouse), and validate that event collection/aggregation works end-to-end.

Relates to #234144 (closed)

New Queries

SELECT MIN("product_analytics_events_experimental"."id") FROM "product_analytics_events_experimental" WHERE "product_analytics_events_experimental"."project_id" = 22 AND "product_analytics_events_experimental"."se_category" = 'epics' AND "product_analytics_events_experimental"."se_action" = 'promote'

https://explain.depesz.com/s/LcM6

SELECT MAX("product_analytics_events_experimental"."id") FROM "product_analytics_events_experimental" WHERE "product_analytics_events_experimental"."project_id" = 22 AND "product_analytics_events_experimental"."se_category" = 'epics' AND "product_analytics_events_experimental"."se_action" = 'promote'

https://explain.depesz.com/s/lILP

SELECT COUNT("product_analytics_events_experimental"."id") FROM "product_analytics_events_experimental" WHERE "product_analytics_events_experimental"."project_id" = 22 AND "product_analytics_events_experimental"."se_category" = 'epics' AND "product_analytics_events_experimental"."se_action" = 'promote' AND "product_analytics_events_experimental"."id" BETWEEN 10 AND 100009

https://explain.depesz.com/s/zk52

SELECT MIN("product_analytics_events_experimental"."id") FROM "product_analytics_events_experimental" WHERE "product_analytics_events_experimental"."project_id" = 22 AND "product_analytics_events_experimental"."se_category" = 'epics' AND "product_analytics_events_experimental"."se_action" = 'promote' AND (collector_tstamp BETWEEN '2020-07-25' AND '2020-08-22' )

https://explain.depesz.com/s/YnQp

SELECT MAX("product_analytics_events_experimental"."id") FROM "product_analytics_events_experimental" WHERE "product_analytics_events_experimental"."project_id" = 22 AND "product_analytics_events_experimental"."se_category" = 'epics' AND "product_analytics_events_experimental"."se_action" = 'promote' AND (collector_tstamp BETWEEN '2020-07-25' AND '2020-08-22' )

https://explain.depesz.com/s/bS90

SELECT COUNT("product_analytics_events_experimental"."id") FROM "product_analytics_events_experimental" WHERE "product_analytics_events_experimental"."project_id" = 22 AND "product_analytics_events_experimental"."se_category" = 'epics' AND "product_analytics_events_experimental"."se_action" = 'promote' AND (collector_tstamp BETWEEN '2020-07-25' AND '2020-08-22' ) AND "product_analytics_events_experimental"."id" BETWEEN 10 AND 100009

https://explain.depesz.com/s/Syt6i

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by Alishan Ladhani

Merge request reports