Sha256: 011f48bfdd60d40a415b785b9b8393f0156cd4c6458c609a0fd2fa2f113253ea

Contents?: true

Size: 908 Bytes

Versions: 1

Compression:

Stored size: 908 Bytes

Contents

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.annotate(annotation)

  end

  def self.record(annotation=nil, &blk)

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
request-tracer-0.5.5 lib/request_tracer.rb