module Datadog::Contrib::Rake::Instrumentation::InstanceMethods

Instance methods for Rake instrumentation

Public Instance Methods

execute(args = nil) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 25
def execute(args = nil)
  return super unless enabled?

  tracer.trace(Ext::SPAN_EXECUTE, span_options) do |span|
    super.tap { annotate_execute!(span, args) }
  end
ensure
  shutdown_tracer!
end
invoke(*args) click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 15
def invoke(*args)
  return super unless enabled?

  tracer.trace(Ext::SPAN_INVOKE, span_options) do |span|
    super.tap { annotate_invoke!(span, args) }
  end
ensure
  shutdown_tracer!
end

Private Instance Methods

annotate_execute!(span, args) click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 57
def annotate_execute!(span, args)
  span.resource = name
  span.set_tag(Ext::TAG_EXECUTE_ARGS, quantize_args(args.to_hash)) unless args.nil?
rescue StandardError => e
  Datadog.logger.debug("Error while tracing Rake execute: #{e.message}")
end
annotate_invoke!(span, args) click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 41
def annotate_invoke!(span, args)
  span.resource = name
  # Set analytics sample rate
  if Contrib::Analytics.enabled?(configuration[:analytics_enabled])
    Contrib::Analytics.set_sample_rate(span, configuration[:analytics_sample_rate])
  end

  # Measure service stats
  Contrib::Analytics.set_measured(span)

  span.set_tag(Ext::TAG_TASK_ARG_NAMES, arg_names)
  span.set_tag(Ext::TAG_INVOKE_ARGS, quantize_args(args)) unless args.nil?
rescue StandardError => e
  Datadog.logger.debug("Error while tracing Rake invoke: #{e.message}")
end
configuration() click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 81
def configuration
  Datadog.configuration[:rake]
end
enabled?() click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 69
def enabled?
  configuration[:enabled] == true
end
quantize_args(args) click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 64
def quantize_args(args)
  quantize_options = configuration[:quantize][:args]
  Datadog::Quantization::Hash.format(args, quantize_options)
end
shutdown_tracer!() click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 37
def shutdown_tracer!
  tracer.shutdown! if tracer.active_span.nil? && ::Rake.application.top_level_tasks.include?(name)
end
span_options() click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 77
def span_options
  { service: configuration[:service_name] }
end
tracer() click to toggle source
# File lib/ddtrace/contrib/rake/instrumentation.rb, line 73
def tracer
  configuration[:tracer]
end