ddtrace 1.9.0 → 1.10.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 (692) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +63 -2
  3. data/ext/ddtrace_profiling_loader/extconf.rb +0 -2
  4. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +81 -36
  5. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +3 -3
  6. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +37 -48
  7. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +3 -1
  8. data/ext/ddtrace_profiling_native_extension/{collectors_cpu_and_wall_time.c → collectors_thread_context.c} +222 -143
  9. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +14 -0
  10. data/ext/ddtrace_profiling_native_extension/extconf.rb +7 -18
  11. data/ext/ddtrace_profiling_native_extension/http_transport.c +25 -32
  12. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +9 -2
  13. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +9 -9
  14. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +7 -121
  15. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +1 -1
  16. data/ext/ddtrace_profiling_native_extension/profiling.c +2 -2
  17. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +2 -2
  18. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +1 -1
  19. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +125 -21
  20. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +9 -34
  21. data/lib/datadog/appsec/assets/waf_rules/recommended.json +321 -185
  22. data/lib/datadog/appsec/assets/waf_rules/strict.json +59 -2
  23. data/lib/datadog/appsec/assets.rb +0 -2
  24. data/lib/datadog/appsec/autoload.rb +4 -11
  25. data/lib/datadog/appsec/component.rb +41 -0
  26. data/lib/datadog/appsec/configuration/settings.rb +8 -3
  27. data/lib/datadog/appsec/configuration.rb +4 -2
  28. data/lib/datadog/appsec/contrib/auto_instrument.rb +0 -2
  29. data/lib/datadog/appsec/contrib/configuration/settings.rb +0 -2
  30. data/lib/datadog/appsec/contrib/integration.rb +0 -2
  31. data/lib/datadog/appsec/contrib/patcher.rb +0 -2
  32. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +0 -2
  33. data/lib/datadog/appsec/contrib/rack/ext.rb +0 -2
  34. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +104 -0
  35. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
  36. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +111 -109
  37. data/lib/datadog/appsec/contrib/rack/integration.rb +0 -2
  38. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
  39. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +18 -21
  40. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +10 -11
  41. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +10 -11
  42. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +6 -4
  43. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +40 -26
  44. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +0 -2
  45. data/lib/datadog/appsec/contrib/rails/ext.rb +0 -2
  46. data/lib/datadog/appsec/contrib/rails/framework.rb +0 -2
  47. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +67 -0
  48. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +41 -37
  49. data/lib/datadog/appsec/contrib/rails/integration.rb +0 -2
  50. data/lib/datadog/appsec/contrib/rails/patcher.rb +3 -3
  51. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +12 -11
  52. data/lib/datadog/appsec/contrib/rails/request.rb +0 -2
  53. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +0 -2
  54. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +0 -2
  55. data/lib/datadog/appsec/contrib/sinatra/ext.rb +0 -2
  56. data/lib/datadog/appsec/contrib/sinatra/framework.rb +0 -2
  57. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +17 -0
  58. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +23 -0
  59. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +76 -71
  60. data/lib/datadog/appsec/contrib/sinatra/integration.rb +0 -2
  61. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +12 -4
  62. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +10 -9
  63. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +0 -2
  64. data/lib/datadog/appsec/event.rb +4 -8
  65. data/lib/datadog/appsec/ext.rb +9 -0
  66. data/lib/datadog/appsec/extensions.rb +10 -2
  67. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +24 -0
  68. data/lib/datadog/appsec/instrumentation/gateway.rb +11 -5
  69. data/lib/datadog/appsec/instrumentation.rb +9 -0
  70. data/lib/datadog/appsec/monitor/gateway/watcher.rb +86 -0
  71. data/lib/datadog/appsec/monitor/reactive/set_user.rb +61 -0
  72. data/lib/datadog/appsec/monitor.rb +11 -0
  73. data/lib/datadog/appsec/processor.rb +74 -25
  74. data/lib/datadog/appsec/rate_limiter.rb +0 -2
  75. data/lib/datadog/appsec/reactive/address_hash.rb +6 -2
  76. data/lib/datadog/appsec/reactive/engine.rb +10 -7
  77. data/lib/datadog/appsec/reactive/operation.rb +19 -2
  78. data/lib/datadog/appsec/reactive/subscriber.rb +2 -1
  79. data/lib/datadog/appsec/response.rb +0 -2
  80. data/lib/datadog/appsec/utils/http/media_range.rb +0 -2
  81. data/lib/datadog/appsec/utils/http/media_type.rb +0 -2
  82. data/lib/datadog/appsec.rb +20 -2
  83. data/lib/datadog/ci/configuration/components.rb +0 -2
  84. data/lib/datadog/ci/configuration/settings.rb +0 -2
  85. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +0 -2
  86. data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -2
  87. data/lib/datadog/ci/contrib/cucumber/formatter.rb +0 -2
  88. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +0 -2
  89. data/lib/datadog/ci/contrib/cucumber/integration.rb +0 -2
  90. data/lib/datadog/ci/contrib/cucumber/patcher.rb +0 -2
  91. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +0 -2
  92. data/lib/datadog/ci/contrib/rspec/example.rb +0 -2
  93. data/lib/datadog/ci/contrib/rspec/ext.rb +0 -2
  94. data/lib/datadog/ci/contrib/rspec/integration.rb +0 -2
  95. data/lib/datadog/ci/contrib/rspec/patcher.rb +0 -2
  96. data/lib/datadog/ci/ext/app_types.rb +0 -2
  97. data/lib/datadog/ci/ext/environment.rb +0 -4
  98. data/lib/datadog/ci/ext/settings.rb +0 -2
  99. data/lib/datadog/ci/ext/test.rb +0 -2
  100. data/lib/datadog/ci/extensions.rb +0 -2
  101. data/lib/datadog/ci/flush.rb +0 -2
  102. data/lib/datadog/ci/test.rb +0 -2
  103. data/lib/datadog/ci.rb +0 -2
  104. data/lib/datadog/core/buffer/cruby.rb +0 -2
  105. data/lib/datadog/core/buffer/random.rb +0 -2
  106. data/lib/datadog/core/buffer/thread_safe.rb +0 -2
  107. data/lib/datadog/core/chunker.rb +0 -2
  108. data/lib/datadog/core/configuration/agent_settings_resolver.rb +0 -17
  109. data/lib/datadog/core/configuration/base.rb +0 -2
  110. data/lib/datadog/core/configuration/components.rb +14 -318
  111. data/lib/datadog/core/configuration/dependency_resolver.rb +0 -2
  112. data/lib/datadog/core/configuration/ext.rb +0 -2
  113. data/lib/datadog/core/configuration/option.rb +0 -2
  114. data/lib/datadog/core/configuration/option_definition.rb +0 -2
  115. data/lib/datadog/core/configuration/option_definition_set.rb +0 -2
  116. data/lib/datadog/core/configuration/option_set.rb +0 -2
  117. data/lib/datadog/core/configuration/options.rb +0 -2
  118. data/lib/datadog/core/configuration/settings.rb +14 -5
  119. data/lib/datadog/core/configuration.rb +0 -4
  120. data/lib/datadog/core/diagnostics/environment_logger.rb +0 -2
  121. data/lib/datadog/core/diagnostics/health.rb +0 -2
  122. data/lib/datadog/core/encoding.rb +0 -4
  123. data/lib/datadog/core/environment/cgroup.rb +0 -4
  124. data/lib/datadog/core/environment/class_count.rb +0 -2
  125. data/lib/datadog/core/environment/container.rb +0 -4
  126. data/lib/datadog/core/environment/ext.rb +0 -2
  127. data/lib/datadog/core/environment/gc.rb +0 -2
  128. data/lib/datadog/core/environment/identity.rb +0 -2
  129. data/lib/datadog/core/environment/platform.rb +0 -2
  130. data/lib/datadog/core/environment/socket.rb +0 -2
  131. data/lib/datadog/core/environment/thread_count.rb +0 -2
  132. data/lib/datadog/core/environment/variable_helpers.rb +0 -2
  133. data/lib/datadog/core/environment/vm_cache.rb +17 -2
  134. data/lib/datadog/core/error.rb +0 -2
  135. data/lib/datadog/core/extensions.rb +0 -2
  136. data/lib/datadog/core/git/ext.rb +0 -2
  137. data/lib/datadog/core/logger.rb +0 -2
  138. data/lib/datadog/core/metrics/client.rb +0 -2
  139. data/lib/datadog/core/metrics/ext.rb +0 -2
  140. data/lib/datadog/core/metrics/helpers.rb +0 -2
  141. data/lib/datadog/core/metrics/logging.rb +0 -2
  142. data/lib/datadog/core/metrics/metric.rb +0 -2
  143. data/lib/datadog/core/metrics/options.rb +0 -2
  144. data/lib/datadog/core/pin.rb +0 -2
  145. data/lib/datadog/core/runtime/ext.rb +2 -2
  146. data/lib/datadog/core/runtime/metrics.rb +21 -7
  147. data/lib/datadog/core/telemetry/client.rb +0 -2
  148. data/lib/datadog/core/telemetry/collector.rb +0 -2
  149. data/lib/datadog/core/telemetry/emitter.rb +0 -2
  150. data/lib/datadog/core/telemetry/event.rb +0 -4
  151. data/lib/datadog/core/telemetry/ext.rb +0 -2
  152. data/lib/datadog/core/telemetry/heartbeat.rb +0 -2
  153. data/lib/datadog/core/telemetry/http/adapters/net.rb +0 -2
  154. data/lib/datadog/core/telemetry/http/env.rb +0 -2
  155. data/lib/datadog/core/telemetry/http/response.rb +0 -4
  156. data/lib/datadog/core/telemetry/http/transport.rb +0 -2
  157. data/lib/datadog/core/telemetry/v1/app_event.rb +0 -2
  158. data/lib/datadog/core/utils/compression.rb +0 -2
  159. data/lib/datadog/core/utils/forking.rb +0 -2
  160. data/lib/datadog/core/utils/object_set.rb +0 -2
  161. data/lib/datadog/core/utils/only_once.rb +0 -2
  162. data/lib/datadog/core/utils/safe_dup.rb +0 -2
  163. data/lib/datadog/core/utils/sequence.rb +0 -2
  164. data/lib/datadog/core/utils/string_table.rb +0 -2
  165. data/lib/datadog/core/utils/time.rb +0 -4
  166. data/lib/datadog/core/utils.rb +0 -2
  167. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -2
  168. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +0 -2
  169. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +0 -2
  170. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +0 -2
  171. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +0 -2
  172. data/lib/datadog/core/vendor/multipart-post/multipart.rb +0 -2
  173. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +0 -2
  174. data/lib/datadog/core/worker.rb +0 -2
  175. data/lib/datadog/core/workers/async.rb +0 -2
  176. data/lib/datadog/core/workers/interval_loop.rb +0 -2
  177. data/lib/datadog/core/workers/polling.rb +0 -2
  178. data/lib/datadog/core/workers/queue.rb +0 -2
  179. data/lib/datadog/core/workers/runtime_metrics.rb +0 -2
  180. data/lib/datadog/core.rb +0 -1
  181. data/lib/datadog/kit/appsec/events.rb +0 -1
  182. data/lib/datadog/kit/enable_core_dumps.rb +5 -6
  183. data/lib/datadog/kit/identity.rb +7 -1
  184. data/lib/datadog/kit.rb +0 -2
  185. data/lib/datadog/opentelemetry/api/context.rb +0 -1
  186. data/lib/datadog/opentelemetry/api/trace/span.rb +0 -1
  187. data/lib/datadog/opentelemetry/sdk/configurator.rb +0 -1
  188. data/lib/datadog/opentelemetry/sdk/id_generator.rb +0 -1
  189. data/lib/datadog/opentelemetry/sdk/propagator.rb +0 -1
  190. data/lib/datadog/opentelemetry/sdk/span_processor.rb +0 -1
  191. data/lib/datadog/opentelemetry.rb +0 -1
  192. data/lib/datadog/opentracer/binary_propagator.rb +0 -2
  193. data/lib/datadog/opentracer/carrier.rb +0 -2
  194. data/lib/datadog/opentracer/distributed_headers.rb +0 -2
  195. data/lib/datadog/opentracer/global_tracer.rb +0 -2
  196. data/lib/datadog/opentracer/propagator.rb +0 -2
  197. data/lib/datadog/opentracer/rack_propagator.rb +0 -2
  198. data/lib/datadog/opentracer/scope.rb +0 -2
  199. data/lib/datadog/opentracer/scope_manager.rb +0 -2
  200. data/lib/datadog/opentracer/span.rb +0 -2
  201. data/lib/datadog/opentracer/span_context.rb +0 -2
  202. data/lib/datadog/opentracer/span_context_factory.rb +0 -2
  203. data/lib/datadog/opentracer/text_map_propagator.rb +0 -2
  204. data/lib/datadog/opentracer/thread_local_scope.rb +0 -2
  205. data/lib/datadog/opentracer/thread_local_scope_manager.rb +0 -2
  206. data/lib/datadog/opentracer/tracer.rb +0 -2
  207. data/lib/datadog/opentracer.rb +0 -2
  208. data/lib/datadog/profiling/backtrace_location.rb +0 -2
  209. data/lib/datadog/profiling/buffer.rb +0 -2
  210. data/lib/datadog/profiling/collectors/code_provenance.rb +0 -2
  211. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +12 -7
  212. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +0 -2
  213. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -3
  214. data/lib/datadog/profiling/collectors/old_stack.rb +1 -5
  215. data/lib/datadog/profiling/collectors/stack.rb +0 -2
  216. data/lib/datadog/profiling/collectors/{cpu_and_wall_time.rb → thread_context.rb} +8 -5
  217. data/lib/datadog/profiling/component.rb +161 -0
  218. data/lib/datadog/profiling/encoding/profile.rb +0 -2
  219. data/lib/datadog/profiling/event.rb +0 -2
  220. data/lib/datadog/profiling/events/stack.rb +0 -2
  221. data/lib/datadog/profiling/exporter.rb +0 -2
  222. data/lib/datadog/profiling/ext/forking.rb +0 -2
  223. data/lib/datadog/profiling/ext.rb +0 -2
  224. data/lib/datadog/profiling/flush.rb +0 -2
  225. data/lib/datadog/profiling/http_transport.rb +0 -2
  226. data/lib/datadog/profiling/load_native_extension.rb +0 -2
  227. data/lib/datadog/profiling/native_extension.rb +0 -2
  228. data/lib/datadog/profiling/old_recorder.rb +0 -2
  229. data/lib/datadog/profiling/pprof/builder.rb +0 -2
  230. data/lib/datadog/profiling/pprof/converter.rb +0 -2
  231. data/lib/datadog/profiling/pprof/message_set.rb +0 -2
  232. data/lib/datadog/profiling/pprof/payload.rb +0 -2
  233. data/lib/datadog/profiling/pprof/pprof_pb.rb +0 -2
  234. data/lib/datadog/profiling/pprof/stack_sample.rb +0 -2
  235. data/lib/datadog/profiling/pprof/string_table.rb +0 -2
  236. data/lib/datadog/profiling/pprof/template.rb +0 -2
  237. data/lib/datadog/profiling/preload.rb +0 -2
  238. data/lib/datadog/profiling/profiler.rb +0 -2
  239. data/lib/datadog/profiling/scheduler.rb +0 -2
  240. data/lib/datadog/profiling/stack_recorder.rb +3 -8
  241. data/lib/datadog/profiling/tag_builder.rb +0 -2
  242. data/lib/datadog/profiling/tasks/exec.rb +0 -2
  243. data/lib/datadog/profiling/tasks/help.rb +0 -2
  244. data/lib/datadog/profiling/tasks/setup.rb +0 -2
  245. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +0 -2
  246. data/lib/datadog/profiling/trace_identifiers/helper.rb +0 -2
  247. data/lib/datadog/profiling.rb +44 -7
  248. data/lib/datadog/tracing/analytics.rb +0 -2
  249. data/lib/datadog/tracing/buffer.rb +0 -4
  250. data/lib/datadog/tracing/client_ip.rb +0 -2
  251. data/lib/datadog/tracing/component.rb +176 -0
  252. data/lib/datadog/tracing/configuration/ext.rb +2 -2
  253. data/lib/datadog/tracing/configuration/settings.rb +20 -2
  254. data/lib/datadog/tracing/context.rb +0 -2
  255. data/lib/datadog/tracing/context_provider.rb +0 -2
  256. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +0 -2
  257. data/lib/datadog/tracing/contrib/action_cable/event.rb +0 -2
  258. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +0 -2
  259. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +0 -2
  260. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +0 -2
  261. data/lib/datadog/tracing/contrib/action_cable/events.rb +0 -2
  262. data/lib/datadog/tracing/contrib/action_cable/ext.rb +0 -2
  263. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +0 -2
  264. data/lib/datadog/tracing/contrib/action_cable/integration.rb +0 -2
  265. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +0 -2
  266. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +0 -2
  267. data/lib/datadog/tracing/contrib/action_mailer/event.rb +0 -2
  268. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +0 -2
  269. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +0 -2
  270. data/lib/datadog/tracing/contrib/action_mailer/events.rb +0 -2
  271. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +0 -2
  272. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +0 -2
  273. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +0 -2
  274. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +0 -2
  275. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +0 -2
  276. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +0 -2
  277. data/lib/datadog/tracing/contrib/action_pack/ext.rb +0 -2
  278. data/lib/datadog/tracing/contrib/action_pack/integration.rb +0 -2
  279. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +0 -2
  280. data/lib/datadog/tracing/contrib/action_pack/utils.rb +0 -2
  281. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +0 -2
  282. data/lib/datadog/tracing/contrib/action_view/event.rb +0 -2
  283. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +0 -2
  284. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +0 -2
  285. data/lib/datadog/tracing/contrib/action_view/events.rb +0 -2
  286. data/lib/datadog/tracing/contrib/action_view/ext.rb +0 -2
  287. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +0 -2
  288. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +0 -2
  289. data/lib/datadog/tracing/contrib/action_view/integration.rb +0 -2
  290. data/lib/datadog/tracing/contrib/action_view/patcher.rb +0 -2
  291. data/lib/datadog/tracing/contrib/action_view/utils.rb +0 -2
  292. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +0 -2
  293. data/lib/datadog/tracing/contrib/active_job/event.rb +0 -2
  294. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +0 -2
  295. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +0 -2
  296. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +0 -2
  297. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +0 -2
  298. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +0 -2
  299. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +0 -2
  300. data/lib/datadog/tracing/contrib/active_job/events.rb +0 -2
  301. data/lib/datadog/tracing/contrib/active_job/ext.rb +0 -2
  302. data/lib/datadog/tracing/contrib/active_job/integration.rb +0 -2
  303. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +0 -2
  304. data/lib/datadog/tracing/contrib/active_job/patcher.rb +0 -2
  305. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +0 -2
  306. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +0 -2
  307. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +0 -2
  308. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +0 -2
  309. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +0 -2
  310. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +0 -2
  311. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +0 -2
  312. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +0 -2
  313. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +0 -2
  314. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +0 -2
  315. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +0 -2
  316. data/lib/datadog/tracing/contrib/active_record/event.rb +0 -2
  317. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +0 -2
  318. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +0 -2
  319. data/lib/datadog/tracing/contrib/active_record/events.rb +0 -2
  320. data/lib/datadog/tracing/contrib/active_record/ext.rb +0 -2
  321. data/lib/datadog/tracing/contrib/active_record/integration.rb +0 -2
  322. data/lib/datadog/tracing/contrib/active_record/patcher.rb +0 -2
  323. data/lib/datadog/tracing/contrib/active_record/utils.rb +0 -2
  324. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +0 -2
  325. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +0 -2
  326. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +0 -2
  327. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +0 -2
  328. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +0 -2
  329. data/lib/datadog/tracing/contrib/active_support/ext.rb +0 -2
  330. data/lib/datadog/tracing/contrib/active_support/integration.rb +0 -2
  331. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +0 -2
  332. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +0 -2
  333. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +0 -2
  334. data/lib/datadog/tracing/contrib/active_support/patcher.rb +0 -2
  335. data/lib/datadog/tracing/contrib/analytics.rb +0 -2
  336. data/lib/datadog/tracing/contrib/auto_instrument.rb +0 -2
  337. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +0 -2
  338. data/lib/datadog/tracing/contrib/aws/ext.rb +0 -2
  339. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +0 -2
  340. data/lib/datadog/tracing/contrib/aws/integration.rb +0 -2
  341. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +0 -2
  342. data/lib/datadog/tracing/contrib/aws/patcher.rb +0 -2
  343. data/lib/datadog/tracing/contrib/aws/services.rb +0 -2
  344. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +0 -2
  345. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -2
  346. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +0 -2
  347. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +0 -2
  348. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +0 -2
  349. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +0 -3
  350. data/lib/datadog/tracing/contrib/configurable.rb +0 -2
  351. data/lib/datadog/tracing/contrib/configuration/resolver.rb +0 -2
  352. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +0 -2
  353. data/lib/datadog/tracing/contrib/configuration/settings.rb +0 -4
  354. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +0 -2
  355. data/lib/datadog/tracing/contrib/dalli/ext.rb +0 -2
  356. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +2 -2
  357. data/lib/datadog/tracing/contrib/dalli/integration.rb +0 -2
  358. data/lib/datadog/tracing/contrib/dalli/patcher.rb +0 -2
  359. data/lib/datadog/tracing/contrib/dalli/quantize.rb +0 -2
  360. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +0 -2
  361. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +0 -2
  362. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +0 -2
  363. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +0 -2
  364. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +4 -2
  365. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +2 -2
  366. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +0 -2
  367. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +0 -2
  368. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +0 -2
  369. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +3 -4
  370. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +0 -4
  371. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +0 -2
  372. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +0 -2
  373. data/lib/datadog/tracing/contrib/ethon/ext.rb +0 -2
  374. data/lib/datadog/tracing/contrib/ethon/integration.rb +0 -2
  375. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +0 -2
  376. data/lib/datadog/tracing/contrib/ethon/patcher.rb +0 -3
  377. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +0 -2
  378. data/lib/datadog/tracing/contrib/excon/ext.rb +0 -2
  379. data/lib/datadog/tracing/contrib/excon/integration.rb +0 -2
  380. data/lib/datadog/tracing/contrib/excon/middleware.rb +0 -2
  381. data/lib/datadog/tracing/contrib/excon/patcher.rb +0 -2
  382. data/lib/datadog/tracing/contrib/ext.rb +5 -0
  383. data/lib/datadog/tracing/contrib/extensions.rb +0 -2
  384. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +0 -2
  385. data/lib/datadog/tracing/contrib/faraday/connection.rb +0 -2
  386. data/lib/datadog/tracing/contrib/faraday/ext.rb +0 -2
  387. data/lib/datadog/tracing/contrib/faraday/integration.rb +0 -2
  388. data/lib/datadog/tracing/contrib/faraday/middleware.rb +0 -2
  389. data/lib/datadog/tracing/contrib/faraday/patcher.rb +0 -2
  390. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +0 -2
  391. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +0 -2
  392. data/lib/datadog/tracing/contrib/grape/endpoint.rb +0 -2
  393. data/lib/datadog/tracing/contrib/grape/ext.rb +0 -2
  394. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +0 -2
  395. data/lib/datadog/tracing/contrib/grape/integration.rb +0 -2
  396. data/lib/datadog/tracing/contrib/grape/patcher.rb +0 -2
  397. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +0 -2
  398. data/lib/datadog/tracing/contrib/graphql/ext.rb +0 -2
  399. data/lib/datadog/tracing/contrib/graphql/integration.rb +0 -2
  400. data/lib/datadog/tracing/contrib/graphql/patcher.rb +0 -2
  401. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +0 -2
  402. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +0 -2
  403. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +0 -2
  404. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +0 -2
  405. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +0 -1
  406. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +0 -1
  407. data/lib/datadog/tracing/contrib/grpc/ext.rb +0 -2
  408. data/lib/datadog/tracing/contrib/grpc/integration.rb +8 -3
  409. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +0 -2
  410. data/lib/datadog/tracing/contrib/grpc/patcher.rb +0 -3
  411. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +0 -2
  412. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +0 -2
  413. data/lib/datadog/tracing/contrib/hanami/ext.rb +0 -2
  414. data/lib/datadog/tracing/contrib/hanami/integration.rb +0 -2
  415. data/lib/datadog/tracing/contrib/hanami/patcher.rb +0 -2
  416. data/lib/datadog/tracing/contrib/hanami/plugin.rb +0 -2
  417. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +0 -2
  418. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +0 -2
  419. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +0 -2
  420. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +0 -2
  421. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +0 -1
  422. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +0 -1
  423. data/lib/datadog/tracing/contrib/http/ext.rb +0 -2
  424. data/lib/datadog/tracing/contrib/http/instrumentation.rb +0 -2
  425. data/lib/datadog/tracing/contrib/http/integration.rb +0 -2
  426. data/lib/datadog/tracing/contrib/http/patcher.rb +0 -2
  427. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +0 -2
  428. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +0 -2
  429. data/lib/datadog/tracing/contrib/httpclient/ext.rb +0 -2
  430. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +0 -2
  431. data/lib/datadog/tracing/contrib/httpclient/integration.rb +0 -2
  432. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +0 -2
  433. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +0 -2
  434. data/lib/datadog/tracing/contrib/httprb/ext.rb +0 -2
  435. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +0 -2
  436. data/lib/datadog/tracing/contrib/httprb/integration.rb +0 -2
  437. data/lib/datadog/tracing/contrib/httprb/patcher.rb +0 -2
  438. data/lib/datadog/tracing/contrib/integration.rb +0 -2
  439. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +0 -2
  440. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +0 -2
  441. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +0 -2
  442. data/lib/datadog/tracing/contrib/kafka/event.rb +1 -2
  443. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +0 -2
  444. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +0 -2
  445. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +0 -2
  446. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +0 -2
  447. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +0 -2
  448. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +0 -2
  449. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +0 -2
  450. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +0 -2
  451. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +0 -2
  452. data/lib/datadog/tracing/contrib/kafka/events.rb +0 -2
  453. data/lib/datadog/tracing/contrib/kafka/ext.rb +1 -2
  454. data/lib/datadog/tracing/contrib/kafka/integration.rb +0 -2
  455. data/lib/datadog/tracing/contrib/kafka/patcher.rb +0 -2
  456. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +0 -2
  457. data/lib/datadog/tracing/contrib/lograge/ext.rb +0 -2
  458. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +0 -2
  459. data/lib/datadog/tracing/contrib/lograge/integration.rb +0 -2
  460. data/lib/datadog/tracing/contrib/lograge/patcher.rb +0 -2
  461. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +0 -2
  462. data/lib/datadog/tracing/contrib/mongodb/ext.rb +0 -2
  463. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +0 -2
  464. data/lib/datadog/tracing/contrib/mongodb/integration.rb +0 -2
  465. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +0 -2
  466. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +0 -2
  467. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +0 -2
  468. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +0 -2
  469. data/lib/datadog/tracing/contrib/mysql2/ext.rb +0 -2
  470. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +0 -2
  471. data/lib/datadog/tracing/contrib/mysql2/integration.rb +0 -2
  472. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +0 -2
  473. data/lib/datadog/tracing/contrib/patchable.rb +0 -2
  474. data/lib/datadog/tracing/contrib/patcher.rb +0 -2
  475. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +0 -2
  476. data/lib/datadog/tracing/contrib/pg/ext.rb +0 -2
  477. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +0 -2
  478. data/lib/datadog/tracing/contrib/pg/integration.rb +0 -2
  479. data/lib/datadog/tracing/contrib/pg/patcher.rb +0 -2
  480. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +0 -2
  481. data/lib/datadog/tracing/contrib/presto/ext.rb +1 -2
  482. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +3 -2
  483. data/lib/datadog/tracing/contrib/presto/integration.rb +0 -2
  484. data/lib/datadog/tracing/contrib/presto/patcher.rb +0 -2
  485. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +0 -2
  486. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +0 -2
  487. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +0 -2
  488. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +0 -2
  489. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +0 -2
  490. data/lib/datadog/tracing/contrib/qless/ext.rb +0 -2
  491. data/lib/datadog/tracing/contrib/qless/integration.rb +0 -2
  492. data/lib/datadog/tracing/contrib/qless/patcher.rb +0 -3
  493. data/lib/datadog/tracing/contrib/qless/qless_job.rb +3 -2
  494. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +0 -2
  495. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +0 -2
  496. data/lib/datadog/tracing/contrib/que/ext.rb +0 -2
  497. data/lib/datadog/tracing/contrib/que/integration.rb +0 -2
  498. data/lib/datadog/tracing/contrib/que/patcher.rb +0 -2
  499. data/lib/datadog/tracing/contrib/que/tracer.rb +2 -2
  500. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +0 -2
  501. data/lib/datadog/tracing/contrib/racecar/event.rb +1 -2
  502. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +0 -2
  503. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +0 -2
  504. data/lib/datadog/tracing/contrib/racecar/events/message.rb +0 -2
  505. data/lib/datadog/tracing/contrib/racecar/events.rb +0 -2
  506. data/lib/datadog/tracing/contrib/racecar/ext.rb +1 -2
  507. data/lib/datadog/tracing/contrib/racecar/integration.rb +0 -2
  508. data/lib/datadog/tracing/contrib/racecar/patcher.rb +0 -2
  509. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +0 -2
  510. data/lib/datadog/tracing/contrib/rack/ext.rb +5 -2
  511. data/lib/datadog/tracing/contrib/rack/integration.rb +0 -2
  512. data/lib/datadog/tracing/contrib/rack/middlewares.rb +42 -18
  513. data/lib/datadog/tracing/contrib/rack/patcher.rb +0 -2
  514. data/lib/datadog/tracing/contrib/rack/request_queue.rb +0 -2
  515. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +0 -2
  516. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +0 -2
  517. data/lib/datadog/tracing/contrib/rails/ext.rb +0 -2
  518. data/lib/datadog/tracing/contrib/rails/framework.rb +0 -2
  519. data/lib/datadog/tracing/contrib/rails/integration.rb +0 -2
  520. data/lib/datadog/tracing/contrib/rails/log_injection.rb +0 -2
  521. data/lib/datadog/tracing/contrib/rails/middlewares.rb +0 -2
  522. data/lib/datadog/tracing/contrib/rails/patcher.rb +0 -2
  523. data/lib/datadog/tracing/contrib/rails/railtie.rb +0 -2
  524. data/lib/datadog/tracing/contrib/rails/utils.rb +0 -2
  525. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +0 -2
  526. data/lib/datadog/tracing/contrib/rake/ext.rb +0 -2
  527. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +0 -2
  528. data/lib/datadog/tracing/contrib/rake/integration.rb +0 -2
  529. data/lib/datadog/tracing/contrib/rake/patcher.rb +0 -2
  530. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +0 -2
  531. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +0 -2
  532. data/lib/datadog/tracing/contrib/redis/ext.rb +0 -2
  533. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +0 -2
  534. data/lib/datadog/tracing/contrib/redis/integration.rb +0 -2
  535. data/lib/datadog/tracing/contrib/redis/patcher.rb +0 -2
  536. data/lib/datadog/tracing/contrib/redis/quantize.rb +0 -2
  537. data/lib/datadog/tracing/contrib/redis/tags.rb +0 -2
  538. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +0 -2
  539. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +0 -2
  540. data/lib/datadog/tracing/contrib/registerable.rb +0 -2
  541. data/lib/datadog/tracing/contrib/registry.rb +0 -2
  542. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +0 -2
  543. data/lib/datadog/tracing/contrib/resque/ext.rb +0 -2
  544. data/lib/datadog/tracing/contrib/resque/integration.rb +0 -2
  545. data/lib/datadog/tracing/contrib/resque/patcher.rb +0 -2
  546. data/lib/datadog/tracing/contrib/resque/resque_job.rb +2 -2
  547. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +0 -2
  548. data/lib/datadog/tracing/contrib/rest_client/ext.rb +0 -2
  549. data/lib/datadog/tracing/contrib/rest_client/integration.rb +0 -2
  550. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +0 -3
  551. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +0 -2
  552. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +0 -2
  553. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +0 -2
  554. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +0 -2
  555. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +0 -2
  556. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +0 -2
  557. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +0 -2
  558. data/lib/datadog/tracing/contrib/sequel/database.rb +0 -2
  559. data/lib/datadog/tracing/contrib/sequel/dataset.rb +0 -2
  560. data/lib/datadog/tracing/contrib/sequel/ext.rb +0 -2
  561. data/lib/datadog/tracing/contrib/sequel/integration.rb +0 -2
  562. data/lib/datadog/tracing/contrib/sequel/patcher.rb +0 -2
  563. data/lib/datadog/tracing/contrib/sequel/utils.rb +0 -2
  564. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +0 -2
  565. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +1 -2
  566. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +0 -2
  567. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +0 -2
  568. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +2 -2
  569. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +2 -2
  570. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +0 -2
  571. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +0 -2
  572. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +0 -2
  573. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +0 -2
  574. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +4 -2
  575. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +2 -2
  576. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +2 -2
  577. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +4 -2
  578. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +2 -2
  579. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +0 -2
  580. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +0 -2
  581. data/lib/datadog/tracing/contrib/sinatra/env.rb +0 -2
  582. data/lib/datadog/tracing/contrib/sinatra/ext.rb +0 -2
  583. data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -2
  584. data/lib/datadog/tracing/contrib/sinatra/headers.rb +0 -2
  585. data/lib/datadog/tracing/contrib/sinatra/integration.rb +0 -2
  586. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +0 -3
  587. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +0 -2
  588. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +0 -2
  589. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +0 -2
  590. data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -2
  591. data/lib/datadog/tracing/contrib/sneakers/integration.rb +0 -2
  592. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +0 -2
  593. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +3 -2
  594. data/lib/datadog/tracing/contrib/status_code_matcher.rb +0 -2
  595. data/lib/datadog/tracing/contrib/stripe/patcher.rb +0 -1
  596. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +0 -2
  597. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +0 -2
  598. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +0 -2
  599. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +0 -2
  600. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +0 -2
  601. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +0 -3
  602. data/lib/datadog/tracing/contrib/utils/database.rb +0 -2
  603. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +0 -2
  604. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +0 -4
  605. data/lib/datadog/tracing/contrib.rb +0 -2
  606. data/lib/datadog/tracing/correlation.rb +15 -3
  607. data/lib/datadog/tracing/diagnostics/ext.rb +0 -2
  608. data/lib/datadog/tracing/diagnostics/health.rb +0 -2
  609. data/lib/datadog/tracing/distributed/b3_multi.rb +12 -6
  610. data/lib/datadog/tracing/distributed/b3_single.rb +8 -6
  611. data/lib/datadog/tracing/distributed/datadog.rb +58 -11
  612. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +0 -1
  613. data/lib/datadog/tracing/distributed/fetcher.rb +0 -9
  614. data/lib/datadog/tracing/distributed/headers/ext.rb +0 -1
  615. data/lib/datadog/tracing/distributed/helpers.rb +21 -36
  616. data/lib/datadog/tracing/distributed/none.rb +0 -1
  617. data/lib/datadog/tracing/distributed/propagation.rb +0 -1
  618. data/lib/datadog/tracing/distributed/trace_context.rb +8 -13
  619. data/lib/datadog/tracing/event.rb +0 -2
  620. data/lib/datadog/tracing/flush.rb +0 -2
  621. data/lib/datadog/tracing/metadata/analytics.rb +0 -2
  622. data/lib/datadog/tracing/metadata/errors.rb +0 -2
  623. data/lib/datadog/tracing/metadata/ext.rb +6 -2
  624. data/lib/datadog/tracing/metadata/tagging.rb +0 -2
  625. data/lib/datadog/tracing/metadata.rb +0 -2
  626. data/lib/datadog/tracing/pipeline/span_filter.rb +0 -2
  627. data/lib/datadog/tracing/pipeline/span_processor.rb +0 -2
  628. data/lib/datadog/tracing/pipeline.rb +0 -2
  629. data/lib/datadog/tracing/propagation/http.rb +0 -2
  630. data/lib/datadog/tracing/runtime/metrics.rb +0 -2
  631. data/lib/datadog/tracing/sampling/all_sampler.rb +0 -2
  632. data/lib/datadog/tracing/sampling/ext.rb +0 -2
  633. data/lib/datadog/tracing/sampling/matcher.rb +0 -2
  634. data/lib/datadog/tracing/sampling/priority_sampler.rb +0 -2
  635. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +0 -2
  636. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +0 -2
  637. data/lib/datadog/tracing/sampling/rate_limiter.rb +0 -2
  638. data/lib/datadog/tracing/sampling/rate_sampler.rb +0 -2
  639. data/lib/datadog/tracing/sampling/rule.rb +0 -2
  640. data/lib/datadog/tracing/sampling/rule_sampler.rb +0 -2
  641. data/lib/datadog/tracing/sampling/sampler.rb +0 -2
  642. data/lib/datadog/tracing/span.rb +0 -2
  643. data/lib/datadog/tracing/span_operation.rb +1 -3
  644. data/lib/datadog/tracing/sync_writer.rb +0 -2
  645. data/lib/datadog/tracing/trace_digest.rb +0 -2
  646. data/lib/datadog/tracing/trace_operation.rb +1 -3
  647. data/lib/datadog/tracing/trace_segment.rb +7 -2
  648. data/lib/datadog/tracing/tracer.rb +0 -2
  649. data/lib/datadog/tracing/utils.rb +33 -2
  650. data/lib/datadog/tracing/workers/trace_writer.rb +0 -2
  651. data/lib/datadog/tracing/workers.rb +0 -2
  652. data/lib/datadog/tracing/writer.rb +0 -2
  653. data/lib/datadog/tracing.rb +0 -2
  654. data/lib/ddtrace/auto_instrument.rb +0 -2
  655. data/lib/ddtrace/auto_instrument_base.rb +0 -2
  656. data/lib/ddtrace/profiling/preload.rb +0 -2
  657. data/lib/ddtrace/transport/ext.rb +0 -2
  658. data/lib/ddtrace/transport/http/adapters/net.rb +0 -2
  659. data/lib/ddtrace/transport/http/adapters/registry.rb +0 -2
  660. data/lib/ddtrace/transport/http/adapters/test.rb +0 -2
  661. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -2
  662. data/lib/ddtrace/transport/http/api/endpoint.rb +0 -2
  663. data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -2
  664. data/lib/ddtrace/transport/http/api/instance.rb +0 -2
  665. data/lib/ddtrace/transport/http/api/map.rb +0 -2
  666. data/lib/ddtrace/transport/http/api/spec.rb +0 -2
  667. data/lib/ddtrace/transport/http/api.rb +0 -2
  668. data/lib/ddtrace/transport/http/builder.rb +0 -2
  669. data/lib/ddtrace/transport/http/client.rb +0 -2
  670. data/lib/ddtrace/transport/http/env.rb +0 -2
  671. data/lib/ddtrace/transport/http/response.rb +0 -2
  672. data/lib/ddtrace/transport/http/statistics.rb +0 -2
  673. data/lib/ddtrace/transport/http/traces.rb +0 -2
  674. data/lib/ddtrace/transport/http.rb +0 -4
  675. data/lib/ddtrace/transport/io/client.rb +0 -2
  676. data/lib/ddtrace/transport/io/response.rb +0 -2
  677. data/lib/ddtrace/transport/io/traces.rb +0 -4
  678. data/lib/ddtrace/transport/io.rb +0 -2
  679. data/lib/ddtrace/transport/parcel.rb +0 -4
  680. data/lib/ddtrace/transport/request.rb +0 -2
  681. data/lib/ddtrace/transport/response.rb +0 -2
  682. data/lib/ddtrace/transport/serializable_trace.rb +9 -5
  683. data/lib/ddtrace/transport/statistics.rb +0 -2
  684. data/lib/ddtrace/transport/trace_formatter.rb +7 -2
  685. data/lib/ddtrace/transport/traces.rb +0 -2
  686. data/lib/ddtrace/version.rb +1 -3
  687. data/lib/ddtrace.rb +1 -5
  688. metadata +27 -16
  689. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h +0 -9
  690. data/lib/datadog/appsec/assets/waf_rules/risky.json +0 -1499
  691. data/lib/datadog/appsec/contrib/rack/request.rb +0 -78
  692. data/lib/datadog/appsec/contrib/rack/response.rb +0 -24
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  require_relative 'agent_settings_resolver'
4
2
  require_relative '../diagnostics/environment_logger'
5
3
  require_relative '../diagnostics/health'
@@ -8,11 +6,9 @@ require_relative '../runtime/metrics'
8
6
  require_relative '../telemetry/client'
9
7
  require_relative '../workers/runtime_metrics'
10
8
 
11
- require_relative '../../tracing/tracer'
12
- require_relative '../../tracing/flush'
13
- require_relative '../../tracing/sync_writer'
14
- require_relative '../../tracing/sampling/span/rule_parser'
15
- require_relative '../../tracing/sampling/span/sampler'
9
+ require_relative '../../tracing/component'
10
+ require_relative '../../profiling/component'
11
+ require_relative '../../appsec/component'
16
12
 
17
13
  module Datadog
18
14
  module Core
@@ -20,6 +16,9 @@ module Datadog
20
16
  # Global components for the trace library.
21
17
  class Components
22
18
  class << self
19
+ include Datadog::Tracing::Component
20
+ include Datadog::Profiling::Component
21
+
23
22
  def build_health_metrics(settings)
24
23
  settings = settings.diagnostics.health_metrics
25
24
  options = { enabled: settings.enabled }
@@ -56,316 +55,6 @@ module Datadog
56
55
  def build_telemetry(settings)
57
56
  Telemetry::Client.new(enabled: settings.telemetry.enabled)
58
57
  end
59
-
60
- def build_tracer(settings, agent_settings)
61
- # If a custom tracer has been provided, use it instead.
62
- # Ignore all other options (they should already be configured.)
63
- tracer = settings.tracing.instance
64
- return tracer unless tracer.nil?
65
-
66
- # Apply test mode settings if test mode is activated
67
- if settings.tracing.test_mode.enabled
68
- trace_flush = build_test_mode_trace_flush(settings)
69
- sampler = build_test_mode_sampler
70
- writer = build_test_mode_writer(settings, agent_settings)
71
- else
72
- trace_flush = build_trace_flush(settings)
73
- sampler = build_sampler(settings)
74
- writer = build_writer(settings, agent_settings)
75
- end
76
-
77
- subscribe_to_writer_events!(writer, sampler, settings.tracing.test_mode.enabled)
78
-
79
- Tracing::Tracer.new(
80
- default_service: settings.service,
81
- enabled: settings.tracing.enabled,
82
- trace_flush: trace_flush,
83
- sampler: sampler,
84
- span_sampler: build_span_sampler(settings),
85
- writer: writer,
86
- tags: build_tracer_tags(settings),
87
- )
88
- end
89
-
90
- def build_trace_flush(settings)
91
- if settings.tracing.partial_flush.enabled
92
- Tracing::Flush::Partial.new(
93
- min_spans_before_partial_flush: settings.tracing.partial_flush.min_spans_threshold
94
- )
95
- else
96
- Tracing::Flush::Finished.new
97
- end
98
- end
99
-
100
- # TODO: Sampler should be a top-level component.
101
- # It is currently part of the Tracer initialization
102
- # process, but can take a variety of options (including
103
- # a fully custom instance) that makes the Tracer
104
- # initialization process complex.
105
- def build_sampler(settings)
106
- if (sampler = settings.tracing.sampler)
107
- if settings.tracing.priority_sampling == false
108
- sampler
109
- else
110
- ensure_priority_sampling(sampler, settings)
111
- end
112
- elsif settings.tracing.priority_sampling == false
113
- Tracing::Sampling::RuleSampler.new(
114
- rate_limit: settings.tracing.sampling.rate_limit,
115
- default_sample_rate: settings.tracing.sampling.default_rate
116
- )
117
- else
118
- Tracing::Sampling::PrioritySampler.new(
119
- base_sampler: Tracing::Sampling::AllSampler.new,
120
- post_sampler: Tracing::Sampling::RuleSampler.new(
121
- rate_limit: settings.tracing.sampling.rate_limit,
122
- default_sample_rate: settings.tracing.sampling.default_rate
123
- )
124
- )
125
- end
126
- end
127
-
128
- def ensure_priority_sampling(sampler, settings)
129
- if sampler.is_a?(Tracing::Sampling::PrioritySampler)
130
- sampler
131
- else
132
- Tracing::Sampling::PrioritySampler.new(
133
- base_sampler: sampler,
134
- post_sampler: Tracing::Sampling::RuleSampler.new(
135
- rate_limit: settings.tracing.sampling.rate_limit,
136
- default_sample_rate: settings.tracing.sampling.default_rate
137
- )
138
- )
139
- end
140
- end
141
-
142
- # TODO: Writer should be a top-level component.
143
- # It is currently part of the Tracer initialization
144
- # process, but can take a variety of options (including
145
- # a fully custom instance) that makes the Tracer
146
- # initialization process complex.
147
- def build_writer(settings, agent_settings)
148
- if (writer = settings.tracing.writer)
149
- return writer
150
- end
151
-
152
- Tracing::Writer.new(agent_settings: agent_settings, **settings.tracing.writer_options)
153
- end
154
-
155
- def subscribe_to_writer_events!(writer, sampler, test_mode)
156
- return unless writer.respond_to?(:events) # Check if it's a custom, external writer
157
-
158
- writer.events.after_send.subscribe(&WRITER_RECORD_ENVIRONMENT_INFORMATION_CALLBACK)
159
-
160
- return unless sampler.is_a?(Tracing::Sampling::PrioritySampler)
161
-
162
- # DEV: We need to ignore priority sampling updates coming from the agent in test mode
163
- # because test mode wants to *unconditionally* sample all traces.
164
- #
165
- # This can cause trace metrics to be overestimated, but that's a trade-off we take
166
- # here to achieve 100% sampling rate.
167
- return if test_mode
168
-
169
- writer.events.after_send.subscribe(&writer_update_priority_sampler_rates_callback(sampler))
170
- end
171
-
172
- WRITER_RECORD_ENVIRONMENT_INFORMATION_CALLBACK = lambda do |_, responses|
173
- Core::Diagnostics::EnvironmentLogger.log!(responses)
174
- end
175
-
176
- # Create new lambda for writer callback,
177
- # capture the current sampler in the callback closure.
178
- def writer_update_priority_sampler_rates_callback(sampler)
179
- lambda do |_, responses|
180
- response = responses.last
181
-
182
- next unless response && !response.internal_error? && response.service_rates
183
-
184
- sampler.update(response.service_rates, decision: Tracing::Sampling::Ext::Decision::AGENT_RATE)
185
- end
186
- end
187
-
188
- def build_span_sampler(settings)
189
- rules = Tracing::Sampling::Span::RuleParser.parse_json(settings.tracing.sampling.span_rules)
190
- Tracing::Sampling::Span::Sampler.new(rules || [])
191
- end
192
-
193
- def build_profiler(settings, agent_settings, tracer)
194
- return unless settings.profiling.enabled
195
-
196
- # Workaround for weird dependency direction: the Core::Configuration::Components class currently has a
197
- # dependency on individual products, in this case the Profiler.
198
- # (Note "currently": in the future we want to change this so core classes don't depend on specific products)
199
- #
200
- # If the current file included a `require 'datadog/profiler'` at its beginning, we would generate circular
201
- # requires when used from profiling:
202
- #
203
- # datadog/profiling
204
- # └─requires─> datadog/core
205
- # └─requires─> datadog/core/configuration/components
206
- # └─requires─> datadog/profiling # Loop!
207
- #
208
- # ...thus in #1998 we removed such a require.
209
- #
210
- # On the other hand, if datadog/core is loaded by a different product and no general `require 'ddtrace'` is
211
- # done, then profiling may not be loaded, and thus to avoid this issue we do a require here (which is a
212
- # no-op if profiling is already loaded).
213
- require_relative '../../profiling'
214
- return unless Profiling.supported?
215
-
216
- unless defined?(Profiling::Tasks::Setup)
217
- # In #1545 a user reported a NameError due to this constant being uninitialized
218
- # I've documented my suspicion on why that happened in
219
- # https://github.com/DataDog/dd-trace-rb/issues/1545#issuecomment-856049025
220
- #
221
- # > Thanks for the info! It seems to feed into my theory: there's two moments in the code where we check if
222
- # > profiler is "supported": 1) when loading ddtrace (inside preload) and 2) when starting the profile
223
- # > after Datadog.configure gets run.
224
- # > The problem is that the code assumes that both checks 1) and 2) will always reach the same conclusion:
225
- # > either profiler is supported, or profiler is not supported.
226
- # > In the problematic case, it looks like in your case check 1 decides that profiler is not
227
- # > supported => doesn't load it, and then check 2 decides that it is => assumes it is loaded and tries to
228
- # > start it.
229
- #
230
- # I was never able to validate if this was the issue or why exactly .supported? would change its mind BUT
231
- # just in case it happens again, I've left this check which avoids breaking the user's application AND
232
- # would instead direct them to report it to us instead, so that we can investigate what's wrong.
233
- #
234
- # TODO: As of June 2021, most checks in .supported? are related to the google-protobuf gem; so it's
235
- # very likely that it was the origin of the issue we saw. Thus, if, as planned we end up moving away from
236
- # protobuf OR enough time has passed and no users saw the issue again, we can remove this check altogether.
237
- Datadog.logger.error(
238
- 'Profiling was marked as supported and enabled, but setup task was not loaded properly. ' \
239
- 'Please report this at https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug'
240
- )
241
-
242
- return
243
- end
244
-
245
- # Load extensions needed to support some of the Profiling features
246
- Profiling::Tasks::Setup.new.run
247
-
248
- # NOTE: Please update the Initialization section of ProfilingDevelopment.md with any changes to this method
249
-
250
- if settings.profiling.advanced.force_enable_new_profiler
251
- print_new_profiler_warnings
252
-
253
- recorder = Datadog::Profiling::StackRecorder.new
254
- collector = Datadog::Profiling::Collectors::CpuAndWallTimeWorker.new(
255
- recorder: recorder,
256
- max_frames: settings.profiling.advanced.max_frames,
257
- tracer: tracer,
258
- gc_profiling_enabled: should_enable_gc_profiling?(settings)
259
- )
260
- else
261
- trace_identifiers_helper = Profiling::TraceIdentifiers::Helper.new(
262
- tracer: tracer,
263
- endpoint_collection_enabled: settings.profiling.advanced.endpoint.collection.enabled
264
- )
265
-
266
- recorder = build_profiler_old_recorder(settings)
267
- collector = build_profiler_oldstack_collector(settings, recorder, trace_identifiers_helper)
268
- end
269
-
270
- exporter = build_profiler_exporter(settings, recorder)
271
- transport = build_profiler_transport(settings, agent_settings)
272
- scheduler = Profiling::Scheduler.new(exporter: exporter, transport: transport)
273
-
274
- Profiling::Profiler.new([collector], scheduler)
275
- end
276
-
277
- private
278
-
279
- def build_tracer_tags(settings)
280
- settings.tags.dup.tap do |tags|
281
- tags[Core::Environment::Ext::TAG_ENV] = settings.env unless settings.env.nil?
282
- tags[Core::Environment::Ext::TAG_VERSION] = settings.version unless settings.version.nil?
283
- end
284
- end
285
-
286
- def build_test_mode_trace_flush(settings)
287
- # If context flush behavior is provided, use it instead.
288
- settings.tracing.test_mode.trace_flush || build_trace_flush(settings)
289
- end
290
-
291
- def build_test_mode_sampler
292
- # Do not sample any spans for tests; all must be preserved.
293
- # Set priority sampler to ensure the agent doesn't drop any traces.
294
- Tracing::Sampling::PrioritySampler.new(
295
- base_sampler: Tracing::Sampling::AllSampler.new,
296
- post_sampler: Tracing::Sampling::AllSampler.new
297
- )
298
- end
299
-
300
- def build_test_mode_writer(settings, agent_settings)
301
- # Flush traces synchronously, to guarantee they are written.
302
- writer_options = settings.tracing.test_mode.writer_options || {}
303
- Tracing::SyncWriter.new(agent_settings: agent_settings, **writer_options)
304
- end
305
-
306
- def build_profiler_old_recorder(settings)
307
- Profiling::OldRecorder.new([Profiling::Events::StackSample], settings.profiling.advanced.max_events)
308
- end
309
-
310
- def build_profiler_exporter(settings, recorder)
311
- code_provenance_collector =
312
- (Profiling::Collectors::CodeProvenance.new if settings.profiling.advanced.code_provenance_enabled)
313
-
314
- Profiling::Exporter.new(pprof_recorder: recorder, code_provenance_collector: code_provenance_collector)
315
- end
316
-
317
- def build_profiler_oldstack_collector(settings, old_recorder, trace_identifiers_helper)
318
- Profiling::Collectors::OldStack.new(
319
- old_recorder,
320
- trace_identifiers_helper: trace_identifiers_helper,
321
- max_frames: settings.profiling.advanced.max_frames
322
- )
323
- end
324
-
325
- def build_profiler_transport(settings, agent_settings)
326
- settings.profiling.exporter.transport ||
327
- Profiling::HttpTransport.new(
328
- agent_settings: agent_settings,
329
- site: settings.site,
330
- api_key: settings.api_key,
331
- upload_timeout_seconds: settings.profiling.upload.timeout_seconds,
332
- )
333
- end
334
-
335
- def should_enable_gc_profiling?(settings)
336
- # See comments on the setting definition for more context on why it exists.
337
- if settings.profiling.advanced.force_enable_gc_profiling
338
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3')
339
- Datadog.logger.debug(
340
- 'Profiling time/resources spent in Garbage Collection force enabled. Do not use Ractors in combination ' \
341
- 'with this option as profiles will be incomplete.'
342
- )
343
- end
344
-
345
- true
346
- else
347
- false
348
- end
349
- end
350
-
351
- def print_new_profiler_warnings
352
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.6')
353
- Datadog.logger.warn(
354
- 'New Ruby profiler has been force-enabled. This feature is in beta state. We do not yet recommend ' \
355
- 'running it in production environments. Please report any issues ' \
356
- 'you run into to Datadog support or via <https://github.com/datadog/dd-trace-rb/issues/new>!'
357
- )
358
- else
359
- # For more details on the issue, see the "BIG Issue" comment on `gvl_owner` function in
360
- # `private_vm_api_access.c`.
361
- Datadog.logger.warn(
362
- 'New Ruby profiler has been force-enabled on a legacy Ruby version (< 2.6). This is not recommended in ' \
363
- 'production environments, as due to limitations in Ruby APIs, we suspect it may lead to crashes in very ' \
364
- 'rare situations. Please report any issues you run into to Datadog support or ' \
365
- 'via <https://github.com/datadog/dd-trace-rb/issues/new>!'
366
- )
367
- end
368
- end
369
58
  end
370
59
 
371
60
  attr_reader \
@@ -374,7 +63,8 @@ module Datadog
374
63
  :profiler,
375
64
  :runtime_metrics,
376
65
  :telemetry,
377
- :tracer
66
+ :tracer,
67
+ :appsec
378
68
 
379
69
  def initialize(settings)
380
70
  # Logger
@@ -396,6 +86,9 @@ module Datadog
396
86
 
397
87
  # Telemetry
398
88
  @telemetry = self.class.build_telemetry(settings)
89
+
90
+ # AppSec
91
+ @appsec = Datadog::AppSec::Component.build_appsec_component(settings.appsec)
399
92
  end
400
93
 
401
94
  # Starts up components
@@ -418,6 +111,9 @@ module Datadog
418
111
  # If it has another instance to compare to, it will compare
419
112
  # and avoid tearing down parts still in use.
420
113
  def shutdown!(replacement = nil)
114
+ # Decommission AppSec
115
+ appsec.shutdown! if appsec
116
+
421
117
  # Shutdown the old tracer, unless it's still being used.
422
118
  # (e.g. a custom tracer instance passed in.)
423
119
  tracer.shutdown! unless replacement && tracer == replacement.tracer
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  require 'tsort'
4
2
 
5
3
  module Datadog
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Configuration
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Configuration
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'option'
4
2
 
5
3
  module Datadog
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'dependency_resolver'
4
2
 
5
3
  module Datadog
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Configuration
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  require_relative 'option_set'
4
2
  require_relative 'option_definition'
5
3
  require_relative 'option_definition_set'
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  require 'logger'
4
2
 
5
3
  require_relative 'base'
@@ -206,6 +204,7 @@ module Datadog
206
204
  # This should never be reduced, as it can cause the resulting profiles to become biased.
207
205
  # The current default should be enough for most services, allowing 16 threads to be sampled around 30 times
208
206
  # per second for a 60 second period.
207
+ # This setting is ignored when CPU Profiling 2.0 is in use.
209
208
  option :max_events, default: 32768
210
209
 
211
210
  # Controls the maximum number of frames for each thread sampled. Can be tuned to avoid omitted frames in the
@@ -232,8 +231,8 @@ module Datadog
232
231
  end
233
232
  end
234
233
 
235
- # Disable gathering of names and versions of gems in use by the service, used to power grouping and
236
- # categorization of stack traces.
234
+ # Can be used to disable the gathering of names and versions of gems in use by the service, used to power
235
+ # grouping and categorization of stack traces.
237
236
  option :code_provenance_enabled, default: true
238
237
 
239
238
  # No longer does anything, and will be removed on dd-trace-rb 2.0.
@@ -249,7 +248,7 @@ module Datadog
249
248
  end
250
249
  end
251
250
 
252
- # Forces enabling the new profiler. We do not yet recommend turning on this option.
251
+ # Forces enabling the new CPU Profiling 2.0 profiler (see ddtrace release notes for more details).
253
252
  #
254
253
  # Note that setting this to "false" (or not setting it) will not prevent the new profiler from
255
254
  # being automatically used in the future.
@@ -279,6 +278,16 @@ module Datadog
279
278
  o.default { env_to_bool('DD_PROFILING_FORCE_ENABLE_GC', false) }
280
279
  o.lazy
281
280
  end
281
+
282
+ # Can be used to enable/disable the Datadog::Profiling.allocation_count feature.
283
+ #
284
+ # This feature is safe and enabled by default on Ruby 2.x, but
285
+ # on Ruby 3.x it can break in applications that make use of Ractors due to two Ruby VM bugs:
286
+ # https://bugs.ruby-lang.org/issues/19112 AND https://bugs.ruby-lang.org/issues/18464.
287
+ #
288
+ # If you use Ruby 3.x and your application does not use Ractors (or if your Ruby has been patched), the
289
+ # feature is fully safe to enable and this toggle can be used to do so.
290
+ option :allocation_counting_enabled, default: RUBY_VERSION.start_with?('2.')
282
291
  end
283
292
 
284
293
  # @public_api
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'configuration/components'
4
2
  require_relative 'configuration/settings'
5
3
  require_relative 'telemetry/emitter'
@@ -10,8 +8,6 @@ module Datadog
10
8
  module Core
11
9
  # Configuration provides a unique access point for configurations
12
10
  module Configuration
13
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
14
-
15
11
  # Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
16
12
  #
17
13
  # This is important because components can end up being accessed from multiple application threads (for instance on
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require 'date'
4
2
  require 'json'
5
3
  require 'rbconfig'
@@ -1,5 +1,3 @@
1
- # typed: ignore
2
-
3
1
  require_relative '../metrics/client'
4
2
  require_relative '../../tracing/diagnostics/health'
5
3
 
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require 'json'
4
2
  require 'msgpack'
5
3
 
@@ -10,8 +8,6 @@ module Datadog
10
8
  # Encoder interface that provides the logic to encode traces and service
11
9
  # @abstract
12
10
  module Encoder
13
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
14
-
15
11
  def content_type
16
12
  raise NotImplementedError
17
13
  end
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'ext'
4
2
 
5
3
  module Datadog
@@ -10,8 +8,6 @@ module Datadog
10
8
  # about the current Linux container identity.
11
9
  # @see https://man7.org/linux/man-pages/man7/cgroups.7.html
12
10
  module Cgroup
13
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
14
-
15
11
  LINE_REGEX = /^(\d+):([^:]*):(.+)$/.freeze
16
12
 
17
13
  Descriptor = Struct.new(
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Environment
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'cgroup'
4
2
 
5
3
  module Datadog
@@ -7,8 +5,6 @@ module Datadog
7
5
  module Environment
8
6
  # For container environments
9
7
  module Container
10
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
11
-
12
8
  UUID_PATTERN = '[0-9a-f]{8}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{12}'.freeze
13
9
  CONTAINER_PATTERN = '[0-9a-f]{64}'.freeze
14
10
 
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative '../../../ddtrace/version'
4
2
 
5
3
  module Datadog
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Environment
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  require 'securerandom'
4
2
 
5
3
  require_relative 'ext'
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  require 'etc'
4
2
 
5
3
  require_relative 'identity'
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  require 'socket'
4
2
  require_relative '../utils/forking'
5
3
 
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Environment
@@ -1,5 +1,3 @@
1
- # typed: false
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  # Namespace for handling application environment
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Environment
@@ -20,6 +18,9 @@ module Datadog
20
18
  # Whenever a constant creation busts the global constant cache
21
19
  # this value is incremented. This has a measurable performance impact
22
20
  # and thus show be avoided after application warm up.
21
+ #
22
+ # This was removed in Ruby 3.2.
23
+ # @see https://github.com/ruby/ruby/blob/master/doc/NEWS/NEWS-3.2.0.md#implementation-improvements
23
24
  def global_constant_state
24
25
  ::RubyVM.stat[:global_constant_state]
25
26
  end
@@ -38,6 +39,20 @@ module Datadog
38
39
  ::RubyVM.stat[:global_method_state]
39
40
  end
40
41
 
42
+ # Introduced in Ruby 3.2 to match an improved cache implementation.
43
+ #
44
+ # @see https://bugs.ruby-lang.org/issues/18589
45
+ def constant_cache_invalidations
46
+ ::RubyVM.stat[:constant_cache_invalidations]
47
+ end
48
+
49
+ # Introduced in Ruby 3.2 to match an improved cache implementation.
50
+ #
51
+ # @see https://bugs.ruby-lang.org/issues/18589
52
+ def constant_cache_misses
53
+ ::RubyVM.stat[:constant_cache_misses]
54
+ end
55
+
41
56
  def available?
42
57
  defined?(::RubyVM) && ::RubyVM.respond_to?(:stat)
43
58
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # typed: false
4
-
5
3
  require_relative 'utils'
6
4
 
7
5
  module Datadog
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'configuration'
4
2
 
5
3
  # Global namespace that includes all Datadog functionality.
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  module Datadog
4
2
  module Core
5
3
  module Git