Implement aggregation of usage data for Container Registry AMAU
Context
The epic Container Registry GMAU: Track usage (&8213) proposes adding user-level data for the GitLab Container Registry. This data would be used to help drive prioritization and investment in the Container Registry category.
The high-level plan for delivering this was outlined in https://gitlab.com/gitlab-org/gitlab/-/issues/364730#note_1058520288.
This specific issue targets the implementation of "Aggregate" stage of the outlined implementation plan.
Plan
From the investigation in #382626 (comment 1339163587), the focus of this issue is to implement the aggregation of the counters added in !107918 (merged) that measure write operations to the container registry per unique user.
We want to count one per unique user that triggers any of the following events:
i_container_registry_push_tag_user
i_container_registry_delete_tag_user
i_container_registry_delete_repository_user
i_container_registry_create_repository_user
i_container_registry_push_repository_user
Implementation Plan
We have an aggregated metrics feature that we can use to count once when a user id appears in any of the listed events:
options:
aggregate:
operator: OR
attribute: user_id
events:
- i_container_registry_push_tag_user
- i_container_registry_delete_tag_user
- i_container_registry_delete_repository_user
- i_container_registry_create_repository_user
- i_container_registry_push_repository_user
We can also set the metric to aggregate on both a weekly and a monthly basis:
Weekly:
time_frame: 7d
Monthly:
time_frame: 28d
Here are some existing metrics that we have for package events aggregating on the user id: monthly deploy token total unique counts and weekly deploy token total unique counts
Note
The events above are only for write operations of users (not read operations and excluding deploy tokens).