Class: OpenTracing::Instrumentation::Hutch::ConsumeTracer

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/opentracing/instrumentation/hutch/consume_tracer.rb

Overview

ConsumeTracer trace Hutch consumer. Cannot be configured, Use ConsumeTracerBuilder for configuration.

Usage:

Hutch::Config.set(
  :tracer,
  OpenTracing::Instrumentation::Hutch::ConsumeTracer,
)

Instance Method Summary collapse

Constructor Details

#initialize(consumer, config: ConsumeTracerConfig.new) ⇒ ConsumeTracer

Returns a new instance of ConsumeTracer.



17
18
19
20
# File 'lib/opentracing/instrumentation/hutch/consume_tracer.rb', line 17

def initialize(consumer, config: ConsumeTracerConfig.new)
  @consumer = consumer
  @config = config
end

Instance Method Details

#handle(message) ⇒ Object

Method handle called by Hutch on message. This method start active span, process consumer and close span.



24
25
26
27
28
29
30
31
32
33
# File 'lib/opentracing/instrumentation/hutch/consume_tracer.rb', line 24

def handle(message)
  scope = safe_start_active_span(message)
  consumer.process(message)
rescue StandardError => e
  error_writer.write_error(scope.span, e) if scope
  raise e
ensure
  # Close scope if exists
  scope&.close
end