class OpenTracing::Instrumentation::Sidekiq::ServerMiddleware
Sidekiq
server middleware
Constants
- DEFAULT_OPERATION_NAME_BUILDER
- DEFAULT_OPERATION_NAME_TEMPLATE
- DEFAULT_SPAN_KIND
Attributes
error_writter[R]
logger[R]
operation_name_builder[R]
span_kind[R]
tagger[R]
tracer[R]
Public Class Methods
new( 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 )
click to toggle source
rubocop:disable Metrics/ParameterLists
# 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
Public Instance Methods
call(_worker, job, _queue, &block)
click to toggle source
rubocop:enable Metrics/ParameterLists
# 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
Private Instance Methods
build_span_args(job)
click to toggle source
# File lib/opentracing/instrumentation/sidekiq/server_middleware.rb, line 81 def build_span_args(job) { references: extract_references(job), } end
extract_references(job)
click to toggle source
# File lib/opentracing/instrumentation/sidekiq/server_middleware.rb, line 87 def extract_references(job) span_context = tracer.extract(OpenTracing::FORMAT_TEXT_MAP, job) return unless span_context [OpenTracing::Reference.follows_from(span_context)] end
log(span, job) { || ... }
click to toggle source
# File lib/opentracing/instrumentation/sidekiq/server_middleware.rb, line 72 def log(span, job) tagger.write_args_log(span, job['jid'], job['args']) yield rescue StandardError => e error_writter.write_error(span, e) raise end
safe_close_scope(scope)
click to toggle source
# File lib/opentracing/instrumentation/sidekiq/server_middleware.rb, line 64 def safe_close_scope(scope) return unless socpe scope.close rescue StandardError => e logger&.error(e) end
safe_start_scope(job)
click to toggle source
# File lib/opentracing/instrumentation/sidekiq/server_middleware.rb, line 56 def safe_start_scope(job) tags = tagger.build_tags(job, span_kind) operation_name = operation_name_builder.build(tags) tracer.start_active_span(operation_name, tags: tags, **build_span_args(job)) rescue StandardError => e logger&.error(e) end