lib/instana/instrumentation/sidekiq-worker.rb in instana-1.211.0 vs lib/instana/instrumentation/sidekiq-worker.rb in instana-1.212.0

- old
+ new

@@ -12,11 +12,20 @@ kv_payload[:'sidekiq-worker'][:retry] = msg['retry'].to_s # Temporary until we move connection collection to redis # instrumentation Sidekiq.redis_pool.with do |client| - opts = client.respond_to?(:connection) ? client.connection : client.client.options - kv_payload[:'sidekiq-worker'][:'redis-url'] = "#{opts[:host]}:#{opts[:port]}" + sidekiq_version = Gem::Specification.find_by_name('sidekiq').version + host, port = if sidekiq_version >= Gem::Version.new('7.0') && client.respond_to?(:config) && client.config.respond_to?(:host) && client.config.respond_to?(:port) + [client.config.host, client.config.port] + elsif client.respond_to?(:connection) + [client.connection[:host], client.connection[:port]] + elsif client.respond_to?(:client) && client.client.respond_to?(:options) + [client.client.options[:host], client.client.options[:port]] + else # Unexpected version, continue without recording any redis-url + break + end + kv_payload[:'sidekiq-worker'][:'redis-url'] = "#{host}:#{port}" end context = {} if msg.key?('X-Instana-T') trace_id = msg.delete('X-Instana-T')