Class: MicroscopeTracer::TraceLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/microscope_tracer/trace_logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(service_name) ⇒ TraceLogger

Returns a new instance of TraceLogger.



3
4
5
6
7
8
9
# File 'lib/microscope_tracer/trace_logger.rb', line 3

def initialize(service_name)
  @service_name = service_name

  # hardcoded for now
  @log_prefix = "MICROSCOPE: "
  @io = $stdout
end

Instance Method Details

#log(type, span, extras = {}) ⇒ Object



29
30
31
32
33
34
# File 'lib/microscope_tracer/trace_logger.rb', line 29

def log(type,span,extras={})
  fields = {service:@service_name,type:type,traceId:span.trace_id,spanId:span.span_id,pSpanId:span.parent_span_id}.merge(extras)
  line = fields.map{ |k,v| if v then "#{k}=\"#{v}\"" else nil end }.compact.join(" ")

  @io.puts(@log_prefix + line)
end

#log_client_end(span, child_span_id, duration_in_seconds) ⇒ Object



24
25
26
27
# File 'lib/microscope_tracer/trace_logger.rb', line 24

def log_client_end(span,child_span_id,duration_in_seconds)
  millis = duration_in_seconds * 1000
  log(:client_end,span,{childSpanId:child_span_id,elapsedMillis:millis})
end

#log_client_start(span, child_span_id) ⇒ Object



20
21
22
# File 'lib/microscope_tracer/trace_logger.rb', line 20

def log_client_start(span,child_span_id)
  log(:client_start,span,{childSpanId:child_span_id})
end

#log_server_end(span, duration_in_seconds) ⇒ Object



15
16
17
18
# File 'lib/microscope_tracer/trace_logger.rb', line 15

def log_server_end(span,duration_in_seconds)
  millis = duration_in_seconds * 1000
  log(:server_end,span,{elapsedMillis:millis})
end

#log_server_start(span) ⇒ Object



11
12
13
# File 'lib/microscope_tracer/trace_logger.rb', line 11

def log_server_start(span)
  log(:server_start,span)
end