class OpenTracing::Instrumentation::Bunny::ConsumeOperationNameBuilder

ConsumeOperationNameBuilder build consume command name from queue and delivery_info

Constants

DEFAULT_OPERATION_NAME_PATTERN

Public Class Methods

new( routing_key_sanitazer: RegexpRoutingKeySanitazer.new, operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN ) click to toggle source

@param routing_key_sanitazer [RegexpRoutingKeySanitazer] @param operation_name_pattern [String]

# File lib/opentracing/instrumentation/bunny/consume_operation_name_builder.rb, line 18
def initialize(
  routing_key_sanitazer: RegexpRoutingKeySanitazer.new,
  operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN
)
  @routing_key_sanitazer = routing_key_sanitazer
  @operation_name_pattern = operation_name_pattern
end

Public Instance Methods

build_operation_name(delivery_info) click to toggle source

@param delivery_info [Bunny::DeliveryInfo] @return [String] bunny consume operation name

# File lib/opentracing/instrumentation/bunny/consume_operation_name_builder.rb, line 28
def build_operation_name(delivery_info)
  format_args = build_format_args(delivery_info)
  format(@operation_name_pattern, format_args)
end

Private Instance Methods

build_format_args(delivery_info) click to toggle source
# File lib/opentracing/instrumentation/bunny/consume_operation_name_builder.rb, line 35
def build_format_args(delivery_info)
  queue = delivery_info[:consumer].queue
  routing_key = \
    sanitaze_routing_key(delivery_info[:routing_key])
  delivery_info.to_h.merge(
    routing_key: routing_key,
    queue: queue.name,
  )
end
sanitaze_routing_key(routing_key) click to toggle source
# File lib/opentracing/instrumentation/bunny/consume_operation_name_builder.rb, line 45
def sanitaze_routing_key(routing_key)
  return if routing_key.nil?

  @routing_key_sanitazer.sanitaze_routing_key(routing_key)
end