module MicroscopeTracer::Headers

Public Class Methods

add_client_request_headers(headers,span,child_span_id) click to toggle source
# File lib/microscope_tracer/headers.rb, line 5
def self.add_client_request_headers(headers,span,child_span_id)
  headers["Microscope-Trace-Id"] = span.trace_id if span.trace_id
  headers["Microscope-Parent-Span-Id"] = span.span_id if span.span_id
  headers["Microscope-Span-Id"] = child_span_id if child_span_id
end
sanity_checks(trace_id_provided, span_id_provided, parent_span_id_provided) click to toggle source
# File lib/microscope_tracer/headers.rb, line 25
def self.sanity_checks(trace_id_provided, span_id_provided, parent_span_id_provided)
  if !trace_id_provided && span_id_provided 
    puts "WARNING: no TraceId provided but a SpanId *was* provided"
  end

  if !trace_id_provided && parent_span_id_provided 
    puts "WARNING: no TraceId provided but a ParentSpanId *was* provided"
  end
end
span_from_server_request_headers(env) click to toggle source
# File lib/microscope_tracer/headers.rb, line 11
def self.span_from_server_request_headers(env)
  trace_id = env.fetch("HTTP_MICROSCOPE_TRACE_ID",false)
  parent_span_id = env.fetch("HTTP_MICROSCOPE_PARENT_SPAN_ID",false)
  span_id = env.fetch("HTTP_MICROSCOPE_SPAN_ID",false)

  sanity_checks(!!trace_id,!!span_id,!!parent_span_id)

  if trace_id && !parent_span_id 
    return false
  end

  Span.new(trace_id,parent_span_id,span_id)
end