Module: SyncMachine::TracerAdapters::OpenTracingAdapter

Defined in:
lib/sync_machine/tracer_adapters/open_tracing_adapter.rb

Overview

Adapt OpenTracing for use with SyncMachine.

Class Method Summary collapse

Class Method Details

.log_errors(span, exception) ⇒ Object



19
20
21
22
# File 'lib/sync_machine/tracer_adapters/open_tracing_adapter.rb', line 19

def self.log_errors(span, exception)
  span.set_tag('error', true)
  span.log_kv(event: 'error', :'error.object' => exception)
end

.parent_spanObject



24
25
26
# File 'lib/sync_machine/tracer_adapters/open_tracing_adapter.rb', line 24

def self.parent_span
  OpenTracing.active_span
end

.start_active_span(name, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/sync_machine/tracer_adapters/open_tracing_adapter.rb', line 5

def self.start_active_span(name, &block)
  scope = tracer.start_active_span(
    name,
    child_of: parent_span.context,
    tags: tags
  )
  block.call
rescue Exception => exception
  log_errors(scope.span, exception) if scope
  raise exception
ensure
  scope.close if scope
end

.tagsObject



28
29
30
# File 'lib/sync_machine/tracer_adapters/open_tracing_adapter.rb', line 28

def self.tags
  { 'component' => 'SyncMachine', 'span.kind' => 'server' }
end

.tracerObject



32
33
34
# File 'lib/sync_machine/tracer_adapters/open_tracing_adapter.rb', line 32

def self.tracer
  OpenTracing.global_tracer
end