Conditionally initialize the global opentracing tracer
This change will instantiate an OpenTracing tracer and configure it as the global tracer when the GITLAB_TRACING environment variable is configured. GITLAB_TRACING takes a "connection string"-like value, encapsulating the driver (eg jaeger, etc) and options for the driver. Since each service, whether it's written in Ruby or Golang, uses the same connection-string, it should be very easy to configure all services in a cluster, or even a single development machine to be setup to use tracing. Note that this change does not include instrumentation or propagation changes as this is a way of breaking a previous larger change into components. The instrumentation and propagation changes will follow in separate changes.
Showing
... | ... | @@ -304,6 +304,12 @@ group :metrics do |
gem 'raindrops', '~> 0.18' | ||
end | ||
group :tracing do | ||
# OpenTracing | ||
gem 'opentracing', '~> 0.4.3' | ||
gem 'jaeger-client', '~> 0.10.0' | ||
end | ||
group :development do | ||
gem 'foreman', '~> 0.84.0' | ||
gem 'brakeman', '~> 4.2', require: false | ||
... | ... |
lib/gitlab/tracing.rb
0 → 100644
Please register or sign in to comment