diff --git a/config/events/k8s_api_proxy_requests_unique_users_via_ci_access.yml b/config/events/k8s_api_proxy_requests_unique_users_via_ci_access.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e1c7dc1bb28bd2a04392d6c7536bfd273b300de5
--- /dev/null
+++ b/config/events/k8s_api_proxy_requests_unique_users_via_ci_access.yml
@@ -0,0 +1,22 @@
+---
+description: Kubernetes API proxy request using the CI/CD Tunnel via CI Access
+category: InternalEventTracking
+action: k8s_api_proxy_requests_unique_users_via_ci_access
+label_description:
+property_description:
+value_description:
+extra_properties:
+identifiers:
+- user
+product_section: ops
+product_stage: deploy
+product_group: environments
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137488
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/k8s_api_proxy_requests_unique_users_via_pat_access.yml b/config/events/k8s_api_proxy_requests_unique_users_via_pat_access.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d9b19bbfc1d29a56b93767ad8fcf1ec5c5164607
--- /dev/null
+++ b/config/events/k8s_api_proxy_requests_unique_users_via_pat_access.yml
@@ -0,0 +1,22 @@
+---
+description: Kubernetes API proxy request via Personal Access Token Access
+category: InternalEventTracking
+action: k8s_api_proxy_requests_unique_users_via_pat_access
+label_description:
+property_description:
+value_description:
+extra_properties:
+identifiers:
+- user
+product_section: ops
+product_stage: deploy
+product_group: environments
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137488
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/k8s_api_proxy_requests_unique_users_via_user_access.yml b/config/events/k8s_api_proxy_requests_unique_users_via_user_access.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4dc5d4f7d4bc4d878ec4d7cd59718896e7e4d971
--- /dev/null
+++ b/config/events/k8s_api_proxy_requests_unique_users_via_user_access.yml
@@ -0,0 +1,22 @@
+---
+description: Kubernetes API proxy request using the CI/CD Tunnel via User Access
+category: InternalEventTracking
+action: k8s_api_proxy_requests_unique_users_via_user_access
+label_description:
+property_description:
+value_description:
+extra_properties:
+identifiers:
+- user
+product_section: ops
+product_stage: deploy
+product_group: environments
+milestone: "16.7"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137488
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_ci_access_monthly.yml b/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_ci_access_monthly.yml
index 10e0c13e8e38c9b66ee3b34bc5dcf9b1f127f04c..177bfdd75a70244c5b32b28bd074b0549944e7c0 100644
--- a/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_ci_access_monthly.yml
+++ b/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_ci_access_monthly.yml
@@ -9,12 +9,15 @@ status: active
 milestone: "16.2"
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124147
 time_frame: 28d
-data_source: redis_hll
+data_source: internal_events
 data_category: optional
 instrumentation_class: RedisHLLMetric
 options:
   events:
     - k8s_api_proxy_requests_unique_users_via_ci_access
+events:
+  - name: k8s_api_proxy_requests_unique_users_via_ci_access
+    unique: user.id
 performance_indicator_type: []
 distribution:
 - ce
diff --git a/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_monthly.yml b/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_monthly.yml
index 0ffcd3e9c75a64cfbec6001cd4bdc31e99565e44..bcda6d21dcf9932e7f3e19737bf0a505c3abc813 100644
--- a/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_monthly.yml
+++ b/config/metrics/counts_28d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_monthly.yml
@@ -9,12 +9,15 @@ status: active
 milestone: "16.2"
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124147
 time_frame: 28d
-data_source: redis_hll
+data_source: internal_events
 data_category: optional
 instrumentation_class: RedisHLLMetric
 options:
   events:
     - k8s_api_proxy_requests_unique_users_via_user_access
+events:
+  - name: k8s_api_proxy_requests_unique_users_via_user_access
+    unique: user.id
 performance_indicator_type: []
 distribution:
 - ce
diff --git a/config/metrics/counts_28d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_monthly.yml b/config/metrics/counts_28d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_monthly.yml
index 5f987f9142515d73616351c6c1d859b754d6b504..faee9fee9e826a61156739db64447fc5db325865 100644
--- a/config/metrics/counts_28d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_monthly.yml
+++ b/config/metrics/counts_28d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_monthly.yml
@@ -9,12 +9,15 @@ status: active
 milestone: "16.4"
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129463
 time_frame: 28d
-data_source: redis_hll
+data_source: internal_events
 data_category: optional
 instrumentation_class: RedisHLLMetric
 options:
   events:
     - k8s_api_proxy_requests_unique_users_via_pat_access
+events:
+  - name: k8s_api_proxy_requests_unique_users_via_pat_access
+    unique: user.id
 performance_indicator_type: []
 distribution:
 - ce
diff --git a/config/metrics/counts_7d/20230620070722_k8s_api_proxy_requests_unique_users_via_ci_access_weekly.yml b/config/metrics/counts_7d/20230620070722_k8s_api_proxy_requests_unique_users_via_ci_access_weekly.yml
index 22580c0cf4a9bec8eabd7c7096885c55d7ac687c..52e486e551cf832162713dc12a69145faafabdef 100644
--- a/config/metrics/counts_7d/20230620070722_k8s_api_proxy_requests_unique_users_via_ci_access_weekly.yml
+++ b/config/metrics/counts_7d/20230620070722_k8s_api_proxy_requests_unique_users_via_ci_access_weekly.yml
@@ -9,12 +9,15 @@ status: active
 milestone: "16.2"
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124147
 time_frame: 7d
-data_source: redis_hll
+data_source: internal_events
 data_category: optional
 instrumentation_class: RedisHLLMetric
 options:
   events:
     - k8s_api_proxy_requests_unique_users_via_ci_access
+events:
+  - name: k8s_api_proxy_requests_unique_users_via_ci_access
+    unique: user.id
 performance_indicator_type: []
 distribution:
 - ce
diff --git a/config/metrics/counts_7d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_weekly.yml b/config/metrics/counts_7d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_weekly.yml
index 35d1fe7346bc667131d79b5cba30f3e02a9862a6..9a60fe9f54d1b39316a5ff9aebaddd1aa092e3f7 100644
--- a/config/metrics/counts_7d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_weekly.yml
+++ b/config/metrics/counts_7d/20230620070723_k8s_api_proxy_requests_unique_users_via_user_access_weekly.yml
@@ -9,12 +9,15 @@ status: active
 milestone: "16.2"
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124147
 time_frame: 7d
-data_source: redis_hll
+data_source: internal_events
 data_category: optional
 instrumentation_class: RedisHLLMetric
 options:
   events:
     - k8s_api_proxy_requests_unique_users_via_user_access
+events:
+  - name: k8s_api_proxy_requests_unique_users_via_user_access
+    unique: user.id
 performance_indicator_type: []
 distribution:
 - ce
diff --git a/config/metrics/counts_7d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_weekly.yml b/config/metrics/counts_7d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_weekly.yml
index 5f3d0dc89123bc0b7df95346edf3b3fab048141a..96a07104165b43cf3af7ab533aaf75803c62c14e 100644
--- a/config/metrics/counts_7d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_weekly.yml
+++ b/config/metrics/counts_7d/20230816085153_k8s_api_proxy_requests_unique_users_via_pat_access_weekly.yml
@@ -9,12 +9,15 @@ status: active
 milestone: "16.4"
 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129463
 time_frame: 7d
-data_source: redis_hll
+data_source: internal_events
 data_category: optional
 instrumentation_class: RedisHLLMetric
 options:
   events:
     - k8s_api_proxy_requests_unique_users_via_pat_access
+events:
+  - name: k8s_api_proxy_requests_unique_users_via_pat_access
+    unique: user.id
 performance_indicator_type: []
 distribution:
 - ce
diff --git a/lib/api/helpers/kubernetes/agent_helpers.rb b/lib/api/helpers/kubernetes/agent_helpers.rb
index 654317ca6163ab154fde6ce7f6a2dce0e4be5078..ff80270fc15eac7c38445250d0274a64cfdf44e1 100644
--- a/lib/api/helpers/kubernetes/agent_helpers.rb
+++ b/lib/api/helpers/kubernetes/agent_helpers.rb
@@ -43,9 +43,9 @@ def agent_has_access_to_project?(project)
         def increment_unique_events
           events = params[:unique_counters]&.slice(
             :agent_users_using_ci_tunnel,
-            :k8s_api_proxy_requests_unique_users_via_ci_access, :k8s_api_proxy_requests_unique_agents_via_ci_access,
-            :k8s_api_proxy_requests_unique_users_via_user_access, :k8s_api_proxy_requests_unique_agents_via_user_access,
-            :k8s_api_proxy_requests_unique_users_via_pat_access, :k8s_api_proxy_requests_unique_agents_via_pat_access,
+            :k8s_api_proxy_requests_unique_agents_via_ci_access,
+            :k8s_api_proxy_requests_unique_agents_via_user_access,
+            :k8s_api_proxy_requests_unique_agents_via_pat_access,
             :flux_git_push_notified_unique_projects
           )
 
@@ -54,6 +54,27 @@ def increment_unique_events
           end
         end
 
+        def track_unique_user_events
+          events = params[:unique_counters]&.slice(
+            :k8s_api_proxy_requests_unique_users_via_ci_access,
+            :k8s_api_proxy_requests_unique_users_via_user_access,
+            :k8s_api_proxy_requests_unique_users_via_pat_access
+          )
+          return if events.blank?
+
+          unique_user_ids = events.values.flatten.uniq
+          users = User.id_in(unique_user_ids).index_by(&:id)
+
+          events.each do |event, user_ids|
+            user_ids.each do |user_id|
+              user = users[user_id]
+              next if user.nil?
+
+              Gitlab::InternalEvents.track_event(event, user: user)
+            end
+          end
+        end
+
         def increment_count_events
           events = params[:counters]&.slice(
             :gitops_sync, :k8s_api_proxy_request, :flux_git_push_notifications_total,
diff --git a/lib/api/internal/kubernetes.rb b/lib/api/internal/kubernetes.rb
index 9b1c16d76bc07444e03791fe59e60f7fd7626522..c6538e17b88cdb2a4276c38a547ebb3f58fabbd4 100644
--- a/lib/api/internal/kubernetes.rb
+++ b/lib/api/internal/kubernetes.rb
@@ -140,6 +140,7 @@ class Kubernetes < ::API::Base
           post '/', feature_category: :deployment_management do
             increment_count_events
             increment_unique_events
+            track_unique_user_events
 
             no_content!
           rescue ArgumentError => e
diff --git a/lib/gitlab/usage_data_counters/hll_redis_counter.rb b/lib/gitlab/usage_data_counters/hll_redis_counter.rb
index 185b49d4a6851e8dc3cc383260bfcd8f44002b4c..b044406672222db30ee57bad2a49ab35453a06c0 100644
--- a/lib/gitlab/usage_data_counters/hll_redis_counter.rb
+++ b/lib/gitlab/usage_data_counters/hll_redis_counter.rb
@@ -66,7 +66,7 @@ def track(values, event_name, time: Time.zone.now)
 
         rescue StandardError => e
           # Ignore any exceptions unless is dev or test env
-          # The application flow should not be blocked by erros in tracking
+          # The application flow should not be blocked by errors in tracking
           Gitlab::ErrorTracking.track_and_raise_for_dev_exception(e)
         end
 
diff --git a/spec/requests/api/internal/kubernetes_spec.rb b/spec/requests/api/internal/kubernetes_spec.rb
index d9d7133c386f16f13a3a3b3a81a45c8faf4fd132..f16fdcb9cc73a68ecbc4bd6ddc9ddda5b37473d0 100644
--- a/spec/requests/api/internal/kubernetes_spec.rb
+++ b/spec/requests/api/internal/kubernetes_spec.rb
@@ -122,15 +122,17 @@ def send_request(headers: {}, params: {})
           k8s_api_proxy_requests_via_user_access: 44,
           k8s_api_proxy_requests_via_pat_access: 45
         }
+        users = create_list(:user, 3)
+        user_ids = users.map(&:id) << users[0].id
         unique_counters = {
-          agent_users_using_ci_tunnel: [10, 999, 777, 10],
-          k8s_api_proxy_requests_unique_users_via_ci_access: [10, 999, 777, 10],
-          k8s_api_proxy_requests_unique_agents_via_ci_access: [10, 999, 777, 10],
-          k8s_api_proxy_requests_unique_users_via_user_access: [10, 999, 777, 10],
-          k8s_api_proxy_requests_unique_agents_via_user_access: [10, 999, 777, 10],
-          k8s_api_proxy_requests_unique_users_via_pat_access: [10, 999, 777, 10],
-          k8s_api_proxy_requests_unique_agents_via_pat_access: [10, 999, 777, 10],
-          flux_git_push_notified_unique_projects: [10, 999, 777, 10]
+          agent_users_using_ci_tunnel: user_ids,
+          k8s_api_proxy_requests_unique_users_via_ci_access: user_ids,
+          k8s_api_proxy_requests_unique_agents_via_ci_access: user_ids,
+          k8s_api_proxy_requests_unique_users_via_user_access: user_ids,
+          k8s_api_proxy_requests_unique_agents_via_user_access: user_ids,
+          k8s_api_proxy_requests_unique_users_via_pat_access: user_ids,
+          k8s_api_proxy_requests_unique_agents_via_pat_access: user_ids,
+          flux_git_push_notified_unique_projects: user_ids
         }
         expected_counters = {
           kubernetes_agent_gitops_sync: request_count * counters[:gitops_sync],