Sha256: 6aeda2c7566a6a9779bd46a27c4f3ec54e8a21a963cc3a51ca0cca292c03d3ac
Contents?: true
Size: 1.42 KB
Versions: 18
Compression:
Stored size: 1.42 KB
Contents
# frozen_string_literal: true module OpenTracing module Instrumentation module Hutch # ConsumeTagsBuilder build span tags for Hutch ConsumerTrace. # Its use Bunny::ComsumerTagsBuilde for common tags and add # hutch specific tags class ConsumeTagsBuilder DEFAULT_STATIC_TAGS = { 'component' => 'hutch', }.freeze # @param bunny_consume_tags_builder [Bunny::ConsumeTagsBuilder] # @param static_tags [Hash<String, String>] 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 # @param consumer [Object] instance of consumer # @param message [Hutch::Message] # @return [Hash<String, String>] tags def build_tags(consumer, message) build_bunny_tags(message) .merge(hutch_tags(consumer)) .merge(@static_tags) end private attr_reader :static_tags def build_bunny_tags(message) @bunny_consume_tags_builder.build_tags( message.delivery_info, message.properties, ) end def hutch_tags(consumer) { 'hutch.consumer_class' => consumer.class.to_s, } end end end end end
Version data entries
18 entries across 18 versions & 1 rubygems