class OpenTracing::Instrumentation::Hutch::ConsumeTagsBuilder

ConsumeTagsBuilder build span tags for Hutch ConsumerTrace. Its use Bunny::ComsumerTagsBuilde for common tags and add hutch specific tags

Constants

DEFAULT_STATIC_TAGS

Attributes

static_tags[R]

Public Class Methods

new( bunny_consume_tags_builder: Bunny::ConsumeTagsBuilder.new, static_tags: DEFAULT_STATIC_TAGS ) click to toggle source

@param bunny_consume_tags_builder [Bunny::ConsumeTagsBuilder] @param static_tags [Hash<String, String>]

# File lib/opentracing/instrumentation/hutch/consume_tags_builder.rb, line 16
def initialize(
  bunny_consume_tags_builder: Bunny::ConsumeTagsBuilder.new,
  static_tags: DEFAULT_STATIC_TAGS
)
  @bunny_consume_tags_builder = bunny_consume_tags_builder
  @static_tags = static_tags
end

Public Instance Methods

build_tags(consumer, message) click to toggle source

@param consumer [Object] instance of consumer @param message [Hutch::Message] @return [Hash<String, String>] tags

# File lib/opentracing/instrumentation/hutch/consume_tags_builder.rb, line 27
def build_tags(consumer, message)
  build_bunny_tags(message)
    .merge(hutch_tags(consumer))
    .merge(@static_tags)
end

Private Instance Methods

build_bunny_tags(message) click to toggle source
# File lib/opentracing/instrumentation/hutch/consume_tags_builder.rb, line 37
def build_bunny_tags(message)
  @bunny_consume_tags_builder.build_tags(
    message.delivery_info,
    message.properties,
  )
end
hutch_tags(consumer) click to toggle source
# File lib/opentracing/instrumentation/hutch/consume_tags_builder.rb, line 44
def hutch_tags(consumer)
  {
    'hutch.consumer_class' => consumer.class.to_s,
  }
end