Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-04-21 02:50:22 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-21 02:50:22 +0300
commit9dc93a4519d9d5d7be48ff274127136236a3adb3 (patch)
tree70467ae3692a0e35e5ea56bcb803eb512a10bedb /lib/gitlab/usage_data_counters
parent4b0f34b6d759d6299322b3a54453e930c6121ff0 (diff)
Add latest changes from gitlab-org/gitlab@13-11-stable-eev13.11.0-rc43
Diffstat (limited to 'lib/gitlab/usage_data_counters')
-rw-r--r--lib/gitlab/usage_data_counters/aggregated_metrics/code_review.yml108
-rw-r--r--lib/gitlab/usage_data_counters/aggregated_metrics/common.yml72
-rw-r--r--lib/gitlab/usage_data_counters/base_counter.rb4
-rw-r--r--lib/gitlab/usage_data_counters/ci_template_unique_counter.rb4
-rw-r--r--lib/gitlab/usage_data_counters/hll_redis_counter.rb5
-rw-r--r--lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb112
-rw-r--r--lib/gitlab/usage_data_counters/known_events/ci_templates.yml15
-rw-r--r--lib/gitlab/usage_data_counters/known_events/common.yml42
-rw-r--r--lib/gitlab/usage_data_counters/known_events/epic_events.yml142
-rw-r--r--lib/gitlab/usage_data_counters/note_counter.rb6
-rw-r--r--lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb2
11 files changed, 241 insertions, 271 deletions
diff --git a/lib/gitlab/usage_data_counters/aggregated_metrics/code_review.yml b/lib/gitlab/usage_data_counters/aggregated_metrics/code_review.yml
deleted file mode 100644
index 4c2355d526a..00000000000
--- a/lib/gitlab/usage_data_counters/aggregated_metrics/code_review.yml
+++ /dev/null
@@ -1,108 +0,0 @@
-# code_review_extension_category_monthly_active_users
-# This is only metrics related to the VS Code Extension for now.
-#
-# code_review_category_monthly_active_users
-# This is the user based metrics. These should only be user based metrics and only be related to the Code Review things inside of GitLab.
-#
-# code_review_group_monthly_active_users
-# This is an aggregation of both of the above aggregations. It's intended to represent all users who interact with our group across all of our categories.
----
-- name: code_review_group_monthly_active_users
- operator: OR
- feature_flag: usage_data_code_review_aggregation
- source: redis
- time_frame: [7d, 28d]
- events: [
- 'i_code_review_user_single_file_diffs',
- 'i_code_review_user_create_mr',
- 'i_code_review_user_close_mr',
- 'i_code_review_user_reopen_mr',
- 'i_code_review_user_resolve_thread',
- 'i_code_review_user_unresolve_thread',
- 'i_code_review_edit_mr_title',
- 'i_code_review_edit_mr_desc',
- 'i_code_review_user_merge_mr',
- 'i_code_review_user_create_mr_comment',
- 'i_code_review_user_edit_mr_comment',
- 'i_code_review_user_remove_mr_comment',
- 'i_code_review_user_create_review_note',
- 'i_code_review_user_publish_review',
- 'i_code_review_user_create_multiline_mr_comment',
- 'i_code_review_user_edit_multiline_mr_comment',
- 'i_code_review_user_remove_multiline_mr_comment',
- 'i_code_review_user_add_suggestion',
- 'i_code_review_user_apply_suggestion',
- 'i_code_review_user_assigned',
- 'i_code_review_user_review_requested',
- 'i_code_review_user_approve_mr',
- 'i_code_review_user_unapprove_mr',
- 'i_code_review_user_marked_as_draft',
- 'i_code_review_user_unmarked_as_draft',
- 'i_code_review_user_approval_rule_added',
- 'i_code_review_user_approval_rule_deleted',
- 'i_code_review_user_approval_rule_edited',
- 'i_code_review_user_vs_code_api_request',
- 'i_code_review_user_toggled_task_item_status',
- 'i_code_review_user_create_mr_from_issue',
- 'i_code_review_user_mr_discussion_locked',
- 'i_code_review_user_mr_discussion_unlocked',
- 'i_code_review_user_time_estimate_changed',
- 'i_code_review_user_time_spent_changed',
- 'i_code_review_user_assignees_changed',
- 'i_code_review_user_reviewers_changed',
- 'i_code_review_user_milestone_changed',
- 'i_code_review_user_labels_changed'
- ]
-- name: code_review_category_monthly_active_users
- operator: OR
- feature_flag: usage_data_code_review_aggregation
- source: redis
- time_frame: [7d, 28d]
- events: [
- 'i_code_review_user_single_file_diffs',
- 'i_code_review_user_create_mr',
- 'i_code_review_user_close_mr',
- 'i_code_review_user_reopen_mr',
- 'i_code_review_user_resolve_thread',
- 'i_code_review_user_unresolve_thread',
- 'i_code_review_edit_mr_title',
- 'i_code_review_edit_mr_desc',
- 'i_code_review_user_merge_mr',
- 'i_code_review_user_create_mr_comment',
- 'i_code_review_user_edit_mr_comment',
- 'i_code_review_user_remove_mr_comment',
- 'i_code_review_user_create_review_note',
- 'i_code_review_user_publish_review',
- 'i_code_review_user_create_multiline_mr_comment',
- 'i_code_review_user_edit_multiline_mr_comment',
- 'i_code_review_user_remove_multiline_mr_comment',
- 'i_code_review_user_add_suggestion',
- 'i_code_review_user_apply_suggestion',
- 'i_code_review_user_assigned',
- 'i_code_review_user_review_requested',
- 'i_code_review_user_approve_mr',
- 'i_code_review_user_unapprove_mr',
- 'i_code_review_user_marked_as_draft',
- 'i_code_review_user_unmarked_as_draft',
- 'i_code_review_user_approval_rule_added',
- 'i_code_review_user_approval_rule_deleted',
- 'i_code_review_user_approval_rule_edited',
- 'i_code_review_user_toggled_task_item_status',
- 'i_code_review_user_create_mr_from_issue',
- 'i_code_review_user_mr_discussion_locked',
- 'i_code_review_user_mr_discussion_unlocked',
- 'i_code_review_user_time_estimate_changed',
- 'i_code_review_user_time_spent_changed',
- 'i_code_review_user_assignees_changed',
- 'i_code_review_user_reviewers_changed',
- 'i_code_review_user_milestone_changed',
- 'i_code_review_user_labels_changed'
- ]
-- name: code_review_extension_category_monthly_active_users
- operator: OR
- feature_flag: usage_data_code_review_aggregation
- source: redis
- time_frame: [7d, 28d]
- events: [
- 'i_code_review_user_vs_code_api_request'
- ]
diff --git a/lib/gitlab/usage_data_counters/aggregated_metrics/common.yml b/lib/gitlab/usage_data_counters/aggregated_metrics/common.yml
deleted file mode 100644
index 73a55b5d5fa..00000000000
--- a/lib/gitlab/usage_data_counters/aggregated_metrics/common.yml
+++ /dev/null
@@ -1,72 +0,0 @@
-# Aggregated metrics that include EE only event names within `events:` attribute have to be defined at ee/lib/gitlab/usage_data_counters/aggregated_metrics/common.yml
-# instead of this file.
-#- name: unique name of aggregated metric
-# operator: aggregation operator. Valid values are:
-# - "OR": counts unique elements that were observed triggering any of following events
-# - "AND": counts unique elements that were observed triggering all of following events
-# events: list of events names to aggregate into metric. All events in this list must have the same 'redis_slot' and 'aggregation' attributes
-# see from lib/gitlab/usage_data_counters/known_events/ for the list of valid events.
-# source: defines which datasource will be used to locate events that should be included in aggregated metric. Valid values are:
-# - database
-# - redis
-# time_frame: defines time frames for aggregated metrics:
-# - 7d - last 7 days
-# - 28d - last 28 days
-# - all - all historical available data, this time frame is not available for redis source
-# feature_flag: name of development feature flag that will be checked before metrics aggregation is performed.
-# Corresponding feature flag should have `default_enabled` attribute set to `false`.
-# This attribute is OPTIONAL and can be omitted, when `feature_flag` is missing no feature flag will be checked.
----
-- name: compliance_features_track_unique_visits_union
- operator: OR
- source: redis
- time_frame: [7d, 28d]
- events: ['g_compliance_audit_events', 'g_compliance_dashboard', 'i_compliance_audit_events', 'a_compliance_audit_events_api', 'i_compliance_credential_inventory']
-- name: product_analytics_test_metrics_union
- operator: OR
- source: redis
- time_frame: [7d, 28d]
- events: ['i_search_total', 'i_search_advanced', 'i_search_paid']
-- name: product_analytics_test_metrics_intersection
- operator: AND
- source: redis
- time_frame: [7d, 28d]
- events: ['i_search_total', 'i_search_advanced', 'i_search_paid']
-- name: incident_management_alerts_total_unique_counts
- operator: OR
- source: redis
- time_frame: [7d, 28d]
- events: [
- 'incident_management_alert_status_changed',
- 'incident_management_alert_assigned',
- 'incident_management_alert_todo',
- 'incident_management_alert_create_incident'
- ]
-- name: incident_management_incidents_total_unique_counts
- operator: OR
- source: redis
- time_frame: [7d, 28d]
- events: [
- 'incident_management_incident_created',
- 'incident_management_incident_reopened',
- 'incident_management_incident_closed',
- 'incident_management_incident_assigned',
- 'incident_management_incident_todo',
- 'incident_management_incident_comment',
- 'incident_management_incident_zoom_meeting',
- 'incident_management_incident_published',
- 'incident_management_incident_relate',
- 'incident_management_incident_unrelate',
- 'incident_management_incident_change_confidential'
- ]
-- name: i_testing_paid_monthly_active_user_total
- operator: OR
- source: redis
- time_frame: [7d, 28d]
- events: [
- 'i_testing_web_performance_widget_total',
- 'i_testing_full_code_quality_report_total',
- 'i_testing_group_code_coverage_visit_total',
- 'i_testing_load_performance_widget_total',
- 'i_testing_metrics_report_widget_total'
- ]
diff --git a/lib/gitlab/usage_data_counters/base_counter.rb b/lib/gitlab/usage_data_counters/base_counter.rb
index d28fd17a989..4ab310a2519 100644
--- a/lib/gitlab/usage_data_counters/base_counter.rb
+++ b/lib/gitlab/usage_data_counters/base_counter.rb
@@ -22,11 +22,11 @@ module Gitlab::UsageDataCounters
end
def totals
- known_events.map { |event| [counter_key(event), read(event)] }.to_h
+ known_events.to_h { |event| [counter_key(event), read(event)] }
end
def fallback_totals
- known_events.map { |event| [counter_key(event), -1] }.to_h
+ known_events.to_h { |event| [counter_key(event), -1] }
end
def fetch_supported_event(event_name)
diff --git a/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb b/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb
index 772a4623280..c9106d7c6b8 100644
--- a/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb
+++ b/lib/gitlab/usage_data_counters/ci_template_unique_counter.rb
@@ -2,7 +2,7 @@
module Gitlab::UsageDataCounters
class CiTemplateUniqueCounter
- REDIS_SLOT = 'ci_templates'.freeze
+ REDIS_SLOT = 'ci_templates'
# NOTE: Events originating from implicit Auto DevOps pipelines get prefixed with `implicit_`
TEMPLATE_TO_EVENT = {
@@ -20,8 +20,6 @@ module Gitlab::UsageDataCounters
class << self
def track_unique_project_event(project_id:, template:, config_source:)
- return if Feature.disabled?(:usage_data_track_ci_templates_unique_projects, default_enabled: :yaml)
-
if event = unique_project_event(template, config_source)
Gitlab::UsageDataCounters::HLLRedisCounter.track_event(event, values: project_id)
end
diff --git a/lib/gitlab/usage_data_counters/hll_redis_counter.rb b/lib/gitlab/usage_data_counters/hll_redis_counter.rb
index 336bef081a6..a8691169fb8 100644
--- a/lib/gitlab/usage_data_counters/hll_redis_counter.rb
+++ b/lib/gitlab/usage_data_counters/hll_redis_counter.rb
@@ -151,13 +151,16 @@ module Gitlab
aggregation = events.first[:aggregation]
keys = keys_for_aggregation(aggregation, events: events, start_date: start_date, end_date: end_date, context: context)
+
+ return FALLBACK unless keys.any?
+
redis_usage_data { Gitlab::Redis::HLL.count(keys: keys) }
end
def feature_enabled?(event)
return true if event[:feature_flag].blank?
- Feature.enabled?(event[:feature_flag], default_enabled: :yaml)
+ Feature.enabled?(event[:feature_flag], default_enabled: :yaml) && Feature.enabled?(:redis_hll_tracking, type: :ops, default_enabled: :yaml)
end
# Allow to add totals for events that are in the same redis slot, category and have the same aggregation level
diff --git a/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb b/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb
index c2662a74432..6f5f878501f 100644
--- a/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb
+++ b/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb
@@ -34,120 +34,120 @@ module Gitlab
ISSUE_COMMENT_REMOVED = 'g_project_management_issue_comment_removed'
class << self
- def track_issue_created_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_CREATED, author, time)
+ def track_issue_created_action(author:)
+ track_unique_action(ISSUE_CREATED, author)
end
- def track_issue_title_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_TITLE_CHANGED, author, time)
+ def track_issue_title_changed_action(author:)
+ track_unique_action(ISSUE_TITLE_CHANGED, author)
end
- def track_issue_description_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_DESCRIPTION_CHANGED, author, time)
+ def track_issue_description_changed_action(author:)
+ track_unique_action(ISSUE_DESCRIPTION_CHANGED, author)
end
- def track_issue_assignee_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_ASSIGNEE_CHANGED, author, time)
+ def track_issue_assignee_changed_action(author:)
+ track_unique_action(ISSUE_ASSIGNEE_CHANGED, author)
end
- def track_issue_made_confidential_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_MADE_CONFIDENTIAL, author, time)
+ def track_issue_made_confidential_action(author:)
+ track_unique_action(ISSUE_MADE_CONFIDENTIAL, author)
end
- def track_issue_made_visible_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_MADE_VISIBLE, author, time)
+ def track_issue_made_visible_action(author:)
+ track_unique_action(ISSUE_MADE_VISIBLE, author)
end
- def track_issue_closed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_CLOSED, author, time)
+ def track_issue_closed_action(author:)
+ track_unique_action(ISSUE_CLOSED, author)
end
- def track_issue_reopened_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_REOPENED, author, time)
+ def track_issue_reopened_action(author:)
+ track_unique_action(ISSUE_REOPENED, author)
end
- def track_issue_label_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_LABEL_CHANGED, author, time)
+ def track_issue_label_changed_action(author:)
+ track_unique_action(ISSUE_LABEL_CHANGED, author)
end
- def track_issue_milestone_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_MILESTONE_CHANGED, author, time)
+ def track_issue_milestone_changed_action(author:)
+ track_unique_action(ISSUE_MILESTONE_CHANGED, author)
end
- def track_issue_cross_referenced_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_CROSS_REFERENCED, author, time)
+ def track_issue_cross_referenced_action(author:)
+ track_unique_action(ISSUE_CROSS_REFERENCED, author)
end
- def track_issue_moved_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_MOVED, author, time)
+ def track_issue_moved_action(author:)
+ track_unique_action(ISSUE_MOVED, author)
end
- def track_issue_related_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_RELATED, author, time)
+ def track_issue_related_action(author:)
+ track_unique_action(ISSUE_RELATED, author)
end
- def track_issue_unrelated_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_UNRELATED, author, time)
+ def track_issue_unrelated_action(author:)
+ track_unique_action(ISSUE_UNRELATED, author)
end
- def track_issue_marked_as_duplicate_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_MARKED_AS_DUPLICATE, author, time)
+ def track_issue_marked_as_duplicate_action(author:)
+ track_unique_action(ISSUE_MARKED_AS_DUPLICATE, author)
end
- def track_issue_locked_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_LOCKED, author, time)
+ def track_issue_locked_action(author:)
+ track_unique_action(ISSUE_LOCKED, author)
end
- def track_issue_unlocked_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_UNLOCKED, author, time)
+ def track_issue_unlocked_action(author:)
+ track_unique_action(ISSUE_UNLOCKED, author)
end
- def track_issue_designs_added_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_DESIGNS_ADDED, author, time)
+ def track_issue_designs_added_action(author:)
+ track_unique_action(ISSUE_DESIGNS_ADDED, author)
end
- def track_issue_designs_modified_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_DESIGNS_MODIFIED, author, time)
+ def track_issue_designs_modified_action(author:)
+ track_unique_action(ISSUE_DESIGNS_MODIFIED, author)
end
- def track_issue_designs_removed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_DESIGNS_REMOVED, author, time)
+ def track_issue_designs_removed_action(author:)
+ track_unique_action(ISSUE_DESIGNS_REMOVED, author)
end
- def track_issue_due_date_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_DUE_DATE_CHANGED, author, time)
+ def track_issue_due_date_changed_action(author:)
+ track_unique_action(ISSUE_DUE_DATE_CHANGED, author)
end
- def track_issue_time_estimate_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_TIME_ESTIMATE_CHANGED, author, time)
+ def track_issue_time_estimate_changed_action(author:)
+ track_unique_action(ISSUE_TIME_ESTIMATE_CHANGED, author)
end
- def track_issue_time_spent_changed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_TIME_SPENT_CHANGED, author, time)
+ def track_issue_time_spent_changed_action(author:)
+ track_unique_action(ISSUE_TIME_SPENT_CHANGED, author)
end
- def track_issue_comment_added_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_COMMENT_ADDED, author, time)
+ def track_issue_comment_added_action(author:)
+ track_unique_action(ISSUE_COMMENT_ADDED, author)
end
- def track_issue_comment_edited_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_COMMENT_EDITED, author, time)
+ def track_issue_comment_edited_action(author:)
+ track_unique_action(ISSUE_COMMENT_EDITED, author)
end
- def track_issue_comment_removed_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_COMMENT_REMOVED, author, time)
+ def track_issue_comment_removed_action(author:)
+ track_unique_action(ISSUE_COMMENT_REMOVED, author)
end
- def track_issue_cloned_action(author:, time: Time.zone.now)
- track_unique_action(ISSUE_CLONED, author, time)
+ def track_issue_cloned_action(author:)
+ track_unique_action(ISSUE_CLONED, author)
end
private
- def track_unique_action(action, author, time)
+ def track_unique_action(action, author)
return unless author
- Gitlab::UsageDataCounters::HLLRedisCounter.track_event(action, values: author.id, time: time)
+ Gitlab::UsageDataCounters::HLLRedisCounter.track_event(action, values: author.id)
end
end
end
diff --git a/lib/gitlab/usage_data_counters/known_events/ci_templates.yml b/lib/gitlab/usage_data_counters/known_events/ci_templates.yml
index 9c19c9e8b8c..3c692f2b1af 100644
--- a/lib/gitlab/usage_data_counters/known_events/ci_templates.yml
+++ b/lib/gitlab/usage_data_counters/known_events/ci_templates.yml
@@ -3,89 +3,74 @@
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_implicit_auto_devops_build
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_implicit_auto_devops_deploy
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_implicit_security_sast
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_implicit_security_secret_detection
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
# Explicit include:template pipeline events
- name: p_ci_templates_5_min_production_app
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_auto_devops
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_aws_cf_deploy_ec2
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_aws_deploy_ecs
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_auto_devops_build
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_auto_devops_deploy
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_auto_devops_deploy_latest
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_security_sast
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_security_secret_detection
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
- name: p_ci_templates_terraform_base_latest
category: ci_templates
redis_slot: ci_templates
aggregation: weekly
- feature_flag: usage_data_track_ci_templates_unique_projects
diff --git a/lib/gitlab/usage_data_counters/known_events/common.yml b/lib/gitlab/usage_data_counters/known_events/common.yml
index 80a79682338..077864032e8 100644
--- a/lib/gitlab/usage_data_counters/known_events/common.yml
+++ b/lib/gitlab/usage_data_counters/known_events/common.yml
@@ -91,6 +91,11 @@
redis_slot: analytics
aggregation: weekly
feature_flag: track_unique_visits
+- name: i_analytics_dev_ops_adoption
+ category: analytics
+ redis_slot: analytics
+ aggregation: weekly
+ feature_flag: track_unique_visits
- name: g_analytics_merge_request
category: analytics
redis_slot: analytics
@@ -242,6 +247,12 @@
category: incident_management_alerts
aggregation: weekly
feature_flag: usage_data_incident_management_alert_create_incident
+# Incident management on-call
+- name: i_incident_management_oncall_notification_sent
+ redis_slot: incident_management
+ category: incident_management_oncall
+ aggregation: weekly
+ feature_flag: usage_data_i_incident_management_oncall_notification_sent
# Testing category
- name: i_testing_test_case_parsed
category: testing
@@ -283,6 +294,11 @@
redis_slot: testing
aggregation: weekly
feature_flag: usage_data_i_testing_metrics_report_artifact_uploaders
+- name: i_testing_summary_widget_total
+ category: testing
+ redis_slot: testing
+ aggregation: weekly
+ feature_flag: usage_data_i_testing_summary_widget_total
# Project Management group
- name: g_project_management_issue_title_changed
category: issues_edit
@@ -444,13 +460,19 @@
redis_slot: pipeline_authoring
aggregation: weekly
feature_flag: usage_data_o_pipeline_authoring_unique_users_pushing_mr_ciconfigfile
-# Epic events
-#
-# We are using the same slot of issue events 'project_management' for
-# epic events to allow data aggregation.
-# More information in: https://gitlab.com/gitlab-org/gitlab/-/issues/322405
-- name: g_project_management_epic_created
- category: epics_usage
- redis_slot: project_management
- aggregation: daily
- feature_flag: track_epics_activity
+# Merge request widgets
+- name: users_expanding_secure_security_report
+ redis_slot: secure
+ category: secure
+ aggregation: weekly
+ feature_flag: users_expanding_widgets_usage_data
+- name: users_expanding_testing_code_quality_report
+ redis_slot: testing
+ category: testing
+ aggregation: weekly
+ feature_flag: users_expanding_widgets_usage_data
+- name: users_expanding_testing_accessibility_report
+ redis_slot: testing
+ category: testing
+ aggregation: weekly
+ feature_flag: users_expanding_widgets_usage_data
diff --git a/lib/gitlab/usage_data_counters/known_events/epic_events.yml b/lib/gitlab/usage_data_counters/known_events/epic_events.yml
new file mode 100644
index 00000000000..80460dbe4d2
--- /dev/null
+++ b/lib/gitlab/usage_data_counters/known_events/epic_events.yml
@@ -0,0 +1,142 @@
+# Epic events
+#
+# We are using the same slot of issue events 'project_management' for
+# epic events to allow data aggregation.
+# More information in: https://gitlab.com/gitlab-org/gitlab/-/issues/322405
+- name: g_project_management_epic_created
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_updating_epic_titles
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_updating_epic_descriptions
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+# epic notes
+
+- name: g_project_management_users_creating_epic_notes
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_updating_epic_notes
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_destroying_epic_notes
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+# start date events
+
+- name: g_project_management_users_setting_epic_start_date_as_fixed
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_updating_fixed_epic_start_date
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_setting_epic_start_date_as_inherited
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+# due date events
+
+- name: g_project_management_users_setting_epic_due_date_as_fixed
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_updating_fixed_epic_due_date
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_setting_epic_due_date_as_inherited
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_epic_issue_added
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_epic_issue_removed
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_epic_issue_moved_from_project
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_epic_closed
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_epic_reopened
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: 'g_project_management_issue_promoted_to_epic'
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_setting_epic_confidential
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_users_setting_epic_visible
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_epic_users_changing_labels
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
+
+- name: g_project_management_epic_destroyed
+ category: epics_usage
+ redis_slot: project_management
+ aggregation: daily
+ feature_flag: track_epics_activity
diff --git a/lib/gitlab/usage_data_counters/note_counter.rb b/lib/gitlab/usage_data_counters/note_counter.rb
index 7a76180cb08..aae2d144c5b 100644
--- a/lib/gitlab/usage_data_counters/note_counter.rb
+++ b/lib/gitlab/usage_data_counters/note_counter.rb
@@ -24,13 +24,13 @@ module Gitlab::UsageDataCounters
end
def totals
- COUNTABLE_TYPES.map do |countable_type|
+ COUNTABLE_TYPES.to_h do |countable_type|
[counter_key(countable_type), read(:create, countable_type)]
- end.to_h
+ end
end
def fallback_totals
- COUNTABLE_TYPES.map { |counter_key| [counter_key(counter_key), -1] }.to_h
+ COUNTABLE_TYPES.to_h { |counter_key| [counter_key(counter_key), -1] }
end
private
diff --git a/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb b/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb
index 15c68fb3945..ed3df7dcf75 100644
--- a/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb
+++ b/lib/gitlab/usage_data_counters/quick_action_activity_unique_counter.rb
@@ -28,7 +28,7 @@ module Gitlab
'unassign_reviewer'
when 'request_review', 'reviewer'
'assign_reviewer'
- when 'spend'
+ when 'spend', 'spent'
event_name_for_spend(args)
when 'unassign'
event_name_for_unassign(args)