Module: Labkit::Tracing

Defined in:
lib/labkit/tracing.rb,
lib/labkit/tracing/common.rb,
lib/labkit/tracing/factory.rb,
lib/labkit/tracing/jaeger_factory.rb,
lib/labkit/tracing/rack_middleware.rb,
lib/labkit/tracing/grpc_interceptor.rb,
lib/labkit/tracing/rails/rails_common.rb,
lib/labkit/tracing/sidekiq/sidekiq_common.rb,
lib/labkit/tracing/sidekiq/client_middleware.rb,
lib/labkit/tracing/sidekiq/server_middleware.rb,
lib/labkit/tracing/rails/action_view_subscriber.rb,
lib/labkit/tracing/rails/active_record_subscriber.rb

Defined Under Namespace

Modules: Common, Rails, Sidekiq Classes: Factory, GRPCInterceptor, JaegerFactory, RackMiddleware

Class Method Summary collapse

Class Method Details

.connection_stringObject



33
34
35
# File 'lib/labkit/tracing.rb', line 33

def self.connection_string
  ENV['GITLAB_TRACING']
end

.enabled?Boolean

Only enable tracing when the ‘GITLAB_TRACING` env var is configured. Note that we avoid using ApplicationSettings since the same environment variable needs to be configured for Workhorse, Gitaly and any other components which emit tracing. Since other components may start before Rails, and may not have access to ApplicationSettings, an env var makes more sense.

Returns:

  • (Boolean)


29
30
31
# File 'lib/labkit/tracing.rb', line 29

def self.enabled?
  connection_string.present?
end

.tracing_urlObject

This will provide a link into the distributed tracing for the current trace, if it has been captured.



47
48
49
50
51
# File 'lib/labkit/tracing.rb', line 47

def self.tracing_url
  return unless tracing_url_enabled?

  tracing_url_template.to_s % { correlation_id: Labkit::Correlation::CorrelationId.current_id.to_s, service: Labkit.process_name }
end

.tracing_url_enabled?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/labkit/tracing.rb', line 41

def self.tracing_url_enabled?
  enabled? && tracing_url_template.present?
end

.tracing_url_templateObject



37
38
39
# File 'lib/labkit/tracing.rb', line 37

def self.tracing_url_template
  ENV['GITLAB_TRACING_URL']
end