class OpenTracing::Instrumentation::Hutch::ConsumeOperationNameBuilder
ConsumeOperationNameBuilder
build span operation name of Hutch
ConsumeTracer
Constants
- DEFAULT_OPERATION_NAME_PATTERN
Public Class Methods
new( routing_key_sanitazer: Bunny::RegexpRoutingKeySanitazer.new, operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN )
click to toggle source
@param routing_key_sanitazer [Bunny::RegexpRoutingKeySanitazer] @param operation_name_pattern [String]
# File lib/opentracing/instrumentation/hutch/consume_operation_name_builder.rb, line 14 def initialize( routing_key_sanitazer: Bunny::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(consumer, message)
click to toggle source
@param consume [Object] instance of consumer @param message [Hutch::Message] @return [String] operation_name
# File lib/opentracing/instrumentation/hutch/consume_operation_name_builder.rb, line 25 def build_operation_name(consumer, message) format_args = build_format_args(consumer, message) format(@operation_name_pattern, format_args) end
Private Instance Methods
build_format_args(consumer, message)
click to toggle source
# File lib/opentracing/instrumentation/hutch/consume_operation_name_builder.rb, line 32 def build_format_args(consumer, message) consumer_format_args(consumer) .merge(delivery_info_format_args(message.delivery_info)) .merge(message.properties.to_h) end
consumer_format_args(consumer)
click to toggle source
# File lib/opentracing/instrumentation/hutch/consume_operation_name_builder.rb, line 52 def consumer_format_args(consumer) { consumer_class: consumer.class.to_s, } end
delivery_info_format_args(delivery_info)
click to toggle source
# File lib/opentracing/instrumentation/hutch/consume_operation_name_builder.rb, line 38 def delivery_info_format_args(delivery_info) routing_key = delivery_info[:routing_key] sanitazed_routing_key = sanitaze_routing_key(routing_key) delivery_info .to_h .merge(routing_key: sanitazed_routing_key) end
sanitaze_routing_key(routing_key)
click to toggle source
# File lib/opentracing/instrumentation/hutch/consume_operation_name_builder.rb, line 46 def sanitaze_routing_key(routing_key) return if routing_key.nil? @routing_key_sanitazer.sanitaze_routing_key(routing_key) end