Skip to content
Snippets Groups Projects
Commit 73db527a authored by Patrick Bajao's avatar Patrick Bajao :red_circle:
Browse files

Log diffs_files_count when MR diffs and commit are accessed

To be able to give an estimate on how much storage we are going
to use when we cache diffs HTML, we need to get some data on
how many files are there in diffs.

We add this logging metadata to `MergeRequestsController#diffs` and
`CommitController#show` actions since those are the actions that
we want to track.
parent 70ef67a9
No related branches found
No related tags found
1 merge request!145641Log diffs_files_count when MR diffs and commit are accessed
......@@ -246,4 +246,13 @@ def find_cherry_pick_target_project
.execute
.find_by_id(params[:target_project_id])
end
def append_info_to_payload(payload)
super
return unless action_name == 'show' && @diffs.present?
payload[:metadata] ||= {}
payload[:metadata]['meta.diffs_files_count'] = @diffs.size
end
end
......@@ -643,6 +643,15 @@ def pinned_file_url(project, merge_request)
diff_head: true
)
end
def append_info_to_payload(payload)
super
return unless action_name == 'diffs' && @merge_request&.merge_request_diff.present?
payload[:metadata] ||= {}
payload[:metadata]['meta.diffs_files_count'] = @merge_request.merge_request_diff.files_count
end
end
Projects::MergeRequestsController.prepend_mod_with('Projects::MergeRequestsController')
......@@ -623,4 +623,20 @@ def get_pipelines(extra_params = {})
end
end
end
describe '#append_info_to_payload' do
it 'appends diffs_files_count for logging' do
expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload|
method.call(payload)
expect(payload[:metadata]['meta.diffs_files_count']).to eq(commit.diffs.size)
end
get :show, params: {
namespace_id: project.namespace,
project_id: project,
id: commit.id
}
end
end
end
......@@ -2405,4 +2405,20 @@ def expect_rebase_worker_for(user, skip_ci: false)
subject
end
end
describe '#append_info_to_payload' do
it 'appends diffs_files_count for logging' do
expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload|
method.call(payload)
expect(payload[:metadata]['meta.diffs_files_count']).to eq(merge_request.merge_request_diff.files_count)
end
get :diffs, params: {
namespace_id: project.namespace.to_param,
project_id: project,
id: merge_request.iid
}
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment