Class: OpenTracing::Instrumentation::Sidekiq::ServerMiddleware

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

Overview

Sidekiq server middleware

Constant Summary collapse

DEFAULT_SPAN_KIND =
'consumer'
DEFAULT_OPERATION_NAME_TEMPLATE =
'sidekiq_perform(%<sidekiq.class>s)'
DEFAULT_OPERATION_NAME_BUILDER =
Common::OperationNameBuilder.new(
  operation_name_template: DEFAULT_OPERATION_NAME_TEMPLATE,
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tracer: OpenTracing.global_tracer, tagger: JobTagger.new, error_writter: Common::ErrorWriter.new, logger: nil, span_kind: DEFAULT_SPAN_KIND, operation_name_builder: DEFAULT_OPERATION_NAME_BUILDER) ⇒ ServerMiddleware

rubocop:disable Metrics/ParameterLists



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 29

def initialize(
  tracer: OpenTracing.global_tracer,
  tagger: JobTagger.new,
  error_writter: Common::ErrorWriter.new,
  logger: nil,
  span_kind: DEFAULT_SPAN_KIND,
  operation_name_builder: DEFAULT_OPERATION_NAME_BUILDER
)
  @tracer = tracer
  @tagger = tagger
  @error_writter = error_writter
  @logger = logger
  @span_kind = span_kind
  @operation_name_builder = operation_name_builder
end

Instance Attribute Details

#error_writterObject (readonly)

Returns the value of attribute error_writter.



21
22
23
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 21

def error_writter
  @error_writter
end

#loggerObject (readonly)

Returns the value of attribute logger.



21
22
23
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 21

def logger
  @logger
end

#operation_name_builderObject (readonly)

Returns the value of attribute operation_name_builder.



21
22
23
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 21

def operation_name_builder
  @operation_name_builder
end

#span_kindObject (readonly)

Returns the value of attribute span_kind.



21
22
23
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 21

def span_kind
  @span_kind
end

#taggerObject (readonly)

Returns the value of attribute tagger.



21
22
23
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 21

def tagger
  @tagger
end

#tracerObject (readonly)

Returns the value of attribute tracer.



21
22
23
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 21

def tracer
  @tracer
end

Instance Method Details

#call(_worker, job, _queue, &block) ⇒ Object

rubocop:enable Metrics/ParameterLists



46
47
48
49
50
51
52
# File 'lib/opentracing/instrumentation/sidekiq/server_middleware.rb', line 46

def call(_worker, job, _queue, &block)
  scope = safe_start_scope(job)

  log(scope.span, job, &block)
ensure
  scope&.close
end