datadog 2.7.1 → 2.17.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 (417) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +310 -1
  3. data/ext/datadog_profiling_native_extension/clock_id.h +2 -2
  4. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +66 -56
  5. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +1 -1
  6. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +1 -1
  7. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +16 -16
  8. data/ext/datadog_profiling_native_extension/collectors_stack.c +10 -10
  9. data/ext/datadog_profiling_native_extension/collectors_stack.h +2 -2
  10. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +314 -145
  11. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +1 -4
  12. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +10 -0
  13. data/ext/datadog_profiling_native_extension/encoded_profile.c +79 -0
  14. data/ext/datadog_profiling_native_extension/encoded_profile.h +8 -0
  15. data/ext/datadog_profiling_native_extension/extconf.rb +7 -8
  16. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.c +2 -0
  17. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.h +0 -8
  18. data/ext/datadog_profiling_native_extension/heap_recorder.c +61 -174
  19. data/ext/datadog_profiling_native_extension/heap_recorder.h +2 -2
  20. data/ext/datadog_profiling_native_extension/http_transport.c +64 -98
  21. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +68 -1
  22. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +10 -1
  23. data/ext/datadog_profiling_native_extension/profiling.c +19 -8
  24. data/ext/datadog_profiling_native_extension/ruby_helpers.c +8 -8
  25. data/ext/datadog_profiling_native_extension/stack_recorder.c +84 -131
  26. data/ext/datadog_profiling_native_extension/stack_recorder.h +2 -2
  27. data/ext/datadog_profiling_native_extension/time_helpers.h +1 -1
  28. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.c +47 -0
  29. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.h +31 -0
  30. data/ext/libdatadog_api/crashtracker.c +17 -15
  31. data/ext/libdatadog_api/crashtracker.h +5 -0
  32. data/ext/libdatadog_api/datadog_ruby_common.c +1 -4
  33. data/ext/libdatadog_api/datadog_ruby_common.h +10 -0
  34. data/ext/libdatadog_api/init.c +15 -0
  35. data/ext/libdatadog_api/library_config.c +122 -0
  36. data/ext/libdatadog_api/library_config.h +19 -0
  37. data/ext/libdatadog_api/macos_development.md +3 -3
  38. data/ext/libdatadog_api/process_discovery.c +117 -0
  39. data/ext/libdatadog_api/process_discovery.h +5 -0
  40. data/ext/libdatadog_extconf_helpers.rb +1 -1
  41. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +89 -0
  42. data/lib/datadog/appsec/actions_handler.rb +49 -0
  43. data/lib/datadog/appsec/anonymizer.rb +16 -0
  44. data/lib/datadog/appsec/api_security/lru_cache.rb +49 -0
  45. data/lib/datadog/appsec/api_security.rb +9 -0
  46. data/lib/datadog/appsec/assets/waf_rules/README.md +50 -5
  47. data/lib/datadog/appsec/assets/waf_rules/processors.json +239 -10
  48. data/lib/datadog/appsec/assets/waf_rules/recommended.json +355 -157
  49. data/lib/datadog/appsec/assets/waf_rules/scanners.json +926 -17
  50. data/lib/datadog/appsec/assets/waf_rules/strict.json +62 -32
  51. data/lib/datadog/appsec/autoload.rb +1 -1
  52. data/lib/datadog/appsec/component.rb +41 -33
  53. data/lib/datadog/appsec/compressed_json.rb +40 -0
  54. data/lib/datadog/appsec/configuration/settings.rb +152 -25
  55. data/lib/datadog/appsec/context.rb +74 -0
  56. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +92 -0
  57. data/lib/datadog/appsec/contrib/active_record/integration.rb +41 -0
  58. data/lib/datadog/appsec/contrib/active_record/patcher.rb +101 -0
  59. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -1
  60. data/lib/datadog/appsec/contrib/devise/configuration.rb +52 -0
  61. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +78 -0
  62. data/lib/datadog/appsec/contrib/devise/ext.rb +22 -0
  63. data/lib/datadog/appsec/contrib/devise/integration.rb +1 -2
  64. data/lib/datadog/appsec/contrib/devise/patcher.rb +33 -25
  65. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +102 -0
  66. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +69 -0
  67. data/lib/datadog/appsec/contrib/devise/{patcher/rememberable_patch.rb → patches/skip_signin_tracking_patch.rb} +3 -3
  68. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +106 -0
  69. data/lib/datadog/appsec/contrib/excon/integration.rb +41 -0
  70. data/lib/datadog/appsec/contrib/excon/patcher.rb +28 -0
  71. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +42 -0
  72. data/lib/datadog/appsec/contrib/faraday/connection_patch.rb +22 -0
  73. data/lib/datadog/appsec/contrib/faraday/integration.rb +42 -0
  74. data/lib/datadog/appsec/contrib/faraday/patcher.rb +53 -0
  75. data/lib/datadog/appsec/contrib/faraday/rack_builder_patch.rb +22 -0
  76. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +41 -0
  77. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +1 -7
  78. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +17 -30
  79. data/lib/datadog/appsec/contrib/graphql/integration.rb +1 -1
  80. data/lib/datadog/appsec/contrib/graphql/patcher.rb +0 -3
  81. data/lib/datadog/appsec/contrib/rack/ext.rb +34 -0
  82. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +3 -3
  83. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +78 -98
  84. data/lib/datadog/appsec/contrib/rack/integration.rb +1 -1
  85. data/lib/datadog/appsec/contrib/rack/patcher.rb +0 -3
  86. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +10 -11
  87. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +52 -68
  88. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +16 -33
  89. data/lib/datadog/appsec/contrib/rails/integration.rb +1 -1
  90. data/lib/datadog/appsec/contrib/rails/patcher.rb +25 -38
  91. data/lib/datadog/appsec/contrib/rest_client/integration.rb +45 -0
  92. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +28 -0
  93. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +38 -0
  94. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +31 -68
  95. data/lib/datadog/appsec/contrib/sinatra/integration.rb +1 -1
  96. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +5 -31
  97. data/lib/datadog/appsec/event.rb +96 -135
  98. data/lib/datadog/appsec/ext.rb +12 -3
  99. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +7 -2
  100. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +24 -0
  101. data/lib/datadog/appsec/instrumentation/gateway.rb +17 -22
  102. data/lib/datadog/appsec/metrics/collector.rb +38 -0
  103. data/lib/datadog/appsec/metrics/exporter.rb +35 -0
  104. data/lib/datadog/appsec/metrics/telemetry.rb +23 -0
  105. data/lib/datadog/appsec/metrics.rb +13 -0
  106. data/lib/datadog/appsec/monitor/gateway/watcher.rb +52 -32
  107. data/lib/datadog/appsec/processor/rule_loader.rb +26 -31
  108. data/lib/datadog/appsec/processor/rule_merger.rb +7 -6
  109. data/lib/datadog/appsec/processor.rb +5 -4
  110. data/lib/datadog/appsec/remote.rb +26 -12
  111. data/lib/datadog/appsec/response.rb +19 -85
  112. data/lib/datadog/appsec/security_engine/result.rb +67 -0
  113. data/lib/datadog/appsec/security_engine/runner.rb +88 -0
  114. data/lib/datadog/appsec/security_engine.rb +9 -0
  115. data/lib/datadog/appsec/security_event.rb +39 -0
  116. data/lib/datadog/appsec/utils.rb +0 -2
  117. data/lib/datadog/appsec.rb +23 -10
  118. data/lib/datadog/auto_instrument.rb +3 -0
  119. data/lib/datadog/core/buffer/random.rb +18 -2
  120. data/lib/datadog/core/configuration/agent_settings_resolver.rb +42 -14
  121. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +176 -0
  122. data/lib/datadog/core/configuration/components.rb +76 -32
  123. data/lib/datadog/core/configuration/components_state.rb +23 -0
  124. data/lib/datadog/core/configuration/ext.rb +5 -1
  125. data/lib/datadog/core/configuration/option.rb +79 -43
  126. data/lib/datadog/core/configuration/option_definition.rb +6 -4
  127. data/lib/datadog/core/configuration/options.rb +3 -3
  128. data/lib/datadog/core/configuration/settings.rb +100 -41
  129. data/lib/datadog/core/configuration/stable_config.rb +23 -0
  130. data/lib/datadog/core/configuration.rb +43 -11
  131. data/lib/datadog/{tracing → core}/contrib/rails/utils.rb +1 -3
  132. data/lib/datadog/core/crashtracking/component.rb +4 -13
  133. data/lib/datadog/core/diagnostics/environment_logger.rb +1 -1
  134. data/lib/datadog/core/encoding.rb +17 -1
  135. data/lib/datadog/core/environment/agent_info.rb +78 -0
  136. data/lib/datadog/core/environment/cgroup.rb +10 -12
  137. data/lib/datadog/core/environment/container.rb +38 -40
  138. data/lib/datadog/core/environment/ext.rb +6 -6
  139. data/lib/datadog/core/environment/git.rb +1 -0
  140. data/lib/datadog/core/environment/identity.rb +3 -3
  141. data/lib/datadog/core/environment/platform.rb +3 -3
  142. data/lib/datadog/core/environment/variable_helpers.rb +1 -1
  143. data/lib/datadog/core/error.rb +11 -9
  144. data/lib/datadog/core/logger.rb +2 -2
  145. data/lib/datadog/core/metrics/client.rb +27 -27
  146. data/lib/datadog/core/metrics/logging.rb +5 -5
  147. data/lib/datadog/core/process_discovery.rb +32 -0
  148. data/lib/datadog/core/rate_limiter.rb +4 -2
  149. data/lib/datadog/core/remote/client/capabilities.rb +6 -0
  150. data/lib/datadog/core/remote/client.rb +107 -92
  151. data/lib/datadog/core/remote/component.rb +18 -19
  152. data/lib/datadog/core/remote/configuration/digest.rb +7 -7
  153. data/lib/datadog/core/remote/configuration/path.rb +1 -1
  154. data/lib/datadog/core/remote/configuration/repository.rb +2 -1
  155. data/lib/datadog/core/remote/negotiation.rb +9 -9
  156. data/lib/datadog/core/remote/transport/config.rb +4 -3
  157. data/lib/datadog/core/remote/transport/http/api.rb +13 -18
  158. data/lib/datadog/core/remote/transport/http/client.rb +5 -4
  159. data/lib/datadog/core/remote/transport/http/config.rb +27 -55
  160. data/lib/datadog/core/remote/transport/http/negotiation.rb +8 -51
  161. data/lib/datadog/core/remote/transport/http.rb +25 -94
  162. data/lib/datadog/core/remote/transport/negotiation.rb +17 -4
  163. data/lib/datadog/core/remote/worker.rb +10 -7
  164. data/lib/datadog/core/runtime/metrics.rb +12 -5
  165. data/lib/datadog/core/telemetry/component.rb +84 -49
  166. data/lib/datadog/core/telemetry/emitter.rb +23 -11
  167. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +65 -0
  168. data/lib/datadog/core/telemetry/event/app_closing.rb +18 -0
  169. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +33 -0
  170. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +18 -0
  171. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +58 -0
  172. data/lib/datadog/core/telemetry/event/app_started.rb +179 -0
  173. data/lib/datadog/core/telemetry/event/base.rb +40 -0
  174. data/lib/datadog/core/telemetry/event/distributions.rb +18 -0
  175. data/lib/datadog/core/telemetry/event/generate_metrics.rb +43 -0
  176. data/lib/datadog/core/telemetry/event/log.rb +76 -0
  177. data/lib/datadog/core/telemetry/event/message_batch.rb +42 -0
  178. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +43 -0
  179. data/lib/datadog/core/telemetry/event.rb +17 -383
  180. data/lib/datadog/core/telemetry/ext.rb +1 -0
  181. data/lib/datadog/core/telemetry/http/adapters/net.rb +12 -97
  182. data/lib/datadog/core/telemetry/logger.rb +1 -1
  183. data/lib/datadog/core/telemetry/logging.rb +2 -2
  184. data/lib/datadog/core/telemetry/metric.rb +28 -6
  185. data/lib/datadog/core/telemetry/request.rb +4 -4
  186. data/lib/datadog/core/telemetry/transport/http/api.rb +43 -0
  187. data/lib/datadog/core/telemetry/transport/http/client.rb +49 -0
  188. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +92 -0
  189. data/lib/datadog/core/telemetry/transport/http.rb +63 -0
  190. data/lib/datadog/core/telemetry/transport/telemetry.rb +51 -0
  191. data/lib/datadog/core/telemetry/worker.rb +128 -25
  192. data/lib/datadog/core/transport/http/adapters/test.rb +2 -1
  193. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +1 -1
  194. data/lib/datadog/{tracing → core}/transport/http/api/instance.rb +18 -1
  195. data/lib/datadog/core/transport/http/api/spec.rb +36 -0
  196. data/lib/datadog/{tracing → core}/transport/http/builder.rb +53 -31
  197. data/lib/datadog/core/transport/http.rb +75 -0
  198. data/lib/datadog/core/transport/response.rb +4 -0
  199. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +6 -6
  200. data/lib/datadog/core/utils/duration.rb +32 -32
  201. data/lib/datadog/core/utils/forking.rb +2 -2
  202. data/lib/datadog/core/utils/network.rb +6 -6
  203. data/lib/datadog/core/utils/only_once_successful.rb +16 -5
  204. data/lib/datadog/core/utils/time.rb +20 -0
  205. data/lib/datadog/core/utils/truncation.rb +21 -0
  206. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -1
  207. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +8 -8
  208. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +7 -7
  209. data/lib/datadog/core/worker.rb +1 -1
  210. data/lib/datadog/core/workers/async.rb +29 -12
  211. data/lib/datadog/core/workers/interval_loop.rb +12 -1
  212. data/lib/datadog/core/workers/runtime_metrics.rb +2 -2
  213. data/lib/datadog/core.rb +8 -0
  214. data/lib/datadog/di/base.rb +115 -0
  215. data/lib/datadog/di/boot.rb +34 -0
  216. data/lib/datadog/di/code_tracker.rb +26 -15
  217. data/lib/datadog/di/component.rb +23 -14
  218. data/lib/datadog/di/configuration/settings.rb +25 -1
  219. data/lib/datadog/di/contrib/active_record.rb +1 -0
  220. data/lib/datadog/di/contrib/railtie.rb +15 -0
  221. data/lib/datadog/di/contrib.rb +28 -0
  222. data/lib/datadog/di/error.rb +5 -0
  223. data/lib/datadog/di/instrumenter.rb +111 -20
  224. data/lib/datadog/di/logger.rb +30 -0
  225. data/lib/datadog/di/preload.rb +18 -0
  226. data/lib/datadog/di/probe.rb +14 -7
  227. data/lib/datadog/di/probe_builder.rb +1 -0
  228. data/lib/datadog/di/probe_manager.rb +11 -5
  229. data/lib/datadog/di/probe_notification_builder.rb +34 -8
  230. data/lib/datadog/di/probe_notifier_worker.rb +52 -26
  231. data/lib/datadog/di/redactor.rb +0 -1
  232. data/lib/datadog/di/remote.rb +147 -0
  233. data/lib/datadog/di/serializer.rb +14 -7
  234. data/lib/datadog/di/transport/diagnostics.rb +62 -0
  235. data/lib/datadog/di/transport/http/api.rb +42 -0
  236. data/lib/datadog/di/transport/http/client.rb +47 -0
  237. data/lib/datadog/di/transport/http/diagnostics.rb +65 -0
  238. data/lib/datadog/di/transport/http/input.rb +67 -0
  239. data/lib/datadog/di/transport/http.rb +57 -0
  240. data/lib/datadog/di/transport/input.rb +62 -0
  241. data/lib/datadog/di/utils.rb +103 -0
  242. data/lib/datadog/di.rb +14 -76
  243. data/lib/datadog/error_tracking/collector.rb +87 -0
  244. data/lib/datadog/error_tracking/component.rb +167 -0
  245. data/lib/datadog/error_tracking/configuration/settings.rb +63 -0
  246. data/lib/datadog/error_tracking/configuration.rb +11 -0
  247. data/lib/datadog/error_tracking/ext.rb +18 -0
  248. data/lib/datadog/error_tracking/extensions.rb +16 -0
  249. data/lib/datadog/error_tracking/filters.rb +77 -0
  250. data/lib/datadog/error_tracking.rb +18 -0
  251. data/lib/datadog/kit/appsec/events.rb +15 -3
  252. data/lib/datadog/kit/identity.rb +9 -5
  253. data/lib/datadog/opentelemetry/api/baggage.rb +90 -0
  254. data/lib/datadog/opentelemetry/api/baggage.rbs +26 -0
  255. data/lib/datadog/opentelemetry/api/context.rb +16 -2
  256. data/lib/datadog/opentelemetry/sdk/trace/span.rb +1 -1
  257. data/lib/datadog/opentelemetry.rb +2 -1
  258. data/lib/datadog/profiling/collectors/code_provenance.rb +1 -1
  259. data/lib/datadog/profiling/collectors/info.rb +3 -0
  260. data/lib/datadog/profiling/collectors/thread_context.rb +1 -1
  261. data/lib/datadog/profiling/component.rb +60 -76
  262. data/lib/datadog/profiling/encoded_profile.rb +11 -0
  263. data/lib/datadog/profiling/exporter.rb +3 -4
  264. data/lib/datadog/profiling/ext.rb +0 -2
  265. data/lib/datadog/profiling/flush.rb +5 -8
  266. data/lib/datadog/profiling/http_transport.rb +6 -85
  267. data/lib/datadog/profiling/load_native_extension.rb +1 -33
  268. data/lib/datadog/profiling/scheduler.rb +8 -1
  269. data/lib/datadog/profiling/stack_recorder.rb +4 -4
  270. data/lib/datadog/profiling/tag_builder.rb +1 -5
  271. data/lib/datadog/profiling.rb +6 -2
  272. data/lib/datadog/tracing/analytics.rb +1 -1
  273. data/lib/datadog/tracing/component.rb +16 -12
  274. data/lib/datadog/tracing/configuration/ext.rb +8 -1
  275. data/lib/datadog/tracing/configuration/settings.rb +22 -10
  276. data/lib/datadog/tracing/context_provider.rb +1 -1
  277. data/lib/datadog/tracing/contrib/action_cable/integration.rb +5 -2
  278. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +6 -2
  279. data/lib/datadog/tracing/contrib/action_pack/integration.rb +5 -2
  280. data/lib/datadog/tracing/contrib/action_view/integration.rb +5 -2
  281. data/lib/datadog/tracing/contrib/active_job/integration.rb +5 -2
  282. data/lib/datadog/tracing/contrib/active_record/integration.rb +7 -3
  283. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +7 -2
  284. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +36 -1
  285. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +4 -0
  286. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +14 -4
  287. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +10 -0
  288. data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -2
  289. data/lib/datadog/tracing/contrib/auto_instrument.rb +2 -2
  290. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +10 -0
  291. data/lib/datadog/tracing/contrib/aws/integration.rb +3 -0
  292. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +5 -1
  293. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -0
  294. data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
  295. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +4 -0
  296. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +6 -1
  297. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -5
  298. data/lib/datadog/tracing/contrib/excon/middleware.rb +5 -3
  299. data/lib/datadog/tracing/contrib/ext.rb +1 -0
  300. data/lib/datadog/tracing/contrib/extensions.rb +29 -3
  301. data/lib/datadog/tracing/contrib/faraday/middleware.rb +5 -3
  302. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +21 -0
  303. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +11 -0
  304. data/lib/datadog/tracing/contrib/graphql/ext.rb +5 -0
  305. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +102 -11
  306. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -1
  307. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +3 -0
  308. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +0 -15
  309. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +4 -1
  310. data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -10
  311. data/lib/datadog/tracing/contrib/http/integration.rb +3 -0
  312. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +6 -16
  313. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +7 -15
  314. data/lib/datadog/tracing/contrib/httprb/integration.rb +3 -0
  315. data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -0
  316. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +27 -0
  317. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +48 -0
  318. data/lib/datadog/tracing/contrib/karafka/ext.rb +27 -0
  319. data/lib/datadog/tracing/contrib/karafka/integration.rb +45 -0
  320. data/lib/datadog/tracing/contrib/karafka/monitor.rb +66 -0
  321. data/lib/datadog/tracing/contrib/karafka/patcher.rb +71 -0
  322. data/lib/datadog/tracing/contrib/karafka.rb +37 -0
  323. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +8 -0
  324. data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -0
  325. data/lib/datadog/tracing/contrib/mongodb/integration.rb +3 -0
  326. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +18 -1
  327. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +17 -0
  328. data/lib/datadog/tracing/contrib/opensearch/ext.rb +9 -0
  329. data/lib/datadog/tracing/contrib/opensearch/integration.rb +3 -0
  330. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +5 -1
  331. data/lib/datadog/tracing/contrib/patcher.rb +5 -2
  332. data/lib/datadog/tracing/contrib/presto/integration.rb +3 -0
  333. data/lib/datadog/tracing/contrib/rack/header_collection.rb +11 -1
  334. data/lib/datadog/tracing/contrib/rack/integration.rb +2 -2
  335. data/lib/datadog/tracing/contrib/rack/middlewares.rb +1 -1
  336. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -1
  337. data/lib/datadog/tracing/contrib/rails/framework.rb +2 -2
  338. data/lib/datadog/tracing/contrib/rails/patcher.rb +1 -1
  339. data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -0
  340. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -3
  341. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +6 -1
  342. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +3 -0
  343. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +1 -1
  344. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +6 -1
  345. data/lib/datadog/tracing/contrib/support.rb +28 -0
  346. data/lib/datadog/tracing/contrib.rb +1 -0
  347. data/lib/datadog/tracing/correlation.rb +9 -2
  348. data/lib/datadog/tracing/distributed/b3_multi.rb +1 -1
  349. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  350. data/lib/datadog/tracing/distributed/baggage.rb +131 -0
  351. data/lib/datadog/tracing/distributed/datadog.rb +4 -2
  352. data/lib/datadog/tracing/distributed/propagation.rb +25 -4
  353. data/lib/datadog/tracing/distributed/propagation_policy.rb +42 -0
  354. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  355. data/lib/datadog/tracing/metadata/ext.rb +5 -0
  356. data/lib/datadog/tracing/metadata/metastruct.rb +36 -0
  357. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +42 -0
  358. data/lib/datadog/tracing/metadata.rb +2 -0
  359. data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -1
  360. data/lib/datadog/tracing/sampling/span/rule.rb +0 -1
  361. data/lib/datadog/tracing/span.rb +22 -5
  362. data/lib/datadog/tracing/span_event.rb +124 -4
  363. data/lib/datadog/tracing/span_operation.rb +52 -16
  364. data/lib/datadog/tracing/sync_writer.rb +9 -5
  365. data/lib/datadog/tracing/trace_digest.rb +9 -2
  366. data/lib/datadog/tracing/trace_operation.rb +44 -24
  367. data/lib/datadog/tracing/trace_segment.rb +6 -4
  368. data/lib/datadog/tracing/tracer.rb +60 -12
  369. data/lib/datadog/tracing/transport/http/api.rb +5 -4
  370. data/lib/datadog/tracing/transport/http/client.rb +5 -4
  371. data/lib/datadog/tracing/transport/http/traces.rb +13 -44
  372. data/lib/datadog/tracing/transport/http.rb +13 -70
  373. data/lib/datadog/tracing/transport/serializable_trace.rb +31 -7
  374. data/lib/datadog/tracing/transport/trace_formatter.rb +7 -0
  375. data/lib/datadog/tracing/transport/traces.rb +47 -13
  376. data/lib/datadog/tracing/utils.rb +1 -1
  377. data/lib/datadog/tracing/workers/trace_writer.rb +8 -5
  378. data/lib/datadog/tracing/workers.rb +5 -4
  379. data/lib/datadog/tracing/writer.rb +10 -6
  380. data/lib/datadog/tracing.rb +16 -3
  381. data/lib/datadog/version.rb +2 -2
  382. data/lib/datadog.rb +2 -0
  383. metadata +143 -50
  384. data/ext/datadog_profiling_loader/datadog_profiling_loader.c +0 -142
  385. data/ext/datadog_profiling_loader/extconf.rb +0 -60
  386. data/lib/datadog/appsec/contrib/devise/event.rb +0 -57
  387. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +0 -77
  388. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +0 -54
  389. data/lib/datadog/appsec/contrib/devise/resource.rb +0 -35
  390. data/lib/datadog/appsec/contrib/devise/tracking.rb +0 -57
  391. data/lib/datadog/appsec/contrib/graphql/reactive/multiplex.rb +0 -46
  392. data/lib/datadog/appsec/contrib/patcher.rb +0 -12
  393. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +0 -69
  394. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +0 -47
  395. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +0 -53
  396. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +0 -53
  397. data/lib/datadog/appsec/contrib/sinatra/ext.rb +0 -14
  398. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +0 -48
  399. data/lib/datadog/appsec/monitor/reactive/set_user.rb +0 -45
  400. data/lib/datadog/appsec/processor/actions.rb +0 -49
  401. data/lib/datadog/appsec/processor/context.rb +0 -107
  402. data/lib/datadog/appsec/reactive/address_hash.rb +0 -22
  403. data/lib/datadog/appsec/reactive/engine.rb +0 -47
  404. data/lib/datadog/appsec/reactive/operation.rb +0 -68
  405. data/lib/datadog/appsec/reactive/subscriber.rb +0 -19
  406. data/lib/datadog/appsec/scope.rb +0 -58
  407. data/lib/datadog/appsec/utils/trace_operation.rb +0 -15
  408. data/lib/datadog/core/crashtracking/agent_base_url.rb +0 -21
  409. data/lib/datadog/core/remote/transport/http/api/instance.rb +0 -39
  410. data/lib/datadog/core/remote/transport/http/api/spec.rb +0 -21
  411. data/lib/datadog/core/remote/transport/http/builder.rb +0 -219
  412. data/lib/datadog/core/telemetry/http/env.rb +0 -20
  413. data/lib/datadog/core/telemetry/http/ext.rb +0 -28
  414. data/lib/datadog/core/telemetry/http/response.rb +0 -70
  415. data/lib/datadog/core/telemetry/http/transport.rb +0 -90
  416. data/lib/datadog/di/transport.rb +0 -81
  417. data/lib/datadog/tracing/transport/http/api/spec.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '00617590b3381113b74dde6671802aad74e6ffee0a96737fbc04149515c6a79d'
4
- data.tar.gz: 5bed675aca238d308051ba0a728209e2a4a5ba17f2dc11a52eacee8aaf55a123
3
+ metadata.gz: 28053ce1bca4cce2032cb068c38e99a56524e6ccecec3068c4d26d1e750f9790
4
+ data.tar.gz: 29b6b57640638184370c5176e4da94e74c9770bae8afd7884d1c2baea782350d
5
5
  SHA512:
6
- metadata.gz: 4097896d2d8126418f0827b9c4ad916a003e71ead0919fae2b3586415540f869d58f140865d4c625d20fd4de6a76bcf667156893e7c01f0fee981b7fcb6cafe9
7
- data.tar.gz: ce91b73f91a97db31570bd92dab0ca26bf7a6b849d67b774a4efacea0ec93e19f19c27a3dc3f0f232f2adce6cf5ed13b510c30651c529a6b402137944a6b2e87
6
+ metadata.gz: caf719b7c9a2e5ee3f47ad0c3e02670b90b1f76bfa5de56c10f69169c97b827f4b9e81df822e548d1390f152f15e756c54c200e9f35904138e7c672af99ef30b
7
+ data.tar.gz: eda75252942b8c7d278bab14da78c7752b17b136a3f0bd9ed145512a64b3fb8acb110a8cbbfb280b2bcf7c558409ce83b5d311fce5f019ff34516ceb3883255c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,212 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.17.0] - 2025-06-02
6
+
7
+ ### Added
8
+
9
+ * Tracing: Add support for Rails 8.0. ([#4455][])
10
+
11
+ ### Changed
12
+
13
+ * Core: Improve tracer error reporting when agent responds with error responses to remote configuration requests ([#4669][])
14
+ * Core: Profiling: Upgrade libdatadog dependency to version 18.1 ([#4577][])
15
+ * Dynamic Instrumentation: Improve UI reporting of application and host status ([#4678][])
16
+ * Tracing: Mark AWS integration spans as errored when AWS requests fail ([#4672][])
17
+
18
+ ### Fixed
19
+
20
+ * Error Tracking: remove error tracking support on Ruby 2.6 ([#4665][])
21
+ * Profiling: Fix profiling scheduler reporting corner case during shutdown ([#4679][])
22
+ * Tracing: Fix: The `on_error` warning for HTTP instrumentations ([#4673][])
23
+
24
+ ## [2.16.0] - 2025-05-19
25
+
26
+ ### Added
27
+
28
+ * Core: Add new configuration precedence value `environment` ([#4610][])
29
+ * Core: Add Source Code Integration (SCI) tags in Telemetry app-started event and in each Remote Config request ([#4653][])
30
+ * Core: Tracing: ErrorTracking: Add automatic reporting of handled errors ([#4604][])
31
+ * AppSec: Integrations: Add session tracking and attacker fingerprinting to `devise` and `rails` ([#4644][], [#4625][])
32
+ * Profiling: Add support for Ruby 3.5.0-preview1 ([#4600][])
33
+ * Tracing: Add warning when `on_error` handler is not a `Proc` ([#4611][])
34
+ * Tracing: Integrations: Add option to serialize MongoDB command as JSON ([#4403][])
35
+ * Tracing: Integrations: Add baggage to `karafka` list of propagation styles ([#4614][])
36
+
37
+ ### Changed
38
+
39
+ * Tracing: Adjust trace sampling formula ([#4616][])
40
+ * Profiling: Replace `JSON.fast_generate` with `JSON.generate` ([#4602][])
41
+
42
+ ### Fixed
43
+
44
+ * Core: Fix Ruby warnings when providing a custom time provider ([#4613][])
45
+ * Core: Fix Telemetry configuration in agentless mode to respect the timeout specified for the Agent ([#4590][])
46
+ * Profiling: Fix profiler compatibility with ruby-head (3.5) ([#4656][])
47
+
48
+ ### Removed
49
+
50
+ * Core: Remove duplicated classes from Telemetry transport ([#4575][])
51
+
52
+ ## [2.15.0] - 2025-04-17
53
+
54
+ ### Added
55
+
56
+ * AppSec: Add auto-patching for `activerecord` with sql injection detection ([#4581][])
57
+ * Tracing: Add option for `opensearch` to set resource with relative path ([#4509][])
58
+
59
+ ### Changed
60
+
61
+ * AppSec: Update In-App WAF rules, processors, and scanners ([#4568][])
62
+
63
+ ### Fixed
64
+
65
+ * AppSec: Fix blocked requests not marked correctly when using custom redirect blocking action ([#4580][])
66
+ * AppSec: Fix UTF-8 unsafe payloads in InApp-WAF causing runtime exceptions ([#4573][])
67
+
68
+ ## [2.14.0] - 2025-04-04
69
+
70
+ ### Added
71
+
72
+ * Tracing: Add `karafka` instrumentation with 2.3.0 as the minimum supported version. ([#4147][])
73
+
74
+ ### Fixed
75
+
76
+ * Core: Tracing: default logger arguments for compatibility with previous dd-trace-rb versions ([#4558][])
77
+ * AppSec: Fix `Datadog::Kit::AppSec::Events` SDK methods to correctly handle given string key `usr.login`. ([#4552][])
78
+
79
+ ## [2.13.0] - 2025-04-02
80
+
81
+ ### Added
82
+
83
+ * Core: Add `DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED` experimental option to enable runtime ID collection for runtime metrics. ([#4473][])
84
+ * Tracing: Add support for W3C Baggage API along with automatic extraction and injection, and OpenTelemetry support. ([#4493][], [#4505][])
85
+ * Tracing: Add `DD_APM_TRACING_ENABLED` option to disable APM tracing while keeping other products traces. ([#4498][])
86
+ * Tracing: Add `DD_TRACE_NATIVE_SPAN_EVENTS` option to override span events serialization for agent-less environments. ([#4507][])
87
+ * AppSec: Add stack trace reporting for security events. ([#4526][])
88
+ * AppSec: Improve `devise` instrumentation to support latest Account Takeover (ATO) detection. ([#4433][])
89
+
90
+ ### Changed
91
+
92
+ * Core: Improve `DD_TAGS` configuration handling to be more consistent across Datadog libraries and Agent. ([#4530][])
93
+ * Tracing: Enable by default 128-bit trace ID logging so that trace IDs are consistent across logs and the Datadog UI. ([#4528][])
94
+
95
+ ### Fixed
96
+
97
+ * Core: Fix initialization when the library is partially loaded. ([#4498][])
98
+ * Tracing: Fix trace ID propagation by ensuring extraction of 16-character hex values from the `_dd.p.tid` tag in `x-datadog-tags` header. ([#4534][])
99
+ * Tracing: Profiling: Fix warnings printed by `ruby -w`. ([#4547][], [#4549][])
100
+
101
+ ## [2.12.2] - 2025-03-17
102
+
103
+ ### Fixed
104
+
105
+ * AppSec: Fix custom In-App WAF blocking response that was configured in the UI is now applied correctly ([#4497][])
106
+
107
+ ## [2.12.1] - 2025-03-05
108
+
109
+ ### Fixed
110
+
111
+ * AppSec: Fix `ArgumentError` from ActiveRecord for Ruby < 2.7 ([#4437][])
112
+
113
+ ## [2.12.0] - 2025-02-27
114
+
115
+ ### Added
116
+
117
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `rest-client` ([#4424][])
118
+ * Dynamic Instrumentation: Add support for unix domain sockets ([#4426][])
119
+
120
+ ## [2.11.0] - 2025-02-24
121
+
122
+ ### Added
123
+
124
+ * Tracing: Support `graphql` multiple query errors report via Span Events ([#4177][])
125
+ * Profiling: Enable GVL profiling by default on Ruby 3.2+ ([#4406][])
126
+ * Profiling: Support correlating profiling with OTel API 1.5+ ([#4425][])
127
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `excon` ([#4399][])
128
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `faraday` ([#4391][])
129
+ * AppSec: Deprecate `appsec.track_user_events` configuration setting in favor of `appsec.auto_user_instrumentation` ([#4352][])
130
+ * Dynamic Instrumentation: Add optional trace logging ([#4283][])
131
+
132
+ ### Changed
133
+
134
+ * Increase default timeout for unix domain socket to 30 seconds ([#4411][])
135
+ * Upgrade `libdatadog` to `16.0.1` ([#4353][])
136
+ * Dynamic Instrumentation: Improve path matching with prefixes of probe paths ([#4346][])
137
+ * Dynamic Instrumentation: Improve event reporting with combing status and snapshot events ([#4360][])
138
+
139
+ ### Fixed
140
+
141
+ * Tracing: Fix `rack` to continue trace if only distributed trace is present ([#4398][])
142
+ * AppSec: Fix a memory leak issue for RASP ([#4422][])
143
+ * Dynamic Instrumentation: Fix event submission on forked servers ([#4363][])
144
+
145
+ ### Removed
146
+
147
+ * Tracing: Remove peer services by default ([#3846][])
148
+
149
+ ## [2.10.0] - 2025-02-04
150
+
151
+ ### Added
152
+
153
+ * AppSec: Add configuration option(`Datadog.configuration.appsec.rasp_enabled`) to enable/disable Runtime Application Self-Protection checks ([#4311][])
154
+ * AppSec: Add stack trace when SQL Injection attack is detected ([#4321][])
155
+
156
+ ### Changed
157
+
158
+ * Add `logger` gem as dependency ([#4257][])
159
+ * Bump minimum version of `datadog-ruby_core_source` to 3.4 ([#4323][])
160
+
161
+ ### Fixed
162
+
163
+ * Dynamic instrumentation: Fix report probe status when dynamic instrumentation probes fail to instrument ([#4301][])
164
+ * Dynamic instrumentation: Include variables named `env` in probe snapshots ([#4292][])
165
+ * Fix a concurrency issue during application boot ([#4303][])
166
+
167
+ ## [2.9.0] - 2025-01-15
168
+
169
+ ### Added
170
+
171
+ * Core: add support for Ruby 3.4 ([#4249][])
172
+ * Integrations: add a new option for `ActiveSupport` to disable adding the `cache_key` as a Span Tag with the `cache_key_enabled` option ([#4022][])
173
+
174
+ ### Changed
175
+
176
+ * Dynamic instrumentation: move DI preloading to `datadog/di/preload` ([#4288][])
177
+ * Dynamic instrumentation: dd-trace-rb now reports whether dynamic instrumentation is enabled in startup summary report ([#4285][])
178
+ * Dynamic instrumentation: improve loading of DI components ([#4272][], [#4239][])
179
+ * Dynamic instrumentation: logging of internal conditions is now done on debug level ([#4266][])
180
+ * Dynamic instrumentation: report instrumentation error for line probes when the target file is loaded but not in code tracker registry ([#4208][])
181
+ * Profiling: require datadog-ruby_core_source >= 3.3.7 to ensure Ruby 3.4 support ([#4228][])
182
+
183
+ ### Fixed
184
+
185
+ * Core: fix a crash in crashtracker when agent hostname is an IPv6 address ([#4237][])
186
+ * Profiling: fix allocation profiling + otel tracing causing Ruby crash ([#4240][])
187
+ * Profiling: fix profiling warnings being really hard to silence ([#4232][])
188
+
189
+ ## [2.8.0] - 2024-12-10
190
+
191
+ ### Added
192
+
193
+ * DI: Dynamic instrumentation is now available in Ruby as a Preview
194
+ * AppSec: Add SQL injection detection for ActiveRecord for following adapters: `mysql2`, `postgresql`, and `sqlite3` ([#4167][])
195
+ * Telemetry: Add environment variable to disable logs ([#4153][])
196
+ * Integrations: Add configuration option `on_error` to Elasticsearch tracing ([#4066][])
197
+
198
+ ### Changed
199
+
200
+ * Upgrade libdatadog dependency to 14.3.1 ([#4196][])
201
+ * Profiling: Require Ruby 3.1+ for heap profiling ([#4178][])
202
+ * AppSec: Update libddwaf to 1.18.0.0.0 ([#4164][])
203
+ * Single-step: Lower SSI GLIBC requirements down to 2.17 ([#4137][])
204
+
205
+ ### Fixed
206
+
207
+ * Integrations: Avoid loading `ActiveSupport::Cache::RedisCacheStore`, which tries to load `redis >= 4.0.1` regardless of the version of Redis the host application has installed ([#4197][])
208
+ * Profiling: Fix unsafe initialization when using profiler with otel tracing ([#4195][])
209
+ * Single-step: Add safe NOOP injection script for very old rubies ([#4140][])
210
+
5
211
  ## [2.7.1] - 2024-11-28
6
212
 
7
213
  ### Fixed
@@ -3035,7 +3241,19 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
3035
3241
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3036
3242
 
3037
3243
 
3038
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.7.0...master
3244
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.17.0...master
3245
+ [2.17.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.16.0...v2.17.0
3246
+ [2.16.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.15.0...v2.16.0
3247
+ [2.15.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.14.0...v2.15.0
3248
+ [2.14.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.13.0...v2.14.0
3249
+ [2.13.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.2...v2.13.0
3250
+ [2.12.2]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.1...v2.12.2
3251
+ [2.12.1]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.0...v2.12.1
3252
+ [2.12.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.11.0...v2.12.0
3253
+ [2.11.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.10.0...v2.11.0
3254
+ [2.10.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.9.0...v2.10.0
3255
+ [2.9.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.8.0...v2.9.0
3256
+ [2.8.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.7.1...v2.8.0
3039
3257
  [2.7.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.6.0...v2.7.0
3040
3258
  [2.6.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.5.0...v2.6.0
3041
3259
  [2.5.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.4.0...v2.5.0
@@ -4460,6 +4678,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4460
4678
  [#3837]: https://github.com/DataDog/dd-trace-rb/issues/3837
4461
4679
  [#3839]: https://github.com/DataDog/dd-trace-rb/issues/3839
4462
4680
  [#3841]: https://github.com/DataDog/dd-trace-rb/issues/3841
4681
+ [#3846]: https://github.com/DataDog/dd-trace-rb/issues/3846
4463
4682
  [#3849]: https://github.com/DataDog/dd-trace-rb/issues/3849
4464
4683
  [#3852]: https://github.com/DataDog/dd-trace-rb/issues/3852
4465
4684
  [#3857]: https://github.com/DataDog/dd-trace-rb/issues/3857
@@ -4476,16 +4695,106 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4476
4695
  [#3997]: https://github.com/DataDog/dd-trace-rb/issues/3997
4477
4696
  [#4014]: https://github.com/DataDog/dd-trace-rb/issues/4014
4478
4697
  [#4020]: https://github.com/DataDog/dd-trace-rb/issues/4020
4698
+ [#4022]: https://github.com/DataDog/dd-trace-rb/issues/4022
4479
4699
  [#4024]: https://github.com/DataDog/dd-trace-rb/issues/4024
4480
4700
  [#4027]: https://github.com/DataDog/dd-trace-rb/issues/4027
4481
4701
  [#4033]: https://github.com/DataDog/dd-trace-rb/issues/4033
4482
4702
  [#4065]: https://github.com/DataDog/dd-trace-rb/issues/4065
4703
+ [#4066]: https://github.com/DataDog/dd-trace-rb/issues/4066
4483
4704
  [#4075]: https://github.com/DataDog/dd-trace-rb/issues/4075
4484
4705
  [#4078]: https://github.com/DataDog/dd-trace-rb/issues/4078
4485
4706
  [#4082]: https://github.com/DataDog/dd-trace-rb/issues/4082
4486
4707
  [#4083]: https://github.com/DataDog/dd-trace-rb/issues/4083
4487
4708
  [#4085]: https://github.com/DataDog/dd-trace-rb/issues/4085
4709
+ [#4137]: https://github.com/DataDog/dd-trace-rb/issues/4137
4710
+ [#4140]: https://github.com/DataDog/dd-trace-rb/issues/4140
4711
+ [#4147]: https://github.com/DataDog/dd-trace-rb/issues/4147
4712
+ [#4153]: https://github.com/DataDog/dd-trace-rb/issues/4153
4488
4713
  [#4161]: https://github.com/DataDog/dd-trace-rb/issues/4161
4714
+ [#4164]: https://github.com/DataDog/dd-trace-rb/issues/4164
4715
+ [#4167]: https://github.com/DataDog/dd-trace-rb/issues/4167
4716
+ [#4177]: https://github.com/DataDog/dd-trace-rb/issues/4177
4717
+ [#4178]: https://github.com/DataDog/dd-trace-rb/issues/4178
4718
+ [#4195]: https://github.com/DataDog/dd-trace-rb/issues/4195
4719
+ [#4196]: https://github.com/DataDog/dd-trace-rb/issues/4196
4720
+ [#4197]: https://github.com/DataDog/dd-trace-rb/issues/4197
4721
+ [#4208]: https://github.com/DataDog/dd-trace-rb/issues/4208
4722
+ [#4228]: https://github.com/DataDog/dd-trace-rb/issues/4228
4723
+ [#4232]: https://github.com/DataDog/dd-trace-rb/issues/4232
4724
+ [#4237]: https://github.com/DataDog/dd-trace-rb/issues/4237
4725
+ [#4239]: https://github.com/DataDog/dd-trace-rb/issues/4239
4726
+ [#4240]: https://github.com/DataDog/dd-trace-rb/issues/4240
4727
+ [#4249]: https://github.com/DataDog/dd-trace-rb/issues/4249
4728
+ [#4257]: https://github.com/DataDog/dd-trace-rb/issues/4257
4729
+ [#4266]: https://github.com/DataDog/dd-trace-rb/issues/4266
4730
+ [#4272]: https://github.com/DataDog/dd-trace-rb/issues/4272
4731
+ [#4283]: https://github.com/DataDog/dd-trace-rb/issues/4283
4732
+ [#4285]: https://github.com/DataDog/dd-trace-rb/issues/4285
4733
+ [#4288]: https://github.com/DataDog/dd-trace-rb/issues/4288
4734
+ [#4292]: https://github.com/DataDog/dd-trace-rb/issues/4292
4735
+ [#4301]: https://github.com/DataDog/dd-trace-rb/issues/4301
4736
+ [#4303]: https://github.com/DataDog/dd-trace-rb/issues/4303
4737
+ [#4311]: https://github.com/DataDog/dd-trace-rb/issues/4311
4738
+ [#4321]: https://github.com/DataDog/dd-trace-rb/issues/4321
4739
+ [#4323]: https://github.com/DataDog/dd-trace-rb/issues/4323
4740
+ [#4346]: https://github.com/DataDog/dd-trace-rb/issues/4346
4741
+ [#4352]: https://github.com/DataDog/dd-trace-rb/issues/4352
4742
+ [#4353]: https://github.com/DataDog/dd-trace-rb/issues/4353
4743
+ [#4360]: https://github.com/DataDog/dd-trace-rb/issues/4360
4744
+ [#4363]: https://github.com/DataDog/dd-trace-rb/issues/4363
4745
+ [#4391]: https://github.com/DataDog/dd-trace-rb/issues/4391
4746
+ [#4398]: https://github.com/DataDog/dd-trace-rb/issues/4398
4747
+ [#4399]: https://github.com/DataDog/dd-trace-rb/issues/4399
4748
+ [#4403]: https://github.com/DataDog/dd-trace-rb/issues/4403
4749
+ [#4406]: https://github.com/DataDog/dd-trace-rb/issues/4406
4750
+ [#4411]: https://github.com/DataDog/dd-trace-rb/issues/4411
4751
+ [#4422]: https://github.com/DataDog/dd-trace-rb/issues/4422
4752
+ [#4424]: https://github.com/DataDog/dd-trace-rb/issues/4424
4753
+ [#4425]: https://github.com/DataDog/dd-trace-rb/issues/4425
4754
+ [#4426]: https://github.com/DataDog/dd-trace-rb/issues/4426
4755
+ [#4433]: https://github.com/DataDog/dd-trace-rb/issues/4433
4756
+ [#4437]: https://github.com/DataDog/dd-trace-rb/issues/4437
4757
+ [#4455]: https://github.com/DataDog/dd-trace-rb/issues/4455
4758
+ [#4473]: https://github.com/DataDog/dd-trace-rb/issues/4473
4759
+ [#4493]: https://github.com/DataDog/dd-trace-rb/issues/4493
4760
+ [#4497]: https://github.com/DataDog/dd-trace-rb/issues/4497
4761
+ [#4498]: https://github.com/DataDog/dd-trace-rb/issues/4498
4762
+ [#4505]: https://github.com/DataDog/dd-trace-rb/issues/4505
4763
+ [#4507]: https://github.com/DataDog/dd-trace-rb/issues/4507
4764
+ [#4509]: https://github.com/DataDog/dd-trace-rb/issues/4509
4765
+ [#4526]: https://github.com/DataDog/dd-trace-rb/issues/4526
4766
+ [#4528]: https://github.com/DataDog/dd-trace-rb/issues/4528
4767
+ [#4530]: https://github.com/DataDog/dd-trace-rb/issues/4530
4768
+ [#4534]: https://github.com/DataDog/dd-trace-rb/issues/4534
4769
+ [#4547]: https://github.com/DataDog/dd-trace-rb/issues/4547
4770
+ [#4549]: https://github.com/DataDog/dd-trace-rb/issues/4549
4771
+ [#4552]: https://github.com/DataDog/dd-trace-rb/issues/4552
4772
+ [#4558]: https://github.com/DataDog/dd-trace-rb/issues/4558
4773
+ [#4568]: https://github.com/DataDog/dd-trace-rb/issues/4568
4774
+ [#4573]: https://github.com/DataDog/dd-trace-rb/issues/4573
4775
+ [#4575]: https://github.com/DataDog/dd-trace-rb/issues/4575
4776
+ [#4577]: https://github.com/DataDog/dd-trace-rb/issues/4577
4777
+ [#4580]: https://github.com/DataDog/dd-trace-rb/issues/4580
4778
+ [#4581]: https://github.com/DataDog/dd-trace-rb/issues/4581
4779
+ [#4590]: https://github.com/DataDog/dd-trace-rb/issues/4590
4780
+ [#4600]: https://github.com/DataDog/dd-trace-rb/issues/4600
4781
+ [#4602]: https://github.com/DataDog/dd-trace-rb/issues/4602
4782
+ [#4604]: https://github.com/DataDog/dd-trace-rb/issues/4604
4783
+ [#4610]: https://github.com/DataDog/dd-trace-rb/issues/4610
4784
+ [#4611]: https://github.com/DataDog/dd-trace-rb/issues/4611
4785
+ [#4613]: https://github.com/DataDog/dd-trace-rb/issues/4613
4786
+ [#4614]: https://github.com/DataDog/dd-trace-rb/issues/4614
4787
+ [#4616]: https://github.com/DataDog/dd-trace-rb/issues/4616
4788
+ [#4625]: https://github.com/DataDog/dd-trace-rb/issues/4625
4789
+ [#4644]: https://github.com/DataDog/dd-trace-rb/issues/4644
4790
+ [#4653]: https://github.com/DataDog/dd-trace-rb/issues/4653
4791
+ [#4656]: https://github.com/DataDog/dd-trace-rb/issues/4656
4792
+ [#4665]: https://github.com/DataDog/dd-trace-rb/issues/4665
4793
+ [#4669]: https://github.com/DataDog/dd-trace-rb/issues/4669
4794
+ [#4672]: https://github.com/DataDog/dd-trace-rb/issues/4672
4795
+ [#4673]: https://github.com/DataDog/dd-trace-rb/issues/4673
4796
+ [#4678]: https://github.com/DataDog/dd-trace-rb/issues/4678
4797
+ [#4679]: https://github.com/DataDog/dd-trace-rb/issues/4679
4489
4798
  [@AdrianLC]: https://github.com/AdrianLC
4490
4799
  [@Azure7111]: https://github.com/Azure7111
4491
4800
  [@BabyGroot]: https://github.com/BabyGroot
@@ -5,13 +5,13 @@
5
5
  #include <ruby.h>
6
6
 
7
7
  // Contains the operating-system specific identifier needed to fetch CPU-time, and a flag to indicate if we failed to fetch it
8
- typedef struct thread_cpu_time_id {
8
+ typedef struct {
9
9
  bool valid;
10
10
  clockid_t clock_id;
11
11
  } thread_cpu_time_id;
12
12
 
13
13
  // Contains the current cpu time, and a flag to indicate if we failed to fetch it
14
- typedef struct thread_cpu_time {
14
+ typedef struct {
15
15
  bool valid;
16
16
  long result_ns;
17
17
  } thread_cpu_time;