class JCW::Init

Public Class Methods

call() click to toggle source
# File lib/jcw/init.rb, line 6
def call
  init_jaeger_client
  activate_subscribers
  init_http_tracer
end

Private Class Methods

activate_subscribers() click to toggle source
# File lib/jcw/init.rb, line 43
def activate_subscribers
  subscribers = config.subscribe_to
  return if subscribers.blank?

  Tracing.register_subscribers(subscribers)
  Tracing.subscribe_tracing_events
end
config() click to toggle source
# File lib/jcw/init.rb, line 57
def config
  Wrapper.config
end
init_http_tracer() click to toggle source
# File lib/jcw/init.rb, line 51
def init_http_tracer
  HTTP::Tracer.instrument
  HTTP::Tracer.remove # remove after gem 'httprb-opentracing' released PR#8
  HttpTracer.patch_perform # remove after gem 'httprb-opentracing' released PR#8
end
init_jaeger_client() click to toggle source
# File lib/jcw/init.rb, line 14
def init_jaeger_client
  return unless config.enabled?

  reporter = config.connection[:protocol].to_sym == :tcp ? tcp_reporter : nil

  OpenTracing.global_tracer = Jaeger::Client.build(
    service_name: config.service_name,
    host: config.connection[:host],
    port: config.connection[:port],
    flush_interval: config.flush_interval,
    reporter: reporter,
    tags: config.tags,
  )
end
tcp_reporter() click to toggle source
# File lib/jcw/init.rb, line 29
def tcp_reporter
  Jaeger::Reporters::RemoteReporter.new(
    sender: Jaeger::HttpSender.new(
      url: config.connection[:url],
      headers: config.connection[:headers] || {},
      encoder: Jaeger::Encoders::ThriftEncoder.new(
        service_name: config.service_name,
        tags: config.tags,
      ),
    ),
    flush_interval: config.flush_interval,
  )
end