ddtrace 0.34.1 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +58 -9
  3. data/.circleci/images/primary/Dockerfile-jruby-9.2 +77 -0
  4. data/.rubocop.yml +4 -0
  5. data/Appraisals +9 -7
  6. data/CHANGELOG.md +89 -3
  7. data/Rakefile +11 -2
  8. data/ddtrace.gemspec +5 -3
  9. data/docker-compose.yml +35 -0
  10. data/docs/DevelopmentGuide.md +1 -1
  11. data/docs/GettingStarted.md +89 -36
  12. data/lib/ddtrace.rb +1 -1
  13. data/lib/ddtrace/buffer.rb +9 -9
  14. data/lib/ddtrace/chunker.rb +34 -0
  15. data/lib/ddtrace/configuration.rb +28 -5
  16. data/lib/ddtrace/configuration/base.rb +1 -1
  17. data/lib/ddtrace/configuration/components.rb +154 -0
  18. data/lib/ddtrace/configuration/options.rb +1 -1
  19. data/lib/ddtrace/configuration/settings.rb +131 -63
  20. data/lib/ddtrace/context.rb +6 -6
  21. data/lib/ddtrace/context_flush.rb +1 -1
  22. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +1 -1
  23. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +2 -2
  24. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -1
  25. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -1
  26. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -1
  27. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +2 -2
  28. data/lib/ddtrace/contrib/action_view/patcher.rb +1 -1
  29. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -1
  30. data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -1
  31. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +2 -2
  32. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +2 -2
  33. data/lib/ddtrace/contrib/analytics.rb +1 -1
  34. data/lib/ddtrace/contrib/configuration/settings.rb +1 -1
  35. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -1
  36. data/lib/ddtrace/contrib/dalli/quantize.rb +1 -1
  37. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -1
  38. data/lib/ddtrace/contrib/excon/middleware.rb +2 -2
  39. data/lib/ddtrace/contrib/extensions.rb +29 -5
  40. data/lib/ddtrace/contrib/faraday/patcher.rb +1 -1
  41. data/lib/ddtrace/contrib/grape/endpoint.rb +5 -5
  42. data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
  43. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -1
  44. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +2 -2
  45. data/lib/ddtrace/contrib/grpc/patcher.rb +1 -1
  46. data/lib/ddtrace/contrib/http/circuit_breaker.rb +8 -32
  47. data/lib/ddtrace/contrib/http/instrumentation.rb +2 -2
  48. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -2
  49. data/lib/ddtrace/contrib/patchable.rb +1 -1
  50. data/lib/ddtrace/contrib/patcher.rb +3 -3
  51. data/lib/ddtrace/contrib/presto/instrumentation.rb +3 -3
  52. data/lib/ddtrace/contrib/presto/patcher.rb +1 -1
  53. data/lib/ddtrace/contrib/rack/middlewares.rb +2 -2
  54. data/lib/ddtrace/contrib/rack/patcher.rb +2 -2
  55. data/lib/ddtrace/contrib/rack/request_queue.rb +1 -1
  56. data/lib/ddtrace/contrib/rails/configuration/settings.rb +14 -0
  57. data/lib/ddtrace/contrib/rails/framework.rb +54 -48
  58. data/lib/ddtrace/contrib/rails/integration.rb +1 -1
  59. data/lib/ddtrace/contrib/rake/instrumentation.rb +2 -2
  60. data/lib/ddtrace/contrib/redis/quantize.rb +1 -1
  61. data/lib/ddtrace/contrib/resque/resque_job.rb +2 -2
  62. data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -1
  63. data/lib/ddtrace/contrib/sinatra/env.rb +20 -0
  64. data/lib/ddtrace/contrib/sinatra/ext.rb +6 -0
  65. data/lib/ddtrace/contrib/sinatra/patcher.rb +1 -0
  66. data/lib/ddtrace/contrib/sinatra/tracer.rb +98 -35
  67. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +16 -13
  68. data/lib/ddtrace/correlation.rb +9 -6
  69. data/lib/ddtrace/diagnostics/health.rb +2 -6
  70. data/lib/ddtrace/encoding.rb +13 -39
  71. data/lib/ddtrace/event.rb +1 -1
  72. data/lib/ddtrace/ext/correlation.rb +1 -0
  73. data/lib/ddtrace/ext/diagnostics.rb +2 -0
  74. data/lib/ddtrace/ext/environment.rb +1 -0
  75. data/lib/ddtrace/ext/forced_tracing.rb +1 -1
  76. data/lib/ddtrace/logger.rb +3 -44
  77. data/lib/ddtrace/metrics.rb +5 -5
  78. data/lib/ddtrace/monkey.rb +1 -1
  79. data/lib/ddtrace/opentracer/global_tracer.rb +1 -1
  80. data/lib/ddtrace/pin.rb +18 -17
  81. data/lib/ddtrace/pipeline.rb +1 -1
  82. data/lib/ddtrace/propagation/http_propagator.rb +2 -2
  83. data/lib/ddtrace/runtime/cgroup.rb +1 -1
  84. data/lib/ddtrace/runtime/container.rb +1 -1
  85. data/lib/ddtrace/runtime/metrics.rb +5 -2
  86. data/lib/ddtrace/sampler.rb +2 -2
  87. data/lib/ddtrace/sampling/rule.rb +1 -1
  88. data/lib/ddtrace/sampling/rule_sampler.rb +1 -1
  89. data/lib/ddtrace/span.rb +4 -4
  90. data/lib/ddtrace/sync_writer.rb +3 -8
  91. data/lib/ddtrace/tracer.rb +26 -31
  92. data/lib/ddtrace/transport/http.rb +1 -1
  93. data/lib/ddtrace/transport/http/api/instance.rb +4 -0
  94. data/lib/ddtrace/transport/http/builder.rb +3 -5
  95. data/lib/ddtrace/transport/http/client.rb +7 -64
  96. data/lib/ddtrace/transport/http/response.rb +1 -1
  97. data/lib/ddtrace/transport/http/statistics.rb +1 -1
  98. data/lib/ddtrace/transport/http/traces.rb +10 -7
  99. data/lib/ddtrace/transport/io.rb +1 -1
  100. data/lib/ddtrace/transport/io/client.rb +2 -2
  101. data/lib/ddtrace/transport/io/response.rb +3 -1
  102. data/lib/ddtrace/transport/io/traces.rb +50 -3
  103. data/lib/ddtrace/transport/parcel.rb +0 -4
  104. data/lib/ddtrace/transport/statistics.rb +2 -2
  105. data/lib/ddtrace/transport/traces.rb +160 -10
  106. data/lib/ddtrace/utils.rb +1 -1
  107. data/lib/ddtrace/version.rb +2 -2
  108. data/lib/ddtrace/workers.rb +5 -13
  109. data/lib/ddtrace/workers/async.rb +2 -2
  110. data/lib/ddtrace/workers/runtime_metrics.rb +47 -0
  111. data/lib/ddtrace/workers/trace_writer.rb +199 -0
  112. data/lib/ddtrace/writer.rb +20 -27
  113. metadata +22 -32
@@ -19,23 +19,22 @@ module Datadog
19
19
  tracer.provider.context = context if context.trace_id
20
20
  end
21
21
 
22
- # Begin the trace
23
- tracer.trace(
24
- Ext::SPAN_REQUEST,
25
- service: configuration[:service_name],
26
- span_type: Datadog::Ext::HTTP::TYPE_INBOUND
27
- ) do |span|
28
- Sinatra::Env.set_datadog_span(env, span)
22
+ Sinatra::Env.set_middleware_start_time(env)
29
23
 
24
+ # Run application stack
25
+ response = @app.call(env)
26
+ ensure
27
+ # Augment current Sinatra middleware span if we are the top-most Sinatra app on the Rack stack.
28
+ span = Sinatra::Env.datadog_span(env)
29
+ if span
30
30
  Sinatra::Env.request_header_tags(env, configuration[:headers][:request]).each do |name, value|
31
31
  span.set_tag(name, value) if span.get_tag(name).nil?
32
32
  end
33
33
 
34
- # Run application stack
35
- status, headers, response_body = @app.call(env)
36
-
37
- Sinatra::Headers.response_header_tags(headers, configuration[:headers][:response]).each do |name, value|
38
- span.set_tag(name, value) if span.get_tag(name).nil?
34
+ if response && (headers = response[1])
35
+ Sinatra::Headers.response_header_tags(headers, configuration[:headers][:response]).each do |name, value|
36
+ span.set_tag(name, value) if span.get_tag(name).nil?
37
+ end
39
38
  end
40
39
 
41
40
  # Set analytics sample rate
@@ -44,7 +43,11 @@ module Datadog
44
43
  # Measure service stats
45
44
  Contrib::Analytics.set_measured(span)
46
45
 
47
- [status, headers, response_body]
46
+ span.finish
47
+
48
+ # Remove span from env, so other Sinatra apps mounted on this same
49
+ # Rack stack do not modify it with their own information.
50
+ Sinatra::Env.set_datadog_span(env, nil)
48
51
  end
49
52
  end
50
53
 
@@ -6,21 +6,24 @@ module Datadog
6
6
  # e.g. Retrieve a correlation to the current trace for logging, etc.
7
7
  module Correlation
8
8
  # Struct representing correlation
9
- Identifier = Struct.new(:trace_id, :span_id, :env, :version) do
9
+ Identifier = Struct.new(:trace_id, :span_id, :env, :service, :version) do
10
10
  def initialize(*args)
11
11
  super
12
12
  self.trace_id = trace_id || 0
13
13
  self.span_id = span_id || 0
14
14
  self.env = env || Datadog.configuration.env
15
+ self.service = service || Datadog.configuration.service
15
16
  self.version = version || Datadog.configuration.version
16
17
  end
17
18
 
18
19
  def to_s
19
- str = "#{Ext::Correlation::ATTR_TRACE_ID}=#{trace_id}"
20
- str += " #{Ext::Correlation::ATTR_SPAN_ID}=#{span_id}"
21
- str += " #{Ext::Correlation::ATTR_ENV}=#{env}"
22
- str += " #{Ext::Correlation::ATTR_VERSION}=#{version}"
23
- str
20
+ attributes = []
21
+ attributes << "#{Ext::Correlation::ATTR_ENV}=#{env}" unless env.nil?
22
+ attributes << "#{Ext::Correlation::ATTR_SERVICE}=#{service}" unless service.nil?
23
+ attributes << "#{Ext::Correlation::ATTR_VERSION}=#{version}" unless version.nil?
24
+ attributes << "#{Ext::Correlation::ATTR_TRACE_ID}=#{trace_id}"
25
+ attributes << "#{Ext::Correlation::ATTR_SPAN_ID}=#{span_id}"
26
+ attributes.join(' ')
24
27
  end
25
28
  end.freeze
26
29
 
@@ -19,6 +19,8 @@ module Datadog
19
19
  count :queue_accepted_lengths, Ext::Diagnostics::Health::Metrics::METRIC_QUEUE_ACCEPTED_LENGTHS
20
20
  count :queue_dropped, Ext::Diagnostics::Health::Metrics::METRIC_QUEUE_DROPPED
21
21
  count :traces_filtered, Ext::Diagnostics::Health::Metrics::METRIC_TRACES_FILTERED
22
+ count :transport_trace_too_large, Ext::Diagnostics::Health::Metrics::METRIC_TRANSPORT_TRACE_TOO_LARGE
23
+ count :transport_chunked, Ext::Diagnostics::Health::Metrics::METRIC_TRANSPORT_CHUNKED
22
24
  count :writer_cpu_time, Ext::Diagnostics::Health::Metrics::METRIC_WRITER_CPU_TIME
23
25
 
24
26
  gauge :queue_length, Ext::Diagnostics::Health::Metrics::METRIC_QUEUE_LENGTH
@@ -26,12 +28,6 @@ module Datadog
26
28
  gauge :queue_spans, Ext::Diagnostics::Health::Metrics::METRIC_QUEUE_SPANS
27
29
  gauge :sampling_service_cache_length, Ext::Diagnostics::Health::Metrics::METRIC_SAMPLING_SERVICE_CACHE_LENGTH
28
30
  end
29
-
30
- module_function
31
-
32
- def metrics
33
- Datadog.configuration.diagnostics.health_metrics
34
- end
35
31
  end
36
32
  end
37
33
  end
@@ -10,19 +10,12 @@ module Datadog
10
10
  raise NotImplementedError
11
11
  end
12
12
 
13
- # Encodes a list of traces, expecting a list of items where each items
14
- # is a list of spans. Before dump the string in a serialized format all
15
- # traces are normalized. The traces nesting is not changed.
16
- def encode_traces(traces)
17
- to_send = []
18
- traces.each do |trace|
19
- to_send << trace.map(&:to_hash)
20
- end
21
- encode(to_send)
13
+ # Concatenates a list of elements previously encoded by +#encode+.
14
+ def join(encoded_elements)
15
+ raise NotImplementedError
22
16
  end
23
17
 
24
- # Defines the underlying format used during traces or services encoding.
25
- # This method must be implemented and should only be used by the internal functions.
18
+ # Serializes a single trace into a String suitable for network transmission.
26
19
  def encode(_)
27
20
  raise NotImplementedError
28
21
  end
@@ -44,34 +37,8 @@ module Datadog
44
37
  JSON.dump(obj)
45
38
  end
46
39
 
47
- # New version of JSON Encoder that is API compliant.
48
- module V2
49
- extend JSONEncoder
50
-
51
- ENCODED_IDS = [
52
- :trace_id,
53
- :span_id,
54
- :parent_id
55
- ].freeze
56
-
57
- module_function
58
-
59
- def encode_traces(traces)
60
- trace_hashes = traces.collect do |trace|
61
- # Convert each trace to hash
62
- trace.map(&:to_hash).tap do |spans|
63
- # Convert IDs to hexadecimal
64
- spans.each do |span|
65
- ENCODED_IDS.each do |id|
66
- span[id] = span[id].to_s(16) if span.key?(id)
67
- end
68
- end
69
- end
70
- end
71
-
72
- # Wrap traces & encode them
73
- encode(traces: trace_hashes)
74
- end
40
+ def join(encoded_data)
41
+ "[#{encoded_data.join(',')}]"
75
42
  end
76
43
  end
77
44
 
@@ -90,6 +57,13 @@ module Datadog
90
57
  def encode(obj)
91
58
  MessagePack.pack(obj)
92
59
  end
60
+
61
+ def join(encoded_data)
62
+ packer = MessagePack::Packer.new
63
+ packer.write_array_header(encoded_data.size)
64
+
65
+ (packer.buffer.to_a + encoded_data).join
66
+ end
93
67
  end
94
68
  end
95
69
  end
@@ -41,7 +41,7 @@ module Datadog
41
41
  begin
42
42
  block.call(*args)
43
43
  rescue StandardError => e
44
- Datadog::Logger.log.debug("Error while handling '#{key}' for '#{name}' event: #{e.message}")
44
+ Datadog.logger.debug("Error while handling '#{key}' for '#{name}' event: #{e.message}")
45
45
  end
46
46
  end
47
47
 
@@ -2,6 +2,7 @@ module Datadog
2
2
  module Ext
3
3
  module Correlation
4
4
  ATTR_ENV = 'dd.env'.freeze
5
+ ATTR_SERVICE = 'dd.service'.freeze
5
6
  ATTR_SPAN_ID = 'dd.span_id'.freeze
6
7
  ATTR_TRACE_ID = 'dd.trace_id'.freeze
7
8
  ATTR_VERSION = 'dd.version'.freeze
@@ -23,6 +23,8 @@ module Datadog
23
23
  METRIC_QUEUE_SPANS = 'datadog.tracer.queue.spans'.freeze
24
24
  METRIC_SAMPLING_SERVICE_CACHE_LENGTH = 'datadog.tracer.sampling.service_cache_length'.freeze
25
25
  METRIC_TRACES_FILTERED = 'datadog.tracer.traces.filtered'.freeze
26
+ METRIC_TRANSPORT_CHUNKED = 'datadog.tracer.transport.chunked'.freeze
27
+ METRIC_TRANSPORT_TRACE_TOO_LARGE = 'datadog.tracer.transport.trace_too_large'.freeze
26
28
  METRIC_WRITER_CPU_TIME = 'datadog.tracer.writer.cpu_time'.freeze
27
29
  end
28
30
  end
@@ -7,6 +7,7 @@ module Datadog
7
7
  ENV_VERSION = 'DD_VERSION'.freeze
8
8
 
9
9
  TAG_ENV = 'env'.freeze
10
+ TAG_SERVICE = 'service'.freeze
10
11
  TAG_VERSION = 'version'.freeze
11
12
  end
12
13
  end
@@ -12,7 +12,7 @@ module Datadog
12
12
 
13
13
  # Only log each deprecation warning once (safeguard against log spam)
14
14
  unless @deprecation_warning_shown
15
- Datadog::Logger.log.warn(
15
+ Datadog.logger.warn(
16
16
  'forced tracing: Datadog::Ext::ForcedTracing has been renamed to Datadog::Ext::ManualTracing'
17
17
  )
18
18
  @deprecation_warning_shown = true
@@ -1,57 +1,16 @@
1
1
  require 'logger'
2
2
 
3
3
  module Datadog
4
- LOG_PREFIX = 'ddtrace'.freeze
5
-
6
4
  # A custom logger with minor enhancements:
7
5
  # - progname defaults to ddtrace to clearly identify Datadog dd-trace-rb related messages
8
6
  # - adds last caller stack-trace info to know where the message comes from
9
7
  class Logger < ::Logger
10
- # Global, memoized, lazy initialized instance of a logger that is used within the the Datadog
11
- # namespace. This logger outputs to +STDOUT+ by default, and is considered thread-safe.
12
- class << self
13
- def log
14
- unless defined? @logger
15
- @logger = Datadog::Logger.new(STDOUT)
16
- @logger.level = Logger::WARN
17
- end
18
- @logger
19
- end
20
-
21
- # Override the default logger with a custom one.
22
- def log=(logger)
23
- return unless logger
24
- return unless logger.respond_to? :methods
25
- return unless logger.respond_to? :error
26
- if logger.respond_to? :methods
27
- unimplemented = new(STDOUT).methods - logger.methods
28
- unless unimplemented.empty?
29
- logger.error("logger #{logger} does not implement #{unimplemented}")
30
- return
31
- end
32
- end
33
- @logger = logger
34
- end
35
-
36
- # Activate the debug mode providing more information related to tracer usage
37
- # Default to Warn level unless using custom logger
38
- def debug_logging=(value)
39
- if value
40
- log.level = Logger::DEBUG
41
- elsif log.is_a?(Datadog::Logger)
42
- log.level = Logger::WARN
43
- end
44
- end
45
-
46
- # Return if the debug mode is activated or not
47
- def debug_logging
48
- log.level == Logger::DEBUG
49
- end
50
- end
8
+ PREFIX = 'ddtrace'.freeze
51
9
 
52
10
  def initialize(*args, &block)
53
11
  super
54
- self.progname = LOG_PREFIX
12
+ self.progname = PREFIX
13
+ self.level = ::Logger::WARN
55
14
  end
56
15
 
57
16
  def add(severity, message = nil, progname = nil, &block)
@@ -63,7 +63,7 @@ module Datadog
63
63
 
64
64
  statsd.count(stat, value, metric_options(options))
65
65
  rescue StandardError => e
66
- Datadog::Logger.log.error("Failed to send count stat. Cause: #{e.message} Source: #{e.backtrace.first}")
66
+ Datadog.logger.error("Failed to send count stat. Cause: #{e.message} Source: #{e.backtrace.first}")
67
67
  end
68
68
 
69
69
  def distribution(stat, value = nil, options = nil, &block)
@@ -73,7 +73,7 @@ module Datadog
73
73
 
74
74
  statsd.distribution(stat, value, metric_options(options))
75
75
  rescue StandardError => e
76
- Datadog::Logger.log.error("Failed to send distribution stat. Cause: #{e.message} Source: #{e.backtrace.first}")
76
+ Datadog.logger.error("Failed to send distribution stat. Cause: #{e.message} Source: #{e.backtrace.first}")
77
77
  end
78
78
 
79
79
  def increment(stat, options = nil)
@@ -82,7 +82,7 @@ module Datadog
82
82
 
83
83
  statsd.increment(stat, metric_options(options))
84
84
  rescue StandardError => e
85
- Datadog::Logger.log.error("Failed to send increment stat. Cause: #{e.message} Source: #{e.backtrace.first}")
85
+ Datadog.logger.error("Failed to send increment stat. Cause: #{e.message} Source: #{e.backtrace.first}")
86
86
  end
87
87
 
88
88
  def gauge(stat, value = nil, options = nil, &block)
@@ -92,7 +92,7 @@ module Datadog
92
92
 
93
93
  statsd.gauge(stat, value, metric_options(options))
94
94
  rescue StandardError => e
95
- Datadog::Logger.log.error("Failed to send gauge stat. Cause: #{e.message} Source: #{e.backtrace.first}")
95
+ Datadog.logger.error("Failed to send gauge stat. Cause: #{e.message} Source: #{e.backtrace.first}")
96
96
  end
97
97
 
98
98
  def time(stat, options = nil)
@@ -108,7 +108,7 @@ module Datadog
108
108
  distribution(stat, ((finished - start) * 1000), options)
109
109
  end
110
110
  rescue StandardError => e
111
- Datadog::Logger.log.error("Failed to send time stat. Cause: #{e.message} Source: #{e.backtrace.first}")
111
+ Datadog.logger.error("Failed to send time stat. Cause: #{e.message} Source: #{e.backtrace.first}")
112
112
  end
113
113
  end
114
114
 
@@ -48,7 +48,7 @@ module Datadog
48
48
  end
49
49
 
50
50
  def log_deprecation_warning(method)
51
- Datadog::Logger.log.warn("#{method}:#{DEPRECATION_WARNING}")
51
+ Datadog.logger.warn("#{method}:#{DEPRECATION_WARNING}")
52
52
  end
53
53
 
54
54
  class << self
@@ -6,7 +6,7 @@ module Datadog
6
6
  super.tap do
7
7
  if tracer.class <= Datadog::OpenTracer::Tracer
8
8
  # Update the Datadog global tracer, too.
9
- Datadog.configuration.tracer = tracer.datadog_tracer
9
+ Datadog.configure { |c| c.tracer = tracer.datadog_tracer }
10
10
  end
11
11
  end
12
12
  end
@@ -12,26 +12,34 @@ module Datadog
12
12
  obj.datadog_pin
13
13
  end
14
14
 
15
- attr_reader :service_name
16
15
  attr_accessor :app
17
- attr_accessor :tags
18
16
  attr_accessor :app_type
19
- attr_accessor :name
20
- attr_accessor :tracer
21
17
  attr_accessor :config
18
+ attr_accessor :name
19
+ attr_accessor :service_name
20
+ attr_accessor :tags
21
+ attr_writer :tracer
22
+ attr_accessor :writer
23
+
24
+ alias service= service_name=
25
+ alias service service_name
22
26
 
23
27
  def initialize(service_name, options = {})
24
28
  @app = options[:app]
25
- @tags = options[:tags]
26
29
  @app_type = options[:app_type]
27
- @name = nil # this would rarely be overriden as it's really span-specific
28
- @tracer = options[:tracer] || Datadog.tracer
29
30
  @config = options[:config]
30
- self.service_name = service_name
31
+ @name = nil # this would rarely be overriden as it's really span-specific
32
+ @service_name = service_name
33
+ @tags = options[:tags]
34
+ @tracer = options[:tracer]
35
+ end
36
+
37
+ def tracer
38
+ @tracer || Datadog.tracer
31
39
  end
32
40
 
33
41
  def enabled?
34
- return @tracer.enabled if @tracer
42
+ return tracer.enabled if tracer
35
43
  false
36
44
  end
37
45
 
@@ -56,13 +64,6 @@ module Datadog
56
64
  obj.datadog_pin = self
57
65
  end
58
66
 
59
- def service_name=(name)
60
- @service_name = name
61
- end
62
-
63
- alias service= service_name=
64
- alias service service_name
65
-
66
67
  def to_s
67
68
  "Pin(service:#{service},app:#{app},app_type:#{app_type},name:#{name})"
68
69
  end
@@ -107,7 +108,7 @@ module Datadog
107
108
  def log_deprecation_warning(method_name)
108
109
  # Only log each deprecation warning once (safeguard against log spam)
109
110
  do_once(method_name) do
110
- Datadog::Logger.log.warn("#{method_name}:#{DEPRECATION_WARNING}")
111
+ Datadog.logger.warn("#{method_name}:#{DEPRECATION_WARNING}")
111
112
  end
112
113
  end
113
114
  end
@@ -34,7 +34,7 @@ module Datadog
34
34
 
35
35
  result || []
36
36
  rescue => e
37
- Datadog::Logger.log.debug(
37
+ Datadog.logger.debug(
38
38
  "trace dropped entirely due to `Pipeline.before_flush` error: #{e}"
39
39
  )
40
40
 
@@ -19,7 +19,7 @@ module Datadog
19
19
  def self.inject!(context, env)
20
20
  # Prevent propagation from being attempted if context provided is nil.
21
21
  if context.nil?
22
- ::Datadog::Logger.log.debug('Cannot inject context into env to propagate over HTTP: context is nil.'.freeze)
22
+ ::Datadog.logger.debug('Cannot inject context into env to propagate over HTTP: context is nil.'.freeze)
23
23
  return
24
24
  end
25
25
 
@@ -58,7 +58,7 @@ module Datadog
58
58
  # Return an empty/new context if we have a mismatch in values extracted
59
59
  msg = "#{context.trace_id} != #{extracted_context.trace_id} && " \
60
60
  "#{context.span_id} != #{extracted_context.span_id}"
61
- ::Datadog::Logger.log.debug("Cannot extract context from HTTP: extracted contexts differ, #{msg}".freeze)
61
+ ::Datadog.logger.debug("Cannot extract context from HTTP: extracted contexts differ, #{msg}".freeze)
62
62
  # DEV: This will return from `self.extract` not this `each` block
63
63
  return ::Datadog::Context.new
64
64
  end
@@ -27,7 +27,7 @@ module Datadog
27
27
  end
28
28
  end
29
29
  rescue StandardError => e
30
- Datadog::Logger.log.error("Error while parsing cgroup. Cause: #{e.message} Location: #{e.backtrace.first}")
30
+ Datadog.logger.error("Error while parsing cgroup. Cause: #{e.message} Location: #{e.backtrace.first}")
31
31
  end
32
32
  end
33
33
  end