ddtrace 1.2.0 → 1.10.1

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 (766) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +442 -2
  3. data/LICENSE-3rdparty.csv +4 -0
  4. data/README.md +2 -2
  5. data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +20 -4
  6. data/ext/ddtrace_profiling_loader/extconf.rb +21 -3
  7. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +46 -3
  8. data/ext/ddtrace_profiling_native_extension/clock_id.h +21 -0
  9. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +33 -2
  10. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +10 -1
  11. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +821 -0
  12. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
  13. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
  14. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +241 -0
  15. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  16. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +186 -85
  17. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +13 -2
  18. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +978 -0
  19. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +14 -0
  20. data/ext/ddtrace_profiling_native_extension/extconf.rb +54 -34
  21. data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
  22. data/ext/ddtrace_profiling_native_extension/http_transport.c +127 -121
  23. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +25 -0
  24. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +82 -37
  25. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +189 -139
  26. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +15 -6
  27. data/ext/ddtrace_profiling_native_extension/profiling.c +221 -5
  28. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
  29. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +57 -1
  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 +489 -45
  33. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +12 -35
  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 +1722 -636
  40. data/lib/datadog/appsec/assets/waf_rules/strict.json +366 -74
  41. data/lib/datadog/appsec/assets.rb +2 -4
  42. data/lib/datadog/appsec/autoload.rb +5 -10
  43. data/lib/datadog/appsec/component.rb +41 -0
  44. data/lib/datadog/appsec/configuration/settings.rb +46 -24
  45. data/lib/datadog/appsec/configuration.rb +12 -4
  46. data/lib/datadog/appsec/contrib/auto_instrument.rb +0 -4
  47. data/lib/datadog/appsec/contrib/configuration/settings.rb +1 -3
  48. data/lib/datadog/appsec/contrib/integration.rb +0 -2
  49. data/lib/datadog/appsec/contrib/patcher.rb +0 -2
  50. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +2 -4
  51. data/lib/datadog/appsec/contrib/rack/ext.rb +0 -2
  52. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +97 -0
  53. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
  54. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +117 -110
  55. data/lib/datadog/appsec/contrib/rack/integration.rb +5 -7
  56. data/lib/datadog/appsec/contrib/rack/patcher.rb +4 -4
  57. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +31 -38
  58. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +21 -22
  59. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +21 -22
  60. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +9 -7
  61. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +80 -39
  62. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +2 -4
  63. data/lib/datadog/appsec/contrib/rails/ext.rb +0 -2
  64. data/lib/datadog/appsec/contrib/rails/framework.rb +0 -2
  65. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +67 -0
  66. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +45 -40
  67. data/lib/datadog/appsec/contrib/rails/integration.rb +5 -7
  68. data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -16
  69. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +24 -23
  70. data/lib/datadog/appsec/contrib/rails/request.rb +3 -2
  71. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +0 -2
  72. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +2 -4
  73. data/lib/datadog/appsec/contrib/sinatra/ext.rb +1 -2
  74. data/lib/datadog/appsec/contrib/sinatra/framework.rb +0 -2
  75. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +17 -0
  76. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +23 -0
  77. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +82 -75
  78. data/lib/datadog/appsec/contrib/sinatra/integration.rb +4 -6
  79. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +33 -18
  80. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +21 -20
  81. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +0 -2
  82. data/lib/datadog/appsec/event.rb +8 -16
  83. data/lib/datadog/appsec/ext.rb +9 -0
  84. data/lib/datadog/appsec/extensions.rb +51 -23
  85. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +24 -0
  86. data/lib/datadog/appsec/instrumentation/gateway.rb +26 -6
  87. data/lib/datadog/appsec/instrumentation.rb +9 -0
  88. data/lib/datadog/appsec/monitor/gateway/watcher.rb +86 -0
  89. data/lib/datadog/appsec/monitor/reactive/set_user.rb +61 -0
  90. data/lib/datadog/appsec/monitor.rb +11 -0
  91. data/lib/datadog/appsec/processor.rb +110 -31
  92. data/lib/datadog/appsec/rate_limiter.rb +0 -2
  93. data/lib/datadog/appsec/reactive/address_hash.rb +6 -2
  94. data/lib/datadog/appsec/reactive/engine.rb +12 -9
  95. data/lib/datadog/appsec/reactive/operation.rb +22 -5
  96. data/lib/datadog/appsec/reactive/subscriber.rb +2 -1
  97. data/lib/datadog/appsec/response.rb +61 -0
  98. data/lib/datadog/appsec/utils/http/media_range.rb +199 -0
  99. data/lib/datadog/appsec/utils/http/media_type.rb +85 -0
  100. data/lib/datadog/appsec/utils/http.rb +9 -0
  101. data/lib/datadog/appsec/utils.rb +7 -0
  102. data/lib/datadog/appsec.rb +25 -7
  103. data/lib/datadog/ci/configuration/components.rb +1 -3
  104. data/lib/datadog/ci/configuration/settings.rb +1 -3
  105. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -4
  106. data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -2
  107. data/lib/datadog/ci/contrib/cucumber/formatter.rb +5 -7
  108. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -3
  109. data/lib/datadog/ci/contrib/cucumber/integration.rb +4 -6
  110. data/lib/datadog/ci/contrib/cucumber/patcher.rb +2 -4
  111. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -4
  112. data/lib/datadog/ci/contrib/rspec/example.rb +5 -7
  113. data/lib/datadog/ci/contrib/rspec/ext.rb +0 -2
  114. data/lib/datadog/ci/contrib/rspec/integration.rb +4 -6
  115. data/lib/datadog/ci/contrib/rspec/patcher.rb +2 -4
  116. data/lib/datadog/ci/ext/app_types.rb +0 -2
  117. data/lib/datadog/ci/ext/environment.rb +77 -41
  118. data/lib/datadog/ci/ext/settings.rb +0 -2
  119. data/lib/datadog/ci/ext/test.rb +0 -2
  120. data/lib/datadog/ci/extensions.rb +4 -6
  121. data/lib/datadog/ci/flush.rb +2 -4
  122. data/lib/datadog/ci/test.rb +3 -5
  123. data/lib/datadog/ci.rb +6 -8
  124. data/lib/datadog/core/buffer/cruby.rb +1 -3
  125. data/lib/datadog/core/buffer/random.rb +0 -2
  126. data/lib/datadog/core/buffer/thread_safe.rb +1 -3
  127. data/lib/datadog/core/chunker.rb +0 -2
  128. data/lib/datadog/core/configuration/agent_settings_resolver.rb +8 -28
  129. data/lib/datadog/core/configuration/base.rb +14 -4
  130. data/lib/datadog/core/configuration/components.rb +31 -299
  131. data/lib/datadog/core/configuration/dependency_resolver.rb +0 -2
  132. data/lib/datadog/core/configuration/ext.rb +24 -0
  133. data/lib/datadog/core/configuration/option.rb +0 -2
  134. data/lib/datadog/core/configuration/option_definition.rb +12 -5
  135. data/lib/datadog/core/configuration/option_definition_set.rb +1 -3
  136. data/lib/datadog/core/configuration/option_set.rb +0 -2
  137. data/lib/datadog/core/configuration/options.rb +3 -5
  138. data/lib/datadog/core/configuration/settings.rb +87 -257
  139. data/lib/datadog/core/configuration.rb +9 -10
  140. data/lib/datadog/core/diagnostics/environment_logger.rb +10 -7
  141. data/lib/datadog/core/diagnostics/health.rb +4 -24
  142. data/lib/datadog/core/encoding.rb +0 -4
  143. data/lib/datadog/core/environment/cgroup.rb +1 -5
  144. data/lib/datadog/core/environment/class_count.rb +0 -2
  145. data/lib/datadog/core/environment/container.rb +1 -5
  146. data/lib/datadog/core/environment/ext.rb +1 -3
  147. data/lib/datadog/core/environment/gc.rb +0 -2
  148. data/lib/datadog/core/environment/identity.rb +2 -4
  149. data/lib/datadog/core/environment/platform.rb +1 -3
  150. data/lib/datadog/core/environment/socket.rb +1 -3
  151. data/lib/datadog/core/environment/thread_count.rb +0 -2
  152. data/lib/datadog/core/environment/variable_helpers.rb +58 -12
  153. data/lib/datadog/core/environment/vm_cache.rb +17 -2
  154. data/lib/datadog/core/error.rb +1 -3
  155. data/lib/datadog/core/extensions.rb +1 -3
  156. data/lib/datadog/core/git/ext.rb +0 -2
  157. data/lib/datadog/core/header_collection.rb +41 -0
  158. data/lib/datadog/core/logger.rb +0 -2
  159. data/lib/datadog/core/metrics/client.rb +10 -11
  160. data/lib/datadog/core/metrics/ext.rb +0 -4
  161. data/lib/datadog/core/metrics/helpers.rb +0 -2
  162. data/lib/datadog/core/metrics/logging.rb +0 -2
  163. data/lib/datadog/core/metrics/metric.rb +0 -2
  164. data/lib/datadog/core/metrics/options.rb +3 -5
  165. data/lib/datadog/core/pin.rb +0 -2
  166. data/lib/datadog/core/runtime/ext.rb +3 -3
  167. data/lib/datadog/core/runtime/metrics.rb +27 -13
  168. data/lib/datadog/core/telemetry/client.rb +77 -0
  169. data/lib/datadog/core/telemetry/collector.rb +231 -0
  170. data/lib/datadog/core/telemetry/emitter.rb +46 -0
  171. data/lib/datadog/core/telemetry/event.rb +67 -0
  172. data/lib/datadog/core/telemetry/ext.rb +9 -0
  173. data/lib/datadog/core/telemetry/heartbeat.rb +35 -0
  174. data/lib/datadog/core/telemetry/http/adapters/net.rb +111 -0
  175. data/lib/datadog/core/telemetry/http/env.rb +18 -0
  176. data/lib/datadog/core/telemetry/http/ext.rb +20 -0
  177. data/lib/datadog/core/telemetry/http/response.rb +64 -0
  178. data/lib/datadog/core/telemetry/http/transport.rb +51 -0
  179. data/lib/datadog/core/telemetry/v1/app_event.rb +50 -0
  180. data/lib/datadog/core/telemetry/v1/application.rb +86 -0
  181. data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
  182. data/lib/datadog/core/telemetry/v1/dependency.rb +36 -0
  183. data/lib/datadog/core/telemetry/v1/host.rb +51 -0
  184. data/lib/datadog/core/telemetry/v1/integration.rb +58 -0
  185. data/lib/datadog/core/telemetry/v1/product.rb +28 -0
  186. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +100 -0
  187. data/lib/datadog/core/utils/compression.rb +5 -3
  188. data/lib/datadog/core/utils/forking.rb +0 -2
  189. data/lib/datadog/core/utils/network.rb +140 -0
  190. data/lib/datadog/core/utils/object_set.rb +1 -3
  191. data/lib/datadog/core/utils/only_once.rb +0 -2
  192. data/lib/datadog/core/utils/safe_dup.rb +0 -2
  193. data/lib/datadog/core/utils/sequence.rb +5 -2
  194. data/lib/datadog/core/utils/string_table.rb +1 -3
  195. data/lib/datadog/core/utils/time.rb +3 -7
  196. data/lib/datadog/core/utils.rb +1 -24
  197. data/lib/datadog/core/vendor/ipaddr.rb +78 -0
  198. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -2
  199. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +2 -4
  200. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +0 -2
  201. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +0 -2
  202. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +0 -2
  203. data/lib/datadog/core/vendor/multipart-post/multipart.rb +0 -2
  204. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +3 -5
  205. data/lib/datadog/core/worker.rb +0 -2
  206. data/lib/datadog/core/workers/async.rb +1 -5
  207. data/lib/datadog/core/workers/interval_loop.rb +0 -2
  208. data/lib/datadog/core/workers/polling.rb +2 -4
  209. data/lib/datadog/core/workers/queue.rb +0 -2
  210. data/lib/datadog/core/workers/runtime_metrics.rb +4 -6
  211. data/lib/datadog/core.rb +21 -56
  212. data/lib/datadog/kit/appsec/events.rb +74 -0
  213. data/lib/datadog/kit/enable_core_dumps.rb +6 -6
  214. data/lib/datadog/kit/identity.rb +15 -8
  215. data/lib/datadog/kit.rb +1 -3
  216. data/lib/datadog/opentelemetry/api/context.rb +186 -0
  217. data/lib/datadog/opentelemetry/api/trace/span.rb +14 -0
  218. data/lib/datadog/opentelemetry/sdk/configurator.rb +37 -0
  219. data/lib/datadog/opentelemetry/sdk/id_generator.rb +26 -0
  220. data/lib/datadog/opentelemetry/sdk/propagator.rb +90 -0
  221. data/lib/datadog/opentelemetry/sdk/span_processor.rb +91 -0
  222. data/lib/datadog/opentelemetry.rb +47 -0
  223. data/lib/datadog/opentracer/binary_propagator.rb +0 -2
  224. data/lib/datadog/opentracer/carrier.rb +0 -2
  225. data/lib/datadog/opentracer/distributed_headers.rb +7 -11
  226. data/lib/datadog/opentracer/global_tracer.rb +0 -2
  227. data/lib/datadog/opentracer/propagator.rb +0 -2
  228. data/lib/datadog/opentracer/rack_propagator.rb +10 -11
  229. data/lib/datadog/opentracer/scope.rb +0 -2
  230. data/lib/datadog/opentracer/scope_manager.rb +0 -2
  231. data/lib/datadog/opentracer/span.rb +1 -3
  232. data/lib/datadog/opentracer/span_context.rb +0 -2
  233. data/lib/datadog/opentracer/span_context_factory.rb +0 -2
  234. data/lib/datadog/opentracer/text_map_propagator.rb +13 -14
  235. data/lib/datadog/opentracer/thread_local_scope.rb +0 -2
  236. data/lib/datadog/opentracer/thread_local_scope_manager.rb +1 -3
  237. data/lib/datadog/opentracer/tracer.rb +23 -23
  238. data/lib/datadog/opentracer.rb +16 -18
  239. data/lib/datadog/profiling/backtrace_location.rb +0 -2
  240. data/lib/datadog/profiling/buffer.rb +3 -5
  241. data/lib/datadog/profiling/collectors/code_provenance.rb +0 -2
  242. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +96 -0
  243. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +12 -0
  244. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +66 -0
  245. data/lib/datadog/profiling/collectors/old_stack.rb +16 -13
  246. data/lib/datadog/profiling/collectors/stack.rb +3 -10
  247. data/lib/datadog/profiling/collectors/thread_context.rb +46 -0
  248. data/lib/datadog/profiling/component.rb +161 -0
  249. data/lib/datadog/profiling/encoding/profile.rb +1 -3
  250. data/lib/datadog/profiling/event.rb +0 -2
  251. data/lib/datadog/profiling/events/stack.rb +1 -3
  252. data/lib/datadog/profiling/exporter.rb +23 -14
  253. data/lib/datadog/profiling/ext/forking.rb +36 -39
  254. data/lib/datadog/profiling/ext.rb +1 -2
  255. data/lib/datadog/profiling/flush.rb +0 -5
  256. data/lib/datadog/profiling/http_transport.rb +5 -6
  257. data/lib/datadog/profiling/load_native_extension.rb +0 -2
  258. data/lib/datadog/profiling/native_extension.rb +0 -2
  259. data/lib/datadog/profiling/old_recorder.rb +8 -7
  260. data/lib/datadog/profiling/pprof/builder.rb +4 -6
  261. data/lib/datadog/profiling/pprof/converter.rb +1 -3
  262. data/lib/datadog/profiling/pprof/message_set.rb +1 -3
  263. data/lib/datadog/profiling/pprof/payload.rb +0 -2
  264. data/lib/datadog/profiling/pprof/pprof_pb.rb +0 -2
  265. data/lib/datadog/profiling/pprof/stack_sample.rb +4 -6
  266. data/lib/datadog/profiling/pprof/string_table.rb +1 -3
  267. data/lib/datadog/profiling/pprof/template.rb +5 -7
  268. data/lib/datadog/profiling/preload.rb +1 -3
  269. data/lib/datadog/profiling/profiler.rb +7 -2
  270. data/lib/datadog/profiling/scheduler.rb +8 -12
  271. data/lib/datadog/profiling/stack_recorder.rb +49 -8
  272. data/lib/datadog/profiling/tag_builder.rb +5 -2
  273. data/lib/datadog/profiling/tasks/exec.rb +0 -2
  274. data/lib/datadog/profiling/tasks/help.rb +0 -2
  275. data/lib/datadog/profiling/tasks/setup.rb +2 -11
  276. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +2 -4
  277. data/lib/datadog/profiling/trace_identifiers/helper.rb +1 -3
  278. data/lib/datadog/profiling.rb +67 -27
  279. data/lib/datadog/tracing/analytics.rb +1 -3
  280. data/lib/datadog/tracing/buffer.rb +5 -9
  281. data/lib/datadog/tracing/client_ip.rb +61 -0
  282. data/lib/datadog/tracing/component.rb +176 -0
  283. data/lib/datadog/tracing/configuration/ext.rb +49 -6
  284. data/lib/datadog/tracing/configuration/settings.rb +451 -0
  285. data/lib/datadog/tracing/context.rb +1 -3
  286. data/lib/datadog/tracing/context_provider.rb +2 -4
  287. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -4
  288. data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -7
  289. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -6
  290. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +3 -5
  291. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -6
  292. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -6
  293. data/lib/datadog/tracing/contrib/action_cable/ext.rb +0 -2
  294. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +3 -6
  295. data/lib/datadog/tracing/contrib/action_cable/integration.rb +4 -6
  296. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -6
  297. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -4
  298. data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -5
  299. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +3 -5
  300. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +3 -5
  301. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -4
  302. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +0 -2
  303. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +4 -6
  304. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -5
  305. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +6 -8
  306. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -4
  307. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +2 -4
  308. data/lib/datadog/tracing/contrib/action_pack/ext.rb +0 -2
  309. data/lib/datadog/tracing/contrib/action_pack/integration.rb +4 -6
  310. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +2 -4
  311. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -3
  312. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +2 -4
  313. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -3
  314. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +5 -7
  315. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +5 -7
  316. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -4
  317. data/lib/datadog/tracing/contrib/action_view/ext.rb +0 -2
  318. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +2 -4
  319. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +2 -4
  320. data/lib/datadog/tracing/contrib/action_view/integration.rb +4 -6
  321. data/lib/datadog/tracing/contrib/action_view/patcher.rb +7 -9
  322. data/lib/datadog/tracing/contrib/action_view/utils.rb +1 -3
  323. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +3 -5
  324. data/lib/datadog/tracing/contrib/active_job/event.rb +3 -5
  325. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +4 -6
  326. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +4 -6
  327. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +4 -6
  328. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +4 -6
  329. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +4 -6
  330. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +4 -6
  331. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -8
  332. data/lib/datadog/tracing/contrib/active_job/ext.rb +0 -2
  333. data/lib/datadog/tracing/contrib/active_job/integration.rb +4 -6
  334. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +0 -4
  335. data/lib/datadog/tracing/contrib/active_job/patcher.rb +4 -6
  336. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -4
  337. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -7
  338. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +3 -5
  339. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +2 -4
  340. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -4
  341. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +0 -2
  342. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +3 -5
  343. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -6
  344. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +0 -2
  345. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -4
  346. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +3 -5
  347. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -3
  348. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +4 -6
  349. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +6 -8
  350. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -4
  351. data/lib/datadog/tracing/contrib/active_record/ext.rb +0 -2
  352. data/lib/datadog/tracing/contrib/active_record/integration.rb +6 -8
  353. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -4
  354. data/lib/datadog/tracing/contrib/active_record/utils.rb +2 -4
  355. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +0 -2
  356. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +19 -11
  357. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +2 -4
  358. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +1 -3
  359. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +2 -4
  360. data/lib/datadog/tracing/contrib/active_support/ext.rb +0 -2
  361. data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -7
  362. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -3
  363. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +1 -3
  364. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +0 -2
  365. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -4
  366. data/lib/datadog/tracing/contrib/analytics.rb +1 -3
  367. data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -6
  368. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +6 -5
  369. data/lib/datadog/tracing/contrib/aws/ext.rb +1 -2
  370. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -6
  371. data/lib/datadog/tracing/contrib/aws/integration.rb +3 -5
  372. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +0 -2
  373. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -7
  374. data/lib/datadog/tracing/contrib/aws/services.rb +0 -4
  375. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -4
  376. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -2
  377. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +0 -2
  378. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -3
  379. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -5
  380. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +2 -5
  381. data/lib/datadog/tracing/contrib/configurable.rb +2 -4
  382. data/lib/datadog/tracing/contrib/configuration/resolver.rb +0 -2
  383. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -3
  384. data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -6
  385. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +6 -5
  386. data/lib/datadog/tracing/contrib/dalli/ext.rb +2 -2
  387. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +10 -7
  388. data/lib/datadog/tracing/contrib/dalli/integration.rb +3 -5
  389. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -5
  390. data/lib/datadog/tracing/contrib/dalli/quantize.rb +1 -3
  391. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +3 -5
  392. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +2 -2
  393. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +3 -5
  394. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +8 -4
  395. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +11 -6
  396. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +32 -0
  397. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +7 -5
  398. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -2
  399. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +3 -5
  400. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +10 -9
  401. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +1 -5
  402. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +8 -5
  403. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +6 -9
  404. data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -2
  405. data/lib/datadog/tracing/contrib/ethon/integration.rb +4 -6
  406. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +5 -6
  407. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -6
  408. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +7 -5
  409. data/lib/datadog/tracing/contrib/excon/ext.rb +1 -2
  410. data/lib/datadog/tracing/contrib/excon/integration.rb +4 -6
  411. data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -9
  412. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -4
  413. data/lib/datadog/tracing/contrib/ext.rb +30 -0
  414. data/lib/datadog/tracing/contrib/extensions.rb +5 -5
  415. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +7 -5
  416. data/lib/datadog/tracing/contrib/faraday/connection.rb +0 -2
  417. data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -2
  418. data/lib/datadog/tracing/contrib/faraday/integration.rb +4 -6
  419. data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -10
  420. data/lib/datadog/tracing/contrib/faraday/patcher.rb +5 -7
  421. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +0 -2
  422. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +3 -5
  423. data/lib/datadog/tracing/contrib/grape/endpoint.rb +4 -9
  424. data/lib/datadog/tracing/contrib/grape/ext.rb +0 -2
  425. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +0 -2
  426. data/lib/datadog/tracing/contrib/grape/integration.rb +3 -5
  427. data/lib/datadog/tracing/contrib/grape/patcher.rb +4 -6
  428. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -5
  429. data/lib/datadog/tracing/contrib/graphql/ext.rb +0 -2
  430. data/lib/datadog/tracing/contrib/graphql/integration.rb +3 -5
  431. data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -5
  432. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +9 -6
  433. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +20 -7
  434. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +17 -19
  435. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +3 -6
  436. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +26 -0
  437. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +42 -0
  438. data/lib/datadog/tracing/contrib/grpc/ext.rb +4 -2
  439. data/lib/datadog/tracing/contrib/grpc/integration.rb +11 -6
  440. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +0 -2
  441. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -8
  442. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +45 -0
  443. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +20 -0
  444. data/lib/datadog/tracing/contrib/hanami/ext.rb +22 -0
  445. data/lib/datadog/tracing/contrib/hanami/integration.rb +42 -0
  446. data/lib/datadog/tracing/contrib/hanami/patcher.rb +31 -0
  447. data/lib/datadog/tracing/contrib/hanami/plugin.rb +21 -0
  448. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +39 -0
  449. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +42 -0
  450. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -4
  451. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +13 -5
  452. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +38 -0
  453. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +37 -0
  454. data/lib/datadog/tracing/contrib/http/ext.rb +2 -2
  455. data/lib/datadog/tracing/contrib/http/instrumentation.rb +8 -12
  456. data/lib/datadog/tracing/contrib/http/integration.rb +6 -8
  457. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -5
  458. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +0 -2
  459. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +13 -5
  460. data/lib/datadog/tracing/contrib/httpclient/ext.rb +2 -2
  461. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +9 -11
  462. data/lib/datadog/tracing/contrib/httpclient/integration.rb +4 -6
  463. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -5
  464. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +13 -5
  465. data/lib/datadog/tracing/contrib/httprb/ext.rb +2 -2
  466. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +9 -11
  467. data/lib/datadog/tracing/contrib/httprb/integration.rb +4 -6
  468. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -5
  469. data/lib/datadog/tracing/contrib/integration.rb +3 -5
  470. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -4
  471. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +1 -2
  472. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +0 -2
  473. data/lib/datadog/tracing/contrib/kafka/event.rb +4 -5
  474. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +2 -4
  475. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +3 -5
  476. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +3 -5
  477. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +4 -6
  478. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +4 -6
  479. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +4 -6
  480. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +4 -6
  481. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -4
  482. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -4
  483. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -11
  484. data/lib/datadog/tracing/contrib/kafka/ext.rb +1 -2
  485. data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -5
  486. data/lib/datadog/tracing/contrib/kafka/patcher.rb +3 -5
  487. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -4
  488. data/lib/datadog/tracing/contrib/lograge/ext.rb +0 -2
  489. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -4
  490. data/lib/datadog/tracing/contrib/lograge/integration.rb +3 -5
  491. data/lib/datadog/tracing/contrib/lograge/patcher.rb +2 -4
  492. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +7 -5
  493. data/lib/datadog/tracing/contrib/mongodb/ext.rb +8 -2
  494. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -5
  495. data/lib/datadog/tracing/contrib/mongodb/integration.rb +4 -6
  496. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -3
  497. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -5
  498. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +10 -6
  499. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +17 -4
  500. data/lib/datadog/tracing/contrib/mysql2/ext.rb +2 -2
  501. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -7
  502. data/lib/datadog/tracing/contrib/mysql2/integration.rb +3 -5
  503. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -4
  504. data/lib/datadog/tracing/contrib/patchable.rb +0 -2
  505. data/lib/datadog/tracing/contrib/patcher.rb +16 -6
  506. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +17 -4
  507. data/lib/datadog/tracing/contrib/pg/ext.rb +3 -3
  508. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +78 -41
  509. data/lib/datadog/tracing/contrib/pg/integration.rb +3 -5
  510. data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -4
  511. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +6 -5
  512. data/lib/datadog/tracing/contrib/presto/ext.rb +2 -2
  513. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +5 -5
  514. data/lib/datadog/tracing/contrib/presto/integration.rb +3 -5
  515. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -6
  516. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +41 -0
  517. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +31 -0
  518. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +26 -0
  519. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +45 -0
  520. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +2 -4
  521. data/lib/datadog/tracing/contrib/qless/ext.rb +0 -2
  522. data/lib/datadog/tracing/contrib/qless/integration.rb +3 -5
  523. data/lib/datadog/tracing/contrib/qless/patcher.rb +1 -5
  524. data/lib/datadog/tracing/contrib/qless/qless_job.rb +5 -5
  525. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +0 -4
  526. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +3 -5
  527. data/lib/datadog/tracing/contrib/que/ext.rb +0 -2
  528. data/lib/datadog/tracing/contrib/que/integration.rb +4 -6
  529. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -3
  530. data/lib/datadog/tracing/contrib/que/tracer.rb +5 -3
  531. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +2 -4
  532. data/lib/datadog/tracing/contrib/racecar/event.rb +5 -7
  533. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +6 -5
  534. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +2 -4
  535. data/lib/datadog/tracing/contrib/racecar/events/message.rb +6 -5
  536. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -5
  537. data/lib/datadog/tracing/contrib/racecar/ext.rb +1 -2
  538. data/lib/datadog/tracing/contrib/racecar/integration.rb +3 -5
  539. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -5
  540. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -4
  541. data/lib/datadog/tracing/contrib/rack/ext.rb +5 -2
  542. data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
  543. data/lib/datadog/tracing/contrib/rack/integration.rb +4 -6
  544. data/lib/datadog/tracing/contrib/rack/middlewares.rb +170 -78
  545. data/lib/datadog/tracing/contrib/rack/patcher.rb +12 -4
  546. data/lib/datadog/tracing/contrib/rack/request_queue.rb +0 -2
  547. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -3
  548. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +1 -3
  549. data/lib/datadog/tracing/contrib/rails/ext.rb +0 -2
  550. data/lib/datadog/tracing/contrib/rails/framework.rb +16 -23
  551. data/lib/datadog/tracing/contrib/rails/integration.rb +4 -6
  552. data/lib/datadog/tracing/contrib/rails/log_injection.rb +0 -4
  553. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -4
  554. data/lib/datadog/tracing/contrib/rails/patcher.rb +7 -10
  555. data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -5
  556. data/lib/datadog/tracing/contrib/rails/utils.rb +1 -3
  557. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +16 -3
  558. data/lib/datadog/tracing/contrib/rake/ext.rb +0 -2
  559. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +12 -9
  560. data/lib/datadog/tracing/contrib/rake/integration.rb +3 -5
  561. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -6
  562. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +1 -3
  563. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +6 -5
  564. data/lib/datadog/tracing/contrib/redis/ext.rb +3 -2
  565. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +36 -28
  566. data/lib/datadog/tracing/contrib/redis/integration.rb +37 -6
  567. data/lib/datadog/tracing/contrib/redis/patcher.rb +56 -14
  568. data/lib/datadog/tracing/contrib/redis/quantize.rb +11 -10
  569. data/lib/datadog/tracing/contrib/redis/tags.rb +12 -12
  570. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +70 -0
  571. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +0 -2
  572. data/lib/datadog/tracing/contrib/registerable.rb +0 -2
  573. data/lib/datadog/tracing/contrib/registry.rb +0 -2
  574. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +3 -5
  575. data/lib/datadog/tracing/contrib/resque/ext.rb +0 -2
  576. data/lib/datadog/tracing/contrib/resque/integration.rb +3 -5
  577. data/lib/datadog/tracing/contrib/resque/patcher.rb +2 -4
  578. data/lib/datadog/tracing/contrib/resque/resque_job.rb +7 -6
  579. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +8 -5
  580. data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -2
  581. data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -5
  582. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -5
  583. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +6 -7
  584. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -4
  585. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +0 -2
  586. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -4
  587. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +3 -5
  588. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -4
  589. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -4
  590. data/lib/datadog/tracing/contrib/sequel/database.rb +4 -7
  591. data/lib/datadog/tracing/contrib/sequel/dataset.rb +4 -7
  592. data/lib/datadog/tracing/contrib/sequel/ext.rb +0 -2
  593. data/lib/datadog/tracing/contrib/sequel/integration.rb +3 -5
  594. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -5
  595. data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -4
  596. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +3 -5
  597. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +1 -2
  598. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +4 -6
  599. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -3
  600. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +5 -3
  601. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +11 -7
  602. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +3 -5
  603. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +6 -2
  604. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +3 -5
  605. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +14 -9
  606. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +23 -3
  607. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +2 -2
  608. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/{scheduled_push.rb → redis_info.rb} +7 -8
  609. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +55 -0
  610. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +12 -8
  611. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +2 -4
  612. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -4
  613. data/lib/datadog/tracing/contrib/sinatra/env.rb +14 -27
  614. data/lib/datadog/tracing/contrib/sinatra/ext.rb +7 -5
  615. data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -4
  616. data/lib/datadog/tracing/contrib/sinatra/headers.rb +1 -3
  617. data/lib/datadog/tracing/contrib/sinatra/integration.rb +3 -5
  618. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +6 -9
  619. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +15 -90
  620. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +20 -18
  621. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +2 -4
  622. data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -2
  623. data/lib/datadog/tracing/contrib/sneakers/integration.rb +4 -6
  624. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -4
  625. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +7 -5
  626. data/lib/datadog/tracing/contrib/status_code_matcher.rb +2 -4
  627. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +33 -0
  628. data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
  629. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  630. data/lib/datadog/tracing/contrib/stripe/patcher.rb +28 -0
  631. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  632. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -4
  633. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +0 -2
  634. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +0 -2
  635. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +3 -6
  636. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +3 -5
  637. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -8
  638. data/lib/datadog/tracing/contrib/utils/database.rb +0 -2
  639. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +0 -2
  640. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +92 -14
  641. data/lib/datadog/tracing/contrib.rb +50 -50
  642. data/lib/datadog/tracing/correlation.rb +16 -4
  643. data/lib/datadog/{core → tracing}/diagnostics/ext.rb +1 -8
  644. data/lib/datadog/tracing/diagnostics/health.rb +38 -0
  645. data/lib/datadog/tracing/distributed/b3_multi.rb +72 -0
  646. data/lib/datadog/tracing/distributed/b3_single.rb +68 -0
  647. data/lib/datadog/tracing/distributed/datadog.rb +200 -0
  648. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +84 -0
  649. data/lib/datadog/tracing/distributed/fetcher.rb +21 -0
  650. data/lib/datadog/tracing/distributed/headers/ext.rb +19 -16
  651. data/lib/datadog/tracing/distributed/helpers.rb +27 -40
  652. data/lib/datadog/tracing/distributed/none.rb +18 -0
  653. data/lib/datadog/tracing/distributed/propagation.rb +126 -0
  654. data/lib/datadog/tracing/distributed/trace_context.rb +373 -0
  655. data/lib/datadog/tracing/event.rb +1 -3
  656. data/lib/datadog/tracing/flush.rb +57 -37
  657. data/lib/datadog/tracing/metadata/analytics.rb +2 -4
  658. data/lib/datadog/tracing/metadata/errors.rb +2 -4
  659. data/lib/datadog/tracing/metadata/ext.rb +18 -12
  660. data/lib/datadog/tracing/metadata/tagging.rb +17 -4
  661. data/lib/datadog/tracing/metadata.rb +3 -5
  662. data/lib/datadog/tracing/pipeline/span_filter.rb +10 -8
  663. data/lib/datadog/tracing/pipeline/span_processor.rb +0 -2
  664. data/lib/datadog/tracing/pipeline.rb +3 -5
  665. data/lib/datadog/tracing/propagation/http.rb +3 -100
  666. data/lib/datadog/tracing/runtime/metrics.rb +1 -3
  667. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -3
  668. data/lib/datadog/tracing/sampling/ext.rb +30 -1
  669. data/lib/datadog/tracing/sampling/matcher.rb +0 -2
  670. data/lib/datadog/tracing/sampling/priority_sampler.rb +62 -11
  671. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +10 -13
  672. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +32 -10
  673. data/lib/datadog/tracing/sampling/rate_limiter.rb +4 -3
  674. data/lib/datadog/tracing/sampling/rate_sampler.rb +27 -12
  675. data/lib/datadog/tracing/sampling/rule.rb +3 -5
  676. data/lib/datadog/tracing/sampling/rule_sampler.rb +8 -9
  677. data/lib/datadog/tracing/sampling/sampler.rb +0 -2
  678. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  679. data/lib/datadog/tracing/sampling/span/matcher.rb +9 -0
  680. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  681. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  682. data/lib/datadog/tracing/sampling/span/sampler.rb +75 -0
  683. data/lib/datadog/tracing/span.rb +6 -24
  684. data/lib/datadog/tracing/span_operation.rb +11 -14
  685. data/lib/datadog/tracing/sync_writer.rb +5 -7
  686. data/lib/datadog/tracing/trace_digest.rb +88 -4
  687. data/lib/datadog/tracing/trace_operation.rb +60 -17
  688. data/lib/datadog/tracing/trace_segment.rb +20 -10
  689. data/lib/datadog/tracing/tracer.rb +49 -23
  690. data/lib/datadog/tracing/utils.rb +81 -0
  691. data/lib/datadog/tracing/workers/trace_writer.rb +9 -11
  692. data/lib/datadog/tracing/workers.rb +3 -5
  693. data/lib/datadog/tracing/writer.rb +12 -7
  694. data/lib/datadog/tracing.rb +8 -10
  695. data/lib/ddtrace/auto_instrument.rb +9 -4
  696. data/lib/ddtrace/auto_instrument_base.rb +0 -2
  697. data/lib/ddtrace/profiling/preload.rb +0 -2
  698. data/lib/ddtrace/transport/ext.rb +7 -3
  699. data/lib/ddtrace/transport/http/adapters/net.rb +3 -4
  700. data/lib/ddtrace/transport/http/adapters/registry.rb +0 -2
  701. data/lib/ddtrace/transport/http/adapters/test.rb +1 -3
  702. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  703. data/lib/ddtrace/transport/http/api/endpoint.rb +0 -2
  704. data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -2
  705. data/lib/ddtrace/transport/http/api/instance.rb +0 -2
  706. data/lib/ddtrace/transport/http/api/map.rb +1 -3
  707. data/lib/ddtrace/transport/http/api/spec.rb +0 -2
  708. data/lib/ddtrace/transport/http/api.rb +4 -6
  709. data/lib/ddtrace/transport/http/builder.rb +5 -7
  710. data/lib/ddtrace/transport/http/client.rb +2 -4
  711. data/lib/ddtrace/transport/http/env.rb +0 -2
  712. data/lib/ddtrace/transport/http/response.rb +1 -3
  713. data/lib/ddtrace/transport/http/statistics.rb +1 -3
  714. data/lib/ddtrace/transport/http/traces.rb +6 -8
  715. data/lib/ddtrace/transport/http.rb +11 -12
  716. data/lib/ddtrace/transport/io/client.rb +2 -4
  717. data/lib/ddtrace/transport/io/response.rb +1 -3
  718. data/lib/ddtrace/transport/io/traces.rb +3 -7
  719. data/lib/ddtrace/transport/io.rb +3 -5
  720. data/lib/ddtrace/transport/parcel.rb +0 -4
  721. data/lib/ddtrace/transport/request.rb +0 -2
  722. data/lib/ddtrace/transport/response.rb +0 -2
  723. data/lib/ddtrace/transport/serializable_trace.rb +9 -5
  724. data/lib/ddtrace/transport/statistics.rb +2 -4
  725. data/lib/ddtrace/transport/trace_formatter.rb +21 -12
  726. data/lib/ddtrace/transport/traces.rb +9 -9
  727. data/lib/ddtrace/version.rb +2 -4
  728. data/lib/ddtrace.rb +6 -10
  729. metadata +131 -50
  730. data/.editorconfig +0 -22
  731. data/.gitignore +0 -58
  732. data/CONTRIBUTING.md +0 -81
  733. data/ddtrace.gemspec +0 -71
  734. data/docs/0.x-trace.png +0 -0
  735. data/docs/1.0-trace.png +0 -0
  736. data/docs/AutoInstrumentation.md +0 -36
  737. data/docs/Deprecation.md +0 -8
  738. data/docs/DevelopmentGuide.md +0 -259
  739. data/docs/GettingStarted.md +0 -2712
  740. data/docs/ProfilingDevelopment.md +0 -109
  741. data/docs/PublicApi.md +0 -14
  742. data/docs/UpgradeGuide.md +0 -736
  743. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c +0 -269
  744. data/ext/ddtrace_profiling_native_extension/libddprof_helpers.h +0 -13
  745. data/lib/datadog/appsec/assets/waf_rules/risky.json +0 -1499
  746. data/lib/datadog/appsec/contrib/rack/request.rb +0 -58
  747. data/lib/datadog/appsec/contrib/rack/response.rb +0 -24
  748. data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +0 -42
  749. data/lib/datadog/profiling/old_ext.rb +0 -42
  750. data/lib/datadog/profiling/transport/http/api/endpoint.rb +0 -85
  751. data/lib/datadog/profiling/transport/http/api/instance.rb +0 -38
  752. data/lib/datadog/profiling/transport/http/api/spec.rb +0 -42
  753. data/lib/datadog/profiling/transport/http/api.rb +0 -45
  754. data/lib/datadog/profiling/transport/http/builder.rb +0 -30
  755. data/lib/datadog/profiling/transport/http/client.rb +0 -37
  756. data/lib/datadog/profiling/transport/http/response.rb +0 -21
  757. data/lib/datadog/profiling/transport/http.rb +0 -112
  758. data/lib/datadog/tracing/distributed/headers/b3.rb +0 -55
  759. data/lib/datadog/tracing/distributed/headers/b3_single.rb +0 -67
  760. data/lib/datadog/tracing/distributed/headers/datadog.rb +0 -52
  761. data/lib/datadog/tracing/distributed/headers/parser.rb +0 -37
  762. data/lib/datadog/tracing/distributed/metadata/b3.rb +0 -55
  763. data/lib/datadog/tracing/distributed/metadata/b3_single.rb +0 -66
  764. data/lib/datadog/tracing/distributed/metadata/datadog.rb +0 -73
  765. data/lib/datadog/tracing/distributed/metadata/parser.rb +0 -34
  766. data/lib/datadog/tracing/propagation/grpc.rb +0 -98
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7eadd5e3cd8cb0144883eb120e8aee9289d06acfc2e8c5b4b6d863f524be26e7
4
- data.tar.gz: 6d0005127cfe83c0332275215a850a33d13e7670ae74982286e9fe77ac7214b9
3
+ metadata.gz: 005fcbaaa9553287f8652a9f437abd144c2ba2ca0f26c83f67de171646f5aae3
4
+ data.tar.gz: 032c0d3f09ea01779b17ba45a95086ab890b3869208c84b82b548b3cbd41a977
5
5
  SHA512:
6
- metadata.gz: 58e0edde95e595e435e6fad3ee078fe6bb6cf70301b6802b3b527b2804af259276752f3820901962ff94729149d60f4c81be7d3fe5c1c81b5b2119db89a9d3fa
7
- data.tar.gz: baf7561a9b11f8a80fd8f36fe331c8dbdb7a7271db4cfe69f78e50b26a5946c426d0cba38b032eea964e619c3f67fcecb8b0350e72e73b7c02c53af84dbd8ecd
6
+ metadata.gz: bc868d2e56e5282771cbc7e9447f1fa7504212d31b5bc94db4db9e5f029a00b0a9f988bcab7111f1889eb1f203fffcd81b73700c69f433be4bdaa2045dbfba72
7
+ data.tar.gz: d2679f725e7991bfa2e34dc6de650e928a59aa02124239d340a396ea40f331ff0a4a2159067df5ade22c1c36daab8e7cbe25db3ddaf55b8c8cb14137e7b2d220
data/CHANGELOG.md CHANGED
@@ -2,6 +2,286 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [1.10.1] - 2023-03-10
6
+
7
+ ### Fixed
8
+
9
+ * CI: Update TeamCity environment variable support ([#2668][])
10
+ * Core: Fix spurious dependency on AppSec when loading CI with `require 'datadog/ci'` ([#2679][])
11
+ * Core: Allow multiple headers and multiple IPs per header for client IP ([#2665][])
12
+ * AppSec: prevent side-effect on AppSec login event tracking method arguments ([#2663][]) ([@coneill-enhance][])
13
+
14
+ ## [1.10.0] - 2023-03-06
15
+
16
+ ### Added
17
+
18
+ * Support Ruby 3.2 ([#2601][])
19
+ * Publish init container image (beta) for `dd-trace-rb` injection through K8s admission controller ([#2606][])
20
+ * Tracing: Support 128 bits trace id ([#2543][])
21
+ * Tracing: Add tags to integrations (`que` / `racecar` / `resque`/ `shoryken` / `sneakers` / `qless` / `delayed_job` / `kafka` / `sidekiq` / `dalli` / `presto` / `elasticsearch`) ([#2619][], [#2613][] , [#2608][], [#2590][])
22
+ * Appsec: Introduce `AppSec::Instrumentation::Gateway::Argument` ([#2648][])
23
+ * Appsec: Block request when user ID matches rules ([#2642][])
24
+ * Appsec: Block request base on response addresses matches ([#2605][])
25
+ * Appsec: Allow to set user id denylist ([#2612][])
26
+ * Profiling: Show profiler overhead in flamegraph for CPU Profiling 2.0 ([#2607][])
27
+ * Profiling: Add support for allocation samples to `ThreadContext` ([#2657][])
28
+ * Profiling: Exclude disabled profiling sample value types from output ([#2634][])
29
+ * Profiling: Extend stack collector to record the alloc-samples metric ([#2618][])
30
+ * Profiling: Add `Profiling.allocation_count` API for new profiler ([#2635][])
31
+
32
+ ### Changed
33
+
34
+ * Tracing: `rack` instrumentation counts time spent in queue as part of the `http_server.queue` span ([#2591][]) ([@agrobbin][])
35
+ * Appsec: Update ruleset to 1.5.2 ([#2662][], [#2659][], [#2598][])
36
+ * Appsec: Update `libddwaf` version to 1.6.2.0.0 ([#2614][])
37
+ * Profiling: Upgrade profiler to use `libdatadog` v2.0.0 ([#2599][])
38
+ * Profiling: Remove support for profiling Ruby 2.2 ([#2592][])
39
+
40
+ ### Fixed
41
+
42
+ * Fix broken Ruby VM statistics for Ruby 3.2 ([#2600][])
43
+ * Tracing: Fix 'uninitialized constant GRPC::Interceptor' error with 'gapic-common' gem ([#2649][])
44
+ * Profiling: Fix profiler not adding the "In native code" placeholder ([#2594][])
45
+ * Fix profiler detection for google-protobuf installation ([#2595][])
46
+
47
+ ## [1.9.0] - 2023-01-30
48
+
49
+ 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.
50
+
51
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.9.0
52
+
53
+ ### Added
54
+
55
+ * Tracing: Add `Stripe` instrumentation ([#2557][])
56
+ * Tracing: Add configurable response codes considered as errors for `Net/HTTP`, `httprb` and `httpclient` ([#2501][], [#2576][])([@caramcc][])
57
+ * Tracing: Flexible header matching for HTTP propagator ([#2504][])
58
+ * Tracing: `OpenTelemetry` Traces support ([#2496][])
59
+ * Tracing: W3C: Propagate unknown values as-is ([#2485][])
60
+ * Appsec: Add event kit API ([#2512][])
61
+ * Profiling: Allow profiler development on arm64 macOS ([#2573][])
62
+ * Core: Add `profiling_enabled` state to environment logger output ([#2541][])
63
+ * Core: Add 'type' to `OptionDefinition` ([#2493][])
64
+ * Allow `debase-ruby_core_source` 3.2.0 to be used ([#2526][])
65
+
66
+ ### Changed
67
+
68
+ * Profiling: Upgrade to `libdatadog` to `1.0.1.1.0` ([#2530][])
69
+ * Appsec: Update appsec rules `1.4.3` ([#2580][])
70
+ * Ci: Update CI Visibility metadata extraction ([#2586][])
71
+
72
+ ### Fixed
73
+
74
+ * Profiling: Fix wrong `libdatadog` version being picked during profiler build ([#2531][])
75
+ * Tracing: Support `PG` calls with a block ([#2522][])
76
+ * Ci: Fix error in `teamcity` env vars ([#2562][])
77
+
78
+ ## [1.8.0] - 2022-12-14
79
+
80
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.8.0
81
+
82
+ 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,
83
+ check the release notes.
84
+
85
+ ### Added
86
+
87
+ * Core: Profiling: [PROF-6559] Mark Ruby CPU Profiling 2.0 as being in beta ([#2489][])
88
+ * Tracing: Attempt to parse future version of TraceContext ([#2473][])
89
+ * Tracing: Add DD_TRACE_PROPAGATION_STYLE option ([#2466][])
90
+ * Integrations: Tracing: SQL comment propagation full mode with traceparent ([#2464][])
91
+ * Integrations: Tracing: Wire W3C propagator to HTTP & gRPC propagation ([#2458][])
92
+ * Integrations: Tracing: Auto-instrumentation with service_name from environmental variable ([#2455][])
93
+ * Core: Integrations: Tracing: Deprecation notice for B3 propagation configuration ([#2454][])
94
+ * Tracing: Add W3C Trace Context propagator ([#2451][])
95
+ * Integrations: Tracing: Redis 5 Instrumentation ([#2428][])
96
+
97
+ ### Changed
98
+
99
+ * Tracing: Changes `error.msg` to `error.message` for UNC ([#2469][])
100
+ * Tracing: Semicolons not allowed in 'origin' ([#2461][])
101
+ * Core: Dev/refactor: Tracing: Dev/internal: Move Utils#next_id and constants to Tracing::Utils ([#2463][])
102
+ * Core: Dev/refactor: Tracing: Dev/internal: Move Tracing config settings from Core to Tracing ([#2459][])
103
+ * Core: Dev/refactor: Tracing: Dev/internal: Move Tracing diagnostic code from Core to Tracing ([#2453][])
104
+
105
+ ### Fixed
106
+
107
+ * Integrations: Tracing: Improve redis integration patching ([#2470][])
108
+ * Tracing: Extra testing from W3C spec ([#2460][])
109
+
110
+ ## [1.7.0] - 2022-11-29
111
+
112
+ ### Added
113
+ * Integrations: Support que 2 ([#2382][]) ([@danhodge][])
114
+ * Tracing: Unified tagging `span.kind` as `server` and `client` ([#2365][])
115
+ * Tracing: Adds `span.kind` tag for `kafka`, `sidekiq`, `racecar`, `que`, `shoryuken`, `sneakers`, and `resque` ([#2420][], [#2419][], [#2413][], [#2394][])
116
+ * Tracing: Adds `span.kind` with values `producer` and `consumer` for `delayed_job` ([#2393][])
117
+ * Tracing: Adds `span.kind` as `client` for `redis` ([#2392][])
118
+ * Appsec: Pass HTTP client IP to WAF ([#2316][])
119
+ * Unified tagging `process_id` ([#2276][])
120
+
121
+ ### Changed
122
+ * Allow `debase-ruby_core_source` 0.10.18 to be used ([#2435][])
123
+ * Update AppSec ruleset to v1.4.2 ([#2390][])
124
+ * Refactored clearing of profile data after Ruby app forks ([#2362][], [#2367][])
125
+ * Tracing: Move distributed propagation to Contrib ([#2352][])
126
+
127
+ ### Fixed
128
+ * Fix ddtrace installation issue when users have CI=true ([#2378][])
129
+
130
+ ## [1.6.1] - 2022-11-16
131
+
132
+ ### Changed
133
+
134
+ * Limit `redis` version support to less than 5
135
+
136
+ ### Fixed
137
+
138
+ * [redis]: Fix frozen input for `Redis.new(...)`
139
+
140
+ ## [1.6.0] - 2022-11-15
141
+
142
+ ### Added
143
+
144
+ * Trace level tags propagation in distributed tracing ([#2260][])
145
+ * [hanami]: Hanami 1.x instrumentation ([#2230][])
146
+ * [pg, mysql2]: option `comment_propagation` for SQL comment propagation, default is `disabled` ([#2339][])([#2324][])
147
+
148
+ ### Changed
149
+
150
+ * [rack, sinatra]: Squash nested spans and improve patching mechanism.<br> No need to `register Datadog::Tracing::Contrib::Sinatra::Tracer`([#2217][])
151
+ * [rails, rack]: Fix Non-GET request method with rails exception controller ([#2317][])
152
+ * Upgrade to libdatadog 0.9.0.1.0 ([#2302][])
153
+ * Remove legacy profiling transport ([#2062][])
154
+
155
+ ### Fixed
156
+
157
+ * [redis]: Fix redis instance configuration, not on `client` ([#2363][])
158
+ ```
159
+ # Change your code from
160
+ Datadog.configure_onto(redis.client, service_name: '...')
161
+ # to
162
+ Datadog.configure_onto(redis, service_name: '...')
163
+ ```
164
+ * Allow `DD_TAGS` values to have the colon character ([#2292][])
165
+ * Ensure that `TraceSegment` can be reported correctly when they are dropped ([#2335][])
166
+ * Docs: Fixes upgrade guide on configure_onto ([#2307][])
167
+ * Fix environment logger with IO transport ([#2313][])
168
+
169
+ ## [1.5.2] - 2022-10-27
170
+
171
+ ### Deprecation notice
172
+
173
+ - `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.
174
+
175
+ ### Changed
176
+
177
+ - `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][])
178
+
179
+ ### Fixed
180
+
181
+ - Handle REQUEST_URI with base url ([#2328][], [#2330][])
182
+
183
+ ## [1.5.1] - 2022-10-19
184
+
185
+ ### Changed
186
+
187
+ * Update libddwaf to 1.5.1 ([#2306][])
188
+ * Improve libddwaf extension memory management ([#2306][])
189
+
190
+ ### Fixed
191
+
192
+ * Fix `URI::InvalidURIError` ([#2310][], [#2318][]) ([@yujideveloper][])
193
+ * Handle URLs with invalid characters ([#2311][], [#2319][])
194
+ * Fix missing appsec.event tag ([#2306][])
195
+ * Fix missing Rack and Rails request body parsing for AppSec analysis ([#2306][])
196
+ * Fix unneeded AppSec call in a Rack context when AppSec is disabled ([#2306][])
197
+ * Fix spurious AppSec instrumentation ([#2306][])
198
+
199
+ ## [1.5.0] - 2022-09-29
200
+
201
+ ### Deprecation notice
202
+
203
+ * `c.tracing.instrument :rack, { quantize: { base: ... } }` will change its default from `:exclude` to `:show` in a future version. Voluntarily moving to `:show` is recommended.
204
+ * `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.
205
+
206
+ ### Added
207
+
208
+ * Feature: Single Span Sampling ([#2128][])
209
+ * Add query string automatic redaction ([#2283][])
210
+ * Use full URL in `http.url` tag ([#2265][])
211
+ * Add `http.useragent` tag ([#2252][])
212
+ * Add `http.client_ip` tag for Rack-based frameworks ([#2248][])
213
+ * Ci-app: CI: Fetch committer and author in Bitrise ([#2258][])
214
+
215
+ ### Changed
216
+
217
+ * Bump allowed version of debase-ruby_core_source to include v0.10.17 ([#2267][])
218
+
219
+ ### Fixed
220
+
221
+ * Bug: Fix `service_nam` typo to `service_name` ([#2296][])
222
+ * Bug: Check AppSec Rails for railties instead of rails meta gem ([#2293][]) ([@seuros][])
223
+ * Ci-app: Correctly extract commit message from AppVeyor ([#2257][])
224
+
225
+ ## [1.4.2] - 2022-09-27
226
+
227
+ ### Fixed
228
+
229
+ OpenTracing context propagation ([#2191][], [#2289][])
230
+
231
+ ## [1.4.1] - 2022-09-15
232
+
233
+ ### Fixed
234
+
235
+ * Missing distributed traces when trace is dropped by priority sampling ([#2101][], [#2279][])
236
+ * Profiling support when Ruby is compiled without a shared library ([#2250][])
237
+
238
+ ## [1.4.0] - 2022-08-25
239
+
240
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.4.0
241
+
242
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.3.0...v1.4.0
243
+
244
+ ### Added
245
+
246
+ * gRPC: tag `grpc.client.deadline` ([#2200][])
247
+ * Implement telemetry, disable by default ([#2153][])
248
+
249
+ ### Changed
250
+
251
+ * Bump `libdatadog` dependency version ([#2229][])
252
+
253
+ ### Fixed
254
+
255
+ * Fix CI instrumentation configuration ([#2219][])
256
+
257
+ ## [1.3.0] - 2022-08-04
258
+
259
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.3.0
260
+
261
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.2.0...v1.3.0
262
+
263
+ ### Added
264
+
265
+ * Top-level span being tagged to avoid duplicate computation ([#2138][])
266
+
267
+ ### Changed
268
+
269
+ * ActiveSupport: Optionally disable tracing with Rails ([@marcotc][])
270
+ * Rack: Resource overwritten by nested application ([#2180][])
271
+ * Rake: Explicit task instrumentation to prevent memory bloat ([#2174][])
272
+ * Sidekiq and DelayedJob: Add spans to improve tracing ([#2170][])
273
+ * Drop Profiling support for Ruby 2.1 ([#2140][])
274
+ * Migrate `libddprof` dependency to `libdatadog` ([#2061][])
275
+
276
+ ### Fixed
277
+
278
+ * Fix OpenTracing propagation with TraceDigest ([#2201][])
279
+ * Fix SpanFilter dropping descendant spans ([#2074][])
280
+ * Redis: Fix Empty pipelined span being dropped ([#757][]) ([@sponomarev][])
281
+ * Fix profiler not restarting on `Process.daemon` ([#2150][])
282
+ * Fix setting service from Rails configuration ([#2118][]) ([@agrobbin][])
283
+ * Some document and development improvement ([@marocchino][]) ([@yukimurasawa][])
284
+
5
285
  ## [1.2.0] - 2022-07-11
6
286
 
7
287
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.2.0
@@ -2043,7 +2323,22 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
2043
2323
 
2044
2324
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2045
2325
 
2046
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.1.0...master
2326
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.10.1...master
2327
+ [1.10.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.10.0...v1.10.1
2328
+ [1.10.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.9.0...v1.10.0
2329
+ [1.9.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.8.0...v1.9.0
2330
+ [1.8.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.7.0...v1.8.0
2331
+ [1.7.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.6.1...v1.7.0
2332
+ [1.6.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.6.0...v1.6.1
2333
+ [1.6.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.5.2...v1.6.0
2334
+ [1.5.2]: https://github.com/DataDog/dd-trace-rb/compare/v1.5.1...v1.5.2
2335
+ [1.5.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.5.0...v1.5.1
2336
+ [1.5.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.4.2...v1.5.0
2337
+ [1.4.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.4.1...v1.4.2
2338
+ [1.4.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.4.0...v1.4.1
2339
+ [1.4.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.3.0...v1.4.0
2340
+ [1.3.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.2.0...v1.3.0
2341
+ [1.2.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.1.0...v1.2.0
2047
2342
  [1.1.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0...v1.1.0
2048
2343
  [1.0.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0.beta2...v1.0.0
2049
2344
  [1.0.0.beta2]: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0.beta1...v1.0.0.beta2
@@ -2354,6 +2649,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2354
2649
  [#753]: https://github.com/DataDog/dd-trace-rb/issues/753
2355
2650
  [#754]: https://github.com/DataDog/dd-trace-rb/issues/754
2356
2651
  [#756]: https://github.com/DataDog/dd-trace-rb/issues/756
2652
+ [#757]: https://github.com/DataDog/dd-trace-rb/issues/757
2357
2653
  [#760]: https://github.com/DataDog/dd-trace-rb/issues/760
2358
2654
  [#762]: https://github.com/DataDog/dd-trace-rb/issues/762
2359
2655
  [#765]: https://github.com/DataDog/dd-trace-rb/issues/765
@@ -2892,18 +3188,153 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2892
3188
  [#2028]: https://github.com/DataDog/dd-trace-rb/issues/2028
2893
3189
  [#2054]: https://github.com/DataDog/dd-trace-rb/issues/2054
2894
3190
  [#2059]: https://github.com/DataDog/dd-trace-rb/issues/2059
3191
+ [#2061]: https://github.com/DataDog/dd-trace-rb/issues/2061
3192
+ [#2062]: https://github.com/DataDog/dd-trace-rb/issues/2062
2895
3193
  [#2066]: https://github.com/DataDog/dd-trace-rb/issues/2066
2896
3194
  [#2069]: https://github.com/DataDog/dd-trace-rb/issues/2069
2897
3195
  [#2070]: https://github.com/DataDog/dd-trace-rb/issues/2070
3196
+ [#2074]: https://github.com/DataDog/dd-trace-rb/issues/2074
2898
3197
  [#2076]: https://github.com/DataDog/dd-trace-rb/issues/2076
2899
3198
  [#2079]: https://github.com/DataDog/dd-trace-rb/issues/2079
2900
3199
  [#2082]: https://github.com/DataDog/dd-trace-rb/issues/2082
2901
3200
  [#2096]: https://github.com/DataDog/dd-trace-rb/issues/2096
2902
3201
  [#2097]: https://github.com/DataDog/dd-trace-rb/issues/2097
3202
+ [#2101]: https://github.com/DataDog/dd-trace-rb/issues/2101
2903
3203
  [#2110]: https://github.com/DataDog/dd-trace-rb/issues/2110
2904
3204
  [#2113]: https://github.com/DataDog/dd-trace-rb/issues/2113
3205
+ [#2118]: https://github.com/DataDog/dd-trace-rb/issues/2118
2905
3206
  [#2125]: https://github.com/DataDog/dd-trace-rb/issues/2125
3207
+ [#2128]: https://github.com/DataDog/dd-trace-rb/issues/2128
2906
3208
  [#2134]: https://github.com/DataDog/dd-trace-rb/issues/2134
3209
+ [#2138]: https://github.com/DataDog/dd-trace-rb/issues/2138
3210
+ [#2140]: https://github.com/DataDog/dd-trace-rb/issues/2140
3211
+ [#2150]: https://github.com/DataDog/dd-trace-rb/issues/2150
3212
+ [#2153]: https://github.com/DataDog/dd-trace-rb/issues/2153
3213
+ [#2158]: https://github.com/DataDog/dd-trace-rb/issues/2158
3214
+ [#2162]: https://github.com/DataDog/dd-trace-rb/issues/2162
3215
+ [#2163]: https://github.com/DataDog/dd-trace-rb/issues/2163
3216
+ [#2170]: https://github.com/DataDog/dd-trace-rb/issues/2170
3217
+ [#2173]: https://github.com/DataDog/dd-trace-rb/issues/2173
3218
+ [#2174]: https://github.com/DataDog/dd-trace-rb/issues/2174
3219
+ [#2180]: https://github.com/DataDog/dd-trace-rb/issues/2180
3220
+ [#2191]: https://github.com/DataDog/dd-trace-rb/issues/2191
3221
+ [#2200]: https://github.com/DataDog/dd-trace-rb/issues/2200
3222
+ [#2201]: https://github.com/DataDog/dd-trace-rb/issues/2201
3223
+ [#2217]: https://github.com/DataDog/dd-trace-rb/issues/2217
3224
+ [#2219]: https://github.com/DataDog/dd-trace-rb/issues/2219
3225
+ [#2229]: https://github.com/DataDog/dd-trace-rb/issues/2229
3226
+ [#2230]: https://github.com/DataDog/dd-trace-rb/issues/2230
3227
+ [#2248]: https://github.com/DataDog/dd-trace-rb/issues/2248
3228
+ [#2250]: https://github.com/DataDog/dd-trace-rb/issues/2250
3229
+ [#2252]: https://github.com/DataDog/dd-trace-rb/issues/2252
3230
+ [#2257]: https://github.com/DataDog/dd-trace-rb/issues/2257
3231
+ [#2258]: https://github.com/DataDog/dd-trace-rb/issues/2258
3232
+ [#2260]: https://github.com/DataDog/dd-trace-rb/issues/2260
3233
+ [#2265]: https://github.com/DataDog/dd-trace-rb/issues/2265
3234
+ [#2267]: https://github.com/DataDog/dd-trace-rb/issues/2267
3235
+ [#2276]: https://github.com/DataDog/dd-trace-rb/issues/2276
3236
+ [#2279]: https://github.com/DataDog/dd-trace-rb/issues/2279
3237
+ [#2283]: https://github.com/DataDog/dd-trace-rb/issues/2283
3238
+ [#2289]: https://github.com/DataDog/dd-trace-rb/issues/2289
3239
+ [#2292]: https://github.com/DataDog/dd-trace-rb/issues/2292
3240
+ [#2293]: https://github.com/DataDog/dd-trace-rb/issues/2293
3241
+ [#2296]: https://github.com/DataDog/dd-trace-rb/issues/2296
3242
+ [#2302]: https://github.com/DataDog/dd-trace-rb/issues/2302
3243
+ [#2306]: https://github.com/DataDog/dd-trace-rb/issues/2306
3244
+ [#2307]: https://github.com/DataDog/dd-trace-rb/issues/2307
3245
+ [#2310]: https://github.com/DataDog/dd-trace-rb/issues/2310
3246
+ [#2311]: https://github.com/DataDog/dd-trace-rb/issues/2311
3247
+ [#2313]: https://github.com/DataDog/dd-trace-rb/issues/2313
3248
+ [#2316]: https://github.com/DataDog/dd-trace-rb/issues/2316
3249
+ [#2317]: https://github.com/DataDog/dd-trace-rb/issues/2317
3250
+ [#2318]: https://github.com/DataDog/dd-trace-rb/issues/2318
3251
+ [#2319]: https://github.com/DataDog/dd-trace-rb/issues/2319
3252
+ [#2321]: https://github.com/DataDog/dd-trace-rb/issues/2321
3253
+ [#2324]: https://github.com/DataDog/dd-trace-rb/issues/2324
3254
+ [#2328]: https://github.com/DataDog/dd-trace-rb/issues/2328
3255
+ [#2330]: https://github.com/DataDog/dd-trace-rb/issues/2330
3256
+ [#2331]: https://github.com/DataDog/dd-trace-rb/issues/2331
3257
+ [#2335]: https://github.com/DataDog/dd-trace-rb/issues/2335
3258
+ [#2339]: https://github.com/DataDog/dd-trace-rb/issues/2339
3259
+ [#2352]: https://github.com/DataDog/dd-trace-rb/issues/2352
3260
+ [#2362]: https://github.com/DataDog/dd-trace-rb/issues/2362
3261
+ [#2363]: https://github.com/DataDog/dd-trace-rb/issues/2363
3262
+ [#2365]: https://github.com/DataDog/dd-trace-rb/issues/2365
3263
+ [#2367]: https://github.com/DataDog/dd-trace-rb/issues/2367
3264
+ [#2378]: https://github.com/DataDog/dd-trace-rb/issues/2378
3265
+ [#2382]: https://github.com/DataDog/dd-trace-rb/issues/2382
3266
+ [#2390]: https://github.com/DataDog/dd-trace-rb/issues/2390
3267
+ [#2392]: https://github.com/DataDog/dd-trace-rb/issues/2392
3268
+ [#2393]: https://github.com/DataDog/dd-trace-rb/issues/2393
3269
+ [#2394]: https://github.com/DataDog/dd-trace-rb/issues/2394
3270
+ [#2413]: https://github.com/DataDog/dd-trace-rb/issues/2413
3271
+ [#2419]: https://github.com/DataDog/dd-trace-rb/issues/2419
3272
+ [#2420]: https://github.com/DataDog/dd-trace-rb/issues/2420
3273
+ [#2428]: https://github.com/DataDog/dd-trace-rb/issues/2428
3274
+ [#2435]: https://github.com/DataDog/dd-trace-rb/issues/2435
3275
+ [#2451]: https://github.com/DataDog/dd-trace-rb/issues/2451
3276
+ [#2453]: https://github.com/DataDog/dd-trace-rb/issues/2453
3277
+ [#2454]: https://github.com/DataDog/dd-trace-rb/issues/2454
3278
+ [#2455]: https://github.com/DataDog/dd-trace-rb/issues/2455
3279
+ [#2458]: https://github.com/DataDog/dd-trace-rb/issues/2458
3280
+ [#2459]: https://github.com/DataDog/dd-trace-rb/issues/2459
3281
+ [#2460]: https://github.com/DataDog/dd-trace-rb/issues/2460
3282
+ [#2461]: https://github.com/DataDog/dd-trace-rb/issues/2461
3283
+ [#2463]: https://github.com/DataDog/dd-trace-rb/issues/2463
3284
+ [#2464]: https://github.com/DataDog/dd-trace-rb/issues/2464
3285
+ [#2466]: https://github.com/DataDog/dd-trace-rb/issues/2466
3286
+ [#2469]: https://github.com/DataDog/dd-trace-rb/issues/2469
3287
+ [#2470]: https://github.com/DataDog/dd-trace-rb/issues/2470
3288
+ [#2473]: https://github.com/DataDog/dd-trace-rb/issues/2473
3289
+ [#2485]: https://github.com/DataDog/dd-trace-rb/issues/2485
3290
+ [#2489]: https://github.com/DataDog/dd-trace-rb/issues/2489
3291
+ [#2493]: https://github.com/DataDog/dd-trace-rb/issues/2493
3292
+ [#2496]: https://github.com/DataDog/dd-trace-rb/issues/2496
3293
+ [#2501]: https://github.com/DataDog/dd-trace-rb/issues/2501
3294
+ [#2504]: https://github.com/DataDog/dd-trace-rb/issues/2504
3295
+ [#2512]: https://github.com/DataDog/dd-trace-rb/issues/2512
3296
+ [#2522]: https://github.com/DataDog/dd-trace-rb/issues/2522
3297
+ [#2526]: https://github.com/DataDog/dd-trace-rb/issues/2526
3298
+ [#2530]: https://github.com/DataDog/dd-trace-rb/issues/2530
3299
+ [#2531]: https://github.com/DataDog/dd-trace-rb/issues/2531
3300
+ [#2541]: https://github.com/DataDog/dd-trace-rb/issues/2541
3301
+ [#2543]: https://github.com/DataDog/dd-trace-rb/issues/2543
3302
+ [#2557]: https://github.com/DataDog/dd-trace-rb/issues/2557
3303
+ [#2562]: https://github.com/DataDog/dd-trace-rb/issues/2562
3304
+ [#2573]: https://github.com/DataDog/dd-trace-rb/issues/2573
3305
+ [#2576]: https://github.com/DataDog/dd-trace-rb/issues/2576
3306
+ [#2580]: https://github.com/DataDog/dd-trace-rb/issues/2580
3307
+ [#2586]: https://github.com/DataDog/dd-trace-rb/issues/2586
3308
+ [#2590]: https://github.com/DataDog/dd-trace-rb/issues/2590
3309
+ [#2591]: https://github.com/DataDog/dd-trace-rb/issues/2591
3310
+ [#2592]: https://github.com/DataDog/dd-trace-rb/issues/2592
3311
+ [#2594]: https://github.com/DataDog/dd-trace-rb/issues/2594
3312
+ [#2595]: https://github.com/DataDog/dd-trace-rb/issues/2595
3313
+ [#2598]: https://github.com/DataDog/dd-trace-rb/issues/2598
3314
+ [#2599]: https://github.com/DataDog/dd-trace-rb/issues/2599
3315
+ [#2600]: https://github.com/DataDog/dd-trace-rb/issues/2600
3316
+ [#2601]: https://github.com/DataDog/dd-trace-rb/issues/2601
3317
+ [#2605]: https://github.com/DataDog/dd-trace-rb/issues/2605
3318
+ [#2606]: https://github.com/DataDog/dd-trace-rb/issues/2606
3319
+ [#2607]: https://github.com/DataDog/dd-trace-rb/issues/2607
3320
+ [#2608]: https://github.com/DataDog/dd-trace-rb/issues/2608
3321
+ [#2612]: https://github.com/DataDog/dd-trace-rb/issues/2612
3322
+ [#2613]: https://github.com/DataDog/dd-trace-rb/issues/2613
3323
+ [#2614]: https://github.com/DataDog/dd-trace-rb/issues/2614
3324
+ [#2618]: https://github.com/DataDog/dd-trace-rb/issues/2618
3325
+ [#2619]: https://github.com/DataDog/dd-trace-rb/issues/2619
3326
+ [#2634]: https://github.com/DataDog/dd-trace-rb/issues/2634
3327
+ [#2635]: https://github.com/DataDog/dd-trace-rb/issues/2635
3328
+ [#2642]: https://github.com/DataDog/dd-trace-rb/issues/2642
3329
+ [#2648]: https://github.com/DataDog/dd-trace-rb/issues/2648
3330
+ [#2649]: https://github.com/DataDog/dd-trace-rb/issues/2649
3331
+ [#2657]: https://github.com/DataDog/dd-trace-rb/issues/2657
3332
+ [#2659]: https://github.com/DataDog/dd-trace-rb/issues/2659
3333
+ [#2662]: https://github.com/DataDog/dd-trace-rb/issues/2662
3334
+ [#2663]: https://github.com/DataDog/dd-trace-rb/issues/2663
3335
+ [#2665]: https://github.com/DataDog/dd-trace-rb/issues/2665
3336
+ [#2668]: https://github.com/DataDog/dd-trace-rb/issues/2668
3337
+ [#2679]: https://github.com/DataDog/dd-trace-rb/issues/2679
2907
3338
  [@AdrianLC]: https://github.com/AdrianLC
2908
3339
  [@Azure7111]: https://github.com/Azure7111
2909
3340
  [@BabyGroot]: https://github.com/BabyGroot
@@ -2942,13 +3373,16 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2942
3373
  [@brafales]: https://github.com/brafales
2943
3374
  [@bzf]: https://github.com/bzf
2944
3375
  [@callumj]: https://github.com/callumj
3376
+ [@caramcc]: https://github.com/caramcc
2945
3377
  [@carlallen]: https://github.com/carlallen
2946
3378
  [@chychkan]: https://github.com/chychkan
2947
3379
  [@cjford]: https://github.com/cjford
2948
3380
  [@ck3g]: https://github.com/ck3g
2949
3381
  [@components]: https://github.com/components
3382
+ [@coneill-enhance]: https://github.com/coneill-enhance
2950
3383
  [@cswatt]: https://github.com/cswatt
2951
3384
  [@cwoodcox]: https://github.com/cwoodcox
3385
+ [@danhodge]: https://github.com/danhodge
2952
3386
  [@dasch]: https://github.com/dasch
2953
3387
  [@dim]: https://github.com/dim
2954
3388
  [@dirk]: https://github.com/dirk
@@ -2996,6 +3430,8 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2996
3430
  [@link04]: https://github.com/link04
2997
3431
  [@lloeki]: https://github.com/lloeki
2998
3432
  [@mantrala]: https://github.com/mantrala
3433
+ [@marcotc]: https://github.com/marcotc
3434
+ [@marocchino]: https://github.com/marocchino
2999
3435
  [@masato-hi]: https://github.com/masato-hi
3000
3436
  [@matchbookmac]: https://github.com/matchbookmac
3001
3437
  [@mberlanda]: https://github.com/mberlanda
@@ -3023,10 +3459,12 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3023
3459
  [@saturnflyer]: https://github.com/saturnflyer
3024
3460
  [@sco11morgan]: https://github.com/sco11morgan
3025
3461
  [@senny]: https://github.com/senny
3462
+ [@seuros]: https://github.com/seuros
3026
3463
  [@shayonj]: https://github.com/shayonj
3027
3464
  [@sinsoku]: https://github.com/sinsoku
3028
3465
  [@skcc321]: https://github.com/skcc321
3029
3466
  [@soulcutter]: https://github.com/soulcutter
3467
+ [@sponomarev]: https://github.com/sponomarev
3030
3468
  [@stefanahman]: https://github.com/stefanahman
3031
3469
  [@steveh]: https://github.com/steveh
3032
3470
  [@stormsilver]: https://github.com/stormsilver
@@ -3041,4 +3479,6 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3041
3479
  [@vramaiah]: https://github.com/vramaiah
3042
3480
  [@walterking]: https://github.com/walterking
3043
3481
  [@y-yagi]: https://github.com/y-yagi
3044
- [@zachmccormick]: https://github.com/zachmccormick
3482
+ [@yujideveloper]: https://github.com/yujideveloper
3483
+ [@yukimurasawa]: https://github.com/yukimurasawa
3484
+ [@zachmccormick]: https://github.com/zachmccormick
data/LICENSE-3rdparty.csv CHANGED
@@ -1,4 +1,8 @@
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."
8
+ lib/datadog/core/vendor/ipaddr,https://github.com/ruby/ipaddr/blob/master/lib/ipaddr.rb,BSD 2-Clause "Simplified" License,"Copyright (c) 2002 Hajimu UMEMOTO <ume@mahoroba.org> Copyright (c) 2007-2017 Akinori MUSHA <knu@iDaemons.org>"
data/README.md CHANGED
@@ -1,5 +1,3 @@
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/)
@@ -12,6 +10,8 @@ databases and microservices so that developers have great visiblity into bottlen
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].
@@ -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);
@@ -51,7 +58,7 @@ void DDTRACE_EXPORT Init_ddtrace_profiling_loader(void) {
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;
@@ -1,5 +1,3 @@
1
- # typed: ignore
2
-
3
1
  # rubocop:disable Style/StderrPuts
4
2
  # rubocop:disable Style/GlobalVars
5
3
 
@@ -24,7 +22,17 @@ def add_compiler_flag(flag)
24
22
  end
25
23
  end
26
24
 
27
- # Gets really noisy when we include the MJIT header, let's omit it
25
+ # Because we can't control what compiler versions our customers use, shipping with -Werror by default is a no-go.
26
+ # But we can enable it in CI, so that we quickly spot any new warnings that just got introduced.
27
+ add_compiler_flag '-Werror' if ENV['DDTRACE_CI'] == 'true'
28
+
29
+ # Older gcc releases may not default to C99 and we need to ask for this. This is also used:
30
+ # * by upstream Ruby -- search for gnu99 in the codebase
31
+ # * by msgpack, another ddtrace dependency
32
+ # (https://github.com/msgpack/msgpack-ruby/blob/18ce08f6d612fe973843c366ac9a0b74c4e50599/ext/msgpack/extconf.rb#L8)
33
+ add_compiler_flag '-std=gnu99'
34
+
35
+ # Gets really noisy when we include the MJIT header, let's omit it (TODO: Use #pragma GCC diagnostic instead?)
28
36
  add_compiler_flag '-Wno-unused-function'
29
37
 
30
38
  # Allow defining variables at any point in a function
@@ -34,6 +42,9 @@ add_compiler_flag '-Wno-declaration-after-statement'
34
42
  # cause a segfault later. Let's ensure that never happens.
35
43
  add_compiler_flag '-Werror-implicit-function-declaration'
36
44
 
45
+ # Warn on unused parameters to functions. Use `DDTRACE_UNUSED` to mark things as known-to-not-be-used.
46
+ add_compiler_flag '-Wunused-parameter'
47
+
37
48
  # The native extension is not intended to expose any symbols/functions for other native libraries to use;
38
49
  # the sole exception being `Init_ddtrace_profiling_loader` which needs to be visible for Ruby to call it when
39
50
  # it `dlopen`s the library.
@@ -42,6 +53,13 @@ add_compiler_flag '-Werror-implicit-function-declaration'
42
53
  # For more details see https://gcc.gnu.org/wiki/Visibility
43
54
  add_compiler_flag '-fvisibility=hidden'
44
55
 
56
+ # Avoid legacy C definitions
57
+ add_compiler_flag '-Wold-style-definition'
58
+
59
+ # Enable all other compiler warnings
60
+ add_compiler_flag '-Wall'
61
+ add_compiler_flag '-Wextra'
62
+
45
63
  # Tag the native extension library with the Ruby version and Ruby platform.
46
64
  # This makes it easier for development (avoids "oops I forgot to rebuild when I switched my Ruby") and ensures that
47
65
  # the wrong library is never loaded.