ddtrace 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -16
- data/CHANGELOG.md +31 -2
- data/LICENSE-3rdparty.csv +3 -2
- data/README.md +2 -2
- data/ddtrace.gemspec +12 -3
- data/docs/GettingStarted.md +19 -2
- data/docs/ProfilingDevelopment.md +8 -8
- data/docs/UpgradeGuide.md +3 -3
- data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +118 -0
- data/ext/ddtrace_profiling_loader/extconf.rb +53 -0
- data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +31 -5
- data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +0 -8
- data/ext/ddtrace_profiling_native_extension/collectors_stack.c +278 -0
- data/ext/ddtrace_profiling_native_extension/extconf.rb +70 -100
- data/ext/ddtrace_profiling_native_extension/libddprof_helpers.h +13 -0
- data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +186 -0
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +579 -7
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +30 -0
- data/ext/ddtrace_profiling_native_extension/profiling.c +7 -0
- data/ext/ddtrace_profiling_native_extension/stack_recorder.c +139 -0
- data/ext/ddtrace_profiling_native_extension/stack_recorder.h +28 -0
- data/lib/datadog/appsec/autoload.rb +2 -2
- data/lib/datadog/appsec/configuration/settings.rb +19 -0
- data/lib/datadog/appsec/configuration.rb +8 -0
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +76 -33
- data/lib/datadog/appsec/contrib/rack/integration.rb +1 -0
- data/lib/datadog/appsec/contrib/rack/patcher.rb +0 -1
- data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +64 -0
- data/lib/datadog/appsec/contrib/rack/request.rb +6 -0
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +41 -0
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +60 -5
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +81 -0
- data/lib/datadog/appsec/contrib/rails/patcher.rb +34 -1
- data/lib/datadog/appsec/contrib/rails/reactive/action.rb +68 -0
- data/lib/datadog/appsec/contrib/rails/request.rb +33 -0
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +124 -0
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +69 -2
- data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +63 -0
- data/lib/datadog/appsec/event.rb +33 -18
- data/lib/datadog/appsec/extensions.rb +0 -3
- data/lib/datadog/appsec/processor.rb +45 -2
- data/lib/datadog/appsec/rate_limiter.rb +5 -0
- data/lib/datadog/appsec/reactive/operation.rb +0 -1
- data/lib/datadog/ci/ext/environment.rb +21 -7
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +1 -1
- data/lib/datadog/core/configuration/components.rb +22 -4
- data/lib/datadog/core/configuration/settings.rb +3 -3
- data/lib/datadog/core/configuration.rb +7 -5
- data/lib/datadog/core/environment/cgroup.rb +3 -1
- data/lib/datadog/core/environment/container.rb +2 -1
- data/lib/datadog/core/environment/variable_helpers.rb +26 -2
- data/lib/datadog/core/logging/ext.rb +11 -0
- data/lib/datadog/core/metrics/client.rb +15 -5
- data/lib/datadog/core/runtime/metrics.rb +1 -1
- data/lib/datadog/core/workers/async.rb +3 -1
- data/lib/datadog/core/workers/runtime_metrics.rb +0 -3
- data/lib/datadog/core.rb +6 -0
- data/lib/datadog/kit/enable_core_dumps.rb +50 -0
- data/lib/datadog/kit/identity.rb +63 -0
- data/lib/datadog/kit.rb +11 -0
- data/lib/datadog/opentracer/tracer.rb +0 -2
- data/lib/datadog/profiling/collectors/old_stack.rb +298 -0
- data/lib/datadog/profiling/collectors/stack.rb +6 -287
- data/lib/datadog/profiling/encoding/profile.rb +0 -1
- data/lib/datadog/profiling/ext.rb +1 -1
- data/lib/datadog/profiling/flush.rb +1 -1
- data/lib/datadog/profiling/load_native_extension.rb +22 -0
- data/lib/datadog/profiling/recorder.rb +1 -1
- data/lib/datadog/profiling/scheduler.rb +1 -1
- data/lib/datadog/profiling/stack_recorder.rb +33 -0
- data/lib/datadog/profiling/tag_builder.rb +48 -0
- data/lib/datadog/profiling/tasks/exec.rb +2 -2
- data/lib/datadog/profiling/tasks/setup.rb +6 -4
- data/lib/datadog/profiling.rb +29 -27
- data/lib/datadog/tracing/buffer.rb +9 -3
- data/lib/datadog/tracing/contrib/action_view/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
- data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
- data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +4 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +10 -3
- data/lib/datadog/tracing/contrib/dalli/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +9 -3
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +38 -2
- data/lib/datadog/tracing/contrib/ethon/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/extensions.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/grape/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/graphql/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/grpc/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/kafka/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +2 -1
- data/lib/datadog/tracing/contrib/qless/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/que/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/racecar/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/rails/log_injection.rb +3 -16
- data/lib/datadog/tracing/contrib/rake/instrumentation.rb +2 -2
- data/lib/datadog/tracing/contrib/rake/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/redis/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/resque/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/rest_client/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +2 -1
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +20 -1
- data/lib/datadog/tracing/contrib/sinatra/framework.rb +11 -0
- data/lib/datadog/tracing/contrib/sinatra/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/sneakers/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +0 -1
- data/lib/datadog/tracing/event.rb +2 -1
- data/lib/datadog/tracing/sampling/priority_sampler.rb +4 -5
- data/lib/datadog/tracing/sampling/rule.rb +12 -6
- data/lib/datadog/tracing/sampling/rule_sampler.rb +3 -5
- data/lib/datadog/tracing/span_operation.rb +2 -3
- data/lib/datadog/tracing/trace_operation.rb +0 -1
- data/lib/ddtrace/transport/http/client.rb +2 -1
- data/lib/ddtrace/transport/http/response.rb +34 -4
- data/lib/ddtrace/transport/io/client.rb +3 -1
- data/lib/ddtrace/version.rb +1 -1
- data/lib/ddtrace.rb +1 -0
- metadata +43 -6
@@ -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:
|
37
|
+
ddsource: Core::Logging::Ext::DD_SOURCE
|
37
38
|
}
|
38
39
|
|
39
40
|
# # if the user already has conflicting log_tags
|
@@ -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
|
-
|
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
|
@@ -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.
|
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
|
-
|
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(
|
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
|
-
|
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(
|
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
|
-
|
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
|
|
@@ -29,7 +29,8 @@ module Datadog
|
|
29
29
|
response
|
30
30
|
rescue StandardError => e
|
31
31
|
message =
|
32
|
-
"Internal error during
|
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
|
-
|
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 =
|
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
|
data/lib/ddtrace/version.rb
CHANGED
data/lib/ddtrace.rb
CHANGED
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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
|