Migrate epic events to internal events: vol.1
What does this MR do and why?
Related to #421593 (closed)
Migrate some of the redis_hll_counters.epics_usage.epics_usage_total_unique_counts_monthly
event's sub-events to Internal Events API.
Script used to update the files:
class DebugGenerator < Gitlab::Analytics::InternalEventsGenerator
source_root File.expand_path('generator_templates/gitlab_internal_events', __dir__)
def create_metric_file
validate!
template "event_definition.yml",
event_file_path(event),
options.fetch(:event_desc)
end
end
is_ee = true
mr_number = 131794
unique_by = "user.id"
section = "dev"
stage = "plan"
group = "product_planning"
events_with_desc = [
['g_project_management_epic_created', 'An epic has been created'],
['g_project_management_users_updating_epic_titles', "An epic's title has been updated"],
['g_project_management_users_updating_epic_descriptions', "An epic's description has been updated"]
]
events_with_desc.each do |event_name, event_desc|
tiers = %w[premium ultimate]
tiers = %w[free premium ultimate] if !is_ee
DebugGenerator.new([], {
event: event_name,
event_desc: event_desc,
section: section,
stage: stage,
group: group,
mr: "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/#{mr_number}",
unique: unique_by,
tiers: tiers
}).invoke_all
['28d', '7d'].each do |days|
dir_prefix = is_ee ? "ee/" : ""
event_file_pattern = event_name.delete_prefix('g_project_management_')
files = Dir["#{dir_prefix}config/metrics/counts_#{days}/*\_#{event_file_pattern}\_*"]
raise StandardError, "Multiple files found: #{files}" unless files.count == 1
file_name = files.first
text = File.read(file_name)
new_contents = text.gsub(/distribution:/, "events:
- name: #{event_name}
unique: #{unique_by}\ndistribution:")
File.open(file_name, "w") {|file| file.puts new_contents }
end
end
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Before | After |
---|---|
How to set up and validate locally
- Set up snowplow-micro
- Trigger the events migrated here:
- create an epic
- edit an epic's title
- edit an epic's description
- Make sure that the events have been triggered with content as per their new event definition files [eg. -
category
sent asInternalEventTracking
] on thehttp://localhost:9091/micro/good
snowplow micro endpoint.
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 Michał Wielich