Gitaly feature flag metadata
This commit is contained in:
parent
c762260612
commit
1ba3c747f3
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
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
|
|
@ -28,6 +28,7 @@ module Gitlab
|
||||||
|
|
||||||
SERVER_VERSION_FILE = 'GITALY_SERVER_VERSION'.freeze
|
SERVER_VERSION_FILE = 'GITALY_SERVER_VERSION'.freeze
|
||||||
MAXIMUM_GITALY_CALLS = 30
|
MAXIMUM_GITALY_CALLS = 30
|
||||||
|
CLIENT_NAME = (Sidekiq.server? ? 'gitlab-sidekiq' : 'gitlab-web').freeze
|
||||||
|
|
||||||
MUTEX = Mutex.new
|
MUTEX = Mutex.new
|
||||||
private_constant :MUTEX
|
private_constant :MUTEX
|
||||||
|
@ -79,7 +80,16 @@ module Gitlab
|
||||||
|
|
||||||
def self.request_metadata(storage)
|
def self.request_metadata(storage)
|
||||||
encoded_token = Base64.strict_encode64(token(storage).to_s)
|
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
|
end
|
||||||
|
|
||||||
def self.token(storage)
|
def self.token(storage)
|
||||||
|
@ -137,7 +147,14 @@ module Gitlab
|
||||||
Gitlab::Metrics.measure(metric_name) do
|
Gitlab::Metrics.measure(metric_name) do
|
||||||
# Some migrate calls wrap other migrate calls
|
# Some migrate calls wrap other migrate calls
|
||||||
allow_n_plus_1_calls do
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue