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.
- 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
|