diff --git a/app/controllers/event_forward/event_forward_controller.rb b/app/controllers/event_forward/event_forward_controller.rb
index 886a84048de141828025ec7b5942cb8a62f3d6b1..26a166fc33b29687fe2186d487dd0b5dc374b5a0 100644
--- a/app/controllers/event_forward/event_forward_controller.rb
+++ b/app/controllers/event_forward/event_forward_controller.rb
@@ -3,9 +3,13 @@
 module EventForward
   class EventForwardController < BaseActionController
     def forward
-      process_events
+      if ::Feature.enabled?('collect_product_usage_events', :instance)
+        process_events
 
-      head :ok
+        head :ok
+      else
+        head :not_found
+      end
     end
 
     private
diff --git a/config/feature_flags/wip/collect_product_usage_events.yml b/config/feature_flags/wip/collect_product_usage_events.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2aef56e479d7653487b3eac2216e9b226262979c
--- /dev/null
+++ b/config/feature_flags/wip/collect_product_usage_events.yml
@@ -0,0 +1,9 @@
+---
+name: collect_product_usage_events
+feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/510317
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/182916
+rollout_issue_url:
+milestone: '17.10'
+group: group::analytics instrumentation
+type: wip
+default_enabled: false
diff --git a/spec/requests/event_forward/event_forward_controller_spec.rb b/spec/requests/event_forward/event_forward_controller_spec.rb
index 203c2a885473b9302dba1839d6048cf5f468fd4b..b00cf1c75e1153b6f2a46aef568661fa3227d3c1 100644
--- a/spec/requests/event_forward/event_forward_controller_spec.rb
+++ b/spec/requests/event_forward/event_forward_controller_spec.rb
@@ -19,6 +19,7 @@
     allow(tracker).to receive(:emit_event_payload)
     allow(EventForward::Logger).to receive(:build).and_return(logger)
     allow(logger).to receive(:info)
+    stub_feature_flags(collect_product_usage_events: true)
   end
 
   describe 'POST #forward' do
@@ -44,5 +45,19 @@
       expect(response).to have_gitlab_http_status(:ok)
       expect(response.body).to be_empty
     end
+
+    context 'when feature flag is disabled' do
+      before do
+        stub_feature_flags(collect_product_usage_events: false)
+      end
+
+      it 'returns 404 and do not call tracker' do
+        expect(tracker).not_to receive(:emit_event_payload)
+
+        request
+
+        expect(response).to have_gitlab_http_status(:not_found)
+      end
+    end
   end
 end