ddtrace 1.0.0 → 1.1.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 (122) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -16
  3. data/CHANGELOG.md +31 -2
  4. data/LICENSE-3rdparty.csv +3 -2
  5. data/README.md +2 -2
  6. data/ddtrace.gemspec +12 -3
  7. data/docs/GettingStarted.md +19 -2
  8. data/docs/ProfilingDevelopment.md +8 -8
  9. data/docs/UpgradeGuide.md +3 -3
  10. data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +118 -0
  11. data/ext/ddtrace_profiling_loader/extconf.rb +53 -0
  12. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +31 -5
  13. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +0 -8
  14. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +278 -0
  15. data/ext/ddtrace_profiling_native_extension/extconf.rb +70 -100
  16. data/ext/ddtrace_profiling_native_extension/libddprof_helpers.h +13 -0
  17. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +186 -0
  18. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +579 -7
  19. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +30 -0
  20. data/ext/ddtrace_profiling_native_extension/profiling.c +7 -0
  21. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +139 -0
  22. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +28 -0
  23. data/lib/datadog/appsec/autoload.rb +2 -2
  24. data/lib/datadog/appsec/configuration/settings.rb +19 -0
  25. data/lib/datadog/appsec/configuration.rb +8 -0
  26. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +76 -33
  27. data/lib/datadog/appsec/contrib/rack/integration.rb +1 -0
  28. data/lib/datadog/appsec/contrib/rack/patcher.rb +0 -1
  29. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +64 -0
  30. data/lib/datadog/appsec/contrib/rack/request.rb +6 -0
  31. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +41 -0
  32. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +60 -5
  33. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +81 -0
  34. data/lib/datadog/appsec/contrib/rails/patcher.rb +34 -1
  35. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +68 -0
  36. data/lib/datadog/appsec/contrib/rails/request.rb +33 -0
  37. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +124 -0
  38. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +69 -2
  39. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +63 -0
  40. data/lib/datadog/appsec/event.rb +33 -18
  41. data/lib/datadog/appsec/extensions.rb +0 -3
  42. data/lib/datadog/appsec/processor.rb +45 -2
  43. data/lib/datadog/appsec/rate_limiter.rb +5 -0
  44. data/lib/datadog/appsec/reactive/operation.rb +0 -1
  45. data/lib/datadog/ci/ext/environment.rb +21 -7
  46. data/lib/datadog/core/configuration/agent_settings_resolver.rb +1 -1
  47. data/lib/datadog/core/configuration/components.rb +22 -4
  48. data/lib/datadog/core/configuration/settings.rb +3 -3
  49. data/lib/datadog/core/configuration.rb +7 -5
  50. data/lib/datadog/core/environment/cgroup.rb +3 -1
  51. data/lib/datadog/core/environment/container.rb +2 -1
  52. data/lib/datadog/core/environment/variable_helpers.rb +26 -2
  53. data/lib/datadog/core/logging/ext.rb +11 -0
  54. data/lib/datadog/core/metrics/client.rb +15 -5
  55. data/lib/datadog/core/runtime/metrics.rb +1 -1
  56. data/lib/datadog/core/workers/async.rb +3 -1
  57. data/lib/datadog/core/workers/runtime_metrics.rb +0 -3
  58. data/lib/datadog/core.rb +6 -0
  59. data/lib/datadog/kit/enable_core_dumps.rb +50 -0
  60. data/lib/datadog/kit/identity.rb +63 -0
  61. data/lib/datadog/kit.rb +11 -0
  62. data/lib/datadog/opentracer/tracer.rb +0 -2
  63. data/lib/datadog/profiling/collectors/old_stack.rb +298 -0
  64. data/lib/datadog/profiling/collectors/stack.rb +6 -287
  65. data/lib/datadog/profiling/encoding/profile.rb +0 -1
  66. data/lib/datadog/profiling/ext.rb +1 -1
  67. data/lib/datadog/profiling/flush.rb +1 -1
  68. data/lib/datadog/profiling/load_native_extension.rb +22 -0
  69. data/lib/datadog/profiling/recorder.rb +1 -1
  70. data/lib/datadog/profiling/scheduler.rb +1 -1
  71. data/lib/datadog/profiling/stack_recorder.rb +33 -0
  72. data/lib/datadog/profiling/tag_builder.rb +48 -0
  73. data/lib/datadog/profiling/tasks/exec.rb +2 -2
  74. data/lib/datadog/profiling/tasks/setup.rb +6 -4
  75. data/lib/datadog/profiling.rb +29 -27
  76. data/lib/datadog/tracing/buffer.rb +9 -3
  77. data/lib/datadog/tracing/contrib/action_view/patcher.rb +0 -1
  78. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
  79. data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
  80. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +1 -1
  81. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +4 -2
  82. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +10 -3
  83. data/lib/datadog/tracing/contrib/dalli/patcher.rb +0 -1
  84. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +0 -1
  85. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +9 -3
  86. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +38 -2
  87. data/lib/datadog/tracing/contrib/ethon/patcher.rb +0 -1
  88. data/lib/datadog/tracing/contrib/extensions.rb +0 -2
  89. data/lib/datadog/tracing/contrib/faraday/patcher.rb +0 -1
  90. data/lib/datadog/tracing/contrib/grape/patcher.rb +0 -1
  91. data/lib/datadog/tracing/contrib/graphql/patcher.rb +0 -1
  92. data/lib/datadog/tracing/contrib/grpc/patcher.rb +0 -1
  93. data/lib/datadog/tracing/contrib/kafka/patcher.rb +0 -1
  94. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +2 -1
  95. data/lib/datadog/tracing/contrib/qless/patcher.rb +0 -1
  96. data/lib/datadog/tracing/contrib/que/patcher.rb +0 -1
  97. data/lib/datadog/tracing/contrib/racecar/patcher.rb +0 -1
  98. data/lib/datadog/tracing/contrib/rails/log_injection.rb +3 -16
  99. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +2 -2
  100. data/lib/datadog/tracing/contrib/rake/patcher.rb +0 -1
  101. data/lib/datadog/tracing/contrib/redis/patcher.rb +0 -1
  102. data/lib/datadog/tracing/contrib/resque/patcher.rb +0 -1
  103. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +0 -1
  104. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +2 -1
  105. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +1 -0
  106. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +20 -1
  107. data/lib/datadog/tracing/contrib/sinatra/framework.rb +11 -0
  108. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +0 -1
  109. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +0 -1
  110. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +0 -1
  111. data/lib/datadog/tracing/event.rb +2 -1
  112. data/lib/datadog/tracing/sampling/priority_sampler.rb +4 -5
  113. data/lib/datadog/tracing/sampling/rule.rb +12 -6
  114. data/lib/datadog/tracing/sampling/rule_sampler.rb +3 -5
  115. data/lib/datadog/tracing/span_operation.rb +2 -3
  116. data/lib/datadog/tracing/trace_operation.rb +0 -1
  117. data/lib/ddtrace/transport/http/client.rb +2 -1
  118. data/lib/ddtrace/transport/http/response.rb +34 -4
  119. data/lib/ddtrace/transport/io/client.rb +3 -1
  120. data/lib/ddtrace/version.rb +1 -1
  121. data/lib/ddtrace.rb +1 -0
  122. metadata +43 -6
@@ -3,7 +3,6 @@
3
3
  require 'datadog/tracing/contrib/patcher'
4
4
  require 'datadog/tracing/contrib/redis/ext'
5
5
  require 'datadog/tracing/contrib/redis/configuration/resolver'
6
- require 'datadog/tracing/contrib/redis/integration'
7
6
 
8
7
  module Datadog
9
8
  module Tracing
@@ -1,7 +1,6 @@
1
1
  # typed: false
2
2
 
3
3
  require 'datadog/tracing/contrib/patcher'
4
- require 'datadog/tracing/contrib/resque/integration'
5
4
  require 'datadog/tracing/contrib/sidekiq/ext'
6
5
 
7
6
  module Datadog
@@ -1,7 +1,6 @@
1
1
  # typed: true
2
2
 
3
3
  require 'datadog/tracing/contrib/patcher'
4
- require 'datadog/tracing/contrib/rest_client/integration'
5
4
 
6
5
  module Datadog
7
6
  module Tracing
@@ -1,6 +1,7 @@
1
1
  # typed: true
2
2
 
3
3
  require 'datadog/tracing'
4
+ require 'datadog/core/logging/ext'
4
5
 
5
6
  module Datadog
6
7
  module Tracing
@@ -33,7 +34,7 @@ module Datadog
33
34
  service: correlation.service.to_s,
34
35
  version: correlation.version.to_s
35
36
  },
36
- ddsource: ['ruby']
37
+ ddsource: Core::Logging::Ext::DD_SOURCE
37
38
  }
38
39
 
39
40
  # # if the user already has conflicting log_tags
@@ -35,6 +35,7 @@ module Datadog
35
35
  option :service_name
36
36
  option :client_service_name
37
37
  option :error_handler, default: Tracing::SpanOperation::Events::DEFAULT_ON_ERROR
38
+ option :quantize, default: {}
38
39
  end
39
40
  end
40
41
  end
@@ -5,6 +5,7 @@ require 'datadog/tracing/metadata/ext'
5
5
  require 'datadog/tracing/contrib/analytics'
6
6
  require 'datadog/tracing/contrib/sidekiq/ext'
7
7
  require 'datadog/tracing/contrib/sidekiq/tracing'
8
+ require 'datadog/tracing/contrib/utils/quantization/hash'
8
9
 
9
10
  module Datadog
10
11
  module Tracing
@@ -14,6 +15,8 @@ module Datadog
14
15
  class ServerTracer
15
16
  include Tracing
16
17
 
18
+ QUANTIZE_SHOW_ALL = { args: { show: :all } }.freeze
19
+
17
20
  def initialize(options = {})
18
21
  @sidekiq_service = options[:service_name] || configuration[:service_name]
19
22
  @error_handler = options[:error_handler] || configuration[:error_handler]
@@ -23,7 +26,9 @@ module Datadog
23
26
  resource = job_resource(job)
24
27
 
25
28
  service = worker_config(resource, :service_name) || @sidekiq_service
29
+ # DEV-2.0: Remove `tag_args`, as `quantize` can fulfill the same contract
26
30
  tag_args = worker_config(resource, :tag_args) || configuration[:tag_args]
31
+ quantize = worker_config(resource, :quantize) || configuration[:quantize]
27
32
 
28
33
  Datadog::Tracing.trace(
29
34
  Ext::SPAN_JOB,
@@ -50,7 +55,12 @@ module Datadog
50
55
  span.set_tag(Ext::TAG_JOB_QUEUE, job['queue'])
51
56
  span.set_tag(Ext::TAG_JOB_WRAPPER, job['class']) if job['wrapped']
52
57
  span.set_tag(Ext::TAG_JOB_DELAY, 1000.0 * (Time.now.utc.to_f - job['enqueued_at'].to_f))
53
- span.set_tag(Ext::TAG_JOB_ARGS, job['args']) if tag_args && !job['args'].nil? && !job['args'].empty?
58
+
59
+ args = job['args']
60
+ if args && !args.empty?
61
+ quantize = tag_args ? QUANTIZE_SHOW_ALL : quantize
62
+ span.set_tag(Ext::TAG_JOB_ARGS, quantize_args(quantize, args))
63
+ end
54
64
 
55
65
  yield
56
66
  end
@@ -58,10 +68,19 @@ module Datadog
58
68
 
59
69
  private
60
70
 
71
+ def quantize_args(quantize, args)
72
+ quantize_options = quantize && quantize[:args]
73
+ quantize_options ||= {}
74
+
75
+ Contrib::Utils::Quantization::Hash.format(args, quantize_options)
76
+ end
77
+
61
78
  def configuration
62
79
  Datadog.configuration.tracing[:sidekiq]
63
80
  end
64
81
 
82
+ # DEV-2.0: Is this still being used? If not, we should remove it
83
+ # as this adds brittleness and complexity to this integration.
65
84
  def worker_config(resource, key)
66
85
  # Try to get the Ruby class from the resource name.
67
86
  worker_klass = begin
@@ -39,6 +39,17 @@ module Datadog
39
39
  end
40
40
  end
41
41
 
42
+ class << self
43
+ alias_method :unshift_middleare, :add_middleware
44
+ end
45
+
46
+ # Add Rack middleware at the top of the stack
47
+ def self.append_middleware(middleware, builder, *args, &block)
48
+ insert_middleware(builder, middleware, args, block) do |proc_, use|
49
+ use.append(proc_)
50
+ end
51
+ end
52
+
42
53
  # Add Rack middleware before another in the stack
43
54
  def self.add_middleware_before(before, middleware, builder, *args, &block)
44
55
  index = middlewares(builder).index(before)
@@ -4,7 +4,6 @@ require 'datadog/core/utils/only_once'
4
4
  require 'datadog/tracing/contrib/patcher'
5
5
  require 'datadog/tracing/contrib/rack/middlewares'
6
6
  require 'datadog/tracing/contrib/sinatra/framework'
7
- require 'datadog/tracing/contrib/sinatra/integration'
8
7
 
9
8
  module Datadog
10
9
  module Tracing
@@ -3,7 +3,6 @@
3
3
  # typed: false
4
4
 
5
5
  require 'datadog/tracing/contrib/patcher'
6
- require 'datadog/tracing/contrib/sneakers/integration'
7
6
  require 'datadog/tracing/contrib/sneakers/tracer'
8
7
 
9
8
  module Datadog
@@ -3,7 +3,6 @@
3
3
  require 'datadog/tracing'
4
4
  require 'datadog/tracing/contrib/patcher'
5
5
  require 'datadog/tracing/contrib/sucker_punch/ext'
6
- require 'datadog/tracing/contrib/sucker_punch/integration'
7
6
 
8
7
  module Datadog
9
8
  module Tracing
@@ -65,7 +65,8 @@ module Datadog
65
65
  block.call(*args)
66
66
  rescue StandardError => e
67
67
  Datadog.logger.debug do
68
- "Error while handling '#{name}' event with '#{block}': #{e.message} at #{Array(e.backtrace).first}"
68
+ "Error while handling '#{name}' event with '#{block}': #{e.class.name} #{e.message} " \
69
+ "at #{Array(e.backtrace).first}"
69
70
  end
70
71
  end
71
72
  end
@@ -1,7 +1,5 @@
1
1
  # typed: true
2
2
 
3
- require 'forwardable'
4
-
5
3
  require 'datadog/tracing/sampling/ext'
6
4
  require 'datadog/tracing/sampling/all_sampler'
7
5
  require 'datadog/tracing/sampling/rate_sampler'
@@ -13,8 +11,6 @@ module Datadog
13
11
  # {Datadog:::Tracing::Sampling::PrioritySampler}
14
12
  # @public_api
15
13
  class PrioritySampler
16
- extend Forwardable
17
-
18
14
  # NOTE: We do not advise using a pre-sampler. It can save resources,
19
15
  # but pre-sampling at rates < 100% may result in partial traces, unless
20
16
  # the pre-sampler knows exactly how to drop a span without dropping its ancestors.
@@ -59,7 +55,10 @@ module Datadog
59
55
  trace.sampled?
60
56
  end
61
57
 
62
- def_delegators :@priority_sampler, :update
58
+ # (see Datadog::Tracing::Sampling::RateByServiceSampler#update)
59
+ def update(rate_by_service)
60
+ @priority_sampler.update(rate_by_service)
61
+ end
63
62
 
64
63
  private
65
64
 
@@ -1,7 +1,5 @@
1
1
  # typed: true
2
2
 
3
- require 'forwardable'
4
-
5
3
  require 'datadog/core'
6
4
 
7
5
  require 'datadog/tracing/sampling/matcher'
@@ -15,8 +13,6 @@ module Datadog
15
13
  # apply in case of a positive match.
16
14
  # @public_api
17
15
  class Rule
18
- extend Forwardable
19
-
20
16
  attr_reader :matcher, :sampler
21
17
 
22
18
  # @param [Matcher] matcher A matcher to verify trace conformity against
@@ -34,11 +30,21 @@ module Datadog
34
30
  def match?(trace)
35
31
  @matcher.match?(trace)
36
32
  rescue => e
37
- Datadog.logger.error("Matcher failed. Cause: #{e.message} Source: #{Array(e.backtrace).first}")
33
+ Datadog.logger.error(
34
+ "Matcher failed. Cause: #{e.class.name} #{e.message} Source: #{Array(e.backtrace).first}"
35
+ )
38
36
  nil
39
37
  end
40
38
 
41
- def_delegators :@sampler, :sample?, :sample_rate
39
+ # (see Datadog::Tracing::Sampling::Sampler#sample?)
40
+ def sample?(trace)
41
+ @sampler.sample?(trace)
42
+ end
43
+
44
+ # (see Datadog::Tracing::Sampling::Sampler#sample_rate)
45
+ def sample_rate(trace)
46
+ @sampler.sample_rate(trace)
47
+ end
42
48
  end
43
49
 
44
50
  # A {Datadog::Tracing::Sampling::Rule} that matches a trace based on
@@ -1,7 +1,5 @@
1
1
  # typed: true
2
2
 
3
- require 'forwardable'
4
-
5
3
  require 'datadog/core'
6
4
 
7
5
  require 'datadog/tracing/sampling/ext'
@@ -18,8 +16,6 @@ module Datadog
18
16
  # sampling strategy is applied.
19
17
  # @public_api
20
18
  class RuleSampler
21
- extend Forwardable
22
-
23
19
  attr_reader :rules, :rate_limiter, :default_sampler
24
20
 
25
21
  # @param rules [Array<Rule>] ordered list of rules to be applied to a trace
@@ -106,7 +102,9 @@ module Datadog
106
102
  set_limiter_metrics(trace, rate_limiter.effective_rate)
107
103
  end
108
104
  rescue StandardError => e
109
- Datadog.logger.error("Rule sampling failed. Cause: #{e.message} Source: #{Array(e.backtrace).first}")
105
+ Datadog.logger.error(
106
+ "Rule sampling failed. Cause: #{e.class.name} #{e.message} Source: #{Array(e.backtrace).first}"
107
+ )
110
108
  yield(trace)
111
109
  end
112
110
 
@@ -1,6 +1,5 @@
1
1
  # typed: true
2
2
 
3
- require 'forwardable'
4
3
  require 'time'
5
4
 
6
5
  require 'datadog/core'
@@ -399,7 +398,7 @@ module Datadog
399
398
  rescue StandardError => e
400
399
  Datadog.logger.debug do
401
400
  "Custom on_error handler #{@handler} failed, using fallback behavior. \
402
- Error: #{e.message} Location: #{Array(e.backtrace).first}"
401
+ Cause: #{e.class.name} #{e.message} Location: #{Array(e.backtrace).first}"
403
402
  end
404
403
 
405
404
  original.call(op, error) if original
@@ -412,7 +411,7 @@ module Datadog
412
411
  @handler.call(*args)
413
412
  rescue StandardError => e
414
413
  Datadog.logger.debug do
415
- "Error in on_error handler '#{@default}': #{e.message} at #{Array(e.backtrace).first}"
414
+ "Error in on_error handler '#{@default}': #{e.class.name} #{e.message} at #{Array(e.backtrace).first}"
416
415
  end
417
416
  end
418
417
 
@@ -71,7 +71,6 @@ module Datadog
71
71
  metrics: nil
72
72
  )
73
73
  # Attributes
74
- @events = events || Events.new
75
74
  @id = id || Core::Utils.next_id
76
75
  @max_length = max_length || DEFAULT_MAX_LENGTH
77
76
  @parent_span_id = parent_span_id
@@ -29,7 +29,8 @@ module Datadog
29
29
  response
30
30
  rescue StandardError => e
31
31
  message =
32
- "Internal error during HTTP transport request. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
32
+ "Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
33
+ "Location: #{Array(e.backtrace).first}"
33
34
 
34
35
  # Log error
35
36
  if stats.consecutive_errors > 0
@@ -1,6 +1,5 @@
1
1
  # typed: false
2
2
 
3
- require 'forwardable'
4
3
  require 'ddtrace/transport/response'
5
4
 
6
5
  module Datadog
@@ -11,13 +10,44 @@ module Datadog
11
10
  # Used by endpoints to wrap responses from adapters with
12
11
  # fields or behavior that's specific to that endpoint.
13
12
  module Response
14
- extend ::Forwardable
15
-
16
13
  def initialize(http_response)
17
14
  @http_response = http_response
18
15
  end
19
16
 
20
- def_delegators :@http_response, *Datadog::Transport::Response.instance_methods
17
+ # (see Datadog::Transport::Response#payload)
18
+ def payload
19
+ @http_response.payload
20
+ end
21
+
22
+ # (see Datadog::Transport::Response#internal_error?)
23
+ def internal_error?
24
+ @http_response.internal_error?
25
+ end
26
+
27
+ # (see Datadog::Transport::Response#unsupported?)
28
+ def unsupported?
29
+ @http_response.unsupported?
30
+ end
31
+
32
+ # (see Datadog::Transport::Response#ok?)
33
+ def ok?
34
+ @http_response.ok?
35
+ end
36
+
37
+ # (see Datadog::Transport::Response#not_found?)
38
+ def not_found?
39
+ @http_response.not_found?
40
+ end
41
+
42
+ # (see Datadog::Transport::Response#client_error?)
43
+ def client_error?
44
+ @http_response.client_error?
45
+ end
46
+
47
+ # (see Datadog::Transport::Response#server_error?)
48
+ def server_error?
49
+ @http_response.server_error?
50
+ end
21
51
 
22
52
  def code
23
53
  @http_response.respond_to?(:code) ? @http_response.code : nil
@@ -40,7 +40,9 @@ module Datadog
40
40
  # Return response
41
41
  response
42
42
  rescue StandardError => e
43
- message = "Internal error during IO transport request. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
43
+ message =
44
+ "Internal error during IO transport request. Cause: #{e.class.name} #{e.message} " \
45
+ "Location: #{Array(e.backtrace).first}"
44
46
 
45
47
  # Log error
46
48
  if stats.consecutive_errors > 0
@@ -3,7 +3,7 @@
3
3
  module DDTrace
4
4
  module VERSION
5
5
  MAJOR = 1
6
- MINOR = 0
6
+ MINOR = 1
7
7
  PATCH = 0
8
8
  PRE = nil
9
9
 
data/lib/ddtrace.rb CHANGED
@@ -10,3 +10,4 @@ require 'datadog/appsec/autoload' # TODO: datadog/appsec?
10
10
  # Load other products (must follow tracing)
11
11
  require 'datadog/profiling'
12
12
  require 'datadog/ci'
13
+ require 'datadog/kit'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-29 00:00:00.000000000 Z
11
+ date: 2022-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -30,28 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "<="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.10.15
33
+ version: 0.10.16
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "<="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.10.15
40
+ version: 0.10.16
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: libddwaf
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.3.0.0.0.a
47
+ version: 1.3.0.2.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.3.0.0.0.a
54
+ version: 1.3.0.2.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: libddprof
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.6.0.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.6.0.1.0
55
69
  description: |
56
70
  ddtrace is Datadog’s tracing client for Ruby. It is used to trace requests
57
71
  as they flow across web servers, databases and microservices so that developers
@@ -62,6 +76,7 @@ executables:
62
76
  - ddtracerb
63
77
  extensions:
64
78
  - ext/ddtrace_profiling_native_extension/extconf.rb
79
+ - ext/ddtrace_profiling_loader/extconf.rb
65
80
  extra_rdoc_files: []
66
81
  files:
67
82
  - ".editorconfig"
@@ -85,14 +100,21 @@ files:
85
100
  - docs/ProfilingDevelopment.md
86
101
  - docs/PublicApi.md
87
102
  - docs/UpgradeGuide.md
103
+ - ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c
104
+ - ext/ddtrace_profiling_loader/extconf.rb
88
105
  - ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md
89
106
  - ext/ddtrace_profiling_native_extension/clock_id.h
90
107
  - ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c
91
108
  - ext/ddtrace_profiling_native_extension/clock_id_noop.c
109
+ - ext/ddtrace_profiling_native_extension/collectors_stack.c
92
110
  - ext/ddtrace_profiling_native_extension/extconf.rb
111
+ - ext/ddtrace_profiling_native_extension/libddprof_helpers.h
112
+ - ext/ddtrace_profiling_native_extension/native_extension_helpers.rb
93
113
  - ext/ddtrace_profiling_native_extension/private_vm_api_access.c
94
114
  - ext/ddtrace_profiling_native_extension/private_vm_api_access.h
95
115
  - ext/ddtrace_profiling_native_extension/profiling.c
116
+ - ext/ddtrace_profiling_native_extension/stack_recorder.c
117
+ - ext/ddtrace_profiling_native_extension/stack_recorder.h
96
118
  - lib/datadog/appsec.rb
97
119
  - lib/datadog/appsec/assets.rb
98
120
  - lib/datadog/appsec/assets/blocked.html
@@ -113,21 +135,28 @@ files:
113
135
  - lib/datadog/appsec/contrib/rack/integration.rb
114
136
  - lib/datadog/appsec/contrib/rack/patcher.rb
115
137
  - lib/datadog/appsec/contrib/rack/reactive/request.rb
138
+ - lib/datadog/appsec/contrib/rack/reactive/request_body.rb
116
139
  - lib/datadog/appsec/contrib/rack/reactive/response.rb
117
140
  - lib/datadog/appsec/contrib/rack/request.rb
141
+ - lib/datadog/appsec/contrib/rack/request_body_middleware.rb
118
142
  - lib/datadog/appsec/contrib/rack/request_middleware.rb
119
143
  - lib/datadog/appsec/contrib/rack/response.rb
120
144
  - lib/datadog/appsec/contrib/rails/configuration/settings.rb
121
145
  - lib/datadog/appsec/contrib/rails/ext.rb
122
146
  - lib/datadog/appsec/contrib/rails/framework.rb
147
+ - lib/datadog/appsec/contrib/rails/gateway/watcher.rb
123
148
  - lib/datadog/appsec/contrib/rails/integration.rb
124
149
  - lib/datadog/appsec/contrib/rails/patcher.rb
150
+ - lib/datadog/appsec/contrib/rails/reactive/action.rb
151
+ - lib/datadog/appsec/contrib/rails/request.rb
125
152
  - lib/datadog/appsec/contrib/rails/request_middleware.rb
126
153
  - lib/datadog/appsec/contrib/sinatra/configuration/settings.rb
127
154
  - lib/datadog/appsec/contrib/sinatra/ext.rb
128
155
  - lib/datadog/appsec/contrib/sinatra/framework.rb
156
+ - lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
129
157
  - lib/datadog/appsec/contrib/sinatra/integration.rb
130
158
  - lib/datadog/appsec/contrib/sinatra/patcher.rb
159
+ - lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
131
160
  - lib/datadog/appsec/contrib/sinatra/request_middleware.rb
132
161
  - lib/datadog/appsec/event.rb
133
162
  - lib/datadog/appsec/extensions.rb
@@ -193,6 +222,7 @@ files:
193
222
  - lib/datadog/core/extensions.rb
194
223
  - lib/datadog/core/git/ext.rb
195
224
  - lib/datadog/core/logger.rb
225
+ - lib/datadog/core/logging/ext.rb
196
226
  - lib/datadog/core/metrics/client.rb
197
227
  - lib/datadog/core/metrics/ext.rb
198
228
  - lib/datadog/core/metrics/helpers.rb
@@ -225,6 +255,9 @@ files:
225
255
  - lib/datadog/core/workers/polling.rb
226
256
  - lib/datadog/core/workers/queue.rb
227
257
  - lib/datadog/core/workers/runtime_metrics.rb
258
+ - lib/datadog/kit.rb
259
+ - lib/datadog/kit/enable_core_dumps.rb
260
+ - lib/datadog/kit/identity.rb
228
261
  - lib/datadog/opentracer.rb
229
262
  - lib/datadog/opentracer/binary_propagator.rb
230
263
  - lib/datadog/opentracer/carrier.rb
@@ -245,6 +278,7 @@ files:
245
278
  - lib/datadog/profiling/backtrace_location.rb
246
279
  - lib/datadog/profiling/buffer.rb
247
280
  - lib/datadog/profiling/collectors/code_provenance.rb
281
+ - lib/datadog/profiling/collectors/old_stack.rb
248
282
  - lib/datadog/profiling/collectors/stack.rb
249
283
  - lib/datadog/profiling/encoding/profile.rb
250
284
  - lib/datadog/profiling/event.rb
@@ -253,6 +287,7 @@ files:
253
287
  - lib/datadog/profiling/ext.rb
254
288
  - lib/datadog/profiling/ext/forking.rb
255
289
  - lib/datadog/profiling/flush.rb
290
+ - lib/datadog/profiling/load_native_extension.rb
256
291
  - lib/datadog/profiling/native_extension.rb
257
292
  - lib/datadog/profiling/pprof/builder.rb
258
293
  - lib/datadog/profiling/pprof/converter.rb
@@ -267,6 +302,8 @@ files:
267
302
  - lib/datadog/profiling/profiler.rb
268
303
  - lib/datadog/profiling/recorder.rb
269
304
  - lib/datadog/profiling/scheduler.rb
305
+ - lib/datadog/profiling/stack_recorder.rb
306
+ - lib/datadog/profiling/tag_builder.rb
270
307
  - lib/datadog/profiling/tasks/exec.rb
271
308
  - lib/datadog/profiling/tasks/help.rb
272
309
  - lib/datadog/profiling/tasks/setup.rb