Skip to content
Snippets Groups Projects
Commit 1ba3c747 authored by Andrew Newdigate's avatar Andrew Newdigate Committed by Rémy Coutable
Browse files

Gitaly feature flag metadata

parent c7622606
No related branches found
No related tags found
No related merge requests found
---
title: Add client and call site metadata to Gitaly calls for better traceability
merge_request: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14332
author:
type: added
Loading
Loading
@@ -28,6 +28,7 @@ module Gitlab
 
SERVER_VERSION_FILE = 'GITALY_SERVER_VERSION'.freeze
MAXIMUM_GITALY_CALLS = 30
CLIENT_NAME = (Sidekiq.server? ? 'gitlab-sidekiq' : 'gitlab-web').freeze
 
MUTEX = Mutex.new
private_constant :MUTEX
Loading
Loading
@@ -79,7 +80,16 @@ module Gitlab
 
def self.request_metadata(storage)
encoded_token = Base64.strict_encode64(token(storage).to_s)
{ metadata: { 'authorization' => "Bearer #{encoded_token}" } }
metadata = {
'authorization' => "Bearer #{encoded_token}",
'client_name' => CLIENT_NAME
}
feature_stack = Thread.current[:gitaly_feature_stack]
feature = feature_stack && feature_stack[0]
metadata['call_site'] = feature.to_s if feature
{ metadata: metadata }
end
 
def self.token(storage)
Loading
Loading
@@ -137,7 +147,14 @@ module Gitlab
Gitlab::Metrics.measure(metric_name) do
# Some migrate calls wrap other migrate calls
allow_n_plus_1_calls do
yield is_enabled
feature_stack = Thread.current[:gitaly_feature_stack] ||= []
feature_stack.unshift(feature)
begin
yield is_enabled
ensure
feature_stack.shift
Thread.current[:gitaly_feature_stack] = nil if feature_stack.empty?
end
end
end
end
Loading
Loading
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