Module: TraceView::Inst::EventMachine::HttpConnection

Included in:
EventMachine::HttpConnection
Defined in:
lib/traceview/inst/em-http-request.rb

Instance Method Summary collapse

Instance Method Details

#setup_request_with_traceview(*args, &block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/traceview/inst/em-http-request.rb', line 8

def setup_request_with_traceview(*args, &block)
  report_kvs = {}
  context = TraceView::Context.toString
  blacklisted = TraceView::API.blacklisted?(@uri)

  begin
    report_kvs[:IsService] = 1
    report_kvs[:RemoteURL] = @uri
    report_kvs[:HTTPMethod] = args[0]
    report_kvs[:Blacklisted] = true if blacklisted

    if TraceView::Config[:em_http_request][:collect_backtraces]
      report_kvs[:Backtrace] = TraceView::API.backtrace
    end
  rescue => e
    TraceView.logger.debug "[traceview/debug] em-http-request KV error: #{e.inspect}"
  end

  ::TraceView::API.log_entry(:'em-http-request', report_kvs)
  client = setup_request_without_traceview(*args, &block)
  client.req.headers['X-Trace'] = context unless blacklisted
  client
end