diff --git a/ee/config/metrics/counts_28d/20210216182209_user_preferences_group_overview_security_dashboard.yml b/ee/config/metrics/counts_28d/20210216182209_user_preferences_group_overview_security_dashboard.yml
index f6d7f8ae440ee8efe187db4b496a6d4d9e8539cc..d78cf315ffe9bd5adf7ce0c9e20824f659ae0fa5 100644
--- a/ee/config/metrics/counts_28d/20210216182209_user_preferences_group_overview_security_dashboard.yml
+++ b/ee/config/metrics/counts_28d/20210216182209_user_preferences_group_overview_security_dashboard.yml
@@ -10,6 +10,7 @@ value_type: number
 status: active
 time_frame: 28d
 data_source: database
+instrumentation_class: CountUserPreferencesGroupOverviewSecurityDashboardMetric
 distribution:
 - ee
 tier:
diff --git a/ee/config/metrics/counts_all/20210216182205_user_preferences_group_overview_security_dashboard.yml b/ee/config/metrics/counts_all/20210216182205_user_preferences_group_overview_security_dashboard.yml
index 803eebb5892a2a0d286d16642aaa0092d1dfc1ac..9f659b0618119f6a4b1d0c738afe40efc71e5977 100644
--- a/ee/config/metrics/counts_all/20210216182205_user_preferences_group_overview_security_dashboard.yml
+++ b/ee/config/metrics/counts_all/20210216182205_user_preferences_group_overview_security_dashboard.yml
@@ -10,6 +10,7 @@ value_type: number
 status: active
 time_frame: all
 data_source: database
+instrumentation_class: CountUserPreferencesGroupOverviewSecurityDashboardMetric
 distribution:
 - ee
 tier:
diff --git a/ee/config/metrics/counts_all/20210216182207_user_preferences_group_overview_security_dashboard.yml b/ee/config/metrics/counts_all/20210216182207_user_preferences_group_overview_security_dashboard.yml
index 946509f396a63f68534092b135750850b4080f9e..0e4d8aed1a757b29d1ee88da43f0270b079283ac 100644
--- a/ee/config/metrics/counts_all/20210216182207_user_preferences_group_overview_security_dashboard.yml
+++ b/ee/config/metrics/counts_all/20210216182207_user_preferences_group_overview_security_dashboard.yml
@@ -10,6 +10,7 @@ value_type: number
 status: active
 time_frame: all
 data_source: database
+instrumentation_class: CountUserPreferencesGroupOverviewSecurityDashboardMetric
 distribution:
 - ee
 tier:
diff --git a/ee/lib/ee/gitlab/usage_data.rb b/ee/lib/ee/gitlab/usage_data.rb
index d66e71e6153a519c89444fac767a2566f8bca084..51422a556b4108c65c7367f64697bb9ef7ec7297 100644
--- a/ee/lib/ee/gitlab/usage_data.rb
+++ b/ee/lib/ee/gitlab/usage_data.rb
@@ -159,8 +159,7 @@ def on_demand_pipelines_usage
         def user_preferences_usage
           super.tap do |user_prefs_usage|
             user_prefs_usage.merge!(
-              user_preferences_group_overview_details: count(::User.active.group_view_details),
-              user_preferences_group_overview_security_dashboard: count(::User.active.group_view_security_dashboard)
+              user_preferences_group_overview_details: count(::User.active.group_view_details)
             )
           end
         end
@@ -363,11 +362,7 @@ def usage_activity_by_stage_verify(time_period)
         def usage_activity_by_stage_secure(time_period)
           prefix = 'user_'
 
-          results = {
-            user_preferences_group_overview_security_dashboard: count(::User.active.group_view_security_dashboard.where(time_period))
-          }
-
-          results.merge!(count_secure_pipelines(time_period))
+          results = count_secure_pipelines(time_period)
           results.merge!(count_secure_scans(time_period))
 
           results[:"#{prefix}unique_users_all_secure_scanners"] = distinct_count(::Ci::Build.where(name: SECURE_PRODUCT_TYPES.keys).where(time_period), :user_id)
diff --git a/ee/lib/gitlab/usage/metrics/instrumentations/count_user_preferences_group_overview_security_dashboard_metric.rb b/ee/lib/gitlab/usage/metrics/instrumentations/count_user_preferences_group_overview_security_dashboard_metric.rb
new file mode 100644
index 0000000000000000000000000000000000000000..d1faa1ee32e56200beb4c26d09dc796870f2c827
--- /dev/null
+++ b/ee/lib/gitlab/usage/metrics/instrumentations/count_user_preferences_group_overview_security_dashboard_metric.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+module Gitlab
+  module Usage
+    module Metrics
+      module Instrumentations
+        class CountUserPreferencesGroupOverviewSecurityDashboardMetric < DatabaseMetric
+          operation :count
+
+          relation do
+            ::User.active.group_view_security_dashboard
+          end
+        end
+      end
+    end
+  end
+end
diff --git a/ee/spec/lib/ee/gitlab/usage_data_spec.rb b/ee/spec/lib/ee/gitlab/usage_data_spec.rb
index 78f48a31ce33aabb795fddccd327f9f462e93b5d..b68b77f1881d504671e6c3ae49ceed854c869038 100644
--- a/ee/spec/lib/ee/gitlab/usage_data_spec.rb
+++ b/ee/spec/lib/ee/gitlab/usage_data_spec.rb
@@ -124,7 +124,6 @@
           status_page_issues
           status_page_projects
           user_preferences_group_overview_details
-          user_preferences_group_overview_security_dashboard
           template_repositories
         ))
 
@@ -141,7 +140,6 @@
 
     it 'gathers group overview preferences usage data', :aggregate_failures do
       expect(subject[:counts][:user_preferences_group_overview_details]).to eq(User.active.count - 2) # we have exactly 2 active users with security dashboard set
-      expect(subject[:counts][:user_preferences_group_overview_security_dashboard]).to eq 2
     end
 
     it 'includes a recording_ee_finished_at timestamp' do
@@ -568,7 +566,6 @@ def ldap_server_config
 
     it 'includes accurate usage_activity_by_stage data' do
       expect(described_class.usage_activity_by_stage_secure(described_class.monthly_time_range_db_params)).to include(
-        user_preferences_group_overview_security_dashboard: 3,
         sast_pipeline: be_within(error_rate).percent_of(0),
         sast_scans: 0,
         dependency_scanning_pipeline: be_within(error_rate).percent_of(0),
@@ -604,7 +601,6 @@ def ldap_server_config
       end
 
       expect(described_class.usage_activity_by_stage_secure({})).to include(
-        user_preferences_group_overview_security_dashboard: 3,
         user_unique_users_all_secure_scanners: 1,
         sast_scans: 2,
         dependency_scanning_scans: 6,
@@ -615,7 +611,6 @@ def ldap_server_config
       )
 
       expect(described_class.usage_activity_by_stage_secure(described_class.monthly_time_range_db_params)).to include(
-        user_preferences_group_overview_security_dashboard: 3,
         sast_pipeline: be_within(error_rate).percent_of(1),
         dependency_scanning_pipeline: be_within(error_rate).percent_of(2),
         container_scanning_pipeline: be_within(error_rate).percent_of(1),
@@ -642,7 +637,6 @@ def ldap_server_config
       end
 
       expect(described_class.usage_activity_by_stage_secure(described_class.monthly_time_range_db_params)).to include(
-        user_preferences_group_overview_security_dashboard: 3,
         sast_pipeline: be_within(error_rate).percent_of(0),
         sast_scans: 0,
         dependency_scanning_pipeline: be_within(error_rate).percent_of(0),
@@ -667,7 +661,6 @@ def ldap_server_config
       end
 
       expect(described_class.usage_activity_by_stage_secure(described_class.monthly_time_range_db_params)).to include(
-        user_preferences_group_overview_security_dashboard: 3,
         sast_pipeline: be_within(error_rate).percent_of(0),
         sast_scans: 0,
         dependency_scanning_pipeline: be_within(error_rate).percent_of(0),
@@ -714,7 +707,6 @@ def ldap_server_config
           end
 
           expect(subject).to include(
-            user_preferences_group_overview_security_dashboard: -1,
             sast_pipeline: -1,
             sast_scans: -1,
             dependency_scanning_pipeline: -1,
diff --git a/ee/spec/lib/gitlab/usage/metrics/instrumentations/count_user_preferences_group_overview_security_dashboard_metric_spec.rb b/ee/spec/lib/gitlab/usage/metrics/instrumentations/count_user_preferences_group_overview_security_dashboard_metric_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..7a0a6e7d8dfe3665ccdc1a20be9ca1e35e5b15c8
--- /dev/null
+++ b/ee/spec/lib/gitlab/usage/metrics/instrumentations/count_user_preferences_group_overview_security_dashboard_metric_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Usage::Metrics::Instrumentations::CountUserPreferencesGroupOverviewSecurityDashboardMetric, feature_category: :service_ping do
+  context 'with time_frame: all' do
+    let(:expected_value) { 3 }
+
+    let_it_be(:user) { create(:user, group_view: :security_dashboard, created_at: 3.days.ago) }
+    let_it_be(:user2) { create(:user, group_view: :security_dashboard, created_at: 3.days.ago) }
+    let_it_be(:user3) { create(:user, group_view: :security_dashboard, created_at: 10.days.ago) }
+
+    it_behaves_like 'a correct instrumented metric value', { time_frame: 'all', data_source: 'database' }
+  end
+
+  context 'with monthly aggregation' do
+    let(:expected_value) { 2 }
+
+    let_it_be(:user) { create(:user, group_view: :security_dashboard, created_at: 3.days.ago) }
+    let_it_be(:user2) { create(:user, group_view: :security_dashboard, created_at: 10.days.ago) }
+    let_it_be(:user3) { create(:user, group_view: :security_dashboard, created_at: 40.days.ago) }
+
+    it_behaves_like 'a correct instrumented metric value', { time_frame: '28d', data_source: 'database' }
+  end
+end