Class: OpenTracing::Instrumentation::Mongo::TraceSubscriber

Inherits:
Object
  • Object
show all
Includes:
Forwardable
Defined in:
lib/opentracing/instrumentation/mongo/trace_subscriber.rb

Overview

TraceSubscriber trace mongo requests

Instance Method Summary collapse

Constructor Details

#initialize(tracer: OpenTracing.global_tracer, scope_store: {}, operation_name_builder: OperationNameBuilder.new, sanitazer: QuerySanitazer.new) ⇒ TraceSubscriber

Returns a new instance of TraceSubscriber.



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/opentracing/instrumentation/mongo/trace_subscriber.rb', line 13

def initialize(
  tracer: OpenTracing.global_tracer,
  scope_store: {},
  operation_name_builder: OperationNameBuilder.new,
  sanitazer: QuerySanitazer.new
)
  @tracer = tracer
  @monitor = Monitor.new
  @scope_store = scope_store
  @operation_name_builder = operation_name_builder
  @sanitazer = sanitazer
end

Instance Method Details

#failed(event) ⇒ Object



39
40
41
42
# File 'lib/opentracing/instrumentation/mongo/trace_subscriber.rb', line 39

def failed(event)
  tag_error(event.operation_id, event.message, event.failure)
  clean_scope(event.operation_id)
end

#started(event) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/opentracing/instrumentation/mongo/trace_subscriber.rb', line 26

def started(event)
  scope = tracer.start_active_span(
    build_operation_name(event),
    tags: base_tags(event).merge(mongo_tags(event)),
  )

  store_scope(event.operation_id, scope)
end

#succeeded(event) ⇒ Object



35
36
37
# File 'lib/opentracing/instrumentation/mongo/trace_subscriber.rb', line 35

def succeeded(event)
  clean_scope(event.operation_id)
end