datadog 2.22.0 → 2.23.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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -2
  3. data/ext/LIBDATADOG_DEVELOPMENT.md +1 -58
  4. data/ext/datadog_profiling_native_extension/collectors_stack.c +4 -0
  5. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +1 -1
  6. data/ext/datadog_profiling_native_extension/extconf.rb +6 -4
  7. data/ext/datadog_profiling_native_extension/heap_recorder.c +1 -1
  8. data/ext/libdatadog_api/datadog_ruby_common.h +1 -1
  9. data/ext/libdatadog_api/feature_flags.c +554 -0
  10. data/ext/libdatadog_api/feature_flags.h +5 -0
  11. data/ext/libdatadog_api/init.c +2 -0
  12. data/ext/libdatadog_api/library_config.c +12 -11
  13. data/ext/libdatadog_extconf_helpers.rb +1 -1
  14. data/lib/datadog/appsec/api_security/route_extractor.rb +23 -6
  15. data/lib/datadog/appsec/api_security/sampler.rb +7 -4
  16. data/lib/datadog/appsec/assets/blocked.html +8 -0
  17. data/lib/datadog/appsec/assets/blocked.json +1 -1
  18. data/lib/datadog/appsec/assets/blocked.text +3 -1
  19. data/lib/datadog/appsec/assets.rb +1 -1
  20. data/lib/datadog/appsec/remote.rb +4 -0
  21. data/lib/datadog/appsec/response.rb +18 -4
  22. data/lib/datadog/core/configuration/components.rb +30 -3
  23. data/lib/datadog/core/configuration/config_helper.rb +1 -1
  24. data/lib/datadog/core/configuration/settings.rb +14 -0
  25. data/lib/datadog/core/configuration/supported_configurations.rb +330 -301
  26. data/lib/datadog/core/ddsketch.rb +0 -2
  27. data/lib/datadog/core/environment/ext.rb +6 -0
  28. data/lib/datadog/core/environment/process.rb +79 -0
  29. data/lib/datadog/core/feature_flags.rb +61 -0
  30. data/lib/datadog/core/remote/client/capabilities.rb +7 -0
  31. data/lib/datadog/core/remote/transport/config.rb +2 -10
  32. data/lib/datadog/core/remote/transport/http/config.rb +9 -9
  33. data/lib/datadog/core/remote/transport/http/negotiation.rb +17 -8
  34. data/lib/datadog/core/remote/transport/http.rb +2 -0
  35. data/lib/datadog/core/remote/transport/negotiation.rb +2 -18
  36. data/lib/datadog/core/remote/worker.rb +25 -37
  37. data/lib/datadog/core/tag_builder.rb +0 -4
  38. data/lib/datadog/core/tag_normalizer.rb +84 -0
  39. data/lib/datadog/core/telemetry/component.rb +7 -3
  40. data/lib/datadog/core/telemetry/event/app_started.rb +52 -49
  41. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +1 -1
  42. data/lib/datadog/core/telemetry/logger.rb +2 -2
  43. data/lib/datadog/core/telemetry/logging.rb +2 -8
  44. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +5 -6
  45. data/lib/datadog/core/telemetry/transport/telemetry.rb +1 -2
  46. data/lib/datadog/core/transport/http/client.rb +69 -0
  47. data/lib/datadog/core/utils/array.rb +29 -0
  48. data/lib/datadog/{appsec/api_security → core/utils}/lru_cache.rb +10 -21
  49. data/lib/datadog/core/utils/network.rb +3 -1
  50. data/lib/datadog/core/utils/only_once_successful.rb +6 -2
  51. data/lib/datadog/core/utils.rb +2 -0
  52. data/lib/datadog/data_streams/configuration/settings.rb +49 -0
  53. data/lib/datadog/data_streams/configuration.rb +11 -0
  54. data/lib/datadog/data_streams/ext.rb +11 -0
  55. data/lib/datadog/data_streams/extensions.rb +16 -0
  56. data/lib/datadog/data_streams/pathway_context.rb +169 -0
  57. data/lib/datadog/data_streams/processor.rb +509 -0
  58. data/lib/datadog/data_streams/transport/http/api.rb +33 -0
  59. data/lib/datadog/data_streams/transport/http/client.rb +21 -0
  60. data/lib/datadog/data_streams/transport/http/stats.rb +87 -0
  61. data/lib/datadog/data_streams/transport/http.rb +41 -0
  62. data/lib/datadog/data_streams/transport/stats.rb +60 -0
  63. data/lib/datadog/data_streams.rb +100 -0
  64. data/lib/datadog/di/component.rb +0 -16
  65. data/lib/datadog/di/el/evaluator.rb +1 -1
  66. data/lib/datadog/di/error.rb +4 -0
  67. data/lib/datadog/di/instrumenter.rb +76 -30
  68. data/lib/datadog/di/probe.rb +20 -0
  69. data/lib/datadog/di/probe_manager.rb +10 -2
  70. data/lib/datadog/di/probe_notification_builder.rb +62 -23
  71. data/lib/datadog/di/proc_responder.rb +32 -0
  72. data/lib/datadog/di/transport/diagnostics.rb +2 -2
  73. data/lib/datadog/di/transport/http/diagnostics.rb +2 -4
  74. data/lib/datadog/di/transport/http/input.rb +2 -4
  75. data/lib/datadog/di/transport/http.rb +6 -2
  76. data/lib/datadog/di/transport/input.rb +64 -4
  77. data/lib/datadog/open_feature/component.rb +60 -0
  78. data/lib/datadog/open_feature/configuration.rb +27 -0
  79. data/lib/datadog/open_feature/evaluation_engine.rb +69 -0
  80. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  81. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  82. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  83. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  84. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  85. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  86. data/lib/datadog/open_feature/ext.rb +14 -0
  87. data/lib/datadog/open_feature/native_evaluator.rb +38 -0
  88. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  89. data/lib/datadog/open_feature/provider.rb +141 -0
  90. data/lib/datadog/open_feature/remote.rb +74 -0
  91. data/lib/datadog/open_feature/resolution_details.rb +35 -0
  92. data/lib/datadog/open_feature/transport.rb +72 -0
  93. data/lib/datadog/open_feature.rb +19 -0
  94. data/lib/datadog/opentelemetry/configuration/settings.rb +159 -0
  95. data/lib/datadog/opentelemetry/metrics.rb +110 -0
  96. data/lib/datadog/opentelemetry/sdk/configurator.rb +25 -1
  97. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +38 -0
  98. data/lib/datadog/opentelemetry.rb +3 -0
  99. data/lib/datadog/profiling/collectors/code_provenance.rb +15 -6
  100. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +1 -1
  101. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -1
  102. data/lib/datadog/profiling/profiler.rb +4 -0
  103. data/lib/datadog/profiling/tag_builder.rb +36 -3
  104. data/lib/datadog/profiling.rb +1 -2
  105. data/lib/datadog/single_step_instrument.rb +1 -1
  106. data/lib/datadog/tracing/configuration/ext.rb +9 -0
  107. data/lib/datadog/tracing/configuration/settings.rb +74 -0
  108. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +4 -4
  109. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -2
  110. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
  111. data/lib/datadog/tracing/contrib/active_job/patcher.rb +5 -1
  112. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +4 -2
  113. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -1
  114. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +11 -3
  115. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +11 -7
  116. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +7 -3
  117. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +22 -17
  118. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +11 -3
  119. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +11 -3
  120. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +11 -3
  121. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
  122. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
  123. data/lib/datadog/tracing/contrib/kafka/patcher.rb +14 -0
  124. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  125. data/lib/datadog/tracing/contrib/karafka/monitor.rb +11 -0
  126. data/lib/datadog/tracing/contrib/karafka/patcher.rb +32 -0
  127. data/lib/datadog/tracing/contrib/rack/middlewares.rb +59 -27
  128. data/lib/datadog/tracing/contrib/rack/route_inference.rb +53 -0
  129. data/lib/datadog/tracing/contrib/rails/middlewares.rb +2 -2
  130. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +4 -1
  131. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +3 -1
  132. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -1
  133. data/lib/datadog/tracing/contrib/status_range_matcher.rb +7 -0
  134. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +27 -0
  135. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +48 -0
  136. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +17 -0
  137. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  138. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  139. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +46 -0
  140. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  141. data/lib/datadog/tracing/contrib/waterdrop.rb +37 -0
  142. data/lib/datadog/tracing/contrib.rb +1 -0
  143. data/lib/datadog/tracing/metadata/ext.rb +1 -1
  144. data/lib/datadog/tracing/transport/http/client.rb +12 -26
  145. data/lib/datadog/tracing/transport/trace_formatter.rb +11 -0
  146. data/lib/datadog/tracing/transport/traces.rb +3 -5
  147. data/lib/datadog/version.rb +2 -2
  148. data/lib/datadog.rb +2 -0
  149. metadata +78 -15
  150. data/lib/datadog/core/remote/transport/http/client.rb +0 -49
  151. data/lib/datadog/core/telemetry/transport/http/client.rb +0 -49
  152. data/lib/datadog/di/transport/http/client.rb +0 -47
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../core/environment/identity'
4
+ require_relative '../../core/environment/process'
4
5
  require_relative '../../core/environment/socket'
5
6
  require_relative '../../core/environment/git'
6
7
  require_relative '../../core/git/ext'
@@ -62,6 +63,7 @@ module Datadog
62
63
  tag_apm_tracing_disabled!
63
64
 
64
65
  if first_span
66
+ tag_process_tags!
65
67
  tag_git_repository_url!
66
68
  tag_git_commit_sha!
67
69
  end
@@ -215,6 +217,15 @@ module Datadog
215
217
  first_span.set_tag(Core::Git::Ext::TAG_COMMIT_SHA, git_commit_sha)
216
218
  end
217
219
 
220
+ def tag_process_tags!
221
+ return unless Datadog.configuration.experimental_propagate_process_tags_enabled
222
+
223
+ first_span.set_tag(
224
+ Core::Environment::Ext::TAG_PROCESS_TAGS,
225
+ Core::Environment::Process.serialized
226
+ )
227
+ end
228
+
218
229
  private
219
230
 
220
231
  def partial?
@@ -3,6 +3,7 @@
3
3
  require_relative '../../core/chunker'
4
4
  require_relative '../../core/transport/parcel'
5
5
  require_relative '../../core/transport/request'
6
+ require_relative '../../core/utils/array'
6
7
  require_relative 'serializable_trace'
7
8
  require_relative 'trace_formatter'
8
9
 
@@ -65,11 +66,8 @@ module Datadog
65
66
  # @return [Enumerable[Array[Bytes,Integer]]] list of encoded chunks: each containing a byte array and
66
67
  # number of traces
67
68
  def encode_in_chunks(traces)
68
- encoded_traces = if traces.respond_to?(:filter_map)
69
- # DEV Supported since Ruby 2.7, saves an intermediate object creation
70
- traces.filter_map { |t| encode_one(t) }
71
- else
72
- traces.map { |t| encode_one(t) }.reject(&:nil?)
69
+ encoded_traces = Core::Utils::Array.filter_map(traces) do |trace|
70
+ encode_one(trace)
73
71
  end
74
72
 
75
73
  Datadog::Core::Chunker.chunk_by_size(encoded_traces, max_size).map do |chunk|
@@ -3,7 +3,7 @@
3
3
  module Datadog
4
4
  module VERSION
5
5
  MAJOR = 2
6
- MINOR = 22
6
+ MINOR = 23
7
7
  PATCH = 0
8
8
  PRE = nil
9
9
  BUILD = nil
@@ -21,6 +21,6 @@ module Datadog
21
21
  # To allow testing with the next unreleased version of Ruby, the version check is performed
22
22
  # as `< #{MAXIMUM_RUBY_VERSION}`, meaning prereleases of MAXIMUM_RUBY_VERSION are allowed
23
23
  # but not stable MAXIMUM_RUBY_VERSION releases.
24
- MAXIMUM_RUBY_VERSION = '3.5'
24
+ MAXIMUM_RUBY_VERSION = '4.0'
25
25
  end
26
26
  end
data/lib/datadog.rb CHANGED
@@ -8,6 +8,8 @@ require_relative 'datadog/tracing/contrib'
8
8
  require_relative 'datadog/profiling'
9
9
  require_relative 'datadog/appsec'
10
10
  require_relative 'datadog/di'
11
+ require_relative 'datadog/data_streams'
12
+ require_relative 'datadog/open_feature'
11
13
 
12
14
  # Line probes will not work on Ruby < 2.6 because of lack of :script_compiled
13
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: datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.22.0
4
+ version: 2.23.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: 2025-10-15 00:00:00.000000000 Z
11
+ date: 2025-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '3.4'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 3.4.1
36
+ version: 3.4.2
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,35 +43,35 @@ dependencies:
43
43
  version: '3.4'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 3.4.1
46
+ version: 3.4.2
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: libddwaf
49
49
  requirement: !ruby/object:Gem::Requirement
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: 22.0.1.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: 22.0.1.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
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: cgi
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
89
103
  description: |
90
104
  datadog is Datadog's client library for Ruby. It includes a suite of tools
91
105
  which provide visibility into the performance and security of Ruby applications,
@@ -158,6 +172,8 @@ files:
158
172
  - ext/libdatadog_api/datadog_ruby_common.h
159
173
  - ext/libdatadog_api/ddsketch.c
160
174
  - ext/libdatadog_api/extconf.rb
175
+ - ext/libdatadog_api/feature_flags.c
176
+ - ext/libdatadog_api/feature_flags.h
161
177
  - ext/libdatadog_api/init.c
162
178
  - ext/libdatadog_api/library_config.c
163
179
  - ext/libdatadog_api/library_config.h
@@ -175,7 +191,6 @@ files:
175
191
  - lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb
176
192
  - lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb
177
193
  - lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb
178
- - lib/datadog/appsec/api_security/lru_cache.rb
179
194
  - lib/datadog/appsec/api_security/route_extractor.rb
180
195
  - lib/datadog/appsec/api_security/sampler.rb
181
196
  - lib/datadog/appsec/assets.rb
@@ -319,6 +334,7 @@ files:
319
334
  - lib/datadog/core/environment/git.rb
320
335
  - lib/datadog/core/environment/identity.rb
321
336
  - lib/datadog/core/environment/platform.rb
337
+ - lib/datadog/core/environment/process.rb
322
338
  - lib/datadog/core/environment/socket.rb
323
339
  - lib/datadog/core/environment/thread_count.rb
324
340
  - lib/datadog/core/environment/variable_helpers.rb
@@ -326,6 +342,7 @@ files:
326
342
  - lib/datadog/core/environment/yjit.rb
327
343
  - lib/datadog/core/error.rb
328
344
  - lib/datadog/core/extensions.rb
345
+ - lib/datadog/core/feature_flags.rb
329
346
  - lib/datadog/core/git/ext.rb
330
347
  - lib/datadog/core/header_collection.rb
331
348
  - lib/datadog/core/logger.rb
@@ -358,7 +375,6 @@ files:
358
375
  - lib/datadog/core/remote/transport/config.rb
359
376
  - lib/datadog/core/remote/transport/http.rb
360
377
  - lib/datadog/core/remote/transport/http/api.rb
361
- - lib/datadog/core/remote/transport/http/client.rb
362
378
  - lib/datadog/core/remote/transport/http/config.rb
363
379
  - lib/datadog/core/remote/transport/http/negotiation.rb
364
380
  - lib/datadog/core/remote/transport/negotiation.rb
@@ -367,6 +383,7 @@ files:
367
383
  - lib/datadog/core/runtime/metrics.rb
368
384
  - lib/datadog/core/semaphore.rb
369
385
  - lib/datadog/core/tag_builder.rb
386
+ - lib/datadog/core/tag_normalizer.rb
370
387
  - lib/datadog/core/telemetry/component.rb
371
388
  - lib/datadog/core/telemetry/emitter.rb
372
389
  - lib/datadog/core/telemetry/event.rb
@@ -393,7 +410,6 @@ files:
393
410
  - lib/datadog/core/telemetry/request.rb
394
411
  - lib/datadog/core/telemetry/transport/http.rb
395
412
  - lib/datadog/core/telemetry/transport/http/api.rb
396
- - lib/datadog/core/telemetry/transport/http/client.rb
397
413
  - lib/datadog/core/telemetry/transport/http/telemetry.rb
398
414
  - lib/datadog/core/telemetry/transport/telemetry.rb
399
415
  - lib/datadog/core/telemetry/worker.rb
@@ -409,17 +425,20 @@ files:
409
425
  - lib/datadog/core/transport/http/api/map.rb
410
426
  - lib/datadog/core/transport/http/api/spec.rb
411
427
  - lib/datadog/core/transport/http/builder.rb
428
+ - lib/datadog/core/transport/http/client.rb
412
429
  - lib/datadog/core/transport/http/env.rb
413
430
  - lib/datadog/core/transport/http/response.rb
414
431
  - lib/datadog/core/transport/parcel.rb
415
432
  - lib/datadog/core/transport/request.rb
416
433
  - lib/datadog/core/transport/response.rb
417
434
  - lib/datadog/core/utils.rb
435
+ - lib/datadog/core/utils/array.rb
418
436
  - lib/datadog/core/utils/at_fork_monkey_patch.rb
419
437
  - lib/datadog/core/utils/base64.rb
420
438
  - lib/datadog/core/utils/duration.rb
421
439
  - lib/datadog/core/utils/forking.rb
422
440
  - lib/datadog/core/utils/hash.rb
441
+ - lib/datadog/core/utils/lru_cache.rb
423
442
  - lib/datadog/core/utils/network.rb
424
443
  - lib/datadog/core/utils/only_once.rb
425
444
  - lib/datadog/core/utils/only_once_successful.rb
@@ -442,6 +461,18 @@ files:
442
461
  - lib/datadog/core/workers/polling.rb
443
462
  - lib/datadog/core/workers/queue.rb
444
463
  - lib/datadog/core/workers/runtime_metrics.rb
464
+ - lib/datadog/data_streams.rb
465
+ - lib/datadog/data_streams/configuration.rb
466
+ - lib/datadog/data_streams/configuration/settings.rb
467
+ - lib/datadog/data_streams/ext.rb
468
+ - lib/datadog/data_streams/extensions.rb
469
+ - lib/datadog/data_streams/pathway_context.rb
470
+ - lib/datadog/data_streams/processor.rb
471
+ - lib/datadog/data_streams/transport/http.rb
472
+ - lib/datadog/data_streams/transport/http/api.rb
473
+ - lib/datadog/data_streams/transport/http/client.rb
474
+ - lib/datadog/data_streams/transport/http/stats.rb
475
+ - lib/datadog/data_streams/transport/stats.rb
445
476
  - lib/datadog/di.rb
446
477
  - lib/datadog/di/base.rb
447
478
  - lib/datadog/di/boot.rb
@@ -469,13 +500,13 @@ files:
469
500
  - lib/datadog/di/probe_manager.rb
470
501
  - lib/datadog/di/probe_notification_builder.rb
471
502
  - lib/datadog/di/probe_notifier_worker.rb
503
+ - lib/datadog/di/proc_responder.rb
472
504
  - lib/datadog/di/redactor.rb
473
505
  - lib/datadog/di/remote.rb
474
506
  - lib/datadog/di/serializer.rb
475
507
  - lib/datadog/di/transport/diagnostics.rb
476
508
  - lib/datadog/di/transport/http.rb
477
509
  - lib/datadog/di/transport/http/api.rb
478
- - lib/datadog/di/transport/http/client.rb
479
510
  - lib/datadog/di/transport/http/diagnostics.rb
480
511
  - lib/datadog/di/transport/http/input.rb
481
512
  - lib/datadog/di/transport/input.rb
@@ -493,13 +524,33 @@ files:
493
524
  - lib/datadog/kit/appsec/events/v2.rb
494
525
  - lib/datadog/kit/enable_core_dumps.rb
495
526
  - lib/datadog/kit/identity.rb
527
+ - lib/datadog/open_feature.rb
528
+ - lib/datadog/open_feature/component.rb
529
+ - lib/datadog/open_feature/configuration.rb
530
+ - lib/datadog/open_feature/evaluation_engine.rb
531
+ - lib/datadog/open_feature/exposures/batch_builder.rb
532
+ - lib/datadog/open_feature/exposures/buffer.rb
533
+ - lib/datadog/open_feature/exposures/deduplicator.rb
534
+ - lib/datadog/open_feature/exposures/event.rb
535
+ - lib/datadog/open_feature/exposures/reporter.rb
536
+ - lib/datadog/open_feature/exposures/worker.rb
537
+ - lib/datadog/open_feature/ext.rb
538
+ - lib/datadog/open_feature/native_evaluator.rb
539
+ - lib/datadog/open_feature/noop_evaluator.rb
540
+ - lib/datadog/open_feature/provider.rb
541
+ - lib/datadog/open_feature/remote.rb
542
+ - lib/datadog/open_feature/resolution_details.rb
543
+ - lib/datadog/open_feature/transport.rb
496
544
  - lib/datadog/opentelemetry.rb
497
545
  - lib/datadog/opentelemetry/api/baggage.rb
498
546
  - lib/datadog/opentelemetry/api/baggage.rbs
499
547
  - lib/datadog/opentelemetry/api/context.rb
500
548
  - lib/datadog/opentelemetry/api/trace/span.rb
549
+ - lib/datadog/opentelemetry/configuration/settings.rb
550
+ - lib/datadog/opentelemetry/metrics.rb
501
551
  - lib/datadog/opentelemetry/sdk/configurator.rb
502
552
  - lib/datadog/opentelemetry/sdk/id_generator.rb
553
+ - lib/datadog/opentelemetry/sdk/metrics_exporter.rb
503
554
  - lib/datadog/opentelemetry/sdk/propagator.rb
504
555
  - lib/datadog/opentelemetry/sdk/span_processor.rb
505
556
  - lib/datadog/opentelemetry/sdk/trace/span.rb
@@ -763,12 +814,15 @@ files:
763
814
  - lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb
764
815
  - lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb
765
816
  - lib/datadog/tracing/contrib/kafka/ext.rb
817
+ - lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb
818
+ - lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb
766
819
  - lib/datadog/tracing/contrib/kafka/integration.rb
767
820
  - lib/datadog/tracing/contrib/kafka/patcher.rb
768
821
  - lib/datadog/tracing/contrib/karafka.rb
769
822
  - lib/datadog/tracing/contrib/karafka/configuration/settings.rb
770
823
  - lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
771
824
  - lib/datadog/tracing/contrib/karafka/ext.rb
825
+ - lib/datadog/tracing/contrib/karafka/framework.rb
772
826
  - lib/datadog/tracing/contrib/karafka/integration.rb
773
827
  - lib/datadog/tracing/contrib/karafka/monitor.rb
774
828
  - lib/datadog/tracing/contrib/karafka/patcher.rb
@@ -832,6 +886,7 @@ files:
832
886
  - lib/datadog/tracing/contrib/rack/middlewares.rb
833
887
  - lib/datadog/tracing/contrib/rack/patcher.rb
834
888
  - lib/datadog/tracing/contrib/rack/request_queue.rb
889
+ - lib/datadog/tracing/contrib/rack/route_inference.rb
835
890
  - lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb
836
891
  - lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb
837
892
  - lib/datadog/tracing/contrib/rails/configuration/settings.rb
@@ -943,6 +998,14 @@ files:
943
998
  - lib/datadog/tracing/contrib/utils/database.rb
944
999
  - lib/datadog/tracing/contrib/utils/quantization/hash.rb
945
1000
  - lib/datadog/tracing/contrib/utils/quantization/http.rb
1001
+ - lib/datadog/tracing/contrib/waterdrop.rb
1002
+ - lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb
1003
+ - lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb
1004
+ - lib/datadog/tracing/contrib/waterdrop/ext.rb
1005
+ - lib/datadog/tracing/contrib/waterdrop/integration.rb
1006
+ - lib/datadog/tracing/contrib/waterdrop/middleware.rb
1007
+ - lib/datadog/tracing/contrib/waterdrop/patcher.rb
1008
+ - lib/datadog/tracing/contrib/waterdrop/producer.rb
946
1009
  - lib/datadog/tracing/correlation.rb
947
1010
  - lib/datadog/tracing/diagnostics/environment_logger.rb
948
1011
  - lib/datadog/tracing/diagnostics/ext.rb
@@ -1020,8 +1083,8 @@ licenses:
1020
1083
  - Apache-2.0
1021
1084
  metadata:
1022
1085
  allowed_push_host: https://rubygems.org
1023
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.22.0/CHANGELOG.md
1024
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.22.0
1086
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.23.0/CHANGELOG.md
1087
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.23.0
1025
1088
  post_install_message:
1026
1089
  rdoc_options: []
1027
1090
  require_paths:
@@ -1033,7 +1096,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1033
1096
  version: 2.5.0
1034
1097
  - - "<"
1035
1098
  - !ruby/object:Gem::Version
1036
- version: '3.5'
1099
+ version: '4.0'
1037
1100
  required_rubygems_version: !ruby/object:Gem::Requirement
1038
1101
  requirements:
1039
1102
  - - ">="
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../../core/transport/http/env'
4
- require_relative '../../../../core/transport/http/response'
5
-
6
- # TODO: Decouple transport/http/client
7
- #
8
- # The standard one does `include Transport::HTTP::Statistics` and performs
9
- # stats updates, which may or may not be desirable in general.
10
-
11
- module Datadog
12
- module Core
13
- module Remote
14
- module Transport
15
- module HTTP
16
- # Routes, encodes, and sends tracer data to the trace agent via HTTP.
17
- class Client
18
- attr_reader :api, :logger
19
-
20
- def initialize(api, logger: Datadog.logger)
21
- @api = api
22
- @logger = logger
23
- end
24
-
25
- def send_request(request, &block)
26
- # Build request into env
27
- env = build_env(request)
28
-
29
- # Get responses from API
30
- yield(api, env)
31
- rescue => e
32
- message =
33
- "Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
34
- "Location: #{Array(e.backtrace).first}"
35
-
36
- logger.debug(message)
37
-
38
- Datadog::Core::Transport::InternalErrorResponse.new(e)
39
- end
40
-
41
- def build_env(request)
42
- Datadog::Core::Transport::HTTP::Env.new(request)
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../transport/http/env'
4
- require_relative '../../../transport/http/response'
5
-
6
- # TODO: Decouple transport/http/client
7
- #
8
- # The standard one does `include Transport::HTTP::Statistics` and performs
9
- # stats updates, which may or may not be desirable in general.
10
-
11
- module Datadog
12
- module Core
13
- module Telemetry
14
- module Transport
15
- module HTTP
16
- # Routes, encodes, and sends DI data to the trace agent via HTTP.
17
- class Client
18
- attr_reader :api, :logger
19
-
20
- def initialize(api, logger:)
21
- @api = api
22
- @logger = logger
23
- end
24
-
25
- def send_request(request, &block)
26
- # Build request into env
27
- env = build_env(request)
28
-
29
- # Get responses from API
30
- yield(api, env)
31
- rescue => e
32
- message =
33
- "Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
34
- "Location: #{Array(e.backtrace).first}"
35
-
36
- logger.debug(message)
37
-
38
- Datadog::Core::Transport::InternalErrorResponse.new(e)
39
- end
40
-
41
- def build_env(request)
42
- Datadog::Core::Transport::HTTP::Env.new(request)
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../core/transport/http/env'
4
- require_relative '../../../core/transport/http/response'
5
-
6
- # TODO: Decouple transport/http/client
7
- #
8
- # The standard one does `include Transport::HTTP::Statistics` and performs
9
- # stats updates, which may or may not be desirable in general.
10
-
11
- module Datadog
12
- module DI
13
- module Transport
14
- module HTTP
15
- # Routes, encodes, and sends DI data to the trace agent via HTTP.
16
- class Client
17
- attr_reader :api, :logger
18
-
19
- def initialize(api, logger:)
20
- @api = api
21
- @logger = logger
22
- end
23
-
24
- def send_request(request, &block)
25
- # Build request into env
26
- env = build_env(request)
27
-
28
- # Get responses from API
29
- yield(api, env)
30
- rescue => e
31
- message =
32
- "Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
33
- "Location: #{Array(e.backtrace).first}"
34
-
35
- logger.debug(message)
36
-
37
- Datadog::Core::Transport::InternalErrorResponse.new(e)
38
- end
39
-
40
- def build_env(request)
41
- Datadog::Core::Transport::HTTP::Env.new(request)
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end