lib/instana/instrumentation/sidekiq-client.rb in instana-1.211.0 vs lib/instana/instrumentation/sidekiq-client.rb in instana-1.212.0
- old
+ new
@@ -12,11 +12,20 @@
::Instana.tracer.log_entry(:'sidekiq-client', kv_payload)
# 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-client'][:'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-client'][:'redis-url'] = "#{host}:#{port}"
end
context = ::Instana.tracer.context
if context
msg['X-Instana-T'] = context.trace_id_header