diff options
4 files changed, 13 insertions, 7 deletions
| diff --git a/app/workers/update_merge_requests_worker.rb b/app/workers/update_merge_requests_worker.rb index f1e43bea8b3..e364fb698d3 100644 --- a/app/workers/update_merge_requests_worker.rb +++ b/app/workers/update_merge_requests_worker.rb @@ -2,10 +2,10 @@ class UpdateMergeRequestsWorker    include Sidekiq::Worker    include DedicatedSidekiqQueue -  attr_reader :targets # for metrics tags +  attr_reader :metrics_tags    def initialize -    @targets = {} +    @metrics_tags = {}    end    def perform(project_id, user_id, oldrev, newrev, ref) @@ -15,10 +15,11 @@ class UpdateMergeRequestsWorker      user = User.find_by(id: user_id)      return unless user -    @targets = { +    @metrics_tags = {        project_id: project_id,        user_id: user_id      } +      MergeRequests::RefreshService.new(project, user).execute(oldrev, newrev, ref)    end  end diff --git a/changelogs/unreleased/35914-merge-request-update-worker-is-slow.yml b/changelogs/unreleased/35914-merge-request-update-worker-is-slow.yml new file mode 100644 index 00000000000..34bb76195af --- /dev/null +++ b/changelogs/unreleased/35914-merge-request-update-worker-is-slow.yml @@ -0,0 +1,5 @@ +--- +title: Add metric tagging for sidekiq workers +merge_request: 15111 +author: +type: added diff --git a/lib/gitlab/metrics/sidekiq_middleware.rb b/lib/gitlab/metrics/sidekiq_middleware.rb index 2febd79e547..b983a40611f 100644 --- a/lib/gitlab/metrics/sidekiq_middleware.rb +++ b/lib/gitlab/metrics/sidekiq_middleware.rb @@ -12,7 +12,7 @@ module Gitlab            trans.set(:sidekiq_queue_duration, Time.now.to_f - (message['enqueued_at'] || message['created_at'] || 0))            trans.run { yield } -          worker.targets.each { |name, target| trans.add_tag(name, target) } if worker.respond_to?(:targets) +          worker.metrics_tags.each { |tag, value| trans.add_tag(tag, value) } if worker.respond_to?(:metrics_tags)          rescue Exception => error # rubocop: disable Lint/RescueException            trans.add_event(:sidekiq_exception) diff --git a/spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb b/spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb index 196e0fadda2..0803ce42fac 100644 --- a/spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb +++ b/spec/lib/gitlab/metrics/sidekiq_middleware_spec.rb @@ -47,11 +47,11 @@ describe Gitlab::Metrics::SidekiqMiddleware do      end      it 'tags the metrics accordingly' do -      targets = { one: 1, two: 2 } +      tags = { one: 1, two: 2 }        worker = double(:worker, class: double(:class, name: 'TestWorker')) -      allow(worker).to receive(:targets).and_return(targets) +      allow(worker).to receive(:metrics_tags).and_return(tags) -      targets.each do |tag, value| +      tags.each do |tag, value|          expect_any_instance_of(Gitlab::Metrics::Transaction).to receive(:add_tag)            .with(tag, value)        end | 
