Трассируя стек вызовов, вам нужно посмотреть на источник драгоценного камня.
lib/new_relic/agent/agent.rb
Данные на самом деле отправляются Net::HTTP::Post
def send_request(opts)
request = Net::HTTP::Post.new(opts[:uri],
'CONTENT-ENCODING' => opts[:encoding],
'HOST' => opts[:collector].name)
request.content_type = "application/octet-stream"
request.body = opts[:data]
log.debug "Connect to #{opts[:collector]}#{opts[:uri]}"
...
Но, поточка, куда поступают данные, сжата.
def invoke_remote(method, *args)
#determines whether to zip the data or send plain
post_data, encoding = compress_data(args)
response = send_request({
:uri => remote_method_uri(method),
:encoding => encoding,
:collector => collector,
:data => post_data})
...
Так что compress_data
- это хорошее место для поиска.
Итак, давайте добавим инициализатор, который добавляет операторы журнала при каждой отправке данных..
module NewRelic
module Agent
class Agent
def compress_data_with_debug(object)
Rails.logger.debug("Newrelic Data: #{object.inspect}")
compress_data_without_debug(object)
end
alias_method_chain :compress_data, :debug
end
end
end
И это поможет вам начать с чего-то приличного.