cw-datadog 2.23.0.2 → 2.23.0.4

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/ext/datadog_profiling_native_extension/extconf.rb +4 -2
  3. data/ext/libdatadog_api/library_config.c +12 -11
  4. data/ext/libdatadog_extconf_helpers.rb +1 -1
  5. data/lib/datadog/appsec/api_security/route_extractor.rb +20 -5
  6. data/lib/datadog/appsec/api_security/sampler.rb +3 -1
  7. data/lib/datadog/appsec/assets/blocked.html +8 -0
  8. data/lib/datadog/appsec/assets/blocked.json +1 -1
  9. data/lib/datadog/appsec/assets/blocked.text +3 -1
  10. data/lib/datadog/appsec/assets.rb +1 -1
  11. data/lib/datadog/appsec/remote.rb +4 -0
  12. data/lib/datadog/appsec/response.rb +18 -4
  13. data/lib/datadog/core/cloudwise/client.rb +412 -25
  14. data/lib/datadog/core/cloudwise/component.rb +195 -52
  15. data/lib/datadog/core/cloudwise/docc_heartbeat_worker.rb +105 -0
  16. data/lib/datadog/core/cloudwise/docc_operation_worker.rb +191 -0
  17. data/lib/datadog/core/cloudwise/docc_registration_worker.rb +89 -0
  18. data/lib/datadog/core/cloudwise/license_worker.rb +90 -4
  19. data/lib/datadog/core/cloudwise/probe_state.rb +134 -12
  20. data/lib/datadog/core/configuration/components.rb +10 -9
  21. data/lib/datadog/core/configuration/settings.rb +43 -0
  22. data/lib/datadog/core/configuration/supported_configurations.rb +6 -2
  23. data/lib/datadog/core/remote/client/capabilities.rb +7 -0
  24. data/lib/datadog/core/remote/component.rb +2 -2
  25. data/lib/datadog/core/remote/transport/config.rb +2 -10
  26. data/lib/datadog/core/remote/transport/http/config.rb +9 -9
  27. data/lib/datadog/core/remote/transport/http/negotiation.rb +17 -8
  28. data/lib/datadog/core/remote/transport/http.rb +2 -0
  29. data/lib/datadog/core/remote/transport/negotiation.rb +2 -18
  30. data/lib/datadog/core/remote/worker.rb +23 -35
  31. data/lib/datadog/core/telemetry/component.rb +26 -13
  32. data/lib/datadog/core/telemetry/event/app_started.rb +67 -49
  33. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +27 -4
  34. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +5 -6
  35. data/lib/datadog/core/telemetry/transport/telemetry.rb +1 -2
  36. data/lib/datadog/core/telemetry/worker.rb +51 -6
  37. data/lib/datadog/core/transport/http/adapters/net.rb +2 -0
  38. data/lib/datadog/core/transport/http/client.rb +69 -0
  39. data/lib/datadog/core/utils/only_once_successful.rb +6 -2
  40. data/lib/datadog/data_streams/transport/http/client.rb +4 -32
  41. data/lib/datadog/data_streams/transport/stats.rb +1 -1
  42. data/lib/datadog/di/probe_notification_builder.rb +35 -13
  43. data/lib/datadog/di/transport/diagnostics.rb +2 -2
  44. data/lib/datadog/di/transport/http/diagnostics.rb +2 -4
  45. data/lib/datadog/di/transport/http/input.rb +2 -4
  46. data/lib/datadog/di/transport/input.rb +2 -2
  47. data/lib/datadog/open_feature/component.rb +60 -0
  48. data/lib/datadog/open_feature/configuration.rb +27 -0
  49. data/lib/datadog/open_feature/evaluation_engine.rb +59 -0
  50. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  51. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  52. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  53. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  54. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  55. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  56. data/lib/datadog/open_feature/ext.rb +13 -0
  57. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  58. data/lib/datadog/open_feature/provider.rb +134 -0
  59. data/lib/datadog/open_feature/remote.rb +74 -0
  60. data/lib/datadog/open_feature/resolution_details.rb +35 -0
  61. data/lib/datadog/open_feature/transport.rb +72 -0
  62. data/lib/datadog/open_feature.rb +19 -0
  63. data/lib/datadog/profiling/component.rb +6 -0
  64. data/lib/datadog/profiling/profiler.rb +4 -0
  65. data/lib/datadog/profiling.rb +1 -2
  66. data/lib/datadog/single_step_instrument.rb +1 -1
  67. data/lib/datadog/tracing/contrib/cloudwise/propagation.rb +164 -7
  68. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +22 -17
  69. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  70. data/lib/datadog/tracing/contrib/karafka/patcher.rb +14 -0
  71. data/lib/datadog/tracing/contrib/rack/middlewares.rb +6 -2
  72. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +27 -0
  73. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +48 -0
  74. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +17 -0
  75. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  76. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  77. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +46 -0
  78. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  79. data/lib/datadog/tracing/contrib/waterdrop.rb +37 -0
  80. data/lib/datadog/tracing/contrib.rb +1 -0
  81. data/lib/datadog/tracing/transport/http/api.rb +73 -1
  82. data/lib/datadog/tracing/transport/http/client.rb +12 -26
  83. data/lib/datadog/tracing/transport/http/traces.rb +4 -2
  84. data/lib/datadog/tracing/transport/trace_formatter.rb +16 -0
  85. data/lib/datadog/version.rb +2 -2
  86. data/lib/datadog.rb +1 -0
  87. metadata +38 -15
  88. data/lib/datadog/core/cloudwise/IMPLEMENTATION_V2.md +0 -517
  89. data/lib/datadog/core/cloudwise/QUICKSTART.md +0 -398
  90. data/lib/datadog/core/cloudwise/README.md +0 -722
  91. data/lib/datadog/core/remote/transport/http/client.rb +0 -49
  92. data/lib/datadog/core/telemetry/transport/http/client.rb +0 -49
  93. data/lib/datadog/di/transport/http/client.rb +0 -47
@@ -55,6 +55,7 @@ require_relative 'contrib/httpclient/integration'
55
55
  require_relative 'contrib/httprb/integration'
56
56
  require_relative 'contrib/integration'
57
57
  require_relative 'contrib/kafka/integration'
58
+ require_relative 'contrib/waterdrop'
58
59
  require_relative 'contrib/karafka'
59
60
  require_relative 'contrib/lograge/integration'
60
61
  require_relative 'contrib/mongodb/integration'
@@ -21,10 +21,13 @@ module Datadog
21
21
  module_function
22
22
 
23
23
  def defaults
24
+ # 获取 traces V4 路径(动态根据配置决定)
25
+ v4_traces_path = get_traces_v4_path
26
+
24
27
  Core::Transport::HTTP::API::Map[
25
28
  V4 => Traces::API::Spec.new do |s|
26
29
  s.traces = Traces::API::Endpoint.new(
27
- '/api/v2/traces',
30
+ v4_traces_path,
28
31
  Core::Encoding::MsgpackEncoder,
29
32
  service_rates: true
30
33
  )
@@ -37,6 +40,75 @@ module Datadog
37
40
  end,
38
41
  ].with_fallbacks(V4 => V3)
39
42
  end
43
+
44
+ # 获取 Traces V4 API 路径
45
+ # 优先级:api_prefix_mode > api_prefix > integrated_mode > 默认
46
+ def get_traces_v4_path
47
+ base_path = '/api/v2/traces'
48
+
49
+ return base_path unless defined?(Datadog.configuration) &&
50
+ Datadog.configuration.respond_to?(:cloudwise)
51
+
52
+ # 优先级 1: api_prefix_mode 模式配置(最高优先级,简化配置)
53
+ if Datadog.configuration.cloudwise.respond_to?(:api_prefix_mode)
54
+ api_prefix_mode = Datadog.configuration.cloudwise.api_prefix_mode
55
+ if api_prefix_mode && !api_prefix_mode.empty?
56
+ prefix = get_prefix_by_mode(api_prefix_mode)
57
+ return "#{prefix}#{base_path}" if prefix
58
+ end
59
+ end
60
+
61
+ # 优先级 2: 显式配置的 api_prefix(自定义前缀)
62
+ if Datadog.configuration.cloudwise.respond_to?(:api_prefix)
63
+ api_prefix = Datadog.configuration.cloudwise.api_prefix
64
+ if api_prefix && !api_prefix.empty?
65
+ prefix = api_prefix.start_with?('/') ? api_prefix : "/#{api_prefix}"
66
+ return "#{prefix}#{base_path}"
67
+ end
68
+ end
69
+
70
+ # 优先级 3: integrated_mode 使用 /apm 前缀
71
+ if cloudwise_integrated_mode?
72
+ return "/apm#{base_path}"
73
+ end
74
+
75
+ # 优先级 4: 无前缀(默认)
76
+ base_path
77
+ end
78
+
79
+ # 根据模式获取前缀
80
+ # @param mode [String] 前缀模式:'doop', 'apm', 'custom'
81
+ # @return [String, nil] 前缀字符串,如果模式无效返回 nil
82
+ def get_prefix_by_mode(mode)
83
+ case mode.to_s.downcase
84
+ when 'doop'
85
+ '/doop-agent-api'
86
+ when 'apm'
87
+ '/apm'
88
+ when 'custom'
89
+ # 使用 api_prefix 配置的自定义前缀
90
+ if Datadog.configuration.cloudwise.respond_to?(:api_prefix)
91
+ api_prefix = Datadog.configuration.cloudwise.api_prefix
92
+ if api_prefix && !api_prefix.empty?
93
+ return api_prefix.start_with?('/') ? api_prefix : "/#{api_prefix}"
94
+ end
95
+ end
96
+ nil
97
+ else
98
+ nil
99
+ end
100
+ end
101
+
102
+ # 检查是否启用 integrated_mode
103
+ def cloudwise_integrated_mode?
104
+ return false unless defined?(Datadog.configuration) &&
105
+ Datadog.configuration.respond_to?(:cloudwise)
106
+
107
+ integrated_mode = Datadog.configuration.cloudwise.integrated_mode
108
+ token = Datadog.configuration.cloudwise.token
109
+
110
+ integrated_mode && token && !token.empty?
111
+ end
40
112
  end
41
113
  end
42
114
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'statistics'
4
+ require_relative '../../../core/transport/http/client'
4
5
  require_relative '../../../core/transport/http/env'
5
6
  require_relative '../../../core/transport/http/response'
6
7
 
@@ -9,33 +10,24 @@ module Datadog
9
10
  module Transport
10
11
  module HTTP
11
12
  # Routes, encodes, and sends tracer data to the trace agent via HTTP.
12
- class Client
13
+ class Client < Core::Transport::HTTP::Client
13
14
  include Datadog::Tracing::Transport::HTTP::Statistics
14
15
 
15
- attr_reader :api, :logger
16
+ private
16
17
 
17
- def initialize(api, logger: Datadog.logger)
18
- @api = api
19
- @logger = logger
20
- end
21
-
22
- def send_request(request, &block)
23
- # Build request into env
24
- env = build_env(request)
25
-
26
- # Get responses from API
27
- response = yield(api, env)
18
+ def on_response(response)
19
+ super
28
20
 
29
21
  # Update statistics
30
22
  update_stats_from_response!(response)
23
+ end
31
24
 
32
- response
33
- rescue => e
34
- message =
35
- "Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
36
- "Location: #{Array(e.backtrace).first}"
25
+ def on_exception(exception)
26
+ # Note: this method does NOT call super - it has replacement
27
+ # logic for how to log the exception.
28
+
29
+ message = build_exception_message(exception)
37
30
 
38
- # Log error
39
31
  if stats.consecutive_errors > 0
40
32
  logger.debug(message)
41
33
  else
@@ -44,13 +36,7 @@ module Datadog
44
36
  end
45
37
 
46
38
  # Update statistics
47
- update_stats_from_exception!(e)
48
-
49
- Datadog::Core::Transport::InternalErrorResponse.new(e)
50
- end
51
-
52
- def build_env(request)
53
- Datadog::Core::Transport::HTTP::Env.new(request)
39
+ update_stats_from_exception!(exception)
54
40
  end
55
41
  end
56
42
  end
@@ -100,6 +100,8 @@ module Datadog
100
100
  # Add routing key header
101
101
  env.headers['routingKey'] = 'rubyTopic'
102
102
 
103
+ env.headers['AccountId'] = ENV['CLOUDWISE_ACCOUNT_ID'] || '110'
104
+
103
105
  # Encode body & type
104
106
  env.headers[HEADER_CONTENT_TYPE] = encoder.content_type
105
107
  env.body = env.request.parcel.data
@@ -126,10 +128,10 @@ module Datadog
126
128
  # Check if Cloudwise component exists and probe is suspended
127
129
  return false unless defined?(Datadog.components)
128
130
  return false unless Datadog.components.respond_to?(:cloudwise)
129
-
131
+
130
132
  cloudwise = Datadog.components.cloudwise
131
133
  return false unless cloudwise&.enabled?
132
-
134
+
133
135
  cloudwise.probe_state.suspended?
134
136
  rescue => e
135
137
  # If any error occurs, don't block trace submission
@@ -230,6 +230,22 @@ module Datadog
230
230
  app_id = Contrib::Cloudwise::Propagation.generate_app_id(service_name)
231
231
  root_span.set_tag('app_id', app_id) if app_id
232
232
  end
233
+
234
+ # Add new Cloudwise fields: service_instance_id, service_type_from, parent_sys, sys
235
+ # Generate service_instance_id based on IP + process path + PID
236
+ service_instance_id = Contrib::Cloudwise::Propagation.generate_service_instance_id
237
+ root_span.set_tag('service_instance_id', service_instance_id) if service_instance_id
238
+
239
+ # Get sys from environment variable (default: 'default')
240
+ sys = Contrib::Cloudwise::Propagation.get_sys
241
+ root_span.set_tag('sys', sys) if sys
242
+
243
+ unless root_span.get_tag('service_type_from')
244
+ root_span.set_tag('service_type_from', '')
245
+ end
246
+ unless root_span.get_tag('parent_sys')
247
+ root_span.set_tag('parent_sys', '')
248
+ end
233
249
  end
234
250
 
235
251
  def tag_git_repository_url!
@@ -5,7 +5,7 @@ module Datadog
5
5
  MAJOR = 2
6
6
  MINOR = 23
7
7
  PATCH = 0
8
- PATCH_MINOR = 2
8
+ PATCH_MINOR = 4
9
9
  PRE = nil
10
10
  BUILD = nil
11
11
  # PRE and BUILD above are modified for dev gems during gem build GHA workflow
@@ -22,6 +22,6 @@ module Datadog
22
22
  # To allow testing with the next unreleased version of Ruby, the version check is performed
23
23
  # as `< #{MAXIMUM_RUBY_VERSION}`, meaning prereleases of MAXIMUM_RUBY_VERSION are allowed
24
24
  # but not stable MAXIMUM_RUBY_VERSION releases.
25
- MAXIMUM_RUBY_VERSION = '3.5'
25
+ MAXIMUM_RUBY_VERSION = '4.0'
26
26
  end
27
27
  end
data/lib/datadog.rb CHANGED
@@ -9,6 +9,7 @@ require_relative 'datadog/profiling'
9
9
  require_relative 'datadog/appsec'
10
10
  require_relative 'datadog/di'
11
11
  require_relative 'datadog/data_streams'
12
+ require_relative 'datadog/open_feature'
12
13
 
13
14
  # Line probes will not work on Ruby < 2.6 because of lack of :script_compiled
14
15
  # trace point. Activate DI automatically on supported Ruby versions but
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cw-datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.23.0.2
4
+ version: 2.23.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-11-21 00:00:00.000000000 Z
11
+ date: 2025-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -50,28 +50,28 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 1.25.1.1.0
53
+ version: 1.30.0.0.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 1.25.1.1.0
60
+ version: 1.30.0.0.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: libdatadog
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 23.0.0.1.0
67
+ version: 24.0.1.1.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 23.0.0.1.0
74
+ version: 24.0.1.1.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: logger
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -284,12 +284,12 @@ files:
284
284
  - lib/datadog/core/buffer/random.rb
285
285
  - lib/datadog/core/buffer/thread_safe.rb
286
286
  - lib/datadog/core/chunker.rb
287
- - lib/datadog/core/cloudwise/IMPLEMENTATION_V2.md
288
- - lib/datadog/core/cloudwise/QUICKSTART.md
289
- - lib/datadog/core/cloudwise/README.md
290
287
  - lib/datadog/core/cloudwise/app_registration_worker.rb
291
288
  - lib/datadog/core/cloudwise/client.rb
292
289
  - lib/datadog/core/cloudwise/component.rb
290
+ - lib/datadog/core/cloudwise/docc_heartbeat_worker.rb
291
+ - lib/datadog/core/cloudwise/docc_operation_worker.rb
292
+ - lib/datadog/core/cloudwise/docc_registration_worker.rb
293
293
  - lib/datadog/core/cloudwise/heartbeat_worker.rb
294
294
  - lib/datadog/core/cloudwise/host_id_worker.rb
295
295
  - lib/datadog/core/cloudwise/license_worker.rb
@@ -367,7 +367,6 @@ files:
367
367
  - lib/datadog/core/remote/transport/config.rb
368
368
  - lib/datadog/core/remote/transport/http.rb
369
369
  - lib/datadog/core/remote/transport/http/api.rb
370
- - lib/datadog/core/remote/transport/http/client.rb
371
370
  - lib/datadog/core/remote/transport/http/config.rb
372
371
  - lib/datadog/core/remote/transport/http/negotiation.rb
373
372
  - lib/datadog/core/remote/transport/negotiation.rb
@@ -402,7 +401,6 @@ files:
402
401
  - lib/datadog/core/telemetry/request.rb
403
402
  - lib/datadog/core/telemetry/transport/http.rb
404
403
  - lib/datadog/core/telemetry/transport/http/api.rb
405
- - lib/datadog/core/telemetry/transport/http/client.rb
406
404
  - lib/datadog/core/telemetry/transport/http/telemetry.rb
407
405
  - lib/datadog/core/telemetry/transport/telemetry.rb
408
406
  - lib/datadog/core/telemetry/worker.rb
@@ -418,6 +416,7 @@ files:
418
416
  - lib/datadog/core/transport/http/api/map.rb
419
417
  - lib/datadog/core/transport/http/api/spec.rb
420
418
  - lib/datadog/core/transport/http/builder.rb
419
+ - lib/datadog/core/transport/http/client.rb
421
420
  - lib/datadog/core/transport/http/env.rb
422
421
  - lib/datadog/core/transport/http/response.rb
423
422
  - lib/datadog/core/transport/parcel.rb
@@ -498,7 +497,6 @@ files:
498
497
  - lib/datadog/di/transport/diagnostics.rb
499
498
  - lib/datadog/di/transport/http.rb
500
499
  - lib/datadog/di/transport/http/api.rb
501
- - lib/datadog/di/transport/http/client.rb
502
500
  - lib/datadog/di/transport/http/diagnostics.rb
503
501
  - lib/datadog/di/transport/http/input.rb
504
502
  - lib/datadog/di/transport/input.rb
@@ -516,6 +514,22 @@ files:
516
514
  - lib/datadog/kit/appsec/events/v2.rb
517
515
  - lib/datadog/kit/enable_core_dumps.rb
518
516
  - lib/datadog/kit/identity.rb
517
+ - lib/datadog/open_feature.rb
518
+ - lib/datadog/open_feature/component.rb
519
+ - lib/datadog/open_feature/configuration.rb
520
+ - lib/datadog/open_feature/evaluation_engine.rb
521
+ - lib/datadog/open_feature/exposures/batch_builder.rb
522
+ - lib/datadog/open_feature/exposures/buffer.rb
523
+ - lib/datadog/open_feature/exposures/deduplicator.rb
524
+ - lib/datadog/open_feature/exposures/event.rb
525
+ - lib/datadog/open_feature/exposures/reporter.rb
526
+ - lib/datadog/open_feature/exposures/worker.rb
527
+ - lib/datadog/open_feature/ext.rb
528
+ - lib/datadog/open_feature/noop_evaluator.rb
529
+ - lib/datadog/open_feature/provider.rb
530
+ - lib/datadog/open_feature/remote.rb
531
+ - lib/datadog/open_feature/resolution_details.rb
532
+ - lib/datadog/open_feature/transport.rb
519
533
  - lib/datadog/opentelemetry.rb
520
534
  - lib/datadog/opentelemetry/api/baggage.rb
521
535
  - lib/datadog/opentelemetry/api/baggage.rbs
@@ -795,6 +809,7 @@ files:
795
809
  - lib/datadog/tracing/contrib/karafka/configuration/settings.rb
796
810
  - lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
797
811
  - lib/datadog/tracing/contrib/karafka/ext.rb
812
+ - lib/datadog/tracing/contrib/karafka/framework.rb
798
813
  - lib/datadog/tracing/contrib/karafka/integration.rb
799
814
  - lib/datadog/tracing/contrib/karafka/monitor.rb
800
815
  - lib/datadog/tracing/contrib/karafka/patcher.rb
@@ -970,6 +985,14 @@ files:
970
985
  - lib/datadog/tracing/contrib/utils/database.rb
971
986
  - lib/datadog/tracing/contrib/utils/quantization/hash.rb
972
987
  - lib/datadog/tracing/contrib/utils/quantization/http.rb
988
+ - lib/datadog/tracing/contrib/waterdrop.rb
989
+ - lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb
990
+ - lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb
991
+ - lib/datadog/tracing/contrib/waterdrop/ext.rb
992
+ - lib/datadog/tracing/contrib/waterdrop/integration.rb
993
+ - lib/datadog/tracing/contrib/waterdrop/middleware.rb
994
+ - lib/datadog/tracing/contrib/waterdrop/patcher.rb
995
+ - lib/datadog/tracing/contrib/waterdrop/producer.rb
973
996
  - lib/datadog/tracing/correlation.rb
974
997
  - lib/datadog/tracing/diagnostics/environment_logger.rb
975
998
  - lib/datadog/tracing/diagnostics/ext.rb
@@ -1047,8 +1070,8 @@ licenses:
1047
1070
  - Apache-2.0
1048
1071
  metadata:
1049
1072
  allowed_push_host: https://rubygems.org
1050
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.23.0.2/CHANGELOG.md
1051
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.23.0.2
1073
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.23.0.4/CHANGELOG.md
1074
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.23.0.4
1052
1075
  post_install_message:
1053
1076
  rdoc_options: []
1054
1077
  require_paths:
@@ -1060,7 +1083,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1060
1083
  version: 2.5.0
1061
1084
  - - "<"
1062
1085
  - !ruby/object:Gem::Version
1063
- version: '3.5'
1086
+ version: '4.0'
1064
1087
  required_rubygems_version: !ruby/object:Gem::Requirement
1065
1088
  requirements:
1066
1089
  - - ">="