Migrate redis usage_counters to use Metric Instrumentation class

https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/usage_data.rb#L266

This will use RedisMetric

Guide

      # @return [Hash<Symbol, Integer>]
      def usage_counters
        usage_data_counters.map { |counter| redis_usage_data(counter) }.reduce({}, :merge)
      end

Metrics generated with this method

{:package_events_i_package_composer_delete_package=>0,
 :package_events_i_package_composer_pull_package=>0,
 :package_events_i_package_composer_push_package=>0,
 :package_events_i_package_conan_delete_package=>0,
 :package_events_i_package_conan_pull_package=>0,
 :package_events_i_package_conan_push_package=>0,
 :package_events_i_package_debian_delete_package=>0,
 :package_events_i_package_debian_pull_package=>0,
 :package_events_i_package_delete_package=>0,
 :package_events_i_package_delete_package_by_deploy_token=>0,
 :package_events_i_package_delete_package_by_guest=>0,
 :package_events_i_package_delete_package_by_user=>0,
 :package_events_i_package_generic_delete_package=>0,
 :package_events_i_package_generic_pull_package=>0,
 :package_events_i_package_generic_push_package=>0,
 :package_events_i_package_golang_delete_package=>0,
 :package_events_i_package_golang_pull_package=>0,
 :package_events_i_package_golang_push_package=>0,
 :package_events_i_package_helm_pull_package=>0,
 :package_events_i_package_helm_push_package=>0,
 :package_events_i_package_maven_delete_package=>0,
 :package_events_i_package_maven_pull_package=>0,
 :package_events_i_package_maven_push_package=>0,
 :package_events_i_package_npm_delete_package=>0,
 :package_events_i_package_npm_pull_package=>0,
 :package_events_i_package_npm_push_package=>0,
 :package_events_i_package_nuget_delete_package=>0,
 :package_events_i_package_nuget_pull_package=>0,
 :package_events_i_package_nuget_push_package=>0,
 :package_events_i_package_nuget_pull_symbol_package=>0,
 :package_events_i_package_nuget_push_symbol_package=>0,
 :package_events_i_package_pull_package=>0,
 :package_events_i_package_pull_package_by_deploy_token=>0,
 :package_events_i_package_pull_package_by_guest=>0,
 :package_events_i_package_pull_package_by_user=>0,
 :package_events_i_package_pull_symbol_package=>0,
 :package_events_i_package_pull_symbol_package_by_deploy_token=>0,
 :package_events_i_package_pull_symbol_package_by_guest=>0,
 :package_events_i_package_pull_symbol_package_by_user=>0,
 :package_events_i_package_push_package=>0,
 :package_events_i_package_push_package_by_deploy_token=>0,
 :package_events_i_package_push_package_by_guest=>0,
 :package_events_i_package_push_package_by_user=>0,
 :package_events_i_package_push_symbol_package=>0,
 :package_events_i_package_push_symbol_package_by_deploy_token=>0,
 :package_events_i_package_push_symbol_package_by_guest=>0,
 :package_events_i_package_push_symbol_package_by_user=>0,
 :package_events_i_package_pypi_delete_package=>0,
 :package_events_i_package_pypi_pull_package=>0,
 :package_events_i_package_pypi_push_package=>0,
 :package_events_i_package_rubygems_delete_package=>0,
 :package_events_i_package_rubygems_pull_package=>0,
 :package_events_i_package_rubygems_push_package=>0,
 :package_events_i_package_terraform_module_delete_package=>0,
 :package_events_i_package_terraform_module_pull_package=>0,
 :package_events_i_package_terraform_module_push_package=>0,
 :wiki_pages_view=>0,
 :wiki_pages_create=>0,
 :wiki_pages_update=>0,
 :wiki_pages_delete=>0,
 :web_ide_commits=>0,
 :web_ide_views=>1,
 :web_ide_merge_requests=>0,
 :web_ide_previews=>0,
 :web_ide_previews_success=>0,
 :web_ide_terminals=>0,
 :web_ide_pipelines=>0,
 :snippet_comment=>0,
 :commit_comment=>0,
 :merge_request_comment=>267,
 :snippet_create=>2,
 :snippet_update=>0,
 :all_searches=>0,
 :navbar_searches=>0,
 :cycle_analytics_views=>3,
 :productivity_analytics_views=>0,
 :source_code_pushes=>2,
 :merge_request_create=>0,
 :design_management_designs_create=>0,
 :design_management_designs_update=>0,
 :design_management_designs_delete=>0,
 :kubernetes_agent_gitops_sync=>0,
 :kubernetes_agent_k8s_api_proxy_request=>0,
 :static_site_editor_views=>0,
 :static_site_editor_commits=>0,
 :static_site_editor_merge_requests=>0,
 :diff_searches=>0,
 :service_usage_data_download_payload_click=>0,
 :licenses_list_views=>0,
 :status_page_incident_publishes=>0,
 :status_page_incident_unpublishes=>0,
 :network_policy_forwards=>0,
 :network_policy_drops=>0,
 :users_clicking_license_testing_visiting_external_website=>0,
 :users_visiting_testing_license_compliance_full_report=>1}

Testing

  • Ensure related tests are updated

Update

Please be aware that most of the metrics have been migrated via this issue, we're only left with #374595 (closed) and #374685 (closed)

Edited by Amanda Rueda