Sha256: cc3ee62d576ce0b3e508a20a754e1616a8ae450bcf0b1aa1eaface044afae62a

Contents?: true

Size: 927 Bytes

Versions: 4

Compression:

Stored size: 927 Bytes

Contents

require_relative 'request_tracer/trace'

module RequestTracer
  B3_REQUIRED_FIELDS = %w(trace_id parent_span_id span_id)
  B3_REQUIRED_FIELDS_FROM_SHORT_NAMES = B3_REQUIRED_FIELDS.map {|f| [f.gsub("_", ""), f] }.to_h
  B3_REQUIRED_HEADERS = B3_REQUIRED_FIELDS.map {|f| "HTTP_X_B3_#{f.gsub("_", "").upcase}" }
  B3_REQUIRED_FIELD_HEADER_MAP = B3_REQUIRED_FIELDS.zip(B3_REQUIRED_HEADERS).to_h
  B3_REQUIRED_HEADER_FIELD_MAP = B3_REQUIRED_HEADERS.zip(B3_REQUIRED_FIELDS).to_h
  B3_OPT_HEADERS = %w[HTTP_X_B3_FLAGS]

  def self.integrate_with(*services)
    services.each do |service|
      require_relative "request_tracer/integration/#{service}_handler"
      class_name = service.to_s.split('_').collect(&:capitalize).join + 'Handler'
      integration_module = RequestTracer::Integration.const_get(class_name)
      integration_module.activate
    end
  end

  def self.latest_trace_hash(*args)
    Trace.latest.to_h
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
request-tracer-0.7.0 lib/request_tracer.rb
request-tracer-0.6.6 lib/request_tracer.rb
request-tracer-0.6.5 lib/request_tracer.rb
request-tracer-0.6.4 lib/request_tracer.rb