module Datadog::Contrib::Ethon::MultiPatch::InstanceMethods

InstanceMethods - implementing instrumentation

Public Instance Methods

add(easy) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 18
def add(easy)
  handles = super
  return handles if handles.nil? || !tracer_enabled?

  if datadog_multi_performing?
    # Start Easy span in case Multi is already performing
    easy.datadog_before_request(parent_span: datadog_multi_span)
  end
  handles
end
perform() click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 29
def perform
  if tracer_enabled?
    easy_handles.each do |easy|
      easy.datadog_before_request(parent_span: datadog_multi_span) unless easy.datadog_span_started?
    end
  end
  super
ensure
  if tracer_enabled? && datadog_multi_performing?
    @datadog_multi_span.finish
    @datadog_multi_span = nil
  end
end

Private Instance Methods

analytics_enabled?() click to toggle source
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 69
def analytics_enabled?
  Contrib::Analytics.enabled?(datadog_configuration[:analytics_enabled])
end
analytics_sample_rate() click to toggle source
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 73
def analytics_sample_rate
  datadog_configuration[:analytics_sample_rate]
end
datadog_configuration() click to toggle source
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 61
def datadog_configuration
  Datadog.configuration[:ethon]
end
datadog_multi_performing?() click to toggle source
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 45
def datadog_multi_performing?
  instance_variable_defined?(:@datadog_multi_span) && !@datadog_multi_span.nil?
end
datadog_multi_span() click to toggle source
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 49
def datadog_multi_span
  @datadog_multi_span ||= datadog_configuration[:tracer].trace(
    Ext::SPAN_MULTI_REQUEST,
    service: datadog_configuration[:service_name]
  )

  # Set analytics sample rate
  Contrib::Analytics.set_sample_rate(@datadog_multi_span, analytics_sample_rate) if analytics_enabled?

  @datadog_multi_span
end
tracer_enabled?() click to toggle source
# File lib/ddtrace/contrib/ethon/multi_patch.rb, line 65
def tracer_enabled?
  datadog_configuration[:tracer].enabled
end