Merge branch 'update-merge-worker-metrics' into 'master'
Add simple logging to UpdateMergeRequestsWorker#perform See merge request gitlab-org/gitlab-ce!15360
This commit is contained in:
commit
5c600294a2
|
@ -2,6 +2,8 @@ class UpdateMergeRequestsWorker
|
||||||
include Sidekiq::Worker
|
include Sidekiq::Worker
|
||||||
include DedicatedSidekiqQueue
|
include DedicatedSidekiqQueue
|
||||||
|
|
||||||
|
LOG_TIME_THRESHOLD = 90 # seconds
|
||||||
|
|
||||||
def perform(project_id, user_id, oldrev, newrev, ref)
|
def perform(project_id, user_id, oldrev, newrev, ref)
|
||||||
project = Project.find_by(id: project_id)
|
project = Project.find_by(id: project_id)
|
||||||
return unless project
|
return unless project
|
||||||
|
@ -9,6 +11,20 @@ class UpdateMergeRequestsWorker
|
||||||
user = User.find_by(id: user_id)
|
user = User.find_by(id: user_id)
|
||||||
return unless user
|
return unless user
|
||||||
|
|
||||||
MergeRequests::RefreshService.new(project, user).execute(oldrev, newrev, ref)
|
# TODO: remove this benchmarking when we have rich logging
|
||||||
|
time = Benchmark.measure do
|
||||||
|
MergeRequests::RefreshService.new(project, user).execute(oldrev, newrev, ref)
|
||||||
|
end
|
||||||
|
|
||||||
|
args_log = [
|
||||||
|
"elapsed=#{time.real}",
|
||||||
|
"project_id=#{project_id}",
|
||||||
|
"user_id=#{user_id}",
|
||||||
|
"oldrev=#{oldrev}",
|
||||||
|
"newrev=#{newrev}",
|
||||||
|
"ref=#{ref}"
|
||||||
|
].join(',')
|
||||||
|
|
||||||
|
Rails.logger.info("UpdateMergeRequestsWorker#perform #{args_log}") if time.real > LOG_TIME_THRESHOLD
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Add performance logging to UpdateMergeRequestsWorker.
|
||||||
|
merge_request: 15360
|
||||||
|
author:
|
||||||
|
type: performance
|
|
@ -23,5 +23,17 @@ describe UpdateMergeRequestsWorker do
|
||||||
|
|
||||||
perform
|
perform
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when slow' do
|
||||||
|
before do
|
||||||
|
stub_const("UpdateMergeRequestsWorker::LOG_TIME_THRESHOLD", -1)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'logs debug info' do
|
||||||
|
expect(Rails.logger).to receive(:info).with(a_string_matching(/\AUpdateMergeRequestsWorker#perform.*project_id=#{project.id},user_id=#{user.id},oldrev=#{oldrev},newrev=#{newrev},ref=#{ref}/))
|
||||||
|
|
||||||
|
perform
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue