diff --git a/ee/lib/google_cloud_platform/artifact_registry/client.rb b/ee/lib/google_cloud_platform/artifact_registry/client.rb
index 96b0ebb6fd223b004aa48cbb7a09d6be6ec1f2d5..e39bf5a8d5eece89a563254b1ed77882d64234f3 100644
--- a/ee/lib/google_cloud_platform/artifact_registry/client.rb
+++ b/ee/lib/google_cloud_platform/artifact_registry/client.rb
@@ -125,6 +125,8 @@ def client
             scope: CLOUD_PLATFORM_SCOPE
           )
           config.credentials = ::Google::Cloud::ArtifactRegistry::V1::ArtifactRegistry::Credentials.new(ext_credentials)
+          config.rpcs.list_docker_images.metadata = user_agent_metadata
+          config.rpcs.get_docker_image.metadata = user_agent_metadata
         end
       end
       strong_memoize_attr :client
@@ -132,6 +134,12 @@ def client
       def artifact_registry_integration
         project.google_cloud_platform_artifact_registry_integration
       end
+
+      def user_agent_metadata
+        user_agent = "gitlab-rails-dot-com:google-cloud-integration/#{Gitlab::VERSION}"
+
+        { 'user-agent' => user_agent }
+      end
     end
   end
 end
diff --git a/ee/spec/lib/google_cloud_platform/artifact_registry/client_spec.rb b/ee/spec/lib/google_cloud_platform/artifact_registry/client_spec.rb
index e6986b92b9b0f788cbad843fbb38a9007b614031..6a30638aab05405fa1a0d276f39132f581154216 100644
--- a/ee/spec/lib/google_cloud_platform/artifact_registry/client_spec.rb
+++ b/ee/spec/lib/google_cloud_platform/artifact_registry/client_spec.rb
@@ -18,13 +18,20 @@
   let(:artifact_registry_location) { artifact_registry_integration&.artifact_registry_location }
   let(:artifact_registry_repository) { artifact_registry_integration&.artifact_registry_repository }
   let(:client) { described_class.new(wlif_integration: wlif_integration, user: user) }
+  let(:expected_metadata) { { 'user-agent' => "gitlab-rails-dot-com:google-cloud-integration/#{Gitlab::VERSION}" } }
 
   shared_context 'with a client double' do
-    let(:client_double) { instance_double('::Google::Cloud::ArtifactRegistry::V1::ArtifactRegistry::Client') }
     let(:config_double) do
       instance_double('Google::Cloud::ArtifactRegistry::V1::ArtifactRegistry::Client::Configuration')
     end
 
+    let(:rpcs_double) do
+      instance_double('Google::Cloud::ArtifactRegistry::V1::ArtifactRegistry::Client::Configuration::Rpcs')
+    end
+
+    let(:rpc_list_docker_images_double) { instance_double('Gapic::Config::Method') }
+    let(:rpc_get_docker_image_double) { instance_double('Gapic::Config::Method') }
+    let(:client_double) { instance_double('::Google::Cloud::ArtifactRegistry::V1::ArtifactRegistry::Client') }
     let(:dummy_response) { Object.new }
 
     before do
@@ -34,6 +41,11 @@
 
       allow(config_double).to receive(:credentials=)
         .with(instance_of(::Google::Cloud::ArtifactRegistry::V1::ArtifactRegistry::Credentials))
+      allow(config_double).to receive(:rpcs).and_return(rpcs_double)
+      allow(rpcs_double).to receive(:list_docker_images).and_return(rpc_list_docker_images_double)
+      allow(rpcs_double).to receive(:get_docker_image).and_return(rpc_get_docker_image_double)
+      allow(rpc_list_docker_images_double).to receive(:metadata=)
+      allow(rpc_get_docker_image_double).to receive(:metadata=)
       allow(::Google::Cloud::ArtifactRegistry::V1::ArtifactRegistry::Client).to receive(:new) do |_, &block|
         block.call(config_double)
         client_double
@@ -96,6 +108,7 @@
 
     shared_examples 'returning the expected response' do |expected_page_size: described_class::DEFAULT_PAGE_SIZE|
       it 'returns the expected response' do
+        expect(rpc_list_docker_images_double).to receive(:metadata=).with(expected_metadata)
         expect(client_double).to receive(:list_docker_images) do |request|
           expect(request).to be_a ::Google::Cloud::ArtifactRegistry::V1::ListDockerImagesRequest
           expect(request.page_size).to eq(expected_page_size)
@@ -140,6 +153,7 @@
     subject(:docker_image) { client.docker_image(name: name) }
 
     it 'returns the expected response' do
+      expect(rpc_get_docker_image_double).to receive(:metadata=).with(expected_metadata)
       expect(client_double).to receive(:get_docker_image) do |request|
         expect(request).to be_a ::Google::Cloud::ArtifactRegistry::V1::GetDockerImageRequest
         expect(request.name).to eq(name)