Module: MicroscopeTracer::Headers

Defined in:
lib/microscope_tracer/headers.rb

Class Method Summary collapse

Class Method Details

.add_client_request_headers(headers, span, child_span_id) ⇒ Object



5
6
7
8
9
# 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) ⇒ Object



25
26
27
28
29
30
31
32
33
# 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) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# 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