ddtrace 1.12.1 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (448) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +388 -10
  3. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +3 -5
  4. data/ext/ddtrace_profiling_native_extension/clock_id.h +0 -3
  5. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +3 -22
  6. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +0 -1
  7. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +41 -6
  8. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +3 -0
  9. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +76 -24
  10. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +1 -1
  11. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +292 -27
  12. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +1 -1
  13. data/ext/ddtrace_profiling_native_extension/extconf.rb +40 -10
  14. data/ext/ddtrace_profiling_native_extension/http_transport.c +48 -16
  15. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.c +42 -0
  16. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +6 -0
  17. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +1 -1
  18. data/ext/ddtrace_profiling_native_extension/pid_controller.c +57 -0
  19. data/ext/ddtrace_profiling_native_extension/pid_controller.h +45 -0
  20. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +136 -32
  21. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +12 -0
  22. data/ext/ddtrace_profiling_native_extension/profiling.c +1 -2
  23. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +81 -50
  24. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +13 -3
  25. data/ext/ddtrace_profiling_native_extension/time_helpers.c +40 -4
  26. data/ext/ddtrace_profiling_native_extension/time_helpers.h +14 -0
  27. data/lib/datadog/appsec/assets/waf_rules/processors.json +92 -0
  28. data/lib/datadog/appsec/assets/waf_rules/recommended.json +698 -75
  29. data/lib/datadog/appsec/assets/waf_rules/scanners.json +114 -0
  30. data/lib/datadog/appsec/assets/waf_rules/strict.json +98 -8
  31. data/lib/datadog/appsec/assets.rb +8 -0
  32. data/lib/datadog/appsec/component.rb +21 -2
  33. data/lib/datadog/appsec/configuration/settings.rb +167 -189
  34. data/lib/datadog/appsec/configuration.rb +0 -79
  35. data/lib/datadog/appsec/contrib/auto_instrument.rb +2 -4
  36. data/lib/datadog/appsec/contrib/devise/event.rb +57 -0
  37. data/lib/datadog/appsec/contrib/devise/ext.rb +13 -0
  38. data/lib/datadog/appsec/contrib/devise/integration.rb +42 -0
  39. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +76 -0
  40. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +54 -0
  41. data/lib/datadog/appsec/contrib/devise/patcher.rb +45 -0
  42. data/lib/datadog/appsec/contrib/devise/resource.rb +35 -0
  43. data/lib/datadog/appsec/contrib/devise/tracking.rb +49 -0
  44. data/lib/datadog/appsec/contrib/rack/ext.rb +2 -1
  45. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +6 -2
  46. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +8 -6
  47. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +3 -8
  48. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +3 -6
  49. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +3 -6
  50. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +3 -2
  51. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +36 -17
  52. data/lib/datadog/appsec/contrib/rails/ext.rb +3 -2
  53. data/lib/datadog/appsec/contrib/rails/framework.rb +1 -3
  54. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +3 -2
  55. data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -11
  56. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +3 -6
  57. data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -1
  58. data/lib/datadog/appsec/contrib/sinatra/framework.rb +1 -3
  59. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +6 -4
  60. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +13 -7
  61. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +3 -6
  62. data/lib/datadog/appsec/event.rb +106 -50
  63. data/lib/datadog/appsec/extensions.rb +1 -130
  64. data/lib/datadog/appsec/monitor/gateway/watcher.rb +3 -3
  65. data/lib/datadog/appsec/monitor/reactive/set_user.rb +3 -6
  66. data/lib/datadog/appsec/processor/actions.rb +49 -0
  67. data/lib/datadog/appsec/processor/rule_loader.rb +60 -0
  68. data/lib/datadog/appsec/processor/rule_merger.rb +22 -2
  69. data/lib/datadog/appsec/processor.rb +35 -7
  70. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  71. data/lib/datadog/appsec/remote.rb +17 -11
  72. data/lib/datadog/appsec/response.rb +82 -4
  73. data/lib/datadog/appsec/sample_rate.rb +21 -0
  74. data/lib/datadog/appsec.rb +3 -4
  75. data/lib/datadog/core/backport.rb +51 -0
  76. data/lib/datadog/core/configuration/agent_settings_resolver.rb +38 -29
  77. data/lib/datadog/core/configuration/base.rb +6 -16
  78. data/lib/datadog/core/configuration/components.rb +15 -3
  79. data/lib/datadog/core/configuration/ext.rb +28 -5
  80. data/lib/datadog/core/configuration/option.rb +269 -21
  81. data/lib/datadog/core/configuration/option_definition.rb +73 -32
  82. data/lib/datadog/core/configuration/options.rb +27 -15
  83. data/lib/datadog/core/configuration/settings.rb +182 -102
  84. data/lib/datadog/core/configuration.rb +4 -0
  85. data/lib/datadog/core/diagnostics/environment_logger.rb +130 -234
  86. data/lib/datadog/core/environment/execution.rb +103 -0
  87. data/lib/datadog/core/environment/ext.rb +13 -11
  88. data/lib/datadog/core/environment/variable_helpers.rb +0 -69
  89. data/lib/datadog/core/environment/yjit.rb +58 -0
  90. data/lib/datadog/core/error.rb +1 -0
  91. data/lib/datadog/core/git/ext.rb +26 -22
  92. data/lib/datadog/core/logging/ext.rb +3 -1
  93. data/lib/datadog/core/metrics/ext.rb +7 -5
  94. data/lib/datadog/core/remote/client/capabilities.rb +6 -1
  95. data/lib/datadog/core/remote/client.rb +3 -0
  96. data/lib/datadog/core/remote/component.rb +27 -36
  97. data/lib/datadog/core/remote/configuration/content.rb +28 -1
  98. data/lib/datadog/core/remote/configuration/repository.rb +3 -1
  99. data/lib/datadog/core/remote/ext.rb +1 -1
  100. data/lib/datadog/core/remote/negotiation.rb +19 -6
  101. data/lib/datadog/core/remote/transport/config.rb +60 -0
  102. data/lib/datadog/core/remote/transport/http/api/instance.rb +39 -0
  103. data/lib/datadog/core/remote/transport/http/api/spec.rb +21 -0
  104. data/lib/datadog/core/remote/transport/http/api.rb +58 -0
  105. data/lib/datadog/core/remote/transport/http/builder.rb +219 -0
  106. data/lib/datadog/core/remote/transport/http/client.rb +48 -0
  107. data/lib/datadog/core/remote/transport/http/config.rb +280 -0
  108. data/lib/datadog/core/remote/transport/http/negotiation.rb +146 -0
  109. data/lib/datadog/core/remote/transport/http.rb +179 -0
  110. data/lib/datadog/core/{transport → remote/transport}/negotiation.rb +25 -23
  111. data/lib/datadog/core/remote/worker.rb +4 -1
  112. data/lib/datadog/core/runtime/ext.rb +22 -12
  113. data/lib/datadog/core/runtime/metrics.rb +43 -0
  114. data/lib/datadog/core/telemetry/client.rb +12 -2
  115. data/lib/datadog/core/telemetry/collector.rb +13 -4
  116. data/lib/datadog/core/telemetry/emitter.rb +4 -2
  117. data/lib/datadog/core/telemetry/event.rb +19 -4
  118. data/lib/datadog/core/telemetry/ext.rb +4 -1
  119. data/lib/datadog/core/telemetry/heartbeat.rb +2 -4
  120. data/lib/datadog/core/telemetry/http/ext.rb +10 -8
  121. data/lib/datadog/core/telemetry/http/transport.rb +2 -0
  122. data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +41 -0
  123. data/lib/datadog/core/telemetry/v2/request.rb +29 -0
  124. data/lib/datadog/core/transport/ext.rb +47 -0
  125. data/lib/datadog/core/transport/http/adapters/net.rb +168 -0
  126. data/lib/datadog/core/transport/http/adapters/registry.rb +29 -0
  127. data/lib/datadog/core/transport/http/adapters/test.rb +89 -0
  128. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +83 -0
  129. data/lib/datadog/core/transport/http/api/endpoint.rb +31 -0
  130. data/lib/datadog/core/transport/http/api/fallbacks.rb +26 -0
  131. data/lib/datadog/core/transport/http/api/map.rb +18 -0
  132. data/lib/datadog/core/transport/http/env.rb +62 -0
  133. data/lib/datadog/core/transport/http/response.rb +60 -0
  134. data/lib/datadog/core/transport/parcel.rb +22 -0
  135. data/lib/datadog/core/transport/request.rb +17 -0
  136. data/lib/datadog/core/transport/response.rb +64 -0
  137. data/lib/datadog/core/utils/duration.rb +52 -0
  138. data/lib/datadog/core/utils/hash.rb +47 -0
  139. data/lib/datadog/core/utils/network.rb +1 -1
  140. data/lib/datadog/core/utils/safe_dup.rb +27 -20
  141. data/lib/datadog/core/utils.rb +1 -1
  142. data/lib/datadog/core/workers/async.rb +3 -2
  143. data/lib/datadog/core/workers/polling.rb +2 -2
  144. data/lib/datadog/kit/appsec/events.rb +139 -89
  145. data/lib/datadog/kit/enable_core_dumps.rb +5 -6
  146. data/lib/datadog/kit/identity.rb +80 -65
  147. data/lib/datadog/opentelemetry/api/context.rb +10 -3
  148. data/lib/datadog/opentelemetry/sdk/propagator.rb +2 -1
  149. data/lib/datadog/opentelemetry/sdk/span_processor.rb +48 -5
  150. data/lib/datadog/opentelemetry/sdk/trace/span.rb +167 -0
  151. data/lib/datadog/opentelemetry/trace.rb +58 -0
  152. data/lib/datadog/opentelemetry.rb +1 -0
  153. data/lib/datadog/opentracer/text_map_propagator.rb +2 -1
  154. data/lib/datadog/opentracer.rb +9 -0
  155. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +16 -17
  156. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +3 -1
  157. data/lib/datadog/profiling/collectors/thread_context.rb +17 -2
  158. data/lib/datadog/profiling/component.rb +69 -94
  159. data/lib/datadog/profiling/diagnostics/environment_logger.rb +39 -0
  160. data/lib/datadog/profiling/exporter.rb +5 -1
  161. data/lib/datadog/profiling/ext.rb +0 -12
  162. data/lib/datadog/profiling/flush.rb +7 -5
  163. data/lib/datadog/profiling/http_transport.rb +19 -6
  164. data/lib/datadog/profiling/load_native_extension.rb +7 -1
  165. data/lib/datadog/profiling/native_extension.rb +0 -21
  166. data/lib/datadog/profiling/profiler.rb +36 -13
  167. data/lib/datadog/profiling/scheduler.rb +16 -9
  168. data/lib/datadog/profiling.rb +16 -78
  169. data/lib/datadog/tracing/component.rb +70 -11
  170. data/lib/datadog/tracing/configuration/agent_settings_resolver.rb +13 -0
  171. data/lib/datadog/tracing/configuration/dynamic/option.rb +71 -0
  172. data/lib/datadog/tracing/configuration/dynamic.rb +64 -0
  173. data/lib/datadog/tracing/configuration/ext.rb +40 -32
  174. data/lib/datadog/tracing/configuration/http.rb +74 -0
  175. data/lib/datadog/tracing/configuration/settings.rb +134 -98
  176. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +9 -6
  177. data/lib/datadog/tracing/contrib/action_cable/ext.rb +20 -18
  178. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +9 -6
  179. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +20 -18
  180. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +9 -7
  181. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -8
  182. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +9 -6
  183. data/lib/datadog/tracing/contrib/action_view/ext.rb +12 -10
  184. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +13 -7
  185. data/lib/datadog/tracing/contrib/active_job/ext.rb +25 -23
  186. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +1 -1
  187. data/lib/datadog/tracing/contrib/active_job/patcher.rb +1 -1
  188. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +9 -6
  189. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +12 -10
  190. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +18 -11
  191. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +9 -7
  192. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +2 -6
  193. data/lib/datadog/tracing/contrib/active_record/ext.rb +17 -15
  194. data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
  195. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +106 -202
  196. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +3 -0
  197. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +9 -7
  198. data/lib/datadog/tracing/contrib/active_support/ext.rb +18 -16
  199. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +14 -7
  200. data/lib/datadog/tracing/contrib/aws/ext.rb +37 -24
  201. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +16 -5
  202. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +3 -2
  203. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +14 -14
  204. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +4 -2
  205. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +3 -10
  206. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +2 -1
  207. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +8 -1
  208. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +22 -0
  209. data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
  210. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +20 -7
  211. data/lib/datadog/tracing/contrib/dalli/ext.rb +26 -11
  212. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +17 -8
  213. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +13 -7
  214. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +16 -14
  215. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +14 -7
  216. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +21 -15
  217. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +104 -99
  218. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +16 -9
  219. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +48 -3
  220. data/lib/datadog/tracing/contrib/ethon/ext.rb +19 -11
  221. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +6 -3
  222. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +19 -10
  223. data/lib/datadog/tracing/contrib/excon/ext.rb +16 -8
  224. data/lib/datadog/tracing/contrib/excon/middleware.rb +25 -5
  225. data/lib/datadog/tracing/contrib/ext.rb +26 -1
  226. data/lib/datadog/tracing/contrib/extensions.rb +32 -0
  227. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +20 -10
  228. data/lib/datadog/tracing/contrib/faraday/ext.rb +16 -8
  229. data/lib/datadog/tracing/contrib/faraday/middleware.rb +21 -5
  230. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +8 -6
  231. data/lib/datadog/tracing/contrib/grape/ext.rb +16 -14
  232. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +8 -6
  233. data/lib/datadog/tracing/contrib/graphql/ext.rb +7 -5
  234. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +39 -9
  235. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +39 -20
  236. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +37 -18
  237. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +0 -4
  238. data/lib/datadog/tracing/contrib/grpc/ext.rb +16 -13
  239. data/lib/datadog/tracing/contrib/grpc/formatting.rb +127 -0
  240. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +3 -2
  241. data/lib/datadog/tracing/contrib/hanami/ext.rb +10 -8
  242. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +5 -8
  243. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +33 -11
  244. data/lib/datadog/tracing/contrib/http/ext.rb +16 -9
  245. data/lib/datadog/tracing/contrib/http/instrumentation.rb +27 -7
  246. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +33 -11
  247. data/lib/datadog/tracing/contrib/httpclient/ext.rb +17 -9
  248. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +22 -5
  249. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +33 -11
  250. data/lib/datadog/tracing/contrib/httprb/ext.rb +16 -9
  251. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +22 -5
  252. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +9 -6
  253. data/lib/datadog/tracing/contrib/kafka/ext.rb +42 -39
  254. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +3 -2
  255. data/lib/datadog/tracing/contrib/lograge/ext.rb +3 -1
  256. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +2 -17
  257. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +14 -7
  258. data/lib/datadog/tracing/contrib/mongodb/ext.rb +20 -16
  259. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +16 -5
  260. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +17 -14
  261. data/lib/datadog/tracing/contrib/mysql2/ext.rb +15 -10
  262. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -6
  263. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +52 -0
  264. data/lib/datadog/tracing/contrib/opensearch/ext.rb +37 -0
  265. data/lib/datadog/tracing/contrib/opensearch/integration.rb +44 -0
  266. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +135 -0
  267. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +81 -0
  268. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +22 -14
  269. data/lib/datadog/tracing/contrib/pg/ext.rb +22 -19
  270. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +38 -5
  271. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +14 -7
  272. data/lib/datadog/tracing/contrib/presto/ext.rb +25 -20
  273. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +14 -5
  274. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +12 -10
  275. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +1 -1
  276. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +12 -8
  277. data/lib/datadog/tracing/contrib/qless/ext.rb +14 -12
  278. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +21 -12
  279. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +9 -7
  280. data/lib/datadog/tracing/contrib/racecar/event.rb +5 -5
  281. data/lib/datadog/tracing/contrib/racecar/ext.rb +20 -18
  282. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +16 -12
  283. data/lib/datadog/tracing/contrib/rack/ext.rb +18 -16
  284. data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -0
  285. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +63 -0
  286. data/lib/datadog/tracing/contrib/rack/middlewares.rb +8 -49
  287. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +19 -15
  288. data/lib/datadog/tracing/contrib/rails/ext.rb +7 -5
  289. data/lib/datadog/tracing/contrib/rails/log_injection.rb +7 -10
  290. data/lib/datadog/tracing/contrib/rails/patcher.rb +10 -41
  291. data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -3
  292. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +13 -10
  293. data/lib/datadog/tracing/contrib/rake/ext.rb +14 -12
  294. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +17 -9
  295. data/lib/datadog/tracing/contrib/redis/ext.rb +22 -15
  296. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +3 -38
  297. data/lib/datadog/tracing/contrib/redis/tags.rb +16 -7
  298. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +46 -33
  299. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +13 -7
  300. data/lib/datadog/tracing/contrib/resque/ext.rb +9 -7
  301. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +16 -9
  302. data/lib/datadog/tracing/contrib/rest_client/ext.rb +15 -8
  303. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +25 -5
  304. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +9 -6
  305. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +3 -2
  306. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +3 -1
  307. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +4 -20
  308. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +9 -6
  309. data/lib/datadog/tracing/contrib/sequel/ext.rb +10 -8
  310. data/lib/datadog/tracing/contrib/sequel/utils.rb +7 -7
  311. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +14 -8
  312. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +14 -12
  313. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +18 -11
  314. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +32 -30
  315. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +11 -9
  316. data/lib/datadog/tracing/contrib/sinatra/env.rb +0 -17
  317. data/lib/datadog/tracing/contrib/sinatra/ext.rb +21 -19
  318. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -14
  319. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +14 -8
  320. data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -0
  321. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +1 -1
  322. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +74 -10
  323. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +9 -6
  324. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +9 -6
  325. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +15 -13
  326. data/lib/datadog/tracing/contrib/utils/database.rb +5 -3
  327. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +11 -11
  328. data/lib/datadog/tracing/contrib.rb +1 -0
  329. data/lib/datadog/tracing/correlation.rb +29 -12
  330. data/lib/datadog/tracing/diagnostics/environment_logger.rb +165 -0
  331. data/lib/datadog/tracing/diagnostics/ext.rb +21 -19
  332. data/lib/datadog/tracing/distributed/b3_multi.rb +2 -2
  333. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  334. data/lib/datadog/tracing/distributed/datadog.rb +0 -1
  335. data/lib/datadog/tracing/distributed/propagation.rb +35 -34
  336. data/lib/datadog/tracing/distributed/trace_context.rb +52 -17
  337. data/lib/datadog/tracing/metadata/ext.rb +9 -6
  338. data/lib/datadog/tracing/metadata/tagging.rb +3 -3
  339. data/lib/datadog/tracing/remote.rb +78 -0
  340. data/lib/datadog/tracing/sampling/rule_sampler.rb +29 -0
  341. data/lib/datadog/tracing/span_operation.rb +3 -15
  342. data/lib/datadog/tracing/sync_writer.rb +3 -3
  343. data/lib/datadog/tracing/trace_digest.rb +31 -0
  344. data/lib/datadog/tracing/trace_operation.rb +16 -3
  345. data/lib/datadog/tracing/trace_segment.rb +5 -2
  346. data/lib/datadog/tracing/tracer.rb +12 -1
  347. data/lib/datadog/{core → tracing}/transport/http/api/instance.rb +1 -1
  348. data/lib/datadog/{core → tracing}/transport/http/api/spec.rb +1 -1
  349. data/lib/datadog/tracing/transport/http/api.rb +43 -0
  350. data/lib/datadog/{core → tracing}/transport/http/builder.rb +13 -68
  351. data/lib/datadog/tracing/transport/http/client.rb +57 -0
  352. data/lib/datadog/tracing/transport/http/statistics.rb +47 -0
  353. data/lib/datadog/tracing/transport/http/traces.rb +152 -0
  354. data/lib/datadog/tracing/transport/http.rb +124 -0
  355. data/lib/datadog/tracing/transport/io/client.rb +89 -0
  356. data/lib/datadog/tracing/transport/io/response.rb +27 -0
  357. data/lib/datadog/tracing/transport/io/traces.rb +101 -0
  358. data/lib/datadog/tracing/transport/io.rb +30 -0
  359. data/lib/datadog/tracing/transport/serializable_trace.rb +126 -0
  360. data/lib/datadog/tracing/transport/statistics.rb +77 -0
  361. data/lib/datadog/tracing/transport/trace_formatter.rb +209 -0
  362. data/lib/datadog/tracing/transport/traces.rb +224 -0
  363. data/lib/datadog/tracing/workers/trace_writer.rb +6 -4
  364. data/lib/datadog/tracing/workers.rb +4 -2
  365. data/lib/datadog/tracing/writer.rb +5 -2
  366. data/lib/ddtrace/transport/ext.rb +22 -14
  367. data/lib/ddtrace/version.rb +9 -12
  368. data/lib/ddtrace.rb +1 -1
  369. metadata +101 -93
  370. data/lib/datadog/ci/configuration/components.rb +0 -32
  371. data/lib/datadog/ci/configuration/settings.rb +0 -53
  372. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +0 -33
  373. data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -20
  374. data/lib/datadog/ci/contrib/cucumber/formatter.rb +0 -94
  375. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +0 -28
  376. data/lib/datadog/ci/contrib/cucumber/integration.rb +0 -47
  377. data/lib/datadog/ci/contrib/cucumber/patcher.rb +0 -27
  378. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +0 -33
  379. data/lib/datadog/ci/contrib/rspec/example.rb +0 -68
  380. data/lib/datadog/ci/contrib/rspec/ext.rb +0 -19
  381. data/lib/datadog/ci/contrib/rspec/integration.rb +0 -48
  382. data/lib/datadog/ci/contrib/rspec/patcher.rb +0 -27
  383. data/lib/datadog/ci/ext/app_types.rb +0 -9
  384. data/lib/datadog/ci/ext/environment.rb +0 -575
  385. data/lib/datadog/ci/ext/settings.rb +0 -10
  386. data/lib/datadog/ci/ext/test.rb +0 -35
  387. data/lib/datadog/ci/extensions.rb +0 -19
  388. data/lib/datadog/ci/flush.rb +0 -38
  389. data/lib/datadog/ci/test.rb +0 -81
  390. data/lib/datadog/ci.rb +0 -20
  391. data/lib/datadog/core/configuration/dependency_resolver.rb +0 -28
  392. data/lib/datadog/core/configuration/option_definition_set.rb +0 -22
  393. data/lib/datadog/core/configuration/option_set.rb +0 -10
  394. data/lib/datadog/core/transport/config.rb +0 -58
  395. data/lib/datadog/core/transport/http/api.rb +0 -57
  396. data/lib/datadog/core/transport/http/client.rb +0 -45
  397. data/lib/datadog/core/transport/http/config.rb +0 -268
  398. data/lib/datadog/core/transport/http/negotiation.rb +0 -144
  399. data/lib/datadog/core/transport/http.rb +0 -169
  400. data/lib/datadog/core/utils/object_set.rb +0 -43
  401. data/lib/datadog/core/utils/string_table.rb +0 -47
  402. data/lib/datadog/profiling/backtrace_location.rb +0 -34
  403. data/lib/datadog/profiling/buffer.rb +0 -43
  404. data/lib/datadog/profiling/collectors/old_stack.rb +0 -301
  405. data/lib/datadog/profiling/encoding/profile.rb +0 -41
  406. data/lib/datadog/profiling/event.rb +0 -15
  407. data/lib/datadog/profiling/events/stack.rb +0 -82
  408. data/lib/datadog/profiling/old_recorder.rb +0 -107
  409. data/lib/datadog/profiling/pprof/builder.rb +0 -125
  410. data/lib/datadog/profiling/pprof/converter.rb +0 -102
  411. data/lib/datadog/profiling/pprof/message_set.rb +0 -16
  412. data/lib/datadog/profiling/pprof/payload.rb +0 -20
  413. data/lib/datadog/profiling/pprof/pprof.proto +0 -212
  414. data/lib/datadog/profiling/pprof/pprof_pb.rb +0 -81
  415. data/lib/datadog/profiling/pprof/stack_sample.rb +0 -139
  416. data/lib/datadog/profiling/pprof/string_table.rb +0 -12
  417. data/lib/datadog/profiling/pprof/template.rb +0 -118
  418. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +0 -43
  419. data/lib/datadog/profiling/trace_identifiers/helper.rb +0 -45
  420. data/lib/datadog/tracing/contrib/sinatra/headers.rb +0 -35
  421. data/lib/ddtrace/transport/http/adapters/net.rb +0 -168
  422. data/lib/ddtrace/transport/http/adapters/registry.rb +0 -27
  423. data/lib/ddtrace/transport/http/adapters/test.rb +0 -85
  424. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -77
  425. data/lib/ddtrace/transport/http/api/endpoint.rb +0 -29
  426. data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -24
  427. data/lib/ddtrace/transport/http/api/instance.rb +0 -35
  428. data/lib/ddtrace/transport/http/api/map.rb +0 -16
  429. data/lib/ddtrace/transport/http/api/spec.rb +0 -17
  430. data/lib/ddtrace/transport/http/api.rb +0 -39
  431. data/lib/ddtrace/transport/http/builder.rb +0 -176
  432. data/lib/ddtrace/transport/http/client.rb +0 -52
  433. data/lib/ddtrace/transport/http/env.rb +0 -58
  434. data/lib/ddtrace/transport/http/response.rb +0 -58
  435. data/lib/ddtrace/transport/http/statistics.rb +0 -43
  436. data/lib/ddtrace/transport/http/traces.rb +0 -144
  437. data/lib/ddtrace/transport/http.rb +0 -117
  438. data/lib/ddtrace/transport/io/client.rb +0 -85
  439. data/lib/ddtrace/transport/io/response.rb +0 -25
  440. data/lib/ddtrace/transport/io/traces.rb +0 -99
  441. data/lib/ddtrace/transport/io.rb +0 -28
  442. data/lib/ddtrace/transport/parcel.rb +0 -20
  443. data/lib/ddtrace/transport/request.rb +0 -15
  444. data/lib/ddtrace/transport/response.rb +0 -60
  445. data/lib/ddtrace/transport/serializable_trace.rb +0 -122
  446. data/lib/ddtrace/transport/statistics.rb +0 -75
  447. data/lib/ddtrace/transport/trace_formatter.rb +0 -198
  448. data/lib/ddtrace/transport/traces.rb +0 -216
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7755d42a1b84dda8386f13ce2edc3854f09e1e227d5786546b19ea31a60cc03b
4
- data.tar.gz: 57ee6f72d29b72305c8272b98dc4b7d08a66f9463820d9963aa487723094d1f7
3
+ metadata.gz: 69e775ab06a83ce14114a7287056e3d3fb575191b7ff6ccdc5c7b33f7fd58172
4
+ data.tar.gz: 13b607a4e29e516be4988dca7827eca09b79e968cf98e0641a155039d2ec3273
5
5
  SHA512:
6
- metadata.gz: e9c5d234fb1261e202bf8d4ae00417f31f325dbcc9ceb9081277ac96a04114316456fed6d21f3de343dbe6192e4a0ceccb4504e5b1a59bbb44fe2666042a7890
7
- data.tar.gz: effa42b2181771676d69ea5efb946cd6bd4617853b36f75b9655a710d369f57a200dded1cdc8b86642eaf60174c20b44da3b3de29fbfddfd76c6845364927fe2
6
+ metadata.gz: d345e07c8b0a654974c51a7457b3fc6d3d7eb99226cfc5555d6bc8ee3e65b17b3782b1e582591be925297c09dd104108007b2081e28ee43c103f8f2fec3ffe5b
7
+ data.tar.gz: '085ea801f5fae16ed58cd79bab86839cd1aa23fa09261b39219264f603455633e19dbb8f60d647e407c7218d7d00052ef7b593405ec5af828af56ffecd58227d'
data/CHANGELOG.md CHANGED
@@ -2,21 +2,246 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [1.18.0] - 2023-12-07
6
+
7
+ ### Added
8
+
9
+ * Tracing: Support lib injection for ARM64 architecture ([#3307][])
10
+ * Tracing: Add `error_handler` for `pg` instrumentation ([#3303][])
11
+ * Appsec: Enable "Trusted IPs", a.k.a passlist with optional monitoring ([#3229][])
12
+
13
+ ### Changed
14
+
15
+ * Mark ddtrace threads as fork-safe ([#3279][])
16
+ * Bump `datadog-ci` dependency to 0.5.0 ([#3308][])
17
+ * Bump `debase-ruby_core_source` dependency to 3.2.3 ([#3284][])
18
+ * Profiling: Disable profiler on Ruby 3.3 when running with RUBY_MN_THREADS=1 ([#3259][])
19
+ * Profiling: Run without "no signals" workaround on passenger 6.0.19+ ([#3280][])
20
+
21
+ ### Fixed
22
+
23
+ * Tracing: Fix `pg` instrumentation `enabled` settings ([#3271][])
24
+ * Profiling: Fix potential crash by importing upstream `rb_profile_frames` fix ([#3289][])
25
+ * Appsec: Call `devise` RegistrationsController block ([#3286][])
26
+
27
+ ## [1.17.0] - 2023-11-22
28
+
29
+ For W3C Trace Context, this release adds [`tracecontext`](https://www.w3.org/TR/trace-context/) to the default trace propagation extraction and injection styles. The new defaults are:
30
+ * Extraction: `Datadog,b3multi,b3,tracecontext`
31
+ * Injection: `Datadog,tracecontext`
32
+
33
+ And to increase interoperability with `tracecontext`, 128-bit Trace ID generation is now the default.
34
+
35
+ For OpenTelemetry, this release adds support for converting [OpenTelemetry Trace Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/general/trace/) into equivalent Datadog trace semantics. Also, it's now possible to configure top-level Datadog span fields using OpenTelemetry span attributes (https://github.com/DataDog/dd-trace-rb/pull/3262).
36
+
37
+ For CI Visibility, you can now manually create CI traces and spans with the [newly released API](https://github.com/DataDog/datadog-ci-rb/releases/tag/v0.4.0).
38
+
39
+ ### Added
40
+
41
+ * OpenTelemetry: Parse OpenTelemetry semantic conventions to Datadog's ([#3273][])
42
+ * OpenTelemetry: Support span reserved attribute overrides ([#3262][])
43
+ * Tracing: Ensure W3C `tracestate` is always propagated ([#3255][])
44
+
45
+ ### Changed
46
+
47
+ * Tracing: Set 128-bit trace_id to true by default ([#3266][])
48
+ * Tracing: Default trace propagation styles to `Datadog,b3multi,b3,tracecontext` ([#3248][],[#3267][])
49
+ * Ci-App: Upgraded `datadog-ci` dependency to 0.4 ([#3270][])
50
+
51
+ ## [1.16.2] - 2023-11-10
52
+
53
+ This release reverts a change to appsec response body parsing that was introduced in [1.16.0 ](https://github.com/DataDog/dd-trace-rb/releases/tag/v1.16.0) that may cause memory leaks.
54
+
55
+ ### Fixed
56
+ * Appsec: [Revert parse response body fix introduced in 1.16.0](https://github.com/DataDog/dd-trace-rb/pull/3153) ([#3252][])
57
+
58
+ ## [1.16.1] - 2023-11-08
59
+
60
+ ### Fixed
61
+
62
+ * Tracing: Fix `concurrent-ruby` future propagation without `active_trace` ([#3242][])
63
+ * Tracing: Fix host injection error handling ([#3240][])
64
+
65
+ ## [1.16.0] - 2023-11-03
66
+
67
+ **This release includes a security change for the Tracing Redis integration:**
68
+
69
+ Currently, the Datadog Agent removes command arguments from the resource name. However there are cases, like Redis compressed keys, where this obfuscation cannot correctly remove command arguments. To safeguard that situation, the resource name set by the tracer will only be the command (e.g. `SET`) with no arguments. To retain the previous behavior and keep arguments in the span resource, with the potential risk of some command arguments not being fully obfuscated, set ``DD_REDIS_COMMAND_ARGS=true`` or set the option `c.instrument :redis, command_args: true`.
70
+
71
+ ### Added
72
+
73
+ * Tracing: Propagate trace through `Concurrent::Promises.future` ([#1522][])
74
+ * Core: Name `Datadog::Core::Remote::Worker` thread ([#3207][])
75
+
76
+ ### Changed
77
+
78
+ * Tracing: Redis - Omit command arguments from span.resource by default ([#3235][])
79
+ * Ci-app: Bump `datadog-ci` dependency from 0.2.0 to 0.3.0 ([#3223][])
80
+
81
+ ### Fixed
82
+
83
+ * Appsec: ASM parse response body ([#3153][])
84
+ * Appsec: ASM make sure to append content type and length information ([#3204][])
85
+ * Appsec: Make sure function that checks content-type header value accepts nil content-type header value ([#3234][])
86
+ * Profiling: Shut down profiler if any components failed ([#3197][])
87
+ * Tracing: Fix `ActiveSupport` instrumentation of custom cache stores ([#3206][])
88
+
89
+ ## [1.15.0] - 2023-10-09
90
+
91
+ ### Highlights
92
+
93
+ * Timeline view for Profiler beta
94
+ * Configure AppSec blocking responses via configuration or Remote Configuration
95
+ * CI visibility to configure with agentless mode
96
+
97
+ For more details, check the [release notes](https://github.com/DataDog/dd-trace-rb/releases/tag/v1.15.0)
98
+
99
+ ### Added
100
+
101
+ * Enable allocation counting feature by default for some Ruby 3 versions ([#3176][])
102
+ * Detect `WebMock` `Cucumber` and `Rails.env` to disable telemetry and remote configuration for development environment ([#3065][], [#3062][], [#3145][])
103
+ * Profiling: Import java-profiler PID controller and port it to C ([#3190][])
104
+ * Profiling: Record allocation type when sampling objects ([#3096][])
105
+ * Profiling: Include `ruby vm type` in profiler allocation samples ([#3074][])
106
+ * Tracing: Support `Rack` 3 ([#3132][])
107
+ * Tracing: Support `Opensearch` 3 ([#3189][])
108
+ * Tracing: `grpc` adds `client_error_handler` option ([#3095][])
109
+ * Tracing: Add `async` option for `test_mode` configuration ([#3158][])
110
+ * Tracing: Implements `_dd.base_service` tag ([#3018][])
111
+ * Appsec: Allow blocking response template configuration via ENV variables ([#2975][])
112
+ * Appsec: ASM API security. Schema extraction ([#3131][], [#3166][], [#3177][])
113
+ * Appsec: Enable configuring blocking response via Remote Configuration ([#3099][])
114
+ * Ci-app: Validate git tags ([#3100][])
115
+ * Ci-app: Add agentless mode ([#3186][])
116
+
117
+ ### Changed
118
+
119
+ * Appsec: Skip passing waf addresses when the value is empty ([#3188][])
120
+ * Profiling: Restore support for Ruby 3.3 ([#3167][])
121
+ * Profiling: Add approximate thread state categorization for timeline ([#3162][])
122
+ * Profiling: Wire up allocation sampling into `CpuAndWallTimeWorker` ([#3103][])
123
+ * Tracing: `dalli` disable memcached command tag by default ([#3171][])
124
+ * Tracing: Use first valid extracted style for distributed tracing ([#2879][])
125
+ * Tracing: Rename configuration option `on_set` to `after_set` ([#3107][])
126
+ * Tracing: Rename `experimental_default_proc` to `default_proc` ([#3091][])
127
+ * Tracing: Use `peer.service` for sql comment propagation ([#3127][])
128
+ * Ci-app: Fix `Datadog::CI::Environment` to support the new CI specs ([#3080][])
129
+ * Bump `datadog-ci` dependency to 0.2 ([#3186][])
130
+ * Bump `debase-ruby_core_source` dependency to 3.2.2 ([#3163][])
131
+ * Upgrade `libdatadog` 5 ([#3169][], [#3104][])
132
+ * Upgrade `libddwaf-rb` 1.11.0 ([#3087][])
133
+ * Update AppSec rules to 1.8.0 ([#3140][], [#3139][])
134
+
135
+ ### Fixed
136
+
137
+ * Profiling: Add workaround for incorrect invoke location when logging gem is in use ([#3183][])
138
+ * Profiling: Fix missing endpoint profiling when `request_queuing` is enabled in `rack` instrumentation ([#3109][])
139
+ * Appsec: Span tags reporting the number of WAF failed loaded rules ([#3106][])
140
+ * Tracing: Fix tagging with empty data ([#3102][])
141
+ * Tracing: Fix `rails.cache.backend` span tag with multiple stores ([#3060][])
142
+
143
+ ### Removed
144
+
145
+ * Profiling: Remove legacy profiler codepath ([#3172][])
146
+ * Ci-app: Remove CI module and add a dependency on [`datadog-ci` gem](https://github.com/DataDog/datadog-ci-rb) ([#3128][])
147
+ * Tracing: Remove `depends_on` option from configuration DSL ([#3085][])
148
+ * Tracing: Remove `delegate_to` option from configuration DSL ([#3086][])
149
+
150
+ ## [1.14.0] - 2023-08-24
151
+
152
+ ### Added
153
+
154
+ * Cucumber 8.0.0 support, test CI visibility with cucumber versions 6-8 ([#3061][])
155
+ * Tracing: Add `ddsource` to #to_log_format ([#3025][])
156
+ * Core: include peer service configurations in telemetry payload ([#3056][])
157
+ * Tracing: Improve quantization ([#3041][])
158
+
159
+ ### Changed
160
+
161
+ * Profiling: Disable profiler on Ruby 3.3 due to incompatibility ([#3054][])
162
+ * Core: EnvironmentLogger adjustments ([#3020][], [#3057][])
163
+
164
+ ### Fixed
165
+
166
+ * Appsec: Fix ASM setting for automated user events. ([#3070][])
167
+ * Tracing: Fix ActiveRecord adapter name for Rails 7 ([#3051][])
168
+
169
+ ## [1.13.1] - 2023-08-14
170
+
171
+ ### Fixed
172
+
173
+ * Tracing: `net/http` instrumentation excludes query string for `http.url` tag ([#3045][])
174
+ * Tracing: Remove `log_tags` warning when given hash for log injection ([#3022][])
175
+ * Tracing: Fix OpenSearch integration loading ([#3019][])
176
+ * Core: Fix default hostname/port when mixing http and uds configuration ([#3037][])
177
+ * Core: Disable Telemetry and Remote Configuration in development environments ([#3039][])
178
+ * Profiling: Improve `Datadog::Profiling::HttpTransport` error logging ([#3038][])
179
+ * Docs: Document known issues with hanging Resque workers ([#3033][])
180
+
181
+ ## [1.13.0] - 2023-07-31
182
+
183
+ ### Added
184
+
185
+ * Core: Add support for `Option` precedence ([#2915][])
186
+ * Core: Add support for unsetting options ([#2972][])
187
+ * Core: Gauge primitive `RubyVM::YJIT.runtime_stats`, if `YJIT` is enabled ([#2711][], [#2959][])([@HeyNonster][])
188
+ * Core: Add Telemetry `app-client-configuration-change` event ([#2977][])
189
+ * Core: Improve our `SafeDup` module ([#2960][])
190
+ * Tracing: Add `OpenSearch` Integration ([#2940][])
191
+ * Tracing: Implement `peer.service` tag to integrations ([#2982][])
192
+ * Tracing: Add mandatory rpc and grpc tags for `grpc` integration ([#2620][], [#2962][])
193
+ * Tracing: Include `_dd.profiling.enabled` tag ([#2913][])
194
+ * Tracing: Support host injection ([#2941][], [#3007][])
195
+ * Tracing: Implement Dynamic Configuration for tracing ([#2848][], [#2973][])
196
+ * Tracing: Add for dynamic log injection configuration ([#2992][])
197
+ * Tracing: Add sampling configuration with `DD_TRACE_SAMPLING_RULES` ([#2968][])
198
+ * Tracing: Add HTTP header tagging with `DD_TRACE_HEADER_TAGS` for clients and servers ([#2946][], [#2935][])
199
+ * Profiling: Add fallback name/invoke location for unnamed threads started in native code ([#2993][])
200
+ * Profiling: Use invoke location as a fallback for nameless threads in the profiler ([#2950][])
201
+ * Profiling: Add fallback name for main thread in profiling data ([#2939][])
202
+ * Ci-app: Add `Minitest` CI integration ([#2932][]) ([@bravehager][])
203
+ * Appsec: `Devise` integration and automatic user events ([#2877][])
204
+ * Appsec: Handle disabled tracing and appsec events ([#2572][])
205
+ * Appsec: Automate user events check for UUID in safe mode ([#2952][])
206
+ * Docs: Add Ruby 3.2 support to compatibility matrix ([#2971][])
207
+
208
+ ### Changed
209
+
210
+ * Core: Set maximum supported Ruby version ([#2497][])
211
+ * Core: Prevent telemetry requests from being traced ([#2961][])
212
+ * Core: Add `env` and `type` to Core configuration option ([#2983][], [#2988][], [#2994][])
213
+ * Core: Remove `lazy` from Core configuration option ([#2931][], [#2999][])
214
+ * Profiling: Bump `libdatadog` dependency to version 3 ([#2948][])
215
+ * Profiling: Improve error message when `ddtrace_profiling_loader` fails to load ([#2957][])
216
+ * Tracing: Improve log injection runtime conditionals ([#2926][], [#2882][])
217
+
218
+ ### Fixed
219
+
220
+ * Core: Fix polynomial-time regular expressions ([#2814][])
221
+ * Core: Fix environment variable for dynamic configuration polling interval ([#2967][])
222
+ * Core: Reduce remote configuration error logging noise ([#3011][])
223
+ * Tracing: Fix manual log injection for 128 bit trace_id ([#2974][])
224
+ * Tracing: Ensure the GRPC client interceptor return the response ([#2928][]) ([@KJTsanaktsidis][])
225
+ * Tracing: Remove dynamic input used in regular expression ([#2867][])
226
+ * Tracing: Fix distributed tracing header formats ([#3005][] )
227
+ * Profiling: Fix profiler `libmysqlclient` version detection with `mysql2-aurora` gem ([#2956][])
228
+ * Profiling: Automatically enable profiler "no signals" workaround for `passenger` web server ([#2978][])
229
+
5
230
  ## [1.12.1] - 2023-06-14
6
231
 
7
232
  ### Added
8
- Appsec: Add `appsec.blocked` tag to span ([#2895][])
9
- Profiling: Add workaround for legacy profiler incompatibility with ruby-cloud-profiler gem ([#2891][])
10
- Core: Allow setting remote configuration service name ([#2853][])
233
+ * Appsec: Add `appsec.blocked` tag to span ([#2895][])
234
+ * Profiling: Add workaround for legacy profiler incompatibility with ruby-cloud-profiler gem ([#2891][])
235
+ * Core: Allow setting remote configuration service name ([#2853][])
11
236
 
12
237
  ### Changed
13
- Appsec: Change the value format for the WAF address `server.request.query` ([#2903][])
14
- Profiling: Log pkg-config command when building profiling native extension
238
+ * Appsec: Change the value format for the WAF address `server.request.query` ([#2903][])
239
+ * Profiling: Log pkg-config command when building profiling native extension
15
240
 
16
241
  ### Fixed
17
- Appsec: Update blocked response content_type resolution ([#2900][])
18
- Appsec: Ensure to use service entry span. ([#2898][])
19
- Tracing: Fix AWS integration constant loading ([#2896][])
242
+ * Appsec: Update blocked response content_type resolution ([#2900][])
243
+ * Appsec: Ensure to use service entry span. ([#2898][])
244
+ * Tracing: Fix AWS integration constant loading ([#2896][])
20
245
 
21
246
  ## [1.12.0] - 2023-06-02
22
247
 
@@ -2454,7 +2679,17 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
2454
2679
 
2455
2680
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2456
2681
 
2457
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.12.1...master
2682
+
2683
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.18.0...master
2684
+ [1.18.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.17.0...v1.18.0
2685
+ [1.17.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.2...v1.17.0
2686
+ [1.16.2]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.1...v1.16.2
2687
+ [1.16.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.0...v1.16.1
2688
+ [1.16.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.15.0...v1.16.0
2689
+ [1.15.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.14.0...v1.15.0
2690
+ [1.14.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.13.1...1.14.0
2691
+ [1.13.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.13.0...1.13.1
2692
+ [1.13.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.12.1...v1.13.0
2458
2693
  [1.12.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.12.0...v1.12.1
2459
2694
  [1.12.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.11.1...v1.12.0
2460
2695
  [1.11.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.10.1...v1.11.1
@@ -3188,6 +3423,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3188
3423
  [#1509]: https://github.com/DataDog/dd-trace-rb/issues/1509
3189
3424
  [#1510]: https://github.com/DataDog/dd-trace-rb/issues/1510
3190
3425
  [#1511]: https://github.com/DataDog/dd-trace-rb/issues/1511
3426
+ [#1522]: https://github.com/DataDog/dd-trace-rb/issues/1522
3191
3427
  [#1523]: https://github.com/DataDog/dd-trace-rb/issues/1523
3192
3428
  [#1524]: https://github.com/DataDog/dd-trace-rb/issues/1524
3193
3429
  [#1529]: https://github.com/DataDog/dd-trace-rb/issues/1529
@@ -3427,6 +3663,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3427
3663
  [#2489]: https://github.com/DataDog/dd-trace-rb/issues/2489
3428
3664
  [#2493]: https://github.com/DataDog/dd-trace-rb/issues/2493
3429
3665
  [#2496]: https://github.com/DataDog/dd-trace-rb/issues/2496
3666
+ [#2497]: https://github.com/DataDog/dd-trace-rb/issues/2497
3430
3667
  [#2501]: https://github.com/DataDog/dd-trace-rb/issues/2501
3431
3668
  [#2504]: https://github.com/DataDog/dd-trace-rb/issues/2504
3432
3669
  [#2512]: https://github.com/DataDog/dd-trace-rb/issues/2512
@@ -3439,6 +3676,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3439
3676
  [#2543]: https://github.com/DataDog/dd-trace-rb/issues/2543
3440
3677
  [#2557]: https://github.com/DataDog/dd-trace-rb/issues/2557
3441
3678
  [#2562]: https://github.com/DataDog/dd-trace-rb/issues/2562
3679
+ [#2572]: https://github.com/DataDog/dd-trace-rb/issues/2572
3442
3680
  [#2573]: https://github.com/DataDog/dd-trace-rb/issues/2573
3443
3681
  [#2576]: https://github.com/DataDog/dd-trace-rb/issues/2576
3444
3682
  [#2580]: https://github.com/DataDog/dd-trace-rb/issues/2580
@@ -3461,6 +3699,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3461
3699
  [#2614]: https://github.com/DataDog/dd-trace-rb/issues/2614
3462
3700
  [#2618]: https://github.com/DataDog/dd-trace-rb/issues/2618
3463
3701
  [#2619]: https://github.com/DataDog/dd-trace-rb/issues/2619
3702
+ [#2620]: https://github.com/DataDog/dd-trace-rb/issues/2620
3464
3703
  [#2634]: https://github.com/DataDog/dd-trace-rb/issues/2634
3465
3704
  [#2635]: https://github.com/DataDog/dd-trace-rb/issues/2635
3466
3705
  [#2642]: https://github.com/DataDog/dd-trace-rb/issues/2642
@@ -3488,6 +3727,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3488
3727
  [#2704]: https://github.com/DataDog/dd-trace-rb/issues/2704
3489
3728
  [#2705]: https://github.com/DataDog/dd-trace-rb/issues/2705
3490
3729
  [#2710]: https://github.com/DataDog/dd-trace-rb/issues/2710
3730
+ [#2711]: https://github.com/DataDog/dd-trace-rb/issues/2711
3491
3731
  [#2720]: https://github.com/DataDog/dd-trace-rb/issues/2720
3492
3732
  [#2726]: https://github.com/DataDog/dd-trace-rb/issues/2726
3493
3733
  [#2727]: https://github.com/DataDog/dd-trace-rb/issues/2727
@@ -3514,6 +3754,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3514
3754
  [#2805]: https://github.com/DataDog/dd-trace-rb/issues/2805
3515
3755
  [#2806]: https://github.com/DataDog/dd-trace-rb/issues/2806
3516
3756
  [#2810]: https://github.com/DataDog/dd-trace-rb/issues/2810
3757
+ [#2814]: https://github.com/DataDog/dd-trace-rb/issues/2814
3517
3758
  [#2815]: https://github.com/DataDog/dd-trace-rb/issues/2815
3518
3759
  [#2822]: https://github.com/DataDog/dd-trace-rb/issues/2822
3519
3760
  [#2824]: https://github.com/DataDog/dd-trace-rb/issues/2824
@@ -3521,6 +3762,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3521
3762
  [#2829]: https://github.com/DataDog/dd-trace-rb/issues/2829
3522
3763
  [#2836]: https://github.com/DataDog/dd-trace-rb/issues/2836
3523
3764
  [#2840]: https://github.com/DataDog/dd-trace-rb/issues/2840
3765
+ [#2848]: https://github.com/DataDog/dd-trace-rb/issues/2848
3524
3766
  [#2853]: https://github.com/DataDog/dd-trace-rb/issues/2853
3525
3767
  [#2854]: https://github.com/DataDog/dd-trace-rb/issues/2854
3526
3768
  [#2855]: https://github.com/DataDog/dd-trace-rb/issues/2855
@@ -3529,10 +3771,14 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3529
3771
  [#2860]: https://github.com/DataDog/dd-trace-rb/issues/2860
3530
3772
  [#2864]: https://github.com/DataDog/dd-trace-rb/issues/2864
3531
3773
  [#2866]: https://github.com/DataDog/dd-trace-rb/issues/2866
3774
+ [#2867]: https://github.com/DataDog/dd-trace-rb/issues/2867
3532
3775
  [#2869]: https://github.com/DataDog/dd-trace-rb/issues/2869
3533
3776
  [#2873]: https://github.com/DataDog/dd-trace-rb/issues/2873
3534
3777
  [#2874]: https://github.com/DataDog/dd-trace-rb/issues/2874
3535
3778
  [#2875]: https://github.com/DataDog/dd-trace-rb/issues/2875
3779
+ [#2877]: https://github.com/DataDog/dd-trace-rb/issues/2877
3780
+ [#2879]: https://github.com/DataDog/dd-trace-rb/issues/2879
3781
+ [#2882]: https://github.com/DataDog/dd-trace-rb/issues/2882
3536
3782
  [#2883]: https://github.com/DataDog/dd-trace-rb/issues/2883
3537
3783
  [#2890]: https://github.com/DataDog/dd-trace-rb/issues/2890
3538
3784
  [#2891]: https://github.com/DataDog/dd-trace-rb/issues/2891
@@ -3541,6 +3787,135 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3541
3787
  [#2898]: https://github.com/DataDog/dd-trace-rb/issues/2898
3542
3788
  [#2900]: https://github.com/DataDog/dd-trace-rb/issues/2900
3543
3789
  [#2903]: https://github.com/DataDog/dd-trace-rb/issues/2903
3790
+ [#2913]: https://github.com/DataDog/dd-trace-rb/issues/2913
3791
+ [#2915]: https://github.com/DataDog/dd-trace-rb/issues/2915
3792
+ [#2926]: https://github.com/DataDog/dd-trace-rb/issues/2926
3793
+ [#2928]: https://github.com/DataDog/dd-trace-rb/issues/2928
3794
+ [#2931]: https://github.com/DataDog/dd-trace-rb/issues/2931
3795
+ [#2932]: https://github.com/DataDog/dd-trace-rb/issues/2932
3796
+ [#2935]: https://github.com/DataDog/dd-trace-rb/issues/2935
3797
+ [#2939]: https://github.com/DataDog/dd-trace-rb/issues/2939
3798
+ [#2940]: https://github.com/DataDog/dd-trace-rb/issues/2940
3799
+ [#2941]: https://github.com/DataDog/dd-trace-rb/issues/2941
3800
+ [#2946]: https://github.com/DataDog/dd-trace-rb/issues/2946
3801
+ [#2948]: https://github.com/DataDog/dd-trace-rb/issues/2948
3802
+ [#2950]: https://github.com/DataDog/dd-trace-rb/issues/2950
3803
+ [#2952]: https://github.com/DataDog/dd-trace-rb/issues/2952
3804
+ [#2956]: https://github.com/DataDog/dd-trace-rb/issues/2956
3805
+ [#2957]: https://github.com/DataDog/dd-trace-rb/issues/2957
3806
+ [#2959]: https://github.com/DataDog/dd-trace-rb/issues/2959
3807
+ [#2960]: https://github.com/DataDog/dd-trace-rb/issues/2960
3808
+ [#2961]: https://github.com/DataDog/dd-trace-rb/issues/2961
3809
+ [#2962]: https://github.com/DataDog/dd-trace-rb/issues/2962
3810
+ [#2967]: https://github.com/DataDog/dd-trace-rb/issues/2967
3811
+ [#2968]: https://github.com/DataDog/dd-trace-rb/issues/2968
3812
+ [#2971]: https://github.com/DataDog/dd-trace-rb/issues/2971
3813
+ [#2972]: https://github.com/DataDog/dd-trace-rb/issues/2972
3814
+ [#2973]: https://github.com/DataDog/dd-trace-rb/issues/2973
3815
+ [#2974]: https://github.com/DataDog/dd-trace-rb/issues/2974
3816
+ [#2975]: https://github.com/DataDog/dd-trace-rb/issues/2975
3817
+ [#2977]: https://github.com/DataDog/dd-trace-rb/issues/2977
3818
+ [#2978]: https://github.com/DataDog/dd-trace-rb/issues/2978
3819
+ [#2982]: https://github.com/DataDog/dd-trace-rb/issues/2982
3820
+ [#2983]: https://github.com/DataDog/dd-trace-rb/issues/2983
3821
+ [#2988]: https://github.com/DataDog/dd-trace-rb/issues/2988
3822
+ [#2992]: https://github.com/DataDog/dd-trace-rb/issues/2992
3823
+ [#2993]: https://github.com/DataDog/dd-trace-rb/issues/2993
3824
+ [#2994]: https://github.com/DataDog/dd-trace-rb/issues/2994
3825
+ [#2999]: https://github.com/DataDog/dd-trace-rb/issues/2999
3826
+ [#3005]: https://github.com/DataDog/dd-trace-rb/issues/3005
3827
+ [#3007]: https://github.com/DataDog/dd-trace-rb/issues/3007
3828
+ [#3011]: https://github.com/DataDog/dd-trace-rb/issues/3011
3829
+ [#3018]: https://github.com/DataDog/dd-trace-rb/issues/3018
3830
+ [#3019]: https://github.com/DataDog/dd-trace-rb/issues/3019
3831
+ [#3020]: https://github.com/DataDog/dd-trace-rb/issues/3020
3832
+ [#3022]: https://github.com/DataDog/dd-trace-rb/issues/3022
3833
+ [#3025]: https://github.com/DataDog/dd-trace-rb/issues/3025
3834
+ [#3033]: https://github.com/DataDog/dd-trace-rb/issues/3033
3835
+ [#3037]: https://github.com/DataDog/dd-trace-rb/issues/3037
3836
+ [#3038]: https://github.com/DataDog/dd-trace-rb/issues/3038
3837
+ [#3039]: https://github.com/DataDog/dd-trace-rb/issues/3039
3838
+ [#3041]: https://github.com/DataDog/dd-trace-rb/issues/3041
3839
+ [#3045]: https://github.com/DataDog/dd-trace-rb/issues/3045
3840
+ [#3051]: https://github.com/DataDog/dd-trace-rb/issues/3051
3841
+ [#3054]: https://github.com/DataDog/dd-trace-rb/issues/3054
3842
+ [#3056]: https://github.com/DataDog/dd-trace-rb/issues/3056
3843
+ [#3057]: https://github.com/DataDog/dd-trace-rb/issues/3057
3844
+ [#3060]: https://github.com/DataDog/dd-trace-rb/issues/3060
3845
+ [#3061]: https://github.com/DataDog/dd-trace-rb/issues/3061
3846
+ [#3062]: https://github.com/DataDog/dd-trace-rb/issues/3062
3847
+ [#3065]: https://github.com/DataDog/dd-trace-rb/issues/3065
3848
+ [#3070]: https://github.com/DataDog/dd-trace-rb/issues/3070
3849
+ [#3074]: https://github.com/DataDog/dd-trace-rb/issues/3074
3850
+ [#3080]: https://github.com/DataDog/dd-trace-rb/issues/3080
3851
+ [#3085]: https://github.com/DataDog/dd-trace-rb/issues/3085
3852
+ [#3086]: https://github.com/DataDog/dd-trace-rb/issues/3086
3853
+ [#3087]: https://github.com/DataDog/dd-trace-rb/issues/3087
3854
+ [#3091]: https://github.com/DataDog/dd-trace-rb/issues/3091
3855
+ [#3095]: https://github.com/DataDog/dd-trace-rb/issues/3095
3856
+ [#3096]: https://github.com/DataDog/dd-trace-rb/issues/3096
3857
+ [#3099]: https://github.com/DataDog/dd-trace-rb/issues/3099
3858
+ [#3100]: https://github.com/DataDog/dd-trace-rb/issues/3100
3859
+ [#3102]: https://github.com/DataDog/dd-trace-rb/issues/3102
3860
+ [#3103]: https://github.com/DataDog/dd-trace-rb/issues/3103
3861
+ [#3104]: https://github.com/DataDog/dd-trace-rb/issues/3104
3862
+ [#3106]: https://github.com/DataDog/dd-trace-rb/issues/3106
3863
+ [#3107]: https://github.com/DataDog/dd-trace-rb/issues/3107
3864
+ [#3109]: https://github.com/DataDog/dd-trace-rb/issues/3109
3865
+ [#3127]: https://github.com/DataDog/dd-trace-rb/issues/3127
3866
+ [#3128]: https://github.com/DataDog/dd-trace-rb/issues/3128
3867
+ [#3131]: https://github.com/DataDog/dd-trace-rb/issues/3131
3868
+ [#3132]: https://github.com/DataDog/dd-trace-rb/issues/3132
3869
+ [#3139]: https://github.com/DataDog/dd-trace-rb/issues/3139
3870
+ [#3140]: https://github.com/DataDog/dd-trace-rb/issues/3140
3871
+ [#3145]: https://github.com/DataDog/dd-trace-rb/issues/3145
3872
+ [#3148]: https://github.com/DataDog/dd-trace-rb/issues/3148
3873
+ [#3150]: https://github.com/DataDog/dd-trace-rb/issues/3150
3874
+ [#3152]: https://github.com/DataDog/dd-trace-rb/issues/3152
3875
+ [#3153]: https://github.com/DataDog/dd-trace-rb/issues/3153
3876
+ [#3158]: https://github.com/DataDog/dd-trace-rb/issues/3158
3877
+ [#3162]: https://github.com/DataDog/dd-trace-rb/issues/3162
3878
+ [#3163]: https://github.com/DataDog/dd-trace-rb/issues/3163
3879
+ [#3166]: https://github.com/DataDog/dd-trace-rb/issues/3166
3880
+ [#3167]: https://github.com/DataDog/dd-trace-rb/issues/3167
3881
+ [#3169]: https://github.com/DataDog/dd-trace-rb/issues/3169
3882
+ [#3171]: https://github.com/DataDog/dd-trace-rb/issues/3171
3883
+ [#3172]: https://github.com/DataDog/dd-trace-rb/issues/3172
3884
+ [#3176]: https://github.com/DataDog/dd-trace-rb/issues/3176
3885
+ [#3177]: https://github.com/DataDog/dd-trace-rb/issues/3177
3886
+ [#3183]: https://github.com/DataDog/dd-trace-rb/issues/3183
3887
+ [#3186]: https://github.com/DataDog/dd-trace-rb/issues/3186
3888
+ [#3188]: https://github.com/DataDog/dd-trace-rb/issues/3188
3889
+ [#3189]: https://github.com/DataDog/dd-trace-rb/issues/3189
3890
+ [#3190]: https://github.com/DataDog/dd-trace-rb/issues/3190
3891
+ [#3197]: https://github.com/DataDog/dd-trace-rb/issues/3197
3892
+ [#3204]: https://github.com/DataDog/dd-trace-rb/issues/3204
3893
+ [#3206]: https://github.com/DataDog/dd-trace-rb/issues/3206
3894
+ [#3207]: https://github.com/DataDog/dd-trace-rb/issues/3207
3895
+ [#3223]: https://github.com/DataDog/dd-trace-rb/issues/3223
3896
+ [#3229]: https://github.com/DataDog/dd-trace-rb/issues/3229
3897
+ [#3234]: https://github.com/DataDog/dd-trace-rb/issues/3234
3898
+ [#3235]: https://github.com/DataDog/dd-trace-rb/issues/3235
3899
+ [#3240]: https://github.com/DataDog/dd-trace-rb/issues/3240
3900
+ [#3242]: https://github.com/DataDog/dd-trace-rb/issues/3242
3901
+ [#3248]: https://github.com/DataDog/dd-trace-rb/issues/3248
3902
+ [#3252]: https://github.com/DataDog/dd-trace-rb/issues/3252
3903
+ [#3255]: https://github.com/DataDog/dd-trace-rb/issues/3255
3904
+ [#3259]: https://github.com/DataDog/dd-trace-rb/issues/3259
3905
+ [#3262]: https://github.com/DataDog/dd-trace-rb/issues/3262
3906
+ [#3266]: https://github.com/DataDog/dd-trace-rb/issues/3266
3907
+ [#3267]: https://github.com/DataDog/dd-trace-rb/issues/3267
3908
+ [#3270]: https://github.com/DataDog/dd-trace-rb/issues/3270
3909
+ [#3271]: https://github.com/DataDog/dd-trace-rb/issues/3271
3910
+ [#3273]: https://github.com/DataDog/dd-trace-rb/issues/3273
3911
+ [#3279]: https://github.com/DataDog/dd-trace-rb/issues/3279
3912
+ [#3280]: https://github.com/DataDog/dd-trace-rb/issues/3280
3913
+ [#3284]: https://github.com/DataDog/dd-trace-rb/issues/3284
3914
+ [#3286]: https://github.com/DataDog/dd-trace-rb/issues/3286
3915
+ [#3289]: https://github.com/DataDog/dd-trace-rb/issues/3289
3916
+ [#3303]: https://github.com/DataDog/dd-trace-rb/issues/3303
3917
+ [#3307]: https://github.com/DataDog/dd-trace-rb/issues/3307
3918
+ [#3308]: https://github.com/DataDog/dd-trace-rb/issues/3308
3544
3919
  [@AdrianLC]: https://github.com/AdrianLC
3545
3920
  [@Azure7111]: https://github.com/Azure7111
3546
3921
  [@BabyGroot]: https://github.com/BabyGroot
@@ -3548,11 +3923,13 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3548
3923
  [@Drowze]: https://github.com/Drowze
3549
3924
  [@EpiFouloux]: https://github.com/EpiFouloux
3550
3925
  [@EvNomad]: https://github.com/EvNomad
3926
+ [@HeyNonster]: https://github.com/HeyNonster
3551
3927
  [@HoneyryderChuck]: https://github.com/HoneyryderChuck
3552
3928
  [@JamesHarker]: https://github.com/JamesHarker
3553
3929
  [@Jared-Prime]: https://github.com/Jared-Prime
3554
3930
  [@Joas1988]: https://github.com/Joas1988
3555
3931
  [@JustSnow]: https://github.com/JustSnow
3932
+ [@KJTsanaktsidis]: https://github.com/KJTsanaktsidis
3556
3933
  [@KieranP]: https://github.com/KieranP
3557
3934
  [@MMartyn]: https://github.com/MMartyn
3558
3935
  [@NobodysNightmare]: https://github.com/NobodysNightmare
@@ -3577,6 +3954,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3577
3954
  [@bheemreddy181]: https://github.com/bheemreddy181
3578
3955
  [@blaines]: https://github.com/blaines
3579
3956
  [@brafales]: https://github.com/brafales
3957
+ [@bravehager]: https://github.com/bravehager
3580
3958
  [@bzf]: https://github.com/bzf
3581
3959
  [@callumj]: https://github.com/callumj
3582
3960
  [@caramcc]: https://github.com/caramcc
@@ -3689,4 +4067,4 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3689
4067
  [@y-yagi]: https://github.com/y-yagi
3690
4068
  [@yujideveloper]: https://github.com/yujideveloper
3691
4069
  [@yukimurasawa]: https://github.com/yukimurasawa
3692
- [@zachmccormick]: https://github.com/zachmccormick
4070
+ [@zachmccormick]: https://github.com/zachmccormick
@@ -16,8 +16,7 @@ the gem. Setting `DD_PROFILING_NO_EXTENSION` at installation time skips compilat
16
16
 
17
17
  (If you're a customer and needed to use this, please tell us why on <https://github.com/DataDog/dd-trace-rb/issues/new>.)
18
18
 
19
- In past releases, it was possible for the profiler to run without the native extension, but that's no longer the case,
20
- and disabling the extension will disable profiling.
19
+ Disabling the profiler extension will disable profiling.
21
20
 
22
21
  ## Who is this page for?
23
22
 
@@ -83,7 +82,7 @@ contribute upstream changes so that they become official public VM APIs.
83
82
  Ruby versions 2.6 to 3.2 shipped a JIT compiler called MJIT. This compiler does not directly generate machine code;
84
83
  instead it generates C code and uses the system C compiler to turn it into machine code.
85
84
 
86
- The generated C code `#include`s a private header -- which we reference as "the MJIT header" everywhere.
85
+ The generated C code `#include`s a private header -- which we call "the MJIT header".
87
86
  The MJIT header gets shipped with all MJIT-enabled Rubies and includes the layout of many internal VM structures;
88
87
  and of course the intention is that it is only used by the Ruby MJIT compiler.
89
88
 
@@ -104,8 +103,7 @@ Thus, even though a regular Ruby installation does not include these files, we c
104
103
  * **OS support**: Linux
105
104
 
106
105
  To enable CPU-time profiling, we use the `pthread_getcpuclockid(pthread_t thread, clockid_t *clockid)` C function to
107
- obtain a `clockid_t` that can then be used with the `Process.clock_gettime` method (or directly with the
108
- `clock_gettime()` C function).
106
+ obtain a `clockid_t` that can then be used with the `clock_gettime` function.
109
107
 
110
108
  The challenge with using `pthread_getcpuclockid()` is that we need to get the `pthread_t` for a given Ruby `Thread`
111
109
  object. We previously did this with a weird combination of monkey patching and `pthread_self()` (effectively patching
@@ -17,9 +17,6 @@ typedef struct thread_cpu_time {
17
17
 
18
18
  void self_test_clock_id(void);
19
19
 
20
- // TODO: Remove this after the OldStack profiler gets removed
21
- VALUE clock_id_for(VALUE self, VALUE thread);
22
-
23
20
  // Safety: This function is assumed never to raise exceptions by callers
24
21
  thread_cpu_time_id thread_cpu_time_id_for(VALUE thread);
25
22
  thread_cpu_time thread_cpu_time_for(thread_cpu_time_id time_id);
@@ -22,31 +22,12 @@ void self_test_clock_id(void) {
22
22
  if (expected_pthread_id != actual_pthread_id) rb_raise(rb_eRuntimeError, "pthread_id_for() self-test failed");
23
23
  }
24
24
 
25
- // TODO: Remove this after the OldStack profiler gets removed
26
- VALUE clock_id_for(DDTRACE_UNUSED VALUE _self, VALUE thread) {
27
- rb_nativethread_id_t thread_id = pthread_id_for(thread);
28
-
29
- clockid_t clock_id;
30
- int error = pthread_getcpuclockid(thread_id, &clock_id);
31
-
32
- if (error == 0) {
33
- return CLOCKID2NUM(clock_id);
34
- } else {
35
- switch(error) {
36
- // The more specific error messages are based on the pthread_getcpuclockid(3) man page
37
- case ENOENT:
38
- rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread: Per-thread CPU time clocks are not supported by the system."));
39
- case ESRCH:
40
- rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread: No thread could be found."));
41
- default:
42
- rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread"));
43
- }
44
- }
45
- }
46
-
47
25
  // Safety: This function is assumed never to raise exceptions by callers
48
26
  thread_cpu_time_id thread_cpu_time_id_for(VALUE thread) {
49
27
  rb_nativethread_id_t thread_id = pthread_id_for(thread);
28
+
29
+ if (thread_id == 0) return (thread_cpu_time_id) {.valid = false};
30
+
50
31
  clockid_t clock_id;
51
32
 
52
33
  int error = pthread_getcpuclockid(thread_id, &clock_id);
@@ -10,7 +10,6 @@
10
10
  #include "helpers.h"
11
11
 
12
12
  void self_test_clock_id(void) { } // Nothing to check
13
- VALUE clock_id_for(DDTRACE_UNUSED VALUE _self, DDTRACE_UNUSED VALUE _thread) { return Qnil; } // Nothing to return
14
13
 
15
14
  thread_cpu_time_id thread_cpu_time_id_for(DDTRACE_UNUSED VALUE _thread) {
16
15
  return (thread_cpu_time_id) {.valid = false};