lib/instana/instrumentation/excon.rb in instana-1.193.5 vs lib/instana/instrumentation/excon.rb in instana-1.193.6
- old
+ new
@@ -3,11 +3,11 @@
module Instana
module Instrumentation
class Excon < ::Excon::Middleware::Base
def request_call(datum)
- return @stack.request_call(datum) unless ::Instana.tracer.tracing?
+ return @stack.request_call(datum) unless ::Instana.tracer.tracing? || !Instana.tracer.current_span.exit_span?
payload = { :http => {} }
path = datum[:path].split('?').first
payload[:http][:url] = ::Instana.secrets.remove_from_query("#{datum[:connection].instance_variable_get(:@socket_key)}#{path}")
payload[:http][:method] = datum[:method] if datum.key?(:method)
@@ -28,11 +28,11 @@
@stack.request_call(datum)
end
def error_call(datum)
- return @stack.error_call(datum) unless ::Instana.tracer.tracing?
+ return @stack.error_call(datum) unless ::Instana.tracer.tracing? || !Instana.tracer.current_span.exit_span?
if datum[:pipeline] == true
::Instana.tracer.log_async_error(datum[:error], datum[:instana_span])
else
::Instana.tracer.log_error(datum[:error])
@@ -41,10 +41,10 @@
end
def response_call(datum)
# FIXME: Will connect exceptions call a response?
#
- return @stack.response_call(datum) unless ::Instana.tracer.tracing?
+ return @stack.response_call(datum) unless ::Instana.tracer.tracing? || !Instana.tracer.current_span.exit_span?
result = @stack.response_call(datum)
status = datum[:status]
if !status && datum.key?(:response) && datum[:response].is_a?(Hash)