ddtrace 1.1.0 → 1.9.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 (641) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +423 -1
  3. data/LICENSE-3rdparty.csv +3 -0
  4. data/README.md +9 -4
  5. data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +21 -5
  6. data/ext/ddtrace_profiling_loader/extconf.rb +22 -1
  7. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +52 -8
  8. data/ext/ddtrace_profiling_native_extension/clock_id.h +22 -1
  9. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +34 -3
  10. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +11 -2
  11. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c +899 -0
  12. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h +9 -0
  13. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +776 -0
  14. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
  15. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
  16. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +241 -0
  17. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  18. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +175 -63
  19. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +18 -0
  20. data/ext/ddtrace_profiling_native_extension/extconf.rb +90 -18
  21. data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
  22. data/ext/ddtrace_profiling_native_extension/http_transport.c +354 -0
  23. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +18 -0
  24. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +154 -21
  25. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +256 -17
  26. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +17 -5
  27. data/ext/ddtrace_profiling_native_extension/profiling.c +223 -3
  28. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
  29. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +89 -0
  30. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.c +115 -0
  31. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.h +11 -0
  32. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +392 -44
  33. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +25 -14
  34. data/ext/ddtrace_profiling_native_extension/time_helpers.c +17 -0
  35. data/ext/ddtrace_profiling_native_extension/time_helpers.h +10 -0
  36. data/lib/datadog/appsec/assets/blocked.html +98 -3
  37. data/lib/datadog/appsec/assets/blocked.json +1 -0
  38. data/lib/datadog/appsec/assets/blocked.text +5 -0
  39. data/lib/datadog/appsec/assets/waf_rules/recommended.json +1250 -300
  40. data/lib/datadog/appsec/assets/waf_rules/risky.json +78 -78
  41. data/lib/datadog/appsec/assets/waf_rules/strict.json +308 -73
  42. data/lib/datadog/appsec/assets.rb +3 -3
  43. data/lib/datadog/appsec/autoload.rb +4 -2
  44. data/lib/datadog/appsec/configuration/settings.rb +40 -23
  45. data/lib/datadog/appsec/configuration.rb +9 -3
  46. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -3
  47. data/lib/datadog/appsec/contrib/configuration/settings.rb +2 -2
  48. data/lib/datadog/appsec/contrib/integration.rb +1 -1
  49. data/lib/datadog/appsec/contrib/patcher.rb +1 -1
  50. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +3 -3
  51. data/lib/datadog/appsec/contrib/rack/ext.rb +1 -1
  52. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +32 -27
  53. data/lib/datadog/appsec/contrib/rack/integration.rb +5 -5
  54. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
  55. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +17 -21
  56. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +13 -13
  57. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +13 -13
  58. data/lib/datadog/appsec/contrib/rack/request.rb +21 -1
  59. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +3 -3
  60. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +50 -23
  61. data/lib/datadog/appsec/contrib/rack/response.rb +1 -1
  62. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +3 -3
  63. data/lib/datadog/appsec/contrib/rails/ext.rb +1 -1
  64. data/lib/datadog/appsec/contrib/rails/framework.rb +1 -1
  65. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +12 -11
  66. data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
  67. data/lib/datadog/appsec/contrib/rails/patcher.rb +14 -13
  68. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +13 -13
  69. data/lib/datadog/appsec/contrib/rails/request.rb +4 -1
  70. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +1 -1
  71. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +3 -3
  72. data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -1
  73. data/lib/datadog/appsec/contrib/sinatra/framework.rb +1 -1
  74. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +21 -19
  75. data/lib/datadog/appsec/contrib/sinatra/integration.rb +4 -4
  76. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +22 -15
  77. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +12 -12
  78. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +1 -1
  79. data/lib/datadog/appsec/event.rb +10 -14
  80. data/lib/datadog/appsec/extensions.rb +43 -23
  81. data/lib/datadog/appsec/instrumentation/gateway.rb +17 -3
  82. data/lib/datadog/appsec/processor.rb +51 -21
  83. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  84. data/lib/datadog/appsec/reactive/address_hash.rb +1 -1
  85. data/lib/datadog/appsec/reactive/engine.rb +3 -3
  86. data/lib/datadog/appsec/reactive/operation.rb +5 -5
  87. data/lib/datadog/appsec/reactive/subscriber.rb +1 -1
  88. data/lib/datadog/appsec/response.rb +63 -0
  89. data/lib/datadog/appsec/utils/http/media_range.rb +201 -0
  90. data/lib/datadog/appsec/utils/http/media_type.rb +87 -0
  91. data/lib/datadog/appsec/utils/http.rb +9 -0
  92. data/lib/datadog/appsec/utils.rb +7 -0
  93. data/lib/datadog/appsec.rb +6 -6
  94. data/lib/datadog/ci/configuration/components.rb +1 -1
  95. data/lib/datadog/ci/configuration/settings.rb +1 -1
  96. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -2
  97. data/lib/datadog/ci/contrib/cucumber/formatter.rb +5 -5
  98. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -1
  99. data/lib/datadog/ci/contrib/cucumber/integration.rb +4 -4
  100. data/lib/datadog/ci/contrib/cucumber/patcher.rb +2 -2
  101. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -2
  102. data/lib/datadog/ci/contrib/rspec/example.rb +5 -5
  103. data/lib/datadog/ci/contrib/rspec/integration.rb +4 -4
  104. data/lib/datadog/ci/contrib/rspec/patcher.rb +2 -2
  105. data/lib/datadog/ci/ext/environment.rb +78 -20
  106. data/lib/datadog/ci/extensions.rb +4 -4
  107. data/lib/datadog/ci/flush.rb +2 -2
  108. data/lib/datadog/ci/test.rb +3 -3
  109. data/lib/datadog/ci.rb +6 -6
  110. data/lib/datadog/core/buffer/cruby.rb +1 -1
  111. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  112. data/lib/datadog/core/configuration/agent_settings_resolver.rb +8 -11
  113. data/lib/datadog/core/configuration/base.rb +14 -2
  114. data/lib/datadog/core/configuration/components.rb +103 -52
  115. data/lib/datadog/core/configuration/ext.rb +26 -0
  116. data/lib/datadog/core/configuration/option_definition.rb +12 -3
  117. data/lib/datadog/core/configuration/option_definition_set.rb +1 -1
  118. data/lib/datadog/core/configuration/options.rb +3 -3
  119. data/lib/datadog/core/configuration/settings.rb +78 -250
  120. data/lib/datadog/core/configuration.rb +9 -6
  121. data/lib/datadog/core/diagnostics/environment_logger.rb +10 -5
  122. data/lib/datadog/core/diagnostics/health.rb +5 -23
  123. data/lib/datadog/core/environment/cgroup.rb +1 -1
  124. data/lib/datadog/core/environment/container.rb +1 -1
  125. data/lib/datadog/core/environment/ext.rb +1 -1
  126. data/lib/datadog/core/environment/identity.rb +2 -2
  127. data/lib/datadog/core/environment/platform.rb +40 -0
  128. data/lib/datadog/core/environment/socket.rb +1 -1
  129. data/lib/datadog/core/environment/variable_helpers.rb +58 -10
  130. data/lib/datadog/core/error.rb +1 -1
  131. data/lib/datadog/core/extensions.rb +1 -1
  132. data/lib/datadog/core/header_collection.rb +41 -0
  133. data/lib/datadog/core/metrics/client.rb +10 -9
  134. data/lib/datadog/core/metrics/ext.rb +0 -2
  135. data/lib/datadog/core/metrics/options.rb +3 -3
  136. data/lib/datadog/core/runtime/ext.rb +1 -1
  137. data/lib/datadog/core/runtime/metrics.rb +6 -6
  138. data/lib/datadog/core/telemetry/client.rb +79 -0
  139. data/lib/datadog/core/telemetry/collector.rb +233 -0
  140. data/lib/datadog/core/telemetry/emitter.rb +48 -0
  141. data/lib/datadog/core/telemetry/event.rb +71 -0
  142. data/lib/datadog/core/telemetry/ext.rb +11 -0
  143. data/lib/datadog/core/telemetry/heartbeat.rb +37 -0
  144. data/lib/datadog/core/telemetry/http/adapters/net.rb +113 -0
  145. data/lib/datadog/core/telemetry/http/env.rb +20 -0
  146. data/lib/datadog/core/telemetry/http/ext.rb +20 -0
  147. data/lib/datadog/core/telemetry/http/response.rb +68 -0
  148. data/lib/datadog/core/telemetry/http/transport.rb +53 -0
  149. data/lib/datadog/core/telemetry/v1/app_event.rb +52 -0
  150. data/lib/datadog/core/telemetry/v1/application.rb +86 -0
  151. data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
  152. data/lib/datadog/core/telemetry/v1/dependency.rb +36 -0
  153. data/lib/datadog/core/telemetry/v1/host.rb +51 -0
  154. data/lib/datadog/core/telemetry/v1/integration.rb +58 -0
  155. data/lib/datadog/core/telemetry/v1/product.rb +28 -0
  156. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +100 -0
  157. data/lib/datadog/core/utils/compression.rb +5 -1
  158. data/lib/datadog/core/utils/object_set.rb +1 -1
  159. data/lib/datadog/core/utils/sequence.rb +5 -0
  160. data/lib/datadog/core/utils/string_table.rb +1 -1
  161. data/lib/datadog/core/utils/time.rb +3 -3
  162. data/lib/datadog/core/utils.rb +1 -22
  163. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +2 -2
  164. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +3 -3
  165. data/lib/datadog/core/workers/async.rb +1 -3
  166. data/lib/datadog/core/workers/polling.rb +2 -2
  167. data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
  168. data/lib/datadog/core.rb +22 -56
  169. data/lib/datadog/kit/appsec/events.rb +75 -0
  170. data/lib/datadog/kit/enable_core_dumps.rb +1 -0
  171. data/lib/datadog/kit/identity.rb +8 -7
  172. data/lib/datadog/kit.rb +1 -1
  173. data/lib/datadog/opentelemetry/api/context.rb +187 -0
  174. data/lib/datadog/opentelemetry/api/trace/span.rb +15 -0
  175. data/lib/datadog/opentelemetry/sdk/configurator.rb +38 -0
  176. data/lib/datadog/opentelemetry/sdk/id_generator.rb +27 -0
  177. data/lib/datadog/opentelemetry/sdk/propagator.rb +91 -0
  178. data/lib/datadog/opentelemetry/sdk/span_processor.rb +92 -0
  179. data/lib/datadog/opentelemetry.rb +48 -0
  180. data/lib/datadog/opentracer/distributed_headers.rb +7 -9
  181. data/lib/datadog/opentracer/rack_propagator.rb +10 -9
  182. data/lib/datadog/opentracer/span.rb +1 -1
  183. data/lib/datadog/opentracer/text_map_propagator.rb +13 -12
  184. data/lib/datadog/opentracer/thread_local_scope_manager.rb +26 -3
  185. data/lib/datadog/opentracer/tracer.rb +23 -21
  186. data/lib/datadog/opentracer.rb +16 -16
  187. data/lib/datadog/profiling/buffer.rb +3 -3
  188. data/lib/datadog/profiling/collectors/code_provenance.rb +1 -0
  189. data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +43 -0
  190. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +91 -0
  191. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  192. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
  193. data/lib/datadog/profiling/collectors/old_stack.rb +15 -8
  194. data/lib/datadog/profiling/collectors/stack.rb +3 -6
  195. data/lib/datadog/profiling/encoding/profile.rb +8 -12
  196. data/lib/datadog/profiling/events/stack.rb +1 -1
  197. data/lib/datadog/profiling/exporter.rb +69 -9
  198. data/lib/datadog/profiling/ext/forking.rb +41 -42
  199. data/lib/datadog/profiling/ext.rb +3 -15
  200. data/lib/datadog/profiling/flush.rb +25 -56
  201. data/lib/datadog/profiling/http_transport.rb +132 -0
  202. data/lib/datadog/profiling/old_recorder.rb +109 -0
  203. data/lib/datadog/profiling/pprof/builder.rb +4 -4
  204. data/lib/datadog/profiling/pprof/converter.rb +1 -1
  205. data/lib/datadog/profiling/pprof/message_set.rb +1 -1
  206. data/lib/datadog/profiling/pprof/stack_sample.rb +4 -4
  207. data/lib/datadog/profiling/pprof/string_table.rb +1 -1
  208. data/lib/datadog/profiling/pprof/template.rb +5 -5
  209. data/lib/datadog/profiling/preload.rb +1 -1
  210. data/lib/datadog/profiling/profiler.rb +7 -0
  211. data/lib/datadog/profiling/scheduler.rb +28 -49
  212. data/lib/datadog/profiling/stack_recorder.rb +50 -4
  213. data/lib/datadog/profiling/tag_builder.rb +6 -1
  214. data/lib/datadog/profiling/tasks/setup.rb +2 -9
  215. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +2 -2
  216. data/lib/datadog/profiling/trace_identifiers/helper.rb +1 -1
  217. data/lib/datadog/profiling.rb +24 -21
  218. data/lib/datadog/tracing/analytics.rb +1 -1
  219. data/lib/datadog/tracing/buffer.rb +5 -5
  220. data/lib/datadog/tracing/client_ip.rb +164 -0
  221. data/lib/datadog/tracing/configuration/ext.rb +47 -4
  222. data/lib/datadog/tracing/configuration/settings.rb +433 -0
  223. data/lib/datadog/tracing/context.rb +1 -1
  224. data/lib/datadog/tracing/context_provider.rb +18 -2
  225. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  226. data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -5
  227. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -4
  228. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +3 -3
  229. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -4
  230. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  231. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +3 -4
  232. data/lib/datadog/tracing/contrib/action_cable/integration.rb +4 -4
  233. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  234. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  235. data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
  236. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +3 -3
  237. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +3 -3
  238. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  239. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +4 -4
  240. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  241. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +10 -6
  242. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  243. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +2 -2
  244. data/lib/datadog/tracing/contrib/action_pack/integration.rb +4 -4
  245. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +2 -2
  246. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
  247. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +2 -2
  248. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  249. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +5 -5
  250. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +5 -5
  251. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  252. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +2 -2
  253. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +2 -2
  254. data/lib/datadog/tracing/contrib/action_view/integration.rb +4 -4
  255. data/lib/datadog/tracing/contrib/action_view/patcher.rb +7 -7
  256. data/lib/datadog/tracing/contrib/action_view/utils.rb +1 -1
  257. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +3 -3
  258. data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
  259. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +4 -4
  260. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +4 -4
  261. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +4 -4
  262. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +4 -4
  263. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +4 -4
  264. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +4 -4
  265. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  266. data/lib/datadog/tracing/contrib/active_job/integration.rb +4 -4
  267. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +0 -2
  268. data/lib/datadog/tracing/contrib/active_job/patcher.rb +4 -4
  269. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  270. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -5
  271. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +3 -3
  272. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +2 -2
  273. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  274. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +3 -3
  275. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -4
  276. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
  277. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +3 -3
  278. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  279. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +4 -4
  280. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +6 -6
  281. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  282. data/lib/datadog/tracing/contrib/active_record/integration.rb +6 -6
  283. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  284. data/lib/datadog/tracing/contrib/active_record/utils.rb +2 -2
  285. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +19 -9
  286. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +2 -2
  287. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +1 -1
  288. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +2 -2
  289. data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -5
  290. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
  291. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +1 -1
  292. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  293. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  294. data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
  295. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +6 -3
  296. data/lib/datadog/tracing/contrib/aws/ext.rb +1 -0
  297. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -4
  298. data/lib/datadog/tracing/contrib/aws/integration.rb +3 -3
  299. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
  300. data/lib/datadog/tracing/contrib/aws/services.rb +0 -2
  301. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  302. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  303. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -3
  304. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +2 -2
  305. data/lib/datadog/tracing/contrib/configurable.rb +2 -2
  306. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
  307. data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
  308. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +6 -3
  309. data/lib/datadog/tracing/contrib/dalli/ext.rb +2 -0
  310. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +8 -5
  311. data/lib/datadog/tracing/contrib/dalli/integration.rb +3 -3
  312. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  313. data/lib/datadog/tracing/contrib/dalli/quantize.rb +1 -1
  314. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +3 -3
  315. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +2 -0
  316. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +3 -3
  317. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +8 -2
  318. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +7 -4
  319. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +32 -0
  320. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +7 -3
  321. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -0
  322. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +3 -3
  323. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +9 -7
  324. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +1 -1
  325. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +8 -3
  326. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +6 -7
  327. data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -0
  328. data/lib/datadog/tracing/contrib/ethon/integration.rb +4 -4
  329. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +5 -4
  330. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  331. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +7 -3
  332. data/lib/datadog/tracing/contrib/excon/ext.rb +1 -0
  333. data/lib/datadog/tracing/contrib/excon/integration.rb +4 -4
  334. data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -7
  335. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  336. data/lib/datadog/tracing/contrib/ext.rb +25 -0
  337. data/lib/datadog/tracing/contrib/extensions.rb +5 -3
  338. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +7 -3
  339. data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -0
  340. data/lib/datadog/tracing/contrib/faraday/integration.rb +4 -4
  341. data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
  342. data/lib/datadog/tracing/contrib/faraday/patcher.rb +5 -5
  343. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +3 -3
  344. data/lib/datadog/tracing/contrib/grape/endpoint.rb +4 -7
  345. data/lib/datadog/tracing/contrib/grape/integration.rb +3 -3
  346. data/lib/datadog/tracing/contrib/grape/patcher.rb +4 -4
  347. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
  348. data/lib/datadog/tracing/contrib/graphql/integration.rb +3 -3
  349. data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -3
  350. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +10 -4
  351. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +20 -5
  352. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +17 -17
  353. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +7 -4
  354. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +27 -0
  355. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +43 -0
  356. data/lib/datadog/tracing/contrib/grpc/ext.rb +4 -0
  357. data/lib/datadog/tracing/contrib/grpc/integration.rb +3 -3
  358. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -5
  359. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  360. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +22 -0
  361. data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
  362. data/lib/datadog/tracing/contrib/hanami/integration.rb +44 -0
  363. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  364. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  365. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  366. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  367. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -2
  368. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +13 -3
  369. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +39 -0
  370. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +38 -0
  371. data/lib/datadog/tracing/contrib/http/ext.rb +2 -0
  372. data/lib/datadog/tracing/contrib/http/instrumentation.rb +8 -10
  373. data/lib/datadog/tracing/contrib/http/integration.rb +6 -6
  374. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  375. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +13 -3
  376. data/lib/datadog/tracing/contrib/httpclient/ext.rb +2 -0
  377. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +9 -9
  378. data/lib/datadog/tracing/contrib/httpclient/integration.rb +4 -4
  379. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  380. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +13 -3
  381. data/lib/datadog/tracing/contrib/httprb/ext.rb +2 -0
  382. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +9 -9
  383. data/lib/datadog/tracing/contrib/httprb/integration.rb +4 -4
  384. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  385. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  386. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  387. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +1 -0
  388. data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
  389. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +2 -2
  390. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +3 -3
  391. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +3 -3
  392. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +4 -4
  393. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +4 -4
  394. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +4 -4
  395. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +4 -4
  396. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -2
  397. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -2
  398. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  399. data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -3
  400. data/lib/datadog/tracing/contrib/kafka/patcher.rb +3 -3
  401. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  402. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -2
  403. data/lib/datadog/tracing/contrib/lograge/integration.rb +3 -3
  404. data/lib/datadog/tracing/contrib/lograge/patcher.rb +2 -2
  405. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +7 -3
  406. data/lib/datadog/tracing/contrib/mongodb/ext.rb +8 -0
  407. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  408. data/lib/datadog/tracing/contrib/mongodb/integration.rb +4 -4
  409. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -1
  410. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  411. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +10 -4
  412. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +18 -3
  413. data/lib/datadog/tracing/contrib/mysql2/ext.rb +2 -0
  414. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -5
  415. data/lib/datadog/tracing/contrib/mysql2/integration.rb +3 -3
  416. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  417. data/lib/datadog/tracing/contrib/patcher.rb +16 -4
  418. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +50 -0
  419. data/lib/datadog/tracing/contrib/pg/ext.rb +33 -0
  420. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +168 -0
  421. data/lib/datadog/tracing/contrib/pg/integration.rb +43 -0
  422. data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
  423. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +6 -3
  424. data/lib/datadog/tracing/contrib/presto/ext.rb +1 -0
  425. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -3
  426. data/lib/datadog/tracing/contrib/presto/integration.rb +3 -3
  427. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  428. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +43 -0
  429. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
  430. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  431. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +47 -0
  432. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +2 -2
  433. data/lib/datadog/tracing/contrib/qless/integration.rb +3 -3
  434. data/lib/datadog/tracing/contrib/qless/patcher.rb +1 -2
  435. data/lib/datadog/tracing/contrib/qless/qless_job.rb +2 -3
  436. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +0 -2
  437. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +3 -3
  438. data/lib/datadog/tracing/contrib/que/integration.rb +4 -4
  439. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  440. data/lib/datadog/tracing/contrib/que/tracer.rb +3 -1
  441. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +2 -2
  442. data/lib/datadog/tracing/contrib/racecar/event.rb +4 -5
  443. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +6 -3
  444. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +2 -2
  445. data/lib/datadog/tracing/contrib/racecar/events/message.rb +6 -3
  446. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  447. data/lib/datadog/tracing/contrib/racecar/integration.rb +3 -3
  448. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  449. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
  450. data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
  451. data/lib/datadog/tracing/contrib/rack/integration.rb +4 -4
  452. data/lib/datadog/tracing/contrib/rack/middlewares.rb +129 -61
  453. data/lib/datadog/tracing/contrib/rack/patcher.rb +12 -2
  454. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  455. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +4 -1
  456. data/lib/datadog/tracing/contrib/rails/framework.rb +18 -22
  457. data/lib/datadog/tracing/contrib/rails/integration.rb +4 -4
  458. data/lib/datadog/tracing/contrib/rails/log_injection.rb +0 -2
  459. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -2
  460. data/lib/datadog/tracing/contrib/rails/patcher.rb +7 -8
  461. data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -3
  462. data/lib/datadog/tracing/contrib/rails/utils.rb +1 -1
  463. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +17 -2
  464. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +12 -7
  465. data/lib/datadog/tracing/contrib/rake/integration.rb +3 -3
  466. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -4
  467. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +1 -1
  468. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +6 -3
  469. data/lib/datadog/tracing/contrib/redis/ext.rb +3 -0
  470. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +36 -26
  471. data/lib/datadog/tracing/contrib/redis/integration.rb +37 -4
  472. data/lib/datadog/tracing/contrib/redis/patcher.rb +57 -13
  473. data/lib/datadog/tracing/contrib/redis/quantize.rb +12 -9
  474. data/lib/datadog/tracing/contrib/redis/tags.rb +12 -10
  475. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +72 -0
  476. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +3 -3
  477. data/lib/datadog/tracing/contrib/resque/integration.rb +3 -3
  478. data/lib/datadog/tracing/contrib/resque/patcher.rb +2 -2
  479. data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -4
  480. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +9 -3
  481. data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -0
  482. data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -3
  483. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  484. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +7 -6
  485. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  486. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -2
  487. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +3 -3
  488. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  489. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  490. data/lib/datadog/tracing/contrib/sequel/database.rb +4 -5
  491. data/lib/datadog/tracing/contrib/sequel/dataset.rb +4 -5
  492. data/lib/datadog/tracing/contrib/sequel/integration.rb +3 -3
  493. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  494. data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -2
  495. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +3 -3
  496. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +4 -4
  497. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  498. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +3 -1
  499. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +9 -5
  500. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +3 -3
  501. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +6 -0
  502. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +3 -3
  503. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +14 -7
  504. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +19 -1
  505. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/{scheduled_push.rb → redis_info.rb} +5 -6
  506. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +53 -0
  507. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +10 -6
  508. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +2 -2
  509. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
  510. data/lib/datadog/tracing/contrib/sinatra/env.rb +14 -25
  511. data/lib/datadog/tracing/contrib/sinatra/ext.rb +7 -3
  512. data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -2
  513. data/lib/datadog/tracing/contrib/sinatra/headers.rb +1 -1
  514. data/lib/datadog/tracing/contrib/sinatra/integration.rb +3 -3
  515. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +7 -7
  516. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +15 -88
  517. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +20 -16
  518. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +2 -2
  519. data/lib/datadog/tracing/contrib/sneakers/integration.rb +4 -4
  520. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  521. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +4 -3
  522. data/lib/datadog/tracing/contrib/status_code_matcher.rb +2 -2
  523. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +33 -0
  524. data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
  525. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  526. data/lib/datadog/tracing/contrib/stripe/patcher.rb +29 -0
  527. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  528. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  529. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +3 -4
  530. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +3 -3
  531. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -5
  532. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +92 -10
  533. data/lib/datadog/tracing/contrib.rb +50 -47
  534. data/lib/datadog/tracing/correlation.rb +1 -1
  535. data/lib/datadog/{core → tracing}/diagnostics/ext.rb +1 -6
  536. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  537. data/lib/datadog/tracing/distributed/b3_multi.rb +66 -0
  538. data/lib/datadog/tracing/distributed/b3_single.rb +66 -0
  539. data/lib/datadog/tracing/distributed/datadog.rb +153 -0
  540. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +85 -0
  541. data/lib/datadog/tracing/distributed/fetcher.rb +30 -0
  542. data/lib/datadog/tracing/distributed/headers/ext.rb +19 -15
  543. data/lib/datadog/tracing/distributed/helpers.rb +40 -4
  544. data/lib/datadog/tracing/distributed/none.rb +19 -0
  545. data/lib/datadog/tracing/distributed/propagation.rb +127 -0
  546. data/lib/datadog/tracing/distributed/trace_context.rb +378 -0
  547. data/lib/datadog/tracing/event.rb +1 -1
  548. data/lib/datadog/tracing/flush.rb +57 -35
  549. data/lib/datadog/tracing/metadata/analytics.rb +2 -2
  550. data/lib/datadog/tracing/metadata/errors.rb +2 -2
  551. data/lib/datadog/tracing/metadata/ext.rb +28 -1
  552. data/lib/datadog/tracing/metadata/tagging.rb +23 -2
  553. data/lib/datadog/tracing/metadata.rb +3 -3
  554. data/lib/datadog/tracing/pipeline/span_filter.rb +10 -6
  555. data/lib/datadog/tracing/pipeline.rb +3 -3
  556. data/lib/datadog/tracing/propagation/http.rb +3 -98
  557. data/lib/datadog/tracing/runtime/metrics.rb +1 -1
  558. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  559. data/lib/datadog/tracing/sampling/ext.rb +31 -0
  560. data/lib/datadog/tracing/sampling/priority_sampler.rb +62 -9
  561. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +10 -11
  562. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +32 -8
  563. data/lib/datadog/tracing/sampling/rate_limiter.rb +4 -1
  564. data/lib/datadog/tracing/sampling/rate_sampler.rb +27 -10
  565. data/lib/datadog/tracing/sampling/rule.rb +3 -3
  566. data/lib/datadog/tracing/sampling/rule_sampler.rb +8 -7
  567. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  568. data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
  569. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  570. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  571. data/lib/datadog/tracing/sampling/span/sampler.rb +75 -0
  572. data/lib/datadog/tracing/span.rb +24 -20
  573. data/lib/datadog/tracing/span_operation.rb +13 -13
  574. data/lib/datadog/tracing/sync_writer.rb +5 -5
  575. data/lib/datadog/tracing/trace_digest.rb +88 -2
  576. data/lib/datadog/tracing/trace_operation.rb +60 -15
  577. data/lib/datadog/tracing/trace_segment.rb +13 -8
  578. data/lib/datadog/tracing/tracer.rb +49 -21
  579. data/lib/datadog/tracing/utils.rb +50 -0
  580. data/lib/datadog/tracing/workers/trace_writer.rb +9 -9
  581. data/lib/datadog/tracing/workers.rb +3 -3
  582. data/lib/datadog/tracing/writer.rb +12 -5
  583. data/lib/datadog/tracing.rb +8 -8
  584. data/lib/ddtrace/auto_instrument.rb +9 -2
  585. data/lib/ddtrace/transport/ext.rb +7 -1
  586. data/lib/ddtrace/transport/http/adapters/net.rb +3 -2
  587. data/lib/ddtrace/transport/http/adapters/test.rb +1 -1
  588. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -2
  589. data/lib/ddtrace/transport/http/api/map.rb +1 -1
  590. data/lib/ddtrace/transport/http/api.rb +4 -4
  591. data/lib/ddtrace/transport/http/builder.rb +5 -5
  592. data/lib/ddtrace/transport/http/client.rb +2 -2
  593. data/lib/ddtrace/transport/http/response.rb +1 -1
  594. data/lib/ddtrace/transport/http/statistics.rb +1 -1
  595. data/lib/ddtrace/transport/http/traces.rb +5 -5
  596. data/lib/ddtrace/transport/http.rb +12 -9
  597. data/lib/ddtrace/transport/io/client.rb +2 -2
  598. data/lib/ddtrace/transport/io/response.rb +1 -1
  599. data/lib/ddtrace/transport/io/traces.rb +3 -3
  600. data/lib/ddtrace/transport/io.rb +3 -3
  601. data/lib/ddtrace/transport/statistics.rb +2 -2
  602. data/lib/ddtrace/transport/trace_formatter.rb +14 -10
  603. data/lib/ddtrace/transport/traces.rb +8 -6
  604. data/lib/ddtrace/version.rb +1 -1
  605. data/lib/ddtrace.rb +6 -6
  606. metadata +127 -48
  607. data/.editorconfig +0 -22
  608. data/.gitignore +0 -58
  609. data/CONTRIBUTING.md +0 -81
  610. data/ddtrace.gemspec +0 -68
  611. data/docs/0.x-trace.png +0 -0
  612. data/docs/1.0-trace.png +0 -0
  613. data/docs/AutoInstrumentation.md +0 -36
  614. data/docs/Deprecation.md +0 -8
  615. data/docs/DevelopmentGuide.md +0 -259
  616. data/docs/GettingStarted.md +0 -2688
  617. data/docs/ProfilingDevelopment.md +0 -110
  618. data/docs/PublicApi.md +0 -14
  619. data/docs/UpgradeGuide.md +0 -736
  620. data/ext/ddtrace_profiling_native_extension/libddprof_helpers.h +0 -13
  621. data/lib/datadog/profiling/recorder.rb +0 -117
  622. data/lib/datadog/profiling/transport/client.rb +0 -16
  623. data/lib/datadog/profiling/transport/http/api/endpoint.rb +0 -107
  624. data/lib/datadog/profiling/transport/http/api/instance.rb +0 -38
  625. data/lib/datadog/profiling/transport/http/api/spec.rb +0 -42
  626. data/lib/datadog/profiling/transport/http/api.rb +0 -45
  627. data/lib/datadog/profiling/transport/http/builder.rb +0 -30
  628. data/lib/datadog/profiling/transport/http/client.rb +0 -35
  629. data/lib/datadog/profiling/transport/http/response.rb +0 -23
  630. data/lib/datadog/profiling/transport/http.rb +0 -112
  631. data/lib/datadog/profiling/transport/io/client.rb +0 -29
  632. data/lib/datadog/profiling/transport/io/response.rb +0 -18
  633. data/lib/datadog/profiling/transport/io.rb +0 -32
  634. data/lib/datadog/profiling/transport/parcel.rb +0 -19
  635. data/lib/datadog/profiling/transport/request.rb +0 -17
  636. data/lib/datadog/profiling/transport/response.rb +0 -10
  637. data/lib/datadog/tracing/distributed/headers/b3.rb +0 -55
  638. data/lib/datadog/tracing/distributed/headers/b3_single.rb +0 -67
  639. data/lib/datadog/tracing/distributed/headers/datadog.rb +0 -52
  640. data/lib/datadog/tracing/distributed/parser.rb +0 -70
  641. data/lib/datadog/tracing/propagation/grpc.rb +0 -88
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6517e04d64a4ad46051c9841bf7438809e6379693f5796a26c063e3335788963
4
- data.tar.gz: 646ad1cdabd82d2c94c4d4d5d1e4ab96f6a36890a9f50ea4cbbedac4c123a00e
3
+ metadata.gz: 1ba4a81593411a12abfa1665b3910e49e35429b1b266779e93accb0f84a478d2
4
+ data.tar.gz: e72362dc1a1e682a3c52b8af8017fcd12e60d353843cdd129f65a55dbb0c312d
5
5
  SHA512:
6
- metadata.gz: 6d17badd3ed215171d47529092da1ea2a90e0acbdd9071237fc3637052d2b8fb72c422594dfd504a773dc504bcb8862c07d40123fdd97df207d07e07dee5a491
7
- data.tar.gz: 9cbde75b86ba09ccb13161ab106ec24d3b10d93bab1b5996fdec72c14c429b227df3bbc965ab528369ac25e36a5650368b1339e89c17e632605c1e95566bae87
6
+ metadata.gz: a083b23cfadccc78e67a5aa2a3ae067bc868e4721d92d1fb9fcbadc7536332fabd20f6638fb157712e5e909afd3e3e505a2011838a4f0e98dbebaa64a38f7db6
7
+ data.tar.gz: 81b27dbbf685c01ee99ab79a8774aefca4a2feb93363a41e1a3465b01b1b07f571d5bdd75a73880658ae05254a3d742651bdf8df98fd48c040f73bb6a16702d0
data/CHANGELOG.md CHANGED
@@ -2,8 +2,282 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [1.9.0] - 2023-01-30
6
+
7
+ As of ddtrace 1.9.0, CPU Profiling 2.0 is now in opt-in (that is, disabled by default) public beta. For more details, check the release notes.
8
+
9
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.9.0
10
+
11
+ ### Added
12
+
13
+ * Tracing: Add `Stripe` instrumentation ([#2557][])
14
+ * Tracing: Add configurable response codes considered as errors for `Net/HTTP`, `httprb` and `httpclient` ([#2501][], [#2576][])([@caramcc][])
15
+ * Tracing: Flexible header matching for HTTP propagator ([#2504][])
16
+ * Tracing: `OpenTelemetry` Traces support ([#2496][])
17
+ * Tracing: W3C: Propagate unknown values as-is ([#2485][])
18
+ * Appsec: Add event kit API ([#2512][])
19
+ * Profiling: Allow profiler development on arm64 macOS ([#2573][])
20
+ * Core: Add `profiling_enabled` state to environment logger output ([#2541][])
21
+ * Core: Add 'type' to `OptionDefinition` ([#2493][])
22
+ * Allow `debase-ruby_core_source` 3.2.0 to be used ([#2526][])
23
+
24
+ ### Changed
25
+
26
+ * Profiling: Upgrade to `libdatadog` to `1.0.1.1.0` ([#2530][])
27
+ * Appsec: Update appsec rules `1.4.3` ([#2580][])
28
+ * Ci: Update CI Visibility metadata extraction ([#2586][])
29
+
30
+ ### Fixed
31
+
32
+ * Profiling: Fix wrong `libdatadog` version being picked during profiler build ([#2531][])
33
+ * Tracing: Support `PG` calls with a block ([#2522][])
34
+ * Ci: Fix error in `teamcity` env vars ([#2562][])
35
+
36
+ ## [1.8.0] - 2022-12-14
37
+
38
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.8.0
39
+
40
+ As of ddtrace 1.8.0, CPU Profiling 2.0 is now in opt-in (that is, disabled by default) public beta. For more details,
41
+ check the release notes.
42
+
43
+ ### Added
44
+
45
+ * Core: Profiling: [PROF-6559] Mark Ruby CPU Profiling 2.0 as being in beta ([#2489][])
46
+ * Tracing: Attempt to parse future version of TraceContext ([#2473][])
47
+ * Tracing: Add DD_TRACE_PROPAGATION_STYLE option ([#2466][])
48
+ * Integrations: Tracing: SQL comment propagation full mode with traceparent ([#2464][])
49
+ * Integrations: Tracing: Wire W3C propagator to HTTP & gRPC propagation ([#2458][])
50
+ * Integrations: Tracing: Auto-instrumentation with service_name from environmental variable ([#2455][])
51
+ * Core: Integrations: Tracing: Deprecation notice for B3 propagation configuration ([#2454][])
52
+ * Tracing: Add W3C Trace Context propagator ([#2451][])
53
+ * Integrations: Tracing: Redis 5 Instrumentation ([#2428][])
54
+
55
+ ### Changed
56
+
57
+ * Tracing: Changes `error.msg` to `error.message` for UNC ([#2469][])
58
+ * Tracing: Semicolons not allowed in 'origin' ([#2461][])
59
+ * Core: Dev/refactor: Tracing: Dev/internal: Move Utils#next_id and constants to Tracing::Utils ([#2463][])
60
+ * Core: Dev/refactor: Tracing: Dev/internal: Move Tracing config settings from Core to Tracing ([#2459][])
61
+ * Core: Dev/refactor: Tracing: Dev/internal: Move Tracing diagnostic code from Core to Tracing ([#2453][])
62
+
63
+ ### Fixed
64
+
65
+ * Integrations: Tracing: Improve redis integration patching ([#2470][])
66
+ * Tracing: Extra testing from W3C spec ([#2460][])
67
+
68
+ ## [1.7.0] - 2022-11-29
69
+
70
+ ### Added
71
+ * Integrations: Support que 2 ([#2382][]) ([@danhodge][])
72
+ * Tracing: Unified tagging `span.kind` as `server` and `client` ([#2365][])
73
+ * Tracing: Adds `span.kind` tag for `kafka`, `sidekiq`, `racecar`, `que`, `shoryuken`, `sneakers`, and `resque` ([#2420][], [#2419][], [#2413][], [#2394][])
74
+ * Tracing: Adds `span.kind` with values `producer` and `consumer` for `delayed_job` ([#2393][])
75
+ * Tracing: Adds `span.kind` as `client` for `redis` ([#2392][])
76
+ * Appsec: Pass HTTP client IP to WAF ([#2316][])
77
+ * Unified tagging `process_id` ([#2276][])
78
+
79
+ ### Changed
80
+ * Allow `debase-ruby_core_source` 0.10.18 to be used ([#2435][])
81
+ * Update AppSec ruleset to v1.4.2 ([#2390][])
82
+ * Refactored clearing of profile data after Ruby app forks ([#2362][], [#2367][])
83
+ * Tracing: Move distributed propagation to Contrib ([#2352][])
84
+
85
+ ### Fixed
86
+ * Fix ddtrace installation issue when users have CI=true ([#2378][])
87
+
88
+ ## [1.6.1] - 2022-11-16
89
+
90
+ ### Changed
91
+
92
+ * Limit `redis` version support to less than 5
93
+
94
+ ### Fixed
95
+
96
+ * [redis]: Fix frozen input for `Redis.new(...)`
97
+
98
+ ## [1.6.0] - 2022-11-15
99
+
100
+ ### Added
101
+
102
+ * Trace level tags propagation in distributed tracing ([#2260][])
103
+ * [hanami]: Hanami 1.x instrumentation ([#2230][])
104
+ * [pg, mysql2]: option `comment_propagation` for SQL comment propagation, default is `disabled` ([#2339][])([#2324][])
105
+
106
+ ### Changed
107
+
108
+ * [rack, sinatra]: Squash nested spans and improve patching mechanism.<br> No need to `register Datadog::Tracing::Contrib::Sinatra::Tracer`([#2217][])
109
+ * [rails, rack]: Fix Non-GET request method with rails exception controller ([#2317][])
110
+ * Upgrade to libdatadog 0.9.0.1.0 ([#2302][])
111
+ * Remove legacy profiling transport ([#2062][])
112
+
113
+ ### Fixed
114
+
115
+ * [redis]: Fix redis instance configuration, not on `client` ([#2363][])
116
+ ```
117
+ # Change your code from
118
+ Datadog.configure_onto(redis.client, service_name: '...')
119
+ # to
120
+ Datadog.configure_onto(redis, service_name: '...')
121
+ ```
122
+ * Allow `DD_TAGS` values to have the colon character ([#2292][])
123
+ * Ensure that `TraceSegment` can be reported correctly when they are dropped ([#2335][])
124
+ * Docs: Fixes upgrade guide on configure_onto ([#2307][])
125
+ * Fix environment logger with IO transport ([#2313][])
126
+
127
+ ## [1.5.2] - 2022-10-27
128
+
129
+ ### Deprecation notice
130
+
131
+ - `DD_TRACE_CLIENT_IP_HEADER_DISABLED` was changed to `DD_TRACE_CLIENT_IP_ENABLED`. Although the former still works we encourage usage of the latter instead.
132
+
133
+ ### Changed
134
+
135
+ - `http.client_ip` tag collection is made opt-in for APM. Note that `http.client_ip` is always collected when ASM is enabled as part of the security service provided ([#2321][], [#2331][])
136
+
137
+ ### Fixed
138
+
139
+ - Handle REQUEST_URI with base url ([#2328][], [#2330][])
140
+
141
+ ## [1.5.1] - 2022-10-19
142
+
143
+ ### Changed
144
+
145
+ * Update libddwaf to 1.5.1 ([#2306][])
146
+ * Improve libddwaf extension memory management ([#2306][])
147
+
148
+ ### Fixed
149
+
150
+ * Fix `URI::InvalidURIError` ([#2310][], [#2318][]) ([@yujideveloper][])
151
+ * Handle URLs with invalid characters ([#2311][], [#2319][])
152
+ * Fix missing appsec.event tag ([#2306][])
153
+ * Fix missing Rack and Rails request body parsing for AppSec analysis ([#2306][])
154
+ * Fix unneeded AppSec call in a Rack context when AppSec is disabled ([#2306][])
155
+ * Fix spurious AppSec instrumentation ([#2306][])
156
+
157
+ ## [1.5.0] - 2022-09-29
158
+
159
+ ### Deprecation notice
160
+
161
+ * `c.tracing.instrument :rack, { quantize: { base: ... } }` will change its default from `:exclude` to `:show` in a future version. Voluntarily moving to `:show` is recommended.
162
+ * `c.tracing.instrument :rack, { quantize: { query: { show: ... } }` will change its default to `:all` in a future version, together with `quantize.query.obfuscate` changing to `:internal`. Voluntarily moving to these future values is recommended.
163
+
164
+ ### Added
165
+
166
+ * Feature: Single Span Sampling ([#2128][])
167
+ * Add query string automatic redaction ([#2283][])
168
+ * Use full URL in `http.url` tag ([#2265][])
169
+ * Add `http.useragent` tag ([#2252][])
170
+ * Add `http.client_ip` tag for Rack-based frameworks ([#2248][])
171
+ * Ci-app: CI: Fetch committer and author in Bitrise ([#2258][])
172
+
173
+ ### Changed
174
+
175
+ * Bump allowed version of debase-ruby_core_source to include v0.10.17 ([#2267][])
176
+
177
+ ### Fixed
178
+
179
+ * Bug: Fix `service_nam` typo to `service_name` ([#2296][])
180
+ * Bug: Check AppSec Rails for railties instead of rails meta gem ([#2293][]) ([@seuros][])
181
+ * Ci-app: Correctly extract commit message from AppVeyor ([#2257][])
182
+
183
+ ## [1.4.2] - 2022-09-27
184
+
185
+ ### Fixed
186
+
187
+ OpenTracing context propagation ([#2191][], [#2289][])
188
+
189
+ ## [1.4.1] - 2022-09-15
190
+
191
+ ### Fixed
192
+
193
+ * Missing distributed traces when trace is dropped by priority sampling ([#2101][], [#2279][])
194
+ * Profiling support when Ruby is compiled without a shared library ([#2250][])
195
+
196
+ ## [1.4.0] - 2022-08-25
197
+
198
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.4.0
199
+
200
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.3.0...v1.4.0
201
+
202
+ ### Added
203
+
204
+ * gRPC: tag `grpc.client.deadline` ([#2200][])
205
+ * Implement telemetry, disable by default ([#2153][])
206
+
207
+ ### Changed
208
+
209
+ * Bump `libdatadog` dependency version ([#2229][])
210
+
211
+ ### Fixed
212
+
213
+ * Fix CI instrumentation configuration ([#2219][])
214
+
215
+ ## [1.3.0] - 2022-08-04
216
+
217
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.3.0
218
+
219
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.2.0...v1.3.0
220
+
221
+ ### Added
222
+
223
+ * Top-level span being tagged to avoid duplicate computation ([#2138][])
224
+
225
+ ### Changed
226
+
227
+ * ActiveSupport: Optionally disable tracing with Rails ([@marcotc][])
228
+ * Rack: Resource overwritten by nested application ([#2180][])
229
+ * Rake: Explicit task instrumentation to prevent memory bloat ([#2174][])
230
+ * Sidekiq and DelayedJob: Add spans to improve tracing ([#2170][])
231
+ * Drop Profiling support for Ruby 2.1 ([#2140][])
232
+ * Migrate `libddprof` dependency to `libdatadog` ([#2061][])
233
+
234
+ ### Fixed
235
+
236
+ * Fix OpenTracing propagation with TraceDigest ([#2201][])
237
+ * Fix SpanFilter dropping descendant spans ([#2074][])
238
+ * Redis: Fix Empty pipelined span being dropped ([#757][]) ([@sponomarev][])
239
+ * Fix profiler not restarting on `Process.daemon` ([#2150][])
240
+ * Fix setting service from Rails configuration ([#2118][]) ([@agrobbin][])
241
+ * Some document and development improvement ([@marocchino][]) ([@yukimurasawa][])
242
+
243
+ ## [1.2.0] - 2022-07-11
244
+
245
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.2.0
246
+
247
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.1.0...v1.2.0
248
+
249
+ Special thanks go to [@miketheman][] for gifting Datadog access to the `datadog` gem a few days ago.
250
+
251
+ ### Added
252
+
253
+ * Add Postgres (`pg` gem) instrumentation ([#2054][]) ([@jennchenn][])
254
+ * Add env var for debugging profiling native extension compilation issues ([#2069][])
255
+ * Teach Rest Client integration the `:split_by_domain` option ([#2079][]) ([@agrobbin][])
256
+ * Allow passing request_queuing option to Rack through Rails tracer ([#2082][]) ([@KieranP][])
257
+ * Add Utility to Collect Platform Information ([#2097][]) ([@jennchenn][])
258
+ * Add convenient interface for getting and setting tags using `[]` and `[]=` respectively ([#2076][]) ([@ioquatix][])
259
+ * Add b3 metadata in grpc ([#2110][]) ([@henrich-m][])
260
+
261
+ ### Changed
262
+
263
+ * Profiler now reports profiling data using the libddprof gem ([#2059][])
264
+ * Rename `Kernel#at_fork_blocks` monkey patch to `Kernel#ddtrace_at_fork_blocks` ([#2070][])
265
+ * Improved error message for enabling profiling when `pkg-config` system tool is not installed ([#2134][])
266
+
267
+ ### Fixed
268
+
269
+ * Prevent errors in `action_controller` integration when tracing is disabled ([#2027][]) ([@ahorner][])
270
+ * Fix profiler not building on ruby-head (3.2) due to VM refactoring ([#2066][])
271
+ * Span and trace IDs should not be zero ([#2113][]) ([@albertvaka][])
272
+ * Fix object_id usage as thread local key ([#2096][])
273
+ * Fix profiling not working on Heroku and AWS Elastic Beanstalk due to linking issues ([#2125][])
274
+
5
275
  ## [1.1.0] - 2022-05-25
6
276
 
277
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.1.0
278
+
279
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0...v1.1.0
280
+
7
281
  ### Added
8
282
 
9
283
  * [Application Security Monitoring](https://docs.datadoghq.com/security_platform/application_security/)
@@ -2007,7 +2281,20 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
2007
2281
 
2008
2282
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2009
2283
 
2010
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.1.0...master
2284
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.9.0...master
2285
+ [1.9.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.8.0...v1.9.0
2286
+ [1.8.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.7.0...v1.8.0
2287
+ [1.7.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.6.1...v1.7.0
2288
+ [1.6.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.6.0...v1.6.1
2289
+ [1.6.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.5.2...v1.6.0
2290
+ [1.5.2]: https://github.com/DataDog/dd-trace-rb/compare/v1.5.1...v1.5.2
2291
+ [1.5.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.5.0...v1.5.1
2292
+ [1.5.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.4.2...v1.5.0
2293
+ [1.4.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.4.1...v1.4.2
2294
+ [1.4.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.4.0...v1.4.1
2295
+ [1.4.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.3.0...v1.4.0
2296
+ [1.3.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.2.0...v1.3.0
2297
+ [1.2.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.1.0...v1.2.0
2011
2298
  [1.1.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0...v1.1.0
2012
2299
  [1.0.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0.beta2...v1.0.0
2013
2300
  [1.0.0.beta2]: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0.beta1...v1.0.0.beta2
@@ -2318,6 +2605,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2318
2605
  [#753]: https://github.com/DataDog/dd-trace-rb/issues/753
2319
2606
  [#754]: https://github.com/DataDog/dd-trace-rb/issues/754
2320
2607
  [#756]: https://github.com/DataDog/dd-trace-rb/issues/756
2608
+ [#757]: https://github.com/DataDog/dd-trace-rb/issues/757
2321
2609
  [#760]: https://github.com/DataDog/dd-trace-rb/issues/760
2322
2610
  [#762]: https://github.com/DataDog/dd-trace-rb/issues/762
2323
2611
  [#765]: https://github.com/DataDog/dd-trace-rb/issues/765
@@ -2852,7 +3140,126 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2852
3140
  [#2010]: https://github.com/DataDog/dd-trace-rb/issues/2010
2853
3141
  [#2011]: https://github.com/DataDog/dd-trace-rb/issues/2011
2854
3142
  [#2022]: https://github.com/DataDog/dd-trace-rb/issues/2022
3143
+ [#2027]: https://github.com/DataDog/dd-trace-rb/issues/2027
2855
3144
  [#2028]: https://github.com/DataDog/dd-trace-rb/issues/2028
3145
+ [#2054]: https://github.com/DataDog/dd-trace-rb/issues/2054
3146
+ [#2059]: https://github.com/DataDog/dd-trace-rb/issues/2059
3147
+ [#2061]: https://github.com/DataDog/dd-trace-rb/issues/2061
3148
+ [#2062]: https://github.com/DataDog/dd-trace-rb/issues/2062
3149
+ [#2066]: https://github.com/DataDog/dd-trace-rb/issues/2066
3150
+ [#2069]: https://github.com/DataDog/dd-trace-rb/issues/2069
3151
+ [#2070]: https://github.com/DataDog/dd-trace-rb/issues/2070
3152
+ [#2074]: https://github.com/DataDog/dd-trace-rb/issues/2074
3153
+ [#2076]: https://github.com/DataDog/dd-trace-rb/issues/2076
3154
+ [#2079]: https://github.com/DataDog/dd-trace-rb/issues/2079
3155
+ [#2082]: https://github.com/DataDog/dd-trace-rb/issues/2082
3156
+ [#2096]: https://github.com/DataDog/dd-trace-rb/issues/2096
3157
+ [#2097]: https://github.com/DataDog/dd-trace-rb/issues/2097
3158
+ [#2101]: https://github.com/DataDog/dd-trace-rb/issues/2101
3159
+ [#2110]: https://github.com/DataDog/dd-trace-rb/issues/2110
3160
+ [#2113]: https://github.com/DataDog/dd-trace-rb/issues/2113
3161
+ [#2118]: https://github.com/DataDog/dd-trace-rb/issues/2118
3162
+ [#2125]: https://github.com/DataDog/dd-trace-rb/issues/2125
3163
+ [#2128]: https://github.com/DataDog/dd-trace-rb/issues/2128
3164
+ [#2134]: https://github.com/DataDog/dd-trace-rb/issues/2134
3165
+ [#2138]: https://github.com/DataDog/dd-trace-rb/issues/2138
3166
+ [#2140]: https://github.com/DataDog/dd-trace-rb/issues/2140
3167
+ [#2150]: https://github.com/DataDog/dd-trace-rb/issues/2150
3168
+ [#2153]: https://github.com/DataDog/dd-trace-rb/issues/2153
3169
+ [#2158]: https://github.com/DataDog/dd-trace-rb/issues/2158
3170
+ [#2162]: https://github.com/DataDog/dd-trace-rb/issues/2162
3171
+ [#2163]: https://github.com/DataDog/dd-trace-rb/issues/2163
3172
+ [#2170]: https://github.com/DataDog/dd-trace-rb/issues/2170
3173
+ [#2173]: https://github.com/DataDog/dd-trace-rb/issues/2173
3174
+ [#2174]: https://github.com/DataDog/dd-trace-rb/issues/2174
3175
+ [#2180]: https://github.com/DataDog/dd-trace-rb/issues/2180
3176
+ [#2191]: https://github.com/DataDog/dd-trace-rb/issues/2191
3177
+ [#2200]: https://github.com/DataDog/dd-trace-rb/issues/2200
3178
+ [#2201]: https://github.com/DataDog/dd-trace-rb/issues/2201
3179
+ [#2217]: https://github.com/DataDog/dd-trace-rb/issues/2217
3180
+ [#2219]: https://github.com/DataDog/dd-trace-rb/issues/2219
3181
+ [#2229]: https://github.com/DataDog/dd-trace-rb/issues/2229
3182
+ [#2230]: https://github.com/DataDog/dd-trace-rb/issues/2230
3183
+ [#2248]: https://github.com/DataDog/dd-trace-rb/issues/2248
3184
+ [#2250]: https://github.com/DataDog/dd-trace-rb/issues/2250
3185
+ [#2252]: https://github.com/DataDog/dd-trace-rb/issues/2252
3186
+ [#2257]: https://github.com/DataDog/dd-trace-rb/issues/2257
3187
+ [#2258]: https://github.com/DataDog/dd-trace-rb/issues/2258
3188
+ [#2260]: https://github.com/DataDog/dd-trace-rb/issues/2260
3189
+ [#2265]: https://github.com/DataDog/dd-trace-rb/issues/2265
3190
+ [#2267]: https://github.com/DataDog/dd-trace-rb/issues/2267
3191
+ [#2276]: https://github.com/DataDog/dd-trace-rb/issues/2276
3192
+ [#2279]: https://github.com/DataDog/dd-trace-rb/issues/2279
3193
+ [#2283]: https://github.com/DataDog/dd-trace-rb/issues/2283
3194
+ [#2289]: https://github.com/DataDog/dd-trace-rb/issues/2289
3195
+ [#2292]: https://github.com/DataDog/dd-trace-rb/issues/2292
3196
+ [#2293]: https://github.com/DataDog/dd-trace-rb/issues/2293
3197
+ [#2296]: https://github.com/DataDog/dd-trace-rb/issues/2296
3198
+ [#2302]: https://github.com/DataDog/dd-trace-rb/issues/2302
3199
+ [#2306]: https://github.com/DataDog/dd-trace-rb/issues/2306
3200
+ [#2307]: https://github.com/DataDog/dd-trace-rb/issues/2307
3201
+ [#2310]: https://github.com/DataDog/dd-trace-rb/issues/2310
3202
+ [#2311]: https://github.com/DataDog/dd-trace-rb/issues/2311
3203
+ [#2313]: https://github.com/DataDog/dd-trace-rb/issues/2313
3204
+ [#2316]: https://github.com/DataDog/dd-trace-rb/issues/2316
3205
+ [#2317]: https://github.com/DataDog/dd-trace-rb/issues/2317
3206
+ [#2318]: https://github.com/DataDog/dd-trace-rb/issues/2318
3207
+ [#2319]: https://github.com/DataDog/dd-trace-rb/issues/2319
3208
+ [#2321]: https://github.com/DataDog/dd-trace-rb/issues/2321
3209
+ [#2324]: https://github.com/DataDog/dd-trace-rb/issues/2324
3210
+ [#2328]: https://github.com/DataDog/dd-trace-rb/issues/2328
3211
+ [#2330]: https://github.com/DataDog/dd-trace-rb/issues/2330
3212
+ [#2331]: https://github.com/DataDog/dd-trace-rb/issues/2331
3213
+ [#2335]: https://github.com/DataDog/dd-trace-rb/issues/2335
3214
+ [#2339]: https://github.com/DataDog/dd-trace-rb/issues/2339
3215
+ [#2352]: https://github.com/DataDog/dd-trace-rb/issues/2352
3216
+ [#2362]: https://github.com/DataDog/dd-trace-rb/issues/2362
3217
+ [#2363]: https://github.com/DataDog/dd-trace-rb/issues/2363
3218
+ [#2365]: https://github.com/DataDog/dd-trace-rb/issues/2365
3219
+ [#2367]: https://github.com/DataDog/dd-trace-rb/issues/2367
3220
+ [#2378]: https://github.com/DataDog/dd-trace-rb/issues/2378
3221
+ [#2382]: https://github.com/DataDog/dd-trace-rb/issues/2382
3222
+ [#2390]: https://github.com/DataDog/dd-trace-rb/issues/2390
3223
+ [#2392]: https://github.com/DataDog/dd-trace-rb/issues/2392
3224
+ [#2393]: https://github.com/DataDog/dd-trace-rb/issues/2393
3225
+ [#2394]: https://github.com/DataDog/dd-trace-rb/issues/2394
3226
+ [#2413]: https://github.com/DataDog/dd-trace-rb/issues/2413
3227
+ [#2419]: https://github.com/DataDog/dd-trace-rb/issues/2419
3228
+ [#2420]: https://github.com/DataDog/dd-trace-rb/issues/2420
3229
+ [#2428]: https://github.com/DataDog/dd-trace-rb/issues/2428
3230
+ [#2435]: https://github.com/DataDog/dd-trace-rb/issues/2435
3231
+ [#2451]: https://github.com/DataDog/dd-trace-rb/issues/2451
3232
+ [#2453]: https://github.com/DataDog/dd-trace-rb/issues/2453
3233
+ [#2454]: https://github.com/DataDog/dd-trace-rb/issues/2454
3234
+ [#2455]: https://github.com/DataDog/dd-trace-rb/issues/2455
3235
+ [#2458]: https://github.com/DataDog/dd-trace-rb/issues/2458
3236
+ [#2459]: https://github.com/DataDog/dd-trace-rb/issues/2459
3237
+ [#2460]: https://github.com/DataDog/dd-trace-rb/issues/2460
3238
+ [#2461]: https://github.com/DataDog/dd-trace-rb/issues/2461
3239
+ [#2463]: https://github.com/DataDog/dd-trace-rb/issues/2463
3240
+ [#2464]: https://github.com/DataDog/dd-trace-rb/issues/2464
3241
+ [#2466]: https://github.com/DataDog/dd-trace-rb/issues/2466
3242
+ [#2469]: https://github.com/DataDog/dd-trace-rb/issues/2469
3243
+ [#2470]: https://github.com/DataDog/dd-trace-rb/issues/2470
3244
+ [#2473]: https://github.com/DataDog/dd-trace-rb/issues/2473
3245
+ [#2485]: https://github.com/DataDog/dd-trace-rb/issues/2485
3246
+ [#2489]: https://github.com/DataDog/dd-trace-rb/issues/2489
3247
+ [#2493]: https://github.com/DataDog/dd-trace-rb/issues/2493
3248
+ [#2496]: https://github.com/DataDog/dd-trace-rb/issues/2496
3249
+ [#2501]: https://github.com/DataDog/dd-trace-rb/issues/2501
3250
+ [#2504]: https://github.com/DataDog/dd-trace-rb/issues/2504
3251
+ [#2512]: https://github.com/DataDog/dd-trace-rb/issues/2512
3252
+ [#2522]: https://github.com/DataDog/dd-trace-rb/issues/2522
3253
+ [#2526]: https://github.com/DataDog/dd-trace-rb/issues/2526
3254
+ [#2530]: https://github.com/DataDog/dd-trace-rb/issues/2530
3255
+ [#2531]: https://github.com/DataDog/dd-trace-rb/issues/2531
3256
+ [#2541]: https://github.com/DataDog/dd-trace-rb/issues/2541
3257
+ [#2557]: https://github.com/DataDog/dd-trace-rb/issues/2557
3258
+ [#2562]: https://github.com/DataDog/dd-trace-rb/issues/2562
3259
+ [#2573]: https://github.com/DataDog/dd-trace-rb/issues/2573
3260
+ [#2576]: https://github.com/DataDog/dd-trace-rb/issues/2576
3261
+ [#2580]: https://github.com/DataDog/dd-trace-rb/issues/2580
3262
+ [#2586]: https://github.com/DataDog/dd-trace-rb/issues/2586
2856
3263
  [@AdrianLC]: https://github.com/AdrianLC
2857
3264
  [@Azure7111]: https://github.com/Azure7111
2858
3265
  [@BabyGroot]: https://github.com/BabyGroot
@@ -2865,6 +3272,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2865
3272
  [@Jared-Prime]: https://github.com/Jared-Prime
2866
3273
  [@Joas1988]: https://github.com/Joas1988
2867
3274
  [@JustSnow]: https://github.com/JustSnow
3275
+ [@KieranP]: https://github.com/KieranP
2868
3276
  [@MMartyn]: https://github.com/MMartyn
2869
3277
  [@NobodysNightmare]: https://github.com/NobodysNightmare
2870
3278
  [@Redapted]: https://github.com/Redapted
@@ -2875,7 +3283,9 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2875
3283
  [@agirlnamedsophia]: https://github.com/agirlnamedsophia
2876
3284
  [@agrobbin]: https://github.com/agrobbin
2877
3285
  [@ahammel]: https://github.com/ahammel
3286
+ [@ahorner]: https://github.com/ahorner
2878
3287
  [@al-kudryavtsev]: https://github.com/al-kudryavtsev
3288
+ [@albertvaka]: https://github.com/albertvaka
2879
3289
  [@alksl]: https://github.com/alksl
2880
3290
  [@alloy]: https://github.com/alloy
2881
3291
  [@aurelian]: https://github.com/aurelian
@@ -2888,6 +3298,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2888
3298
  [@brafales]: https://github.com/brafales
2889
3299
  [@bzf]: https://github.com/bzf
2890
3300
  [@callumj]: https://github.com/callumj
3301
+ [@caramcc]: https://github.com/caramcc
2891
3302
  [@carlallen]: https://github.com/carlallen
2892
3303
  [@chychkan]: https://github.com/chychkan
2893
3304
  [@cjford]: https://github.com/cjford
@@ -2895,6 +3306,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2895
3306
  [@components]: https://github.com/components
2896
3307
  [@cswatt]: https://github.com/cswatt
2897
3308
  [@cwoodcox]: https://github.com/cwoodcox
3309
+ [@danhodge]: https://github.com/danhodge
2898
3310
  [@dasch]: https://github.com/dasch
2899
3311
  [@dim]: https://github.com/dim
2900
3312
  [@dirk]: https://github.com/dirk
@@ -2921,11 +3333,14 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2921
3333
  [@guizmaii]: https://github.com/guizmaii
2922
3334
  [@hatstand]: https://github.com/hatstand
2923
3335
  [@hawknewton]: https://github.com/hawknewton
3336
+ [@henrich-m]: https://github.com/henrich-m
2924
3337
  [@hs-bguven]: https://github.com/hs-bguven
2925
3338
  [@illdelph]: https://github.com/illdelph
3339
+ [@ioquatix]: https://github.com/ioquatix
2926
3340
  [@jamiehodge]: https://github.com/jamiehodge
2927
3341
  [@janz93]: https://github.com/janz93
2928
3342
  [@jeffjo]: https://github.com/jeffjo
3343
+ [@jennchenn]: https://github.com/jennchenn
2929
3344
  [@jfrancoist]: https://github.com/jfrancoist
2930
3345
  [@joeyAghion]: https://github.com/joeyAghion
2931
3346
  [@jpaulgs]: https://github.com/jpaulgs
@@ -2939,12 +3354,15 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2939
3354
  [@link04]: https://github.com/link04
2940
3355
  [@lloeki]: https://github.com/lloeki
2941
3356
  [@mantrala]: https://github.com/mantrala
3357
+ [@marcotc]: https://github.com/marcotc
3358
+ [@marocchino]: https://github.com/marocchino
2942
3359
  [@masato-hi]: https://github.com/masato-hi
2943
3360
  [@matchbookmac]: https://github.com/matchbookmac
2944
3361
  [@mberlanda]: https://github.com/mberlanda
2945
3362
  [@mdehoog]: https://github.com/mdehoog
2946
3363
  [@mdross95]: https://github.com/mdross95
2947
3364
  [@michaelkl]: https://github.com/michaelkl
3365
+ [@miketheman]: https://github.com/miketheman
2948
3366
  [@mriddle]: https://github.com/mriddle
2949
3367
  [@mscrivo]: https://github.com/mscrivo
2950
3368
  [@mstruve]: https://github.com/mstruve
@@ -2965,10 +3383,12 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2965
3383
  [@saturnflyer]: https://github.com/saturnflyer
2966
3384
  [@sco11morgan]: https://github.com/sco11morgan
2967
3385
  [@senny]: https://github.com/senny
3386
+ [@seuros]: https://github.com/seuros
2968
3387
  [@shayonj]: https://github.com/shayonj
2969
3388
  [@sinsoku]: https://github.com/sinsoku
2970
3389
  [@skcc321]: https://github.com/skcc321
2971
3390
  [@soulcutter]: https://github.com/soulcutter
3391
+ [@sponomarev]: https://github.com/sponomarev
2972
3392
  [@stefanahman]: https://github.com/stefanahman
2973
3393
  [@steveh]: https://github.com/steveh
2974
3394
  [@stormsilver]: https://github.com/stormsilver
@@ -2983,4 +3403,6 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2983
3403
  [@vramaiah]: https://github.com/vramaiah
2984
3404
  [@walterking]: https://github.com/walterking
2985
3405
  [@y-yagi]: https://github.com/y-yagi
3406
+ [@yujideveloper]: https://github.com/yujideveloper
3407
+ [@yukimurasawa]: https://github.com/yukimurasawa
2986
3408
  [@zachmccormick]: https://github.com/zachmccormick
data/LICENSE-3rdparty.csv CHANGED
@@ -1,4 +1,7 @@
1
1
  Component,Origin,License,Copyright
2
2
  lib/datadog/core/vendor/multipart-post,https://github.com/socketry/multipart-post,MIT,"Copyright (c) 2007-2013 Nick Sieger."
3
3
  lib/datadog/tracing/contrib/active_record/vendor,https://github.com/rails/rails/,MIT,"Copyright (c) 2005-2018 David Heinemeier Hansson"
4
+ lib/datadog/tracing/contrib/utils/quantization/http.rb,https://github.com/ruby/uri,BSD-2-Clause,"Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved."
4
5
  ext/ddtrace_profiling_native_extension/private_vm_api_access,https://github.com/ruby/ruby,BSD-2-Clause,"Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved."
6
+ msgpack,https://rubygems.org/gems/msgpack,Apache-2.0,"Copyright (c) 2008-2015 Sadayuki Furuhashi"
7
+ debase-ruby_core_source,https://rubygems.org/gems/debase-ruby_core_source,MIT for gem and BSD-2-Clause for Ruby sources,"Copyright (c) 2012 Gabriel Horner. Files from Ruby sources are Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved."
data/README.md CHANGED
@@ -1,17 +1,17 @@
1
- ***Version 1.0.0 has recently been released. Check out our [upgrade guide](https://github.com/DataDog/dd-trace-rb/blob/master/docs/UpgradeGuide.md#from-0x-to-10) for more details.***
2
-
3
1
  # Datadog Trace Client
4
2
 
5
3
  [![Gem](https://img.shields.io/gem/v/ddtrace)](https://rubygems.org/gems/ddtrace/)
6
4
  [![CircleCI](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master.svg?style=svg&circle-token=b0bd5ef866ec7f7b018f48731bb495f2d1372cc1)](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master)
7
5
  [![codecov](https://codecov.io/gh/DataDog/dd-trace-rb/branch/master/graph/badge.svg)](https://app.codecov.io/gh/DataDog/dd-trace-rb/branch/master)
8
- [![YARD documentation](https://img.shields.io/badge/YARD-documentation-blue)](https://www.rubydoc.info/gems/ddtrace/)
6
+ [![YARD documentation](https://img.shields.io/badge/YARD-documentation-blue)](https://s3.amazonaws.com/gems.datadoghq.com/trace/docs/index.html)
9
7
 
10
8
  ``ddtrace`` is Datadog’s tracing client for Ruby. It is used to trace requests as they flow across web servers,
11
9
  databases and microservices so that developers have great visiblity into bottlenecks and troublesome requests.
12
10
 
13
11
  ## Getting started
14
12
 
13
+ **If you're upgrading from a 0.x version, check out our [upgrade guide](https://github.com/DataDog/dd-trace-rb/blob/master/docs/UpgradeGuide.md#from-0x-to-10).**
14
+
15
15
  For a basic product overview, check out our [setup documentation][setup docs].
16
16
 
17
17
  For installation, configuration, and details about using the API, check out our [API documentation][api docs] and [gem documentation][gem docs].
@@ -22,7 +22,12 @@ For contributing, checkout the [contribution guidelines][contribution docs] and
22
22
 
23
23
  [setup docs]: https://docs.datadoghq.com/tracing/setup/ruby/
24
24
  [api docs]: https://github.com/DataDog/dd-trace-rb/blob/master/docs/GettingStarted.md
25
- [gem docs]: http://gems.datadoghq.com/trace/docs/
25
+ [gem docs]: https://s3.amazonaws.com/gems.datadoghq.com/trace/docs/index.html
26
26
  [visualization docs]: https://docs.datadoghq.com/tracing/visualization/
27
27
  [contribution docs]: https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md
28
28
  [development docs]: https://github.com/DataDog/dd-trace-rb/blob/master/docs/DevelopmentGuide.md
29
+
30
+ ## Special thanks
31
+
32
+ * [Mike Fiedler](https://github.com/miketheman) for working on a number of Datadog Ruby projects, as well as graciously
33
+ gifting control of the `datadog` gem
@@ -20,7 +20,7 @@
20
20
  // This idea was shamelessly stolen from @lloeki's work in https://github.com/rubyjs/mini_racer/pull/179, big thanks!
21
21
  //
22
22
  // Extra note: Currently (May 2022), that we know of, the profiling native extension only exposes one potentially
23
- // problematic symbol: `rust_eh_personality` (coming from libddprof/libdatadog).
23
+ // problematic symbol: `rust_eh_personality` (coming from libdatadog).
24
24
  // Future versions of Rust have been patched not to expose this
25
25
  // (see https://github.com/rust-lang/rust/pull/95604#issuecomment-1108563434) so we may want to revisit the need
26
26
  // for this loader in the future, and perhaps delete it if we no longer require its services :)
@@ -29,10 +29,17 @@
29
29
  #define RTLD_DEEPBIND 0
30
30
  #endif
31
31
 
32
+ // Used to mark function arguments that are deliberately left unused
33
+ #ifdef __GNUC__
34
+ #define DDTRACE_UNUSED __attribute__((unused))
35
+ #else
36
+ #define DDTRACE_UNUSED
37
+ #endif
38
+
32
39
  static VALUE ok_symbol = Qnil; // :ok in Ruby
33
40
  static VALUE error_symbol = Qnil; // :error in Ruby
34
41
 
35
- static VALUE _native_load(VALUE self, VALUE ruby_path, VALUE ruby_init_name);
42
+ static VALUE _native_load(DDTRACE_UNUSED VALUE self, VALUE ruby_path, VALUE ruby_init_name);
36
43
  static bool failed_to_load(void *handle, VALUE *failure_details);
37
44
  static bool incompatible_library(void *handle, VALUE *failure_details);
38
45
  static bool failed_to_initialize(void *handle, char *init_name, VALUE *failure_details);
@@ -41,7 +48,7 @@ static void unload_failed_library(void *handle);
41
48
 
42
49
  #define DDTRACE_EXPORT __attribute__ ((visibility ("default")))
43
50
 
44
- void DDTRACE_EXPORT Init_ddtrace_profiling_loader() {
51
+ void DDTRACE_EXPORT Init_ddtrace_profiling_loader(void) {
45
52
  VALUE datadog_module = rb_define_module("Datadog");
46
53
  VALUE profiling_module = rb_define_module_under(datadog_module, "Profiling");
47
54
  VALUE loader_module = rb_define_module_under(profiling_module, "Loader");
@@ -51,7 +58,7 @@ void DDTRACE_EXPORT Init_ddtrace_profiling_loader() {
51
58
  error_symbol = ID2SYM(rb_intern_const("error"));
52
59
  }
53
60
 
54
- static VALUE _native_load(VALUE self, VALUE ruby_path, VALUE ruby_init_name) {
61
+ static VALUE _native_load(DDTRACE_UNUSED VALUE self, VALUE ruby_path, VALUE ruby_init_name) {
55
62
  Check_Type(ruby_path, T_STRING);
56
63
  Check_Type(ruby_init_name, T_STRING);
57
64
 
@@ -85,7 +92,16 @@ static bool failed_to_load(void *handle, VALUE *failure_details) {
85
92
  static bool incompatible_library(void *handle, VALUE *failure_details) {
86
93
  // The library being loaded may be linked to a different libruby than the current executing Ruby.
87
94
  // We check if this is the case by checking if a well-known symbol resolves to a common address.
88
- if (dlsym(handle, "ruby_xmalloc") != &ruby_xmalloc) {
95
+
96
+ void *xmalloc_from_library = dlsym(handle, "ruby_xmalloc");
97
+
98
+ if (xmalloc_from_library == NULL) {
99
+ // This happens when ruby is built without a `libruby.so` by using `--disable-shared` at compilation time.
100
+ // In this situation, no conflict between libruby version is possible.
101
+ return false;
102
+ }
103
+
104
+ if (xmalloc_from_library != &ruby_xmalloc) {
89
105
  *failure_details = rb_str_new_cstr("library was compiled and linked to a different Ruby version");
90
106
  unload_failed_library(handle);
91
107
  return true;