Class: Datadog::Annotation::Tracer

Inherits:
Object
  • Object
show all
Defined in:
lib/ddtrace/annotation/tracer.rb

Overview

Datadog::Annotation::Tracer is responsible for setting up the trace for the annotated method

Class Method Summary collapse

Class Method Details

.trace(method:, trace_info:, args:, &block) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/ddtrace/annotation/tracer.rb', line 44

def self.trace(method:, trace_info:, args:, &block)
  resource = resolve_resource!(trace_info[:resource], args)
   = trace_info[:metadata_proc]

  Datadog.tracer.trace(resource, service: trace_info[:service]) do |span|
    result = method.call(*args, &block)

    resolve_metadata!(
      metadata_proc: ,
      method: method,
      args: args,
      result: result,
      span: span
    )

    result
  end
end