diff --git a/lib/gitlab/instrumentation/redis_interceptor.rb b/lib/gitlab/instrumentation/redis_interceptor.rb
index 0f21a16793dca27ba13978d739730a9a0d49c137..ba25e54ac9ffe9160a765e6391b02391cc7c4852 100644
--- a/lib/gitlab/instrumentation/redis_interceptor.rb
+++ b/lib/gitlab/instrumentation/redis_interceptor.rb
@@ -41,7 +41,10 @@ def call(*args, &block)
           instrumentation_class.add_call_details(duration, args)
         end
 
-        if duration > DURATION_ERROR_THRESHOLD && Feature.enabled?(:report_on_long_redis_durations, default_enabled: :yaml)
+        if duration > DURATION_ERROR_THRESHOLD &&
+           instrumentation_class == ::Gitlab::Instrumentation::Redis::SharedState &&
+           Feature.enabled?(:report_on_long_redis_durations, default_enabled: :yaml)
+
           Gitlab::ErrorTracking.track_exception(MysteryRedisDurationError.new(caller),
                                                 command: command_from_args(args),
                                                 duration: duration,
diff --git a/spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb b/spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb
index cd1828791c3c4e0dc5f7a2d42aa35b741310c6bc..b2a11353d0c4236902d22a39bdc804fb19bad4a3 100644
--- a/spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb
+++ b/spec/lib/gitlab/instrumentation/redis_interceptor_spec.rb
@@ -130,15 +130,25 @@
     end
 
     context 'when report_on_long_redis_durations is enabled' do
-      it 'tracks an exception and continues' do
-        expect(Gitlab::ErrorTracking)
-          .to receive(:track_exception)
-                .with(an_instance_of(described_class::MysteryRedisDurationError),
-                      command: 'mget',
-                      duration: be > threshold,
-                      timestamp: a_string_matching(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{5}/))
+      context 'for an instance other than SharedState' do
+        it 'does nothing' do
+          expect(Gitlab::ErrorTracking).not_to receive(:track_exception)
 
-        Gitlab::Redis::SharedState.with { |r| r.mget('foo', 'foo') { sleep threshold + 0.1 } }
+          Gitlab::Redis::Queues.with { |r| r.mget('foo', 'foo') { sleep threshold + 0.1 } }
+        end
+      end
+
+      context 'for the SharedState instance' do
+        it 'tracks an exception and continues' do
+          expect(Gitlab::ErrorTracking)
+            .to receive(:track_exception)
+                  .with(an_instance_of(described_class::MysteryRedisDurationError),
+                        command: 'mget',
+                        duration: be > threshold,
+                        timestamp: a_string_matching(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{5}/))
+
+          Gitlab::Redis::SharedState.with { |r| r.mget('foo', 'foo') { sleep threshold + 0.1 } }
+        end
       end
     end
   end