class OpenTracing::Instrumentation::Sidekiq::JobTagger

Span tags and logs building mixin

Constants

DEFAULT_COMPONENT
LOG_ARGS_EVENT
LOG_JID_EVENT

Attributes

component[RW]
log_args[RW]

Public Class Methods

new( component: DEFAULT_COMPONENT, log_args: false ) { |self| ... } click to toggle source

@param component [String] component name @param log_args [TrueClass, FalseClass] enable attribute logging

# File lib/opentracing/instrumentation/sidekiq/job_tagger.rb, line 20
def initialize(
  component: DEFAULT_COMPONENT,
  log_args: false
)
  @component = component
  @log_args = log_args

  yield self if block_given?
end

Public Instance Methods

build_tags(job, span_kind) click to toggle source

build tags from job data and static attributes

# File lib/opentracing/instrumentation/sidekiq/job_tagger.rb, line 31
def build_tags(job, span_kind)
  {
    component: component,
    'span.kind': span_kind,
    'sidekiq.queue': job['queue'],
    'sidekiq.class': job['class'],
    'sidekiq.retry': job['retry'],
  }
end
write_args_log(span, jid, args) click to toggle source

write job jid and args if log_args enabled @param span [OpenTracing::Span] target span @param jid [String] job id @param args [Array<Object>] argument list

# File lib/opentracing/instrumentation/sidekiq/job_tagger.rb, line 45
def write_args_log(span, jid, args)
  span.log_kv(
    event: LOG_JID_EVENT,
    jid: jid,
  )

  return unless log_args

  span.log_kv(
    event: LOG_ARGS_EVENT,
    args: JSON.dump(args),
  )
end