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')