diff options
Diffstat (limited to 'lib/gitlab/usage_data_counters')
4 files changed, 235 insertions, 5 deletions
diff --git a/lib/gitlab/usage_data_counters/hll_redis_counter.rb b/lib/gitlab/usage_data_counters/hll_redis_counter.rb index 53bf6daea4c..eb132ef0967 100644 --- a/lib/gitlab/usage_data_counters/hll_redis_counter.rb +++ b/lib/gitlab/usage_data_counters/hll_redis_counter.rb @@ -72,7 +72,8 @@ module Gitlab events_names = events_for_category(category) event_results = events_names.each_with_object({}) do |event, hash| - hash[event] = unique_events(event_names: event, start_date: 7.days.ago.to_date, end_date: Date.current) + hash["#{event}_weekly"] = unique_events(event_names: event, start_date: 7.days.ago.to_date, end_date: Date.current) + hash["#{event}_monthly"] = unique_events(event_names: event, start_date: 4.weeks.ago.to_date, end_date: Date.current) end if eligible_for_totals?(events_names) 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 fc1b5a59487..e8839875109 100644 --- a/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb +++ b/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb @@ -3,14 +3,42 @@ module Gitlab module UsageDataCounters module IssueActivityUniqueCounter - ISSUE_TITLE_CHANGED = 'g_project_management_issue_title_changed' - ISSUE_DESCRIPTION_CHANGED = 'g_project_management_issue_description_changed' + ISSUE_CATEGORY = 'issues_edit' + ISSUE_ASSIGNEE_CHANGED = 'g_project_management_issue_assignee_changed' + ISSUE_CREATED = 'g_project_management_issue_created' + ISSUE_CLOSED = 'g_project_management_issue_closed' + ISSUE_DESCRIPTION_CHANGED = 'g_project_management_issue_description_changed' + ISSUE_ITERATION_CHANGED = 'g_project_management_issue_iteration_changed' + ISSUE_LABEL_CHANGED = 'g_project_management_issue_label_changed' ISSUE_MADE_CONFIDENTIAL = 'g_project_management_issue_made_confidential' ISSUE_MADE_VISIBLE = 'g_project_management_issue_made_visible' - ISSUE_CATEGORY = 'issues_edit' + ISSUE_MILESTONE_CHANGED = 'g_project_management_issue_milestone_changed' + ISSUE_REOPENED = 'g_project_management_issue_reopened' + ISSUE_TITLE_CHANGED = 'g_project_management_issue_title_changed' + ISSUE_WEIGHT_CHANGED = 'g_project_management_issue_weight_changed' + ISSUE_CROSS_REFERENCED = 'g_project_management_issue_cross_referenced' + ISSUE_MOVED = 'g_project_management_issue_moved' + ISSUE_RELATED = 'g_project_management_issue_related' + ISSUE_UNRELATED = 'g_project_management_issue_unrelated' + ISSUE_MARKED_AS_DUPLICATE = 'g_project_management_issue_marked_as_duplicate' + ISSUE_LOCKED = 'g_project_management_issue_locked' + ISSUE_UNLOCKED = 'g_project_management_issue_unlocked' + ISSUE_ADDED_TO_EPIC = 'g_project_management_issue_added_to_epic' + ISSUE_REMOVED_FROM_EPIC = 'g_project_management_issue_removed_from_epic' + ISSUE_CHANGED_EPIC = 'g_project_management_issue_changed_epic' + ISSUE_DESIGNS_ADDED = 'g_project_management_issue_designs_added' + ISSUE_DESIGNS_MODIFIED = 'g_project_management_issue_designs_modified' + ISSUE_DESIGNS_REMOVED = 'g_project_management_issue_designs_removed' + ISSUE_DUE_DATE_CHANGED = 'g_project_management_issue_due_date_changed' + ISSUE_TIME_ESTIMATE_CHANGED = 'g_project_management_issue_time_estimate_changed' + ISSUE_TIME_SPENT_CHANGED = 'g_project_management_issue_time_spent_changed' class << self + def track_issue_created_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_CREATED, author, time) + end + def track_issue_title_changed_action(author:, time: Time.zone.now) track_unique_action(ISSUE_TITLE_CHANGED, author, time) end @@ -31,10 +59,98 @@ module Gitlab track_unique_action(ISSUE_MADE_VISIBLE, author, time) end + def track_issue_closed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_CLOSED, author, time) + end + + def track_issue_reopened_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_REOPENED, author, time) + end + + def track_issue_label_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_LABEL_CHANGED, author, time) + end + + def track_issue_milestone_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_MILESTONE_CHANGED, author, time) + end + + def track_issue_iteration_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_ITERATION_CHANGED, author, time) + end + + def track_issue_weight_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_WEIGHT_CHANGED, author, time) + end + + def track_issue_cross_referenced_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_CROSS_REFERENCED, author, time) + end + + def track_issue_moved_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_MOVED, author, time) + end + + def track_issue_related_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_RELATED, author, time) + end + + def track_issue_unrelated_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_UNRELATED, author, time) + end + + def track_issue_marked_as_duplicate_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_MARKED_AS_DUPLICATE, author, time) + end + + def track_issue_locked_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_LOCKED, author, time) + end + + def track_issue_unlocked_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_UNLOCKED, author, time) + end + + def track_issue_added_to_epic_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_ADDED_TO_EPIC, author, time) + end + + def track_issue_removed_from_epic_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_REMOVED_FROM_EPIC, author, time) + end + + def track_issue_changed_epic_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_CHANGED_EPIC, author, time) + end + + def track_issue_designs_added_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_DESIGNS_ADDED, author, time) + end + + def track_issue_designs_modified_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_DESIGNS_MODIFIED, author, time) + end + + def track_issue_designs_removed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_DESIGNS_REMOVED, author, time) + end + + def track_issue_due_date_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_DUE_DATE_CHANGED, author, time) + end + + def track_issue_time_estimate_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_TIME_ESTIMATE_CHANGED, author, time) + end + + def track_issue_time_spent_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_TIME_SPENT_CHANGED, author, time) + end + private def track_unique_action(action, author, time) - return unless Feature.enabled?(:track_issue_activity_actions) + return unless Feature.enabled?(:track_issue_activity_actions, default_enabled: true) return unless author Gitlab::UsageDataCounters::HLLRedisCounter.track_event(author.id, action, time) diff --git a/lib/gitlab/usage_data_counters/known_events.yml b/lib/gitlab/usage_data_counters/known_events.yml index 25e7f858bb1..bc56c5d6d9b 100644 --- a/lib/gitlab/usage_data_counters/known_events.yml +++ b/lib/gitlab/usage_data_counters/known_events.yml @@ -185,6 +185,11 @@ redis_slot: incident_management category: incident_management aggregation: weekly +# Testing category +- name: i_testing_test_case_parsed + category: testing + redis_slot: testing + aggregation: weekly # Project Management group - name: g_project_management_issue_title_changed category: issues_edit @@ -206,3 +211,95 @@ category: issues_edit redis_slot: project_management aggregation: daily +- name: g_project_management_issue_created + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_closed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_reopened + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_label_changed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_milestone_changed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_iteration_changed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_weight_changed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_cross_referenced + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_moved + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_related + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_unrelated + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_marked_as_duplicate + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_locked + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_unlocked + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_added_to_epic + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_removed_from_epic + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_changed_epic + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_designs_added + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_designs_modified + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_designs_removed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_due_date_changed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_time_estimate_changed + category: issues_edit + redis_slot: project_management + aggregation: daily +- name: g_project_management_issue_time_spent_changed + category: issues_edit + redis_slot: project_management + aggregation: daily diff --git a/lib/gitlab/usage_data_counters/static_site_editor_counter.rb b/lib/gitlab/usage_data_counters/static_site_editor_counter.rb new file mode 100644 index 00000000000..8886a106da8 --- /dev/null +++ b/lib/gitlab/usage_data_counters/static_site_editor_counter.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Gitlab + module UsageDataCounters + class StaticSiteEditorCounter < BaseCounter + KNOWN_EVENTS = %w[views].freeze + PREFIX = 'static_site_editor' + + class << self + def increment_views_count + count(:views) + end + end + end + end +end |