class OpenTracing::Instrumentation::Bunny::ConsumeTagsBuilder

ConsumeTagsBuidler build consume tags from delivery_info and properties

Constants

DEFAULT_STATIC_TAGS

Public Class Methods

new(static_tags: DEFAULT_STATIC_TAGS) click to toggle source

@param static_tags [Hash<String, String>]

# File lib/opentracing/instrumentation/bunny/consume_tags_builder.rb, line 15
def initialize(static_tags: DEFAULT_STATIC_TAGS)
  @static_tags = static_tags
end

Public Instance Methods

build_tags(delivery_info, properties) click to toggle source

@param delivery_info [Bunny::DeliveryInfo] @param properties [Bunny::MessageProperties] @return [Hash] consume span tags

# File lib/opentracing/instrumentation/bunny/consume_tags_builder.rb, line 22
def build_tags(delivery_info, properties)
  @static_tags
    .merge(build_properties_tags(properties))
    .merge(build_delivery_info_tags(delivery_info))
    .merge(build_consumer_tags(delivery_info[:consumer]))
end

Private Instance Methods

build_consumer_tags(consumer) click to toggle source
# File lib/opentracing/instrumentation/bunny/consume_tags_builder.rb, line 45
def build_consumer_tags(consumer)
  {
    'amqp.queue' => consumer.queue.name,
    'amqp.no_ack' => consumer.no_ack,
    'amqp.exclusive' => consumer.exclusive,
  }
end
build_delivery_info_tags(delivery_info) click to toggle source
# File lib/opentracing/instrumentation/bunny/consume_tags_builder.rb, line 37
def build_delivery_info_tags(delivery_info)
  {
    'amqp.redelivered' => delivery_info[:redelivered],
    'amqp.exchange' => delivery_info[:exchange],
    'amqp.routing_key' => delivery_info[:routing_key],
  }
end
build_properties_tags(properties) click to toggle source
# File lib/opentracing/instrumentation/bunny/consume_tags_builder.rb, line 31
def build_properties_tags(properties)
  {
    'amqp.content_type' => properties[:content_type],
  }
end