def instrument_server_for_key
::Dalli::Ring.class_eval do
alias_method :server_for_key_without_newrelic_trace, :server_for_key
def server_for_key key
server = server_for_key_without_newrelic_trace key
begin
if txn = ::NewRelic::Agent::Transaction.tl_current
segment = txn.current_segment
if ::NewRelic::Agent::Transaction::DatastoreSegment === segment
::NewRelic::Agent::Instrumentation::Memcache::Dalli.assign_instance_to(segment, server)
end
end
rescue => e
::NewRelic::Agent.logger.warn "Unable to set instance info on datastore segment: #{e.message}"
end
server
end
end
end