datadog 2.8.0 → 2.9.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/CHANGELOG.md +36 -1
- data/ext/datadog_profiling_native_extension/clock_id.h +2 -2
- data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +64 -54
- data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +1 -1
- data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +1 -1
- data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +16 -16
- data/ext/datadog_profiling_native_extension/collectors_stack.c +7 -7
- data/ext/datadog_profiling_native_extension/collectors_thread_context.c +219 -122
- data/ext/datadog_profiling_native_extension/heap_recorder.h +1 -1
- data/ext/datadog_profiling_native_extension/http_transport.c +4 -4
- data/ext/datadog_profiling_native_extension/private_vm_api_access.c +3 -0
- data/ext/datadog_profiling_native_extension/private_vm_api_access.h +3 -1
- data/ext/datadog_profiling_native_extension/profiling.c +10 -8
- data/ext/datadog_profiling_native_extension/ruby_helpers.c +8 -8
- data/ext/datadog_profiling_native_extension/stack_recorder.c +54 -54
- data/ext/datadog_profiling_native_extension/stack_recorder.h +1 -1
- data/ext/datadog_profiling_native_extension/time_helpers.h +1 -1
- data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.c +47 -0
- data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.h +31 -0
- data/ext/libdatadog_api/crashtracker.c +3 -0
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +355 -157
- data/lib/datadog/appsec/assets/waf_rules/strict.json +62 -32
- data/lib/datadog/appsec/context.rb +54 -0
- data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +7 -7
- data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +6 -6
- data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +4 -4
- data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +19 -28
- data/lib/datadog/appsec/contrib/graphql/reactive/multiplex.rb +5 -5
- data/lib/datadog/appsec/contrib/rack/gateway/response.rb +3 -3
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +64 -96
- data/lib/datadog/appsec/contrib/rack/reactive/request.rb +10 -10
- data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +5 -5
- data/lib/datadog/appsec/contrib/rack/reactive/response.rb +6 -6
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +10 -11
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +43 -49
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +21 -32
- data/lib/datadog/appsec/contrib/rails/patcher.rb +1 -1
- data/lib/datadog/appsec/contrib/rails/reactive/action.rb +6 -6
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +41 -63
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +2 -2
- data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +5 -5
- data/lib/datadog/appsec/event.rb +6 -6
- data/lib/datadog/appsec/ext.rb +3 -1
- data/lib/datadog/appsec/monitor/gateway/watcher.rb +22 -32
- data/lib/datadog/appsec/monitor/reactive/set_user.rb +5 -5
- data/lib/datadog/appsec/processor/rule_loader.rb +0 -3
- data/lib/datadog/appsec.rb +3 -3
- data/lib/datadog/auto_instrument.rb +3 -0
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +39 -11
- data/lib/datadog/core/configuration/components.rb +4 -2
- data/lib/datadog/core/configuration.rb +1 -1
- data/lib/datadog/{tracing → core}/contrib/rails/utils.rb +1 -3
- data/lib/datadog/core/crashtracking/component.rb +1 -3
- data/lib/datadog/core/telemetry/event.rb +87 -3
- data/lib/datadog/core/telemetry/logging.rb +2 -2
- data/lib/datadog/core/telemetry/metric.rb +22 -0
- data/lib/datadog/core/telemetry/worker.rb +33 -0
- data/lib/datadog/di/base.rb +115 -0
- data/lib/datadog/di/code_tracker.rb +7 -4
- data/lib/datadog/di/component.rb +17 -11
- data/lib/datadog/di/configuration/settings.rb +11 -1
- data/lib/datadog/di/contrib/railtie.rb +15 -0
- data/lib/datadog/di/contrib.rb +26 -0
- data/lib/datadog/di/error.rb +5 -0
- data/lib/datadog/di/instrumenter.rb +39 -18
- data/lib/datadog/di/{init.rb → preload.rb} +2 -4
- data/lib/datadog/di/probe_manager.rb +4 -4
- data/lib/datadog/di/probe_notification_builder.rb +16 -2
- data/lib/datadog/di/probe_notifier_worker.rb +5 -6
- data/lib/datadog/di/remote.rb +4 -4
- data/lib/datadog/di/transport.rb +2 -4
- data/lib/datadog/di.rb +5 -108
- data/lib/datadog/kit/appsec/events.rb +3 -3
- data/lib/datadog/kit/identity.rb +4 -4
- data/lib/datadog/profiling/component.rb +55 -53
- data/lib/datadog/profiling/http_transport.rb +1 -26
- data/lib/datadog/tracing/contrib/action_cable/integration.rb +5 -2
- data/lib/datadog/tracing/contrib/action_mailer/integration.rb +6 -2
- data/lib/datadog/tracing/contrib/action_pack/integration.rb +5 -2
- data/lib/datadog/tracing/contrib/action_view/integration.rb +5 -2
- data/lib/datadog/tracing/contrib/active_job/integration.rb +5 -2
- data/lib/datadog/tracing/contrib/active_record/integration.rb +6 -2
- data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +3 -1
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +3 -1
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +10 -0
- data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -2
- data/lib/datadog/tracing/contrib/auto_instrument.rb +2 -2
- data/lib/datadog/tracing/contrib/aws/integration.rb +3 -0
- data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -0
- data/lib/datadog/tracing/contrib/httprb/integration.rb +3 -0
- data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -0
- data/lib/datadog/tracing/contrib/mongodb/integration.rb +3 -0
- data/lib/datadog/tracing/contrib/opensearch/integration.rb +3 -0
- data/lib/datadog/tracing/contrib/presto/integration.rb +3 -0
- data/lib/datadog/tracing/contrib/rack/integration.rb +2 -2
- data/lib/datadog/tracing/contrib/rails/framework.rb +2 -2
- data/lib/datadog/tracing/contrib/rails/patcher.rb +1 -1
- data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -0
- data/lib/datadog/tracing/span.rb +12 -4
- data/lib/datadog/tracing/span_event.rb +123 -3
- data/lib/datadog/tracing/span_operation.rb +6 -0
- data/lib/datadog/tracing/transport/serializable_trace.rb +24 -6
- data/lib/datadog/version.rb +1 -1
- metadata +19 -10
- data/lib/datadog/appsec/reactive/operation.rb +0 -68
- data/lib/datadog/appsec/scope.rb +0 -58
- data/lib/datadog/core/crashtracking/agent_base_url.rb +0 -21
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datadog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.9.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:
|
11
|
+
date: 2025-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|
@@ -31,6 +31,9 @@ dependencies:
|
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.3'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 3.3.7
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -38,6 +41,9 @@ dependencies:
|
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
43
|
version: '3.3'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 3.3.7
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: libddwaf
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,6 +136,8 @@ files:
|
|
130
136
|
- ext/datadog_profiling_native_extension/stack_recorder.h
|
131
137
|
- ext/datadog_profiling_native_extension/time_helpers.c
|
132
138
|
- ext/datadog_profiling_native_extension/time_helpers.h
|
139
|
+
- ext/datadog_profiling_native_extension/unsafe_api_calls_check.c
|
140
|
+
- ext/datadog_profiling_native_extension/unsafe_api_calls_check.h
|
133
141
|
- ext/libdatadog_api/crashtracker.c
|
134
142
|
- ext/libdatadog_api/datadog_ruby_common.c
|
135
143
|
- ext/libdatadog_api/datadog_ruby_common.h
|
@@ -151,6 +159,7 @@ files:
|
|
151
159
|
- lib/datadog/appsec/component.rb
|
152
160
|
- lib/datadog/appsec/configuration.rb
|
153
161
|
- lib/datadog/appsec/configuration/settings.rb
|
162
|
+
- lib/datadog/appsec/context.rb
|
154
163
|
- lib/datadog/appsec/contrib/active_record/instrumentation.rb
|
155
164
|
- lib/datadog/appsec/contrib/active_record/integration.rb
|
156
165
|
- lib/datadog/appsec/contrib/active_record/patcher.rb
|
@@ -217,12 +226,10 @@ files:
|
|
217
226
|
- lib/datadog/appsec/rate_limiter.rb
|
218
227
|
- lib/datadog/appsec/reactive/address_hash.rb
|
219
228
|
- lib/datadog/appsec/reactive/engine.rb
|
220
|
-
- lib/datadog/appsec/reactive/operation.rb
|
221
229
|
- lib/datadog/appsec/reactive/subscriber.rb
|
222
230
|
- lib/datadog/appsec/remote.rb
|
223
231
|
- lib/datadog/appsec/response.rb
|
224
232
|
- lib/datadog/appsec/sample_rate.rb
|
225
|
-
- lib/datadog/appsec/scope.rb
|
226
233
|
- lib/datadog/appsec/utils.rb
|
227
234
|
- lib/datadog/appsec/utils/http.rb
|
228
235
|
- lib/datadog/appsec/utils/http/media_range.rb
|
@@ -244,7 +251,7 @@ files:
|
|
244
251
|
- lib/datadog/core/configuration/option_definition.rb
|
245
252
|
- lib/datadog/core/configuration/options.rb
|
246
253
|
- lib/datadog/core/configuration/settings.rb
|
247
|
-
- lib/datadog/core/
|
254
|
+
- lib/datadog/core/contrib/rails/utils.rb
|
248
255
|
- lib/datadog/core/crashtracking/component.rb
|
249
256
|
- lib/datadog/core/crashtracking/tag_builder.rb
|
250
257
|
- lib/datadog/core/deprecations.rb
|
@@ -365,15 +372,18 @@ files:
|
|
365
372
|
- lib/datadog/core/workers/queue.rb
|
366
373
|
- lib/datadog/core/workers/runtime_metrics.rb
|
367
374
|
- lib/datadog/di.rb
|
375
|
+
- lib/datadog/di/base.rb
|
368
376
|
- lib/datadog/di/code_tracker.rb
|
369
377
|
- lib/datadog/di/component.rb
|
370
378
|
- lib/datadog/di/configuration.rb
|
371
379
|
- lib/datadog/di/configuration/settings.rb
|
380
|
+
- lib/datadog/di/contrib.rb
|
372
381
|
- lib/datadog/di/contrib/active_record.rb
|
382
|
+
- lib/datadog/di/contrib/railtie.rb
|
373
383
|
- lib/datadog/di/error.rb
|
374
384
|
- lib/datadog/di/extensions.rb
|
375
|
-
- lib/datadog/di/init.rb
|
376
385
|
- lib/datadog/di/instrumenter.rb
|
386
|
+
- lib/datadog/di/preload.rb
|
377
387
|
- lib/datadog/di/probe.rb
|
378
388
|
- lib/datadog/di/probe_builder.rb
|
379
389
|
- lib/datadog/di/probe_manager.rb
|
@@ -726,7 +736,6 @@ files:
|
|
726
736
|
- lib/datadog/tracing/contrib/rails/patcher.rb
|
727
737
|
- lib/datadog/tracing/contrib/rails/railtie.rb
|
728
738
|
- lib/datadog/tracing/contrib/rails/runner.rb
|
729
|
-
- lib/datadog/tracing/contrib/rails/utils.rb
|
730
739
|
- lib/datadog/tracing/contrib/rake/configuration/settings.rb
|
731
740
|
- lib/datadog/tracing/contrib/rake/ext.rb
|
732
741
|
- lib/datadog/tracing/contrib/rake/instrumentation.rb
|
@@ -902,8 +911,8 @@ licenses:
|
|
902
911
|
- Apache-2.0
|
903
912
|
metadata:
|
904
913
|
allowed_push_host: https://rubygems.org
|
905
|
-
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.
|
906
|
-
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.
|
914
|
+
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.9.0/CHANGELOG.md
|
915
|
+
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.9.0
|
907
916
|
post_install_message:
|
908
917
|
rdoc_options: []
|
909
918
|
require_paths:
|
@@ -922,7 +931,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
922
931
|
- !ruby/object:Gem::Version
|
923
932
|
version: 2.0.0
|
924
933
|
requirements: []
|
925
|
-
rubygems_version: 3.
|
934
|
+
rubygems_version: 3.5.11
|
926
935
|
signing_key:
|
927
936
|
specification_version: 4
|
928
937
|
summary: Datadog tracing code for your Ruby applications
|
@@ -1,68 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'engine'
|
4
|
-
|
5
|
-
module Datadog
|
6
|
-
module AppSec
|
7
|
-
module Reactive
|
8
|
-
# Reactive Engine nested operation tracking
|
9
|
-
class Operation
|
10
|
-
attr_reader :reactive,
|
11
|
-
:parent,
|
12
|
-
:name
|
13
|
-
|
14
|
-
def initialize(name, parent = nil, reactive_engine = nil)
|
15
|
-
Datadog.logger.debug { "operation: #{name} initialize" }
|
16
|
-
@name = name
|
17
|
-
@parent = parent
|
18
|
-
@reactive = select_reactive_engine(reactive_engine, parent)
|
19
|
-
|
20
|
-
# TODO: concurrent store
|
21
|
-
# TODO: constant
|
22
|
-
Thread.current[:datadog_security_active_operation] = self
|
23
|
-
|
24
|
-
yield self if block_given?
|
25
|
-
ensure
|
26
|
-
finalize
|
27
|
-
end
|
28
|
-
|
29
|
-
# TODO: use structs instead of an arg splat
|
30
|
-
def subscribe(*addresses, &block)
|
31
|
-
reactive.subscribe(*addresses, &block)
|
32
|
-
end
|
33
|
-
|
34
|
-
def publish(address, data)
|
35
|
-
reactive.publish(address, data)
|
36
|
-
end
|
37
|
-
|
38
|
-
def finalize
|
39
|
-
Datadog.logger.debug { "operation: #{name} finalize" }
|
40
|
-
Thread.current[:datadog_security_active_operation] = parent
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def select_reactive_engine(reactive, parent)
|
46
|
-
return reactive if reactive
|
47
|
-
|
48
|
-
return parent.reactive unless parent.nil?
|
49
|
-
|
50
|
-
Reactive::Engine.new
|
51
|
-
end
|
52
|
-
|
53
|
-
class << self
|
54
|
-
def active
|
55
|
-
Thread.current[:datadog_security_active_operation]
|
56
|
-
end
|
57
|
-
|
58
|
-
private
|
59
|
-
|
60
|
-
# For testing only.
|
61
|
-
def reset!
|
62
|
-
Thread.current[:datadog_security_active_operation] = nil
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
data/lib/datadog/appsec/scope.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Datadog
|
4
|
-
module AppSec
|
5
|
-
# Capture context essential to consistently call processor and report via traces
|
6
|
-
class Scope
|
7
|
-
attr_reader :trace, :service_entry_span, :processor_context
|
8
|
-
|
9
|
-
def initialize(trace, service_entry_span, processor_context)
|
10
|
-
@trace = trace
|
11
|
-
@service_entry_span = service_entry_span
|
12
|
-
@processor_context = processor_context
|
13
|
-
end
|
14
|
-
|
15
|
-
def finalize
|
16
|
-
@processor_context.finalize
|
17
|
-
end
|
18
|
-
|
19
|
-
class << self
|
20
|
-
def activate_scope(trace, service_entry_span, processor)
|
21
|
-
raise ActiveScopeError, 'another scope is active, nested scopes are not supported' if active_scope
|
22
|
-
|
23
|
-
context = processor.new_context
|
24
|
-
self.active_scope = new(trace, service_entry_span, context)
|
25
|
-
end
|
26
|
-
|
27
|
-
def deactivate_scope
|
28
|
-
raise InactiveScopeError, 'no scope is active, nested scopes are not supported' unless active_scope
|
29
|
-
|
30
|
-
scope = active_scope
|
31
|
-
|
32
|
-
reset_active_scope
|
33
|
-
|
34
|
-
scope.finalize
|
35
|
-
end
|
36
|
-
|
37
|
-
def active_scope
|
38
|
-
Thread.current[:datadog_appsec_active_scope]
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
def active_scope=(scope)
|
44
|
-
raise ArgumentError, 'not a Datadog::AppSec::Scope' unless scope.instance_of?(Scope)
|
45
|
-
|
46
|
-
Thread.current[:datadog_appsec_active_scope] = scope
|
47
|
-
end
|
48
|
-
|
49
|
-
def reset_active_scope
|
50
|
-
Thread.current[:datadog_appsec_active_scope] = nil
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
class InactiveScopeError < StandardError; end
|
55
|
-
class ActiveScopeError < StandardError; end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative '../configuration/ext'
|
4
|
-
|
5
|
-
module Datadog
|
6
|
-
module Core
|
7
|
-
module Crashtracking
|
8
|
-
# This module provides a method to resolve the base URL of the agent
|
9
|
-
module AgentBaseUrl
|
10
|
-
def self.resolve(agent_settings)
|
11
|
-
case agent_settings.adapter
|
12
|
-
when Datadog::Core::Configuration::Ext::Agent::HTTP::ADAPTER
|
13
|
-
"#{agent_settings.ssl ? 'https' : 'http'}://#{agent_settings.hostname}:#{agent_settings.port}/"
|
14
|
-
when Datadog::Core::Configuration::Ext::Agent::UnixSocket::ADAPTER
|
15
|
-
"unix://#{agent_settings.uds_path}"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|