datadog 2.21.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 (205) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +106 -2
  3. data/ext/LIBDATADOG_DEVELOPMENT.md +3 -0
  4. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +1 -1
  5. data/ext/datadog_profiling_native_extension/collectors_stack.c +4 -0
  6. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +1 -1
  7. data/ext/datadog_profiling_native_extension/extconf.rb +6 -4
  8. data/ext/datadog_profiling_native_extension/heap_recorder.c +1 -1
  9. data/ext/libdatadog_api/datadog_ruby_common.h +1 -1
  10. data/ext/libdatadog_api/ddsketch.c +106 -0
  11. data/ext/libdatadog_api/feature_flags.c +554 -0
  12. data/ext/libdatadog_api/feature_flags.h +5 -0
  13. data/ext/libdatadog_api/init.c +5 -0
  14. data/ext/libdatadog_api/library_config.c +34 -25
  15. data/ext/libdatadog_api/process_discovery.c +19 -13
  16. data/ext/libdatadog_extconf_helpers.rb +1 -1
  17. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
  18. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +59 -0
  19. data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +29 -0
  20. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
  21. data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
  22. data/lib/datadog/appsec/api_security/route_extractor.rb +23 -6
  23. data/lib/datadog/appsec/api_security/sampler.rb +7 -4
  24. data/lib/datadog/appsec/assets/blocked.html +8 -0
  25. data/lib/datadog/appsec/assets/blocked.json +1 -1
  26. data/lib/datadog/appsec/assets/blocked.text +3 -1
  27. data/lib/datadog/appsec/assets/waf_rules/README.md +30 -36
  28. data/lib/datadog/appsec/assets/waf_rules/recommended.json +359 -4
  29. data/lib/datadog/appsec/assets/waf_rules/strict.json +43 -2
  30. data/lib/datadog/appsec/assets.rb +1 -1
  31. data/lib/datadog/appsec/compressed_json.rb +1 -1
  32. data/lib/datadog/appsec/configuration/settings.rb +9 -0
  33. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +3 -1
  34. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +3 -2
  35. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +3 -1
  36. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +3 -1
  37. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +9 -4
  38. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +5 -1
  39. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +7 -2
  40. data/lib/datadog/appsec/contrib/rails/patcher.rb +30 -0
  41. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +3 -1
  42. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +10 -4
  43. data/lib/datadog/appsec/event.rb +12 -14
  44. data/lib/datadog/appsec/metrics/collector.rb +19 -3
  45. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +2 -1
  46. data/lib/datadog/appsec/monitor/gateway/watcher.rb +4 -4
  47. data/lib/datadog/appsec/remote.rb +29 -13
  48. data/lib/datadog/appsec/response.rb +18 -4
  49. data/lib/datadog/appsec/security_engine/result.rb +28 -9
  50. data/lib/datadog/appsec/security_engine/runner.rb +17 -7
  51. data/lib/datadog/appsec/security_event.rb +5 -7
  52. data/lib/datadog/core/configuration/components.rb +44 -9
  53. data/lib/datadog/core/configuration/config_helper.rb +1 -1
  54. data/lib/datadog/core/configuration/settings.rb +14 -0
  55. data/lib/datadog/core/configuration/stable_config.rb +10 -0
  56. data/lib/datadog/core/configuration/supported_configurations.rb +330 -299
  57. data/lib/datadog/core/configuration.rb +1 -1
  58. data/lib/datadog/core/ddsketch.rb +19 -0
  59. data/lib/datadog/core/environment/ext.rb +6 -0
  60. data/lib/datadog/core/environment/process.rb +79 -0
  61. data/lib/datadog/core/environment/yjit.rb +2 -1
  62. data/lib/datadog/core/feature_flags.rb +61 -0
  63. data/lib/datadog/core/pin.rb +4 -8
  64. data/lib/datadog/core/process_discovery.rb +4 -2
  65. data/lib/datadog/core/remote/client/capabilities.rb +7 -0
  66. data/lib/datadog/core/remote/component.rb +4 -6
  67. data/lib/datadog/core/remote/transport/config.rb +2 -10
  68. data/lib/datadog/core/remote/transport/http/config.rb +9 -9
  69. data/lib/datadog/core/remote/transport/http/negotiation.rb +17 -8
  70. data/lib/datadog/core/remote/transport/http.rb +2 -0
  71. data/lib/datadog/core/remote/transport/negotiation.rb +2 -18
  72. data/lib/datadog/core/remote/worker.rb +25 -37
  73. data/lib/datadog/core/tag_builder.rb +0 -4
  74. data/lib/datadog/core/tag_normalizer.rb +84 -0
  75. data/lib/datadog/core/telemetry/component.rb +18 -3
  76. data/lib/datadog/core/telemetry/emitter.rb +6 -6
  77. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
  78. data/lib/datadog/core/telemetry/event/app_started.rb +52 -49
  79. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +1 -1
  80. data/lib/datadog/core/telemetry/event.rb +1 -0
  81. data/lib/datadog/core/telemetry/logger.rb +2 -2
  82. data/lib/datadog/core/telemetry/logging.rb +2 -8
  83. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +5 -6
  84. data/lib/datadog/core/telemetry/transport/telemetry.rb +1 -2
  85. data/lib/datadog/core/transport/http/client.rb +69 -0
  86. data/lib/datadog/core/transport/response.rb +4 -1
  87. data/lib/datadog/core/utils/array.rb +29 -0
  88. data/lib/datadog/{appsec/api_security → core/utils}/lru_cache.rb +10 -21
  89. data/lib/datadog/core/utils/network.rb +22 -1
  90. data/lib/datadog/core/utils/only_once_successful.rb +6 -2
  91. data/lib/datadog/core/utils.rb +2 -0
  92. data/lib/datadog/data_streams/configuration/settings.rb +49 -0
  93. data/lib/datadog/data_streams/configuration.rb +11 -0
  94. data/lib/datadog/data_streams/ext.rb +11 -0
  95. data/lib/datadog/data_streams/extensions.rb +16 -0
  96. data/lib/datadog/data_streams/pathway_context.rb +169 -0
  97. data/lib/datadog/data_streams/processor.rb +509 -0
  98. data/lib/datadog/data_streams/transport/http/api.rb +33 -0
  99. data/lib/datadog/data_streams/transport/http/client.rb +21 -0
  100. data/lib/datadog/data_streams/transport/http/stats.rb +87 -0
  101. data/lib/datadog/data_streams/transport/http.rb +41 -0
  102. data/lib/datadog/data_streams/transport/stats.rb +60 -0
  103. data/lib/datadog/data_streams.rb +100 -0
  104. data/lib/datadog/di/boot.rb +1 -0
  105. data/lib/datadog/di/component.rb +14 -16
  106. data/lib/datadog/di/context.rb +70 -0
  107. data/lib/datadog/di/el/compiler.rb +164 -0
  108. data/lib/datadog/di/el/evaluator.rb +159 -0
  109. data/lib/datadog/di/el/expression.rb +42 -0
  110. data/lib/datadog/di/el.rb +5 -0
  111. data/lib/datadog/di/error.rb +29 -0
  112. data/lib/datadog/di/instrumenter.rb +163 -48
  113. data/lib/datadog/di/probe.rb +55 -15
  114. data/lib/datadog/di/probe_builder.rb +39 -1
  115. data/lib/datadog/di/probe_manager.rb +13 -4
  116. data/lib/datadog/di/probe_notification_builder.rb +105 -67
  117. data/lib/datadog/di/proc_responder.rb +32 -0
  118. data/lib/datadog/di/serializer.rb +151 -7
  119. data/lib/datadog/di/transport/diagnostics.rb +2 -2
  120. data/lib/datadog/di/transport/http/diagnostics.rb +2 -4
  121. data/lib/datadog/di/transport/http/input.rb +2 -4
  122. data/lib/datadog/di/transport/http.rb +6 -2
  123. data/lib/datadog/di/transport/input.rb +64 -4
  124. data/lib/datadog/open_feature/component.rb +60 -0
  125. data/lib/datadog/open_feature/configuration.rb +27 -0
  126. data/lib/datadog/open_feature/evaluation_engine.rb +69 -0
  127. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  128. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  129. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  130. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  131. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  132. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  133. data/lib/datadog/open_feature/ext.rb +14 -0
  134. data/lib/datadog/open_feature/native_evaluator.rb +38 -0
  135. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  136. data/lib/datadog/open_feature/provider.rb +141 -0
  137. data/lib/datadog/open_feature/remote.rb +74 -0
  138. data/lib/datadog/open_feature/resolution_details.rb +35 -0
  139. data/lib/datadog/open_feature/transport.rb +72 -0
  140. data/lib/datadog/open_feature.rb +19 -0
  141. data/lib/datadog/opentelemetry/configuration/settings.rb +159 -0
  142. data/lib/datadog/opentelemetry/metrics.rb +110 -0
  143. data/lib/datadog/opentelemetry/sdk/configurator.rb +25 -1
  144. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +38 -0
  145. data/lib/datadog/opentelemetry.rb +3 -0
  146. data/lib/datadog/profiling/collectors/code_provenance.rb +15 -6
  147. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +1 -1
  148. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -1
  149. data/lib/datadog/profiling/profiler.rb +4 -0
  150. data/lib/datadog/profiling/tag_builder.rb +36 -3
  151. data/lib/datadog/profiling.rb +1 -2
  152. data/lib/datadog/single_step_instrument.rb +1 -1
  153. data/lib/datadog/tracing/component.rb +6 -17
  154. data/lib/datadog/tracing/configuration/dynamic.rb +2 -2
  155. data/lib/datadog/tracing/configuration/ext.rb +9 -0
  156. data/lib/datadog/tracing/configuration/settings.rb +77 -3
  157. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +4 -4
  158. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -2
  159. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
  160. data/lib/datadog/tracing/contrib/active_job/patcher.rb +5 -1
  161. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +4 -2
  162. data/lib/datadog/tracing/contrib/component.rb +2 -2
  163. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -1
  164. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +11 -3
  165. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +11 -7
  166. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +7 -3
  167. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +7 -0
  168. data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
  169. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +74 -44
  170. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +11 -3
  171. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +11 -3
  172. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +11 -3
  173. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
  174. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
  175. data/lib/datadog/tracing/contrib/kafka/patcher.rb +14 -0
  176. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  177. data/lib/datadog/tracing/contrib/karafka/monitor.rb +11 -0
  178. data/lib/datadog/tracing/contrib/karafka/patcher.rb +32 -0
  179. data/lib/datadog/tracing/contrib/rack/middlewares.rb +59 -27
  180. data/lib/datadog/tracing/contrib/rack/route_inference.rb +53 -0
  181. data/lib/datadog/tracing/contrib/rails/middlewares.rb +2 -2
  182. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +4 -1
  183. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +3 -1
  184. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -1
  185. data/lib/datadog/tracing/contrib/status_range_matcher.rb +7 -0
  186. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +27 -0
  187. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +48 -0
  188. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +17 -0
  189. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  190. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  191. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +46 -0
  192. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  193. data/lib/datadog/tracing/contrib/waterdrop.rb +37 -0
  194. data/lib/datadog/tracing/contrib.rb +1 -0
  195. data/lib/datadog/tracing/metadata/ext.rb +9 -1
  196. data/lib/datadog/tracing/transport/http/client.rb +12 -26
  197. data/lib/datadog/tracing/transport/trace_formatter.rb +11 -0
  198. data/lib/datadog/tracing/transport/traces.rb +3 -5
  199. data/lib/datadog/version.rb +2 -2
  200. data/lib/datadog.rb +2 -0
  201. metadata +92 -16
  202. data/ext/libdatadog_api/macos_development.md +0 -26
  203. data/lib/datadog/core/remote/transport/http/client.rb +0 -49
  204. data/lib/datadog/core/telemetry/transport/http/client.rb +0 -49
  205. data/lib/datadog/di/transport/http/client.rb +0 -47
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.21.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-09-17 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.24.1.2.1
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.24.1.2.1
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: 18.1.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: 18.1.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
@@ -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,
@@ -107,6 +121,7 @@ files:
107
121
  - NOTICE
108
122
  - README.md
109
123
  - bin/ddprofrb
124
+ - ext/LIBDATADOG_DEVELOPMENT.md
110
125
  - ext/datadog_profiling_native_extension/NativeExtensionDesign.md
111
126
  - ext/datadog_profiling_native_extension/clock_id.h
112
127
  - ext/datadog_profiling_native_extension/clock_id_from_pthread.c
@@ -155,11 +170,13 @@ files:
155
170
  - ext/libdatadog_api/crashtracker.h
156
171
  - ext/libdatadog_api/datadog_ruby_common.c
157
172
  - ext/libdatadog_api/datadog_ruby_common.h
173
+ - ext/libdatadog_api/ddsketch.c
158
174
  - ext/libdatadog_api/extconf.rb
175
+ - ext/libdatadog_api/feature_flags.c
176
+ - ext/libdatadog_api/feature_flags.h
159
177
  - ext/libdatadog_api/init.c
160
178
  - ext/libdatadog_api/library_config.c
161
179
  - ext/libdatadog_api/library_config.h
162
- - ext/libdatadog_api/macos_development.md
163
180
  - ext/libdatadog_api/process_discovery.c
164
181
  - ext/libdatadog_api/process_discovery.h
165
182
  - ext/libdatadog_extconf_helpers.rb
@@ -169,7 +186,11 @@ files:
169
186
  - lib/datadog/appsec/actions_handler/serializable_backtrace.rb
170
187
  - lib/datadog/appsec/anonymizer.rb
171
188
  - lib/datadog/appsec/api_security.rb
172
- - lib/datadog/appsec/api_security/lru_cache.rb
189
+ - lib/datadog/appsec/api_security/endpoint_collection.rb
190
+ - lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb
191
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb
192
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb
193
+ - lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb
173
194
  - lib/datadog/appsec/api_security/route_extractor.rb
174
195
  - lib/datadog/appsec/api_security/sampler.rb
175
196
  - lib/datadog/appsec/assets.rb
@@ -298,6 +319,7 @@ files:
298
319
  - lib/datadog/core/contrib/rails/utils.rb
299
320
  - lib/datadog/core/crashtracking/component.rb
300
321
  - lib/datadog/core/crashtracking/tag_builder.rb
322
+ - lib/datadog/core/ddsketch.rb
301
323
  - lib/datadog/core/deprecations.rb
302
324
  - lib/datadog/core/diagnostics/environment_logger.rb
303
325
  - lib/datadog/core/diagnostics/health.rb
@@ -312,6 +334,7 @@ files:
312
334
  - lib/datadog/core/environment/git.rb
313
335
  - lib/datadog/core/environment/identity.rb
314
336
  - lib/datadog/core/environment/platform.rb
337
+ - lib/datadog/core/environment/process.rb
315
338
  - lib/datadog/core/environment/socket.rb
316
339
  - lib/datadog/core/environment/thread_count.rb
317
340
  - lib/datadog/core/environment/variable_helpers.rb
@@ -319,6 +342,7 @@ files:
319
342
  - lib/datadog/core/environment/yjit.rb
320
343
  - lib/datadog/core/error.rb
321
344
  - lib/datadog/core/extensions.rb
345
+ - lib/datadog/core/feature_flags.rb
322
346
  - lib/datadog/core/git/ext.rb
323
347
  - lib/datadog/core/header_collection.rb
324
348
  - lib/datadog/core/logger.rb
@@ -351,7 +375,6 @@ files:
351
375
  - lib/datadog/core/remote/transport/config.rb
352
376
  - lib/datadog/core/remote/transport/http.rb
353
377
  - lib/datadog/core/remote/transport/http/api.rb
354
- - lib/datadog/core/remote/transport/http/client.rb
355
378
  - lib/datadog/core/remote/transport/http/config.rb
356
379
  - lib/datadog/core/remote/transport/http/negotiation.rb
357
380
  - lib/datadog/core/remote/transport/negotiation.rb
@@ -360,12 +383,14 @@ files:
360
383
  - lib/datadog/core/runtime/metrics.rb
361
384
  - lib/datadog/core/semaphore.rb
362
385
  - lib/datadog/core/tag_builder.rb
386
+ - lib/datadog/core/tag_normalizer.rb
363
387
  - lib/datadog/core/telemetry/component.rb
364
388
  - lib/datadog/core/telemetry/emitter.rb
365
389
  - lib/datadog/core/telemetry/event.rb
366
390
  - lib/datadog/core/telemetry/event/app_client_configuration_change.rb
367
391
  - lib/datadog/core/telemetry/event/app_closing.rb
368
392
  - lib/datadog/core/telemetry/event/app_dependencies_loaded.rb
393
+ - lib/datadog/core/telemetry/event/app_endpoints_loaded.rb
369
394
  - lib/datadog/core/telemetry/event/app_heartbeat.rb
370
395
  - lib/datadog/core/telemetry/event/app_integrations_change.rb
371
396
  - lib/datadog/core/telemetry/event/app_started.rb
@@ -385,7 +410,6 @@ files:
385
410
  - lib/datadog/core/telemetry/request.rb
386
411
  - lib/datadog/core/telemetry/transport/http.rb
387
412
  - lib/datadog/core/telemetry/transport/http/api.rb
388
- - lib/datadog/core/telemetry/transport/http/client.rb
389
413
  - lib/datadog/core/telemetry/transport/http/telemetry.rb
390
414
  - lib/datadog/core/telemetry/transport/telemetry.rb
391
415
  - lib/datadog/core/telemetry/worker.rb
@@ -401,17 +425,20 @@ files:
401
425
  - lib/datadog/core/transport/http/api/map.rb
402
426
  - lib/datadog/core/transport/http/api/spec.rb
403
427
  - lib/datadog/core/transport/http/builder.rb
428
+ - lib/datadog/core/transport/http/client.rb
404
429
  - lib/datadog/core/transport/http/env.rb
405
430
  - lib/datadog/core/transport/http/response.rb
406
431
  - lib/datadog/core/transport/parcel.rb
407
432
  - lib/datadog/core/transport/request.rb
408
433
  - lib/datadog/core/transport/response.rb
409
434
  - lib/datadog/core/utils.rb
435
+ - lib/datadog/core/utils/array.rb
410
436
  - lib/datadog/core/utils/at_fork_monkey_patch.rb
411
437
  - lib/datadog/core/utils/base64.rb
412
438
  - lib/datadog/core/utils/duration.rb
413
439
  - lib/datadog/core/utils/forking.rb
414
440
  - lib/datadog/core/utils/hash.rb
441
+ - lib/datadog/core/utils/lru_cache.rb
415
442
  - lib/datadog/core/utils/network.rb
416
443
  - lib/datadog/core/utils/only_once.rb
417
444
  - lib/datadog/core/utils/only_once_successful.rb
@@ -434,6 +461,18 @@ files:
434
461
  - lib/datadog/core/workers/polling.rb
435
462
  - lib/datadog/core/workers/queue.rb
436
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
437
476
  - lib/datadog/di.rb
438
477
  - lib/datadog/di/base.rb
439
478
  - lib/datadog/di/boot.rb
@@ -441,9 +480,14 @@ files:
441
480
  - lib/datadog/di/component.rb
442
481
  - lib/datadog/di/configuration.rb
443
482
  - lib/datadog/di/configuration/settings.rb
483
+ - lib/datadog/di/context.rb
444
484
  - lib/datadog/di/contrib.rb
445
485
  - lib/datadog/di/contrib/active_record.rb
446
486
  - lib/datadog/di/contrib/railtie.rb
487
+ - lib/datadog/di/el.rb
488
+ - lib/datadog/di/el/compiler.rb
489
+ - lib/datadog/di/el/evaluator.rb
490
+ - lib/datadog/di/el/expression.rb
447
491
  - lib/datadog/di/error.rb
448
492
  - lib/datadog/di/extensions.rb
449
493
  - lib/datadog/di/instrumenter.rb
@@ -456,13 +500,13 @@ files:
456
500
  - lib/datadog/di/probe_manager.rb
457
501
  - lib/datadog/di/probe_notification_builder.rb
458
502
  - lib/datadog/di/probe_notifier_worker.rb
503
+ - lib/datadog/di/proc_responder.rb
459
504
  - lib/datadog/di/redactor.rb
460
505
  - lib/datadog/di/remote.rb
461
506
  - lib/datadog/di/serializer.rb
462
507
  - lib/datadog/di/transport/diagnostics.rb
463
508
  - lib/datadog/di/transport/http.rb
464
509
  - lib/datadog/di/transport/http/api.rb
465
- - lib/datadog/di/transport/http/client.rb
466
510
  - lib/datadog/di/transport/http/diagnostics.rb
467
511
  - lib/datadog/di/transport/http/input.rb
468
512
  - lib/datadog/di/transport/input.rb
@@ -480,13 +524,33 @@ files:
480
524
  - lib/datadog/kit/appsec/events/v2.rb
481
525
  - lib/datadog/kit/enable_core_dumps.rb
482
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
483
544
  - lib/datadog/opentelemetry.rb
484
545
  - lib/datadog/opentelemetry/api/baggage.rb
485
546
  - lib/datadog/opentelemetry/api/baggage.rbs
486
547
  - lib/datadog/opentelemetry/api/context.rb
487
548
  - lib/datadog/opentelemetry/api/trace/span.rb
549
+ - lib/datadog/opentelemetry/configuration/settings.rb
550
+ - lib/datadog/opentelemetry/metrics.rb
488
551
  - lib/datadog/opentelemetry/sdk/configurator.rb
489
552
  - lib/datadog/opentelemetry/sdk/id_generator.rb
553
+ - lib/datadog/opentelemetry/sdk/metrics_exporter.rb
490
554
  - lib/datadog/opentelemetry/sdk/propagator.rb
491
555
  - lib/datadog/opentelemetry/sdk/span_processor.rb
492
556
  - lib/datadog/opentelemetry/sdk/trace/span.rb
@@ -750,12 +814,15 @@ files:
750
814
  - lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb
751
815
  - lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb
752
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
753
819
  - lib/datadog/tracing/contrib/kafka/integration.rb
754
820
  - lib/datadog/tracing/contrib/kafka/patcher.rb
755
821
  - lib/datadog/tracing/contrib/karafka.rb
756
822
  - lib/datadog/tracing/contrib/karafka/configuration/settings.rb
757
823
  - lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
758
824
  - lib/datadog/tracing/contrib/karafka/ext.rb
825
+ - lib/datadog/tracing/contrib/karafka/framework.rb
759
826
  - lib/datadog/tracing/contrib/karafka/integration.rb
760
827
  - lib/datadog/tracing/contrib/karafka/monitor.rb
761
828
  - lib/datadog/tracing/contrib/karafka/patcher.rb
@@ -819,6 +886,7 @@ files:
819
886
  - lib/datadog/tracing/contrib/rack/middlewares.rb
820
887
  - lib/datadog/tracing/contrib/rack/patcher.rb
821
888
  - lib/datadog/tracing/contrib/rack/request_queue.rb
889
+ - lib/datadog/tracing/contrib/rack/route_inference.rb
822
890
  - lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb
823
891
  - lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb
824
892
  - lib/datadog/tracing/contrib/rails/configuration/settings.rb
@@ -930,6 +998,14 @@ files:
930
998
  - lib/datadog/tracing/contrib/utils/database.rb
931
999
  - lib/datadog/tracing/contrib/utils/quantization/hash.rb
932
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
933
1009
  - lib/datadog/tracing/correlation.rb
934
1010
  - lib/datadog/tracing/diagnostics/environment_logger.rb
935
1011
  - lib/datadog/tracing/diagnostics/ext.rb
@@ -1007,8 +1083,8 @@ licenses:
1007
1083
  - Apache-2.0
1008
1084
  metadata:
1009
1085
  allowed_push_host: https://rubygems.org
1010
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.21.0/CHANGELOG.md
1011
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.21.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
1012
1088
  post_install_message:
1013
1089
  rdoc_options: []
1014
1090
  require_paths:
@@ -1020,7 +1096,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1020
1096
  version: 2.5.0
1021
1097
  - - "<"
1022
1098
  - !ruby/object:Gem::Version
1023
- version: '3.5'
1099
+ version: '4.0'
1024
1100
  required_rubygems_version: !ruby/object:Gem::Requirement
1025
1101
  requirements:
1026
1102
  - - ">="
@@ -1,26 +0,0 @@
1
- # Developing on macOS
2
-
3
- As of this writing (August 2024), the libdatadog builds on rubygems.org only support Linux.
4
-
5
- We don't officially support using libdatadog for Ruby on other platforms yet, but it is possible to use it for local development on macOS.
6
- (**Note that you don't need these instructions if you develop inside docker.**)
7
-
8
- Here's how you can do so:
9
-
10
- 1. [Install rust](https://www.rust-lang.org/tools/install)
11
- 2. Install `cbindgen`: `cargo install cbindgen`
12
- 3. Clone [libdatadog](https://github.com/datadog/libdatadog)
13
- 4. Create a folder for building into based on your ruby platform:
14
-
15
- ```
16
- export DD_RUBY_PLATFORM=`ruby -e 'puts Gem::Platform.local.to_s'`
17
- mkdir -p my-libdatadog-build/$DD_RUBY_PLATFORM
18
- ```
19
-
20
- 5. From inside of the libdatadog repo, build libdatadog into this folder: `./build-profiling-ffi.sh my-libdatadog-build/$DD_RUBY_PLATFORM`
21
- 6. Tell Ruby where to find libdatadog: `export LIBDATADOG_VENDOR_OVERRIDE=/full/path/to/my-libdatadog-build/` (Notice no platform here)
22
- 7. From dd-trace-rb, run `bundle exec rake clean compile`
23
-
24
- If you additionally want to run the profiler test suite, also remember to `export DD_PROFILING_MACOS_TESTING=true` and re-run `rake clean compile`.
25
-
26
- These instructions can quickly get outdated, so feel free to open an issue if they're not working (and/or ping @ivoanjo).
@@ -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