Add metrics definition generator for Gitlab Internal Events Tracking
What does this MR do and why?
Describe in detail what your merge request does and why.
Add GIET generator
Add new rails generator that creates configuration files for gitlab internal events tracking feature.
Implements step towards #407865 (closed)
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
How to set up and validate locally
You can use generator in your terminal like:
$ bin/rails g gitlab:analytics:internal_events --help Usage:
rails generate gitlab:analytics:internal_events [options]
Options:
[--time-frames=7d, 28d] # Indicates the metrics time frames. Please select one or more from: 7d, 28d
# Default: 7d, 28d
[--tiers=free, premium, ultimate] # Indicates the metric's GitLab subscription tiers. Please select one or more from: free, premium, ultimate
# Default: free, premium, ultimate
[--group=GROUP] # Name of group that added this metric
[--stage=STAGE] # Name of stage that added this metric
[--section=SECTION] # Name of section that added this metric
[--mr=MR] # Merge Request that adds this metric
[--event=EVENT] # Name of the event that this metric counts
[--unique-on=UNIQUE_ON] # Name of the event property that this metric counts
Runtime options:
-f, [--force] # Overwrite files that already exist
-p, [--pretend], [--no-pretend] # Run but do not make any changes
-q, [--quiet], [--no-quiet] # Suppress status output
-s, [--skip], [--no-skip] # Skip files that already exist
Generates metric definitions yml files and known events entries
Following command
bin/rails g gitlab:analytics:internal_events --event test_event --section test --group test --category test --stage test --mr https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118738 --unique_on user_id
should result in 2 files being created
create config/metrics/counts_7d/count_distinct_user_id_from_test_event_7d.yml
create config/metrics/counts_28d/count_distinct_user_id_from_test_event_28d.yml
And one entry being appended to lib/gitlab/usage_data_counters/known_events/common.yml
append lib/gitlab/usage_data_counters/known_events/common.yml
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Mikołaj Wawrzyniak