ddtrace 0.49.0 → 1.12.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 (1785) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1213 -12
  3. data/LICENSE-3rdparty.csv +7 -1
  4. data/README.md +16 -9
  5. data/bin/ddtracerb +5 -5
  6. data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +134 -0
  7. data/ext/ddtrace_profiling_loader/extconf.rb +72 -0
  8. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +158 -0
  9. data/ext/ddtrace_profiling_native_extension/clock_id.h +25 -0
  10. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +75 -0
  11. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +23 -0
  12. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +931 -0
  13. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
  14. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
  15. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +241 -0
  16. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  17. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +379 -0
  18. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +20 -0
  19. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +1001 -0
  20. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +14 -0
  21. data/ext/ddtrace_profiling_native_extension/extconf.rb +253 -0
  22. data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
  23. data/ext/ddtrace_profiling_native_extension/http_transport.c +347 -0
  24. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +25 -0
  25. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +319 -0
  26. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +769 -0
  27. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +45 -0
  28. data/ext/ddtrace_profiling_native_extension/profiling.c +251 -0
  29. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
  30. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +89 -0
  31. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.c +115 -0
  32. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.h +11 -0
  33. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +591 -0
  34. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +14 -0
  35. data/ext/ddtrace_profiling_native_extension/time_helpers.c +17 -0
  36. data/ext/ddtrace_profiling_native_extension/time_helpers.h +10 -0
  37. data/lib/datadog/appsec/assets/blocked.html +99 -0
  38. data/lib/datadog/appsec/assets/blocked.json +1 -0
  39. data/lib/datadog/appsec/assets/blocked.text +5 -0
  40. data/lib/datadog/appsec/assets/waf_rules/README.md +7 -0
  41. data/lib/datadog/appsec/assets/waf_rules/recommended.json +7080 -0
  42. data/lib/datadog/appsec/assets/waf_rules/strict.json +1545 -0
  43. data/lib/datadog/appsec/assets.rb +36 -0
  44. data/lib/datadog/appsec/autoload.rb +11 -0
  45. data/lib/datadog/appsec/component.rb +75 -0
  46. data/lib/datadog/appsec/configuration/settings.rb +224 -0
  47. data/lib/datadog/appsec/configuration.rb +90 -0
  48. data/lib/datadog/appsec/contrib/auto_instrument.rb +27 -0
  49. data/lib/datadog/appsec/contrib/integration.rb +37 -0
  50. data/lib/datadog/appsec/contrib/patcher.rb +12 -0
  51. data/lib/datadog/appsec/contrib/rack/ext.rb +12 -0
  52. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +100 -0
  53. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
  54. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +158 -0
  55. data/lib/datadog/appsec/contrib/rack/integration.rb +42 -0
  56. data/lib/datadog/appsec/contrib/rack/patcher.rb +34 -0
  57. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +86 -0
  58. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +63 -0
  59. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +69 -0
  60. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +43 -0
  61. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +174 -0
  62. data/lib/datadog/appsec/contrib/rails/ext.rb +12 -0
  63. data/lib/datadog/appsec/contrib/rails/framework.rb +18 -0
  64. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +67 -0
  65. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +68 -0
  66. data/lib/datadog/appsec/contrib/rails/integration.rb +41 -0
  67. data/lib/datadog/appsec/contrib/rails/patcher.rb +159 -0
  68. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +69 -0
  69. data/lib/datadog/appsec/contrib/rails/request.rb +36 -0
  70. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +20 -0
  71. data/lib/datadog/appsec/contrib/sinatra/ext.rb +13 -0
  72. data/lib/datadog/appsec/contrib/sinatra/framework.rb +22 -0
  73. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +17 -0
  74. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +23 -0
  75. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +113 -0
  76. data/lib/datadog/appsec/contrib/sinatra/integration.rb +41 -0
  77. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +160 -0
  78. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +64 -0
  79. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +20 -0
  80. data/lib/datadog/appsec/event.rb +113 -0
  81. data/lib/datadog/appsec/ext.rb +10 -0
  82. data/lib/datadog/appsec/extensions.rb +144 -0
  83. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +22 -0
  84. data/lib/datadog/appsec/instrumentation/gateway.rb +64 -0
  85. data/lib/datadog/appsec/instrumentation.rb +9 -0
  86. data/lib/datadog/appsec/monitor/gateway/watcher.rb +67 -0
  87. data/lib/datadog/appsec/monitor/reactive/set_user.rb +61 -0
  88. data/lib/datadog/appsec/monitor.rb +11 -0
  89. data/lib/datadog/appsec/processor/rule_loader.rb +63 -0
  90. data/lib/datadog/appsec/processor/rule_merger.rb +132 -0
  91. data/lib/datadog/appsec/processor.rb +143 -0
  92. data/lib/datadog/appsec/rate_limiter.rb +58 -0
  93. data/lib/datadog/appsec/reactive/address_hash.rb +22 -0
  94. data/lib/datadog/appsec/reactive/engine.rb +47 -0
  95. data/lib/datadog/appsec/reactive/operation.rb +68 -0
  96. data/lib/datadog/appsec/reactive/subscriber.rb +19 -0
  97. data/lib/datadog/appsec/remote.rb +123 -0
  98. data/lib/datadog/appsec/response.rb +73 -0
  99. data/lib/datadog/appsec/scope.rb +61 -0
  100. data/lib/datadog/appsec/utils/http/media_range.rb +199 -0
  101. data/lib/datadog/appsec/utils/http/media_type.rb +85 -0
  102. data/lib/datadog/appsec/utils/http.rb +11 -0
  103. data/lib/datadog/appsec/utils.rb +9 -0
  104. data/lib/datadog/appsec.rb +61 -0
  105. data/lib/datadog/ci/configuration/components.rb +32 -0
  106. data/lib/datadog/ci/configuration/settings.rb +53 -0
  107. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +33 -0
  108. data/lib/datadog/ci/contrib/cucumber/ext.rb +20 -0
  109. data/lib/datadog/ci/contrib/cucumber/formatter.rb +94 -0
  110. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +28 -0
  111. data/lib/datadog/ci/contrib/cucumber/integration.rb +47 -0
  112. data/lib/datadog/ci/contrib/cucumber/patcher.rb +27 -0
  113. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +33 -0
  114. data/lib/datadog/ci/contrib/rspec/example.rb +68 -0
  115. data/lib/datadog/ci/contrib/rspec/ext.rb +19 -0
  116. data/lib/datadog/ci/contrib/rspec/integration.rb +48 -0
  117. data/lib/datadog/ci/contrib/rspec/patcher.rb +27 -0
  118. data/lib/datadog/ci/ext/app_types.rb +9 -0
  119. data/lib/datadog/ci/ext/environment.rb +575 -0
  120. data/lib/datadog/ci/ext/settings.rb +10 -0
  121. data/lib/datadog/ci/ext/test.rb +35 -0
  122. data/lib/datadog/ci/extensions.rb +19 -0
  123. data/lib/datadog/ci/flush.rb +38 -0
  124. data/lib/datadog/ci/test.rb +81 -0
  125. data/lib/datadog/ci.rb +20 -0
  126. data/lib/datadog/core/buffer/cruby.rb +55 -0
  127. data/lib/datadog/core/buffer/random.rb +134 -0
  128. data/lib/datadog/core/buffer/thread_safe.rb +58 -0
  129. data/lib/datadog/core/chunker.rb +35 -0
  130. data/lib/datadog/core/configuration/agent_settings_resolver.rb +396 -0
  131. data/lib/datadog/core/configuration/base.rb +99 -0
  132. data/lib/datadog/core/configuration/components.rb +161 -0
  133. data/lib/datadog/core/configuration/dependency_resolver.rb +28 -0
  134. data/lib/datadog/core/configuration/ext.rb +24 -0
  135. data/lib/datadog/core/configuration/option.rb +69 -0
  136. data/lib/datadog/core/configuration/option_definition.rb +135 -0
  137. data/lib/datadog/core/configuration/option_definition_set.rb +22 -0
  138. data/lib/datadog/core/configuration/option_set.rb +10 -0
  139. data/lib/datadog/core/configuration/options.rb +116 -0
  140. data/lib/datadog/core/configuration/settings.rb +569 -0
  141. data/lib/datadog/core/configuration.rb +289 -0
  142. data/lib/datadog/core/diagnostics/environment_logger.rb +286 -0
  143. data/lib/datadog/core/diagnostics/health.rb +19 -0
  144. data/lib/datadog/core/encoding.rb +72 -0
  145. data/lib/datadog/core/environment/cgroup.rb +51 -0
  146. data/lib/datadog/core/environment/class_count.rb +21 -0
  147. data/lib/datadog/core/environment/container.rb +89 -0
  148. data/lib/datadog/core/environment/ext.rb +44 -0
  149. data/lib/datadog/core/environment/gc.rb +20 -0
  150. data/lib/datadog/core/environment/identity.rb +114 -0
  151. data/lib/datadog/core/environment/platform.rb +38 -0
  152. data/lib/datadog/core/environment/socket.rb +24 -0
  153. data/lib/datadog/core/environment/thread_count.rb +20 -0
  154. data/lib/datadog/core/environment/variable_helpers.rb +122 -0
  155. data/lib/datadog/core/environment/vm_cache.rb +64 -0
  156. data/lib/datadog/core/error.rb +99 -0
  157. data/lib/datadog/core/extensions.rb +16 -0
  158. data/lib/datadog/core/git/ext.rb +33 -0
  159. data/lib/datadog/core/header_collection.rb +43 -0
  160. data/lib/datadog/core/logger.rb +44 -0
  161. data/lib/datadog/core/logging/ext.rb +11 -0
  162. data/lib/datadog/core/metrics/client.rb +197 -0
  163. data/lib/datadog/core/metrics/ext.rb +16 -0
  164. data/lib/datadog/core/metrics/helpers.rb +25 -0
  165. data/lib/datadog/core/metrics/logging.rb +42 -0
  166. data/lib/datadog/core/metrics/metric.rb +14 -0
  167. data/lib/datadog/core/metrics/options.rb +48 -0
  168. data/lib/datadog/core/pin.rb +73 -0
  169. data/lib/datadog/core/remote/client/capabilities.rb +57 -0
  170. data/lib/datadog/core/remote/client.rb +229 -0
  171. data/lib/datadog/core/remote/component.rb +158 -0
  172. data/lib/datadog/core/remote/configuration/content.rb +84 -0
  173. data/lib/datadog/core/remote/configuration/digest.rb +62 -0
  174. data/lib/datadog/core/remote/configuration/path.rb +90 -0
  175. data/lib/datadog/core/remote/configuration/repository.rb +292 -0
  176. data/lib/datadog/core/remote/configuration/target.rb +74 -0
  177. data/lib/datadog/core/remote/configuration.rb +18 -0
  178. data/lib/datadog/core/remote/dispatcher.rb +59 -0
  179. data/lib/datadog/core/remote/ext.rb +12 -0
  180. data/lib/datadog/core/remote/negotiation.rb +57 -0
  181. data/lib/datadog/core/remote/worker.rb +96 -0
  182. data/lib/datadog/core/remote.rb +24 -0
  183. data/lib/datadog/core/runtime/ext.rb +28 -0
  184. data/lib/datadog/core/runtime/metrics.rb +140 -0
  185. data/lib/datadog/core/telemetry/client.rb +77 -0
  186. data/lib/datadog/core/telemetry/collector.rb +231 -0
  187. data/lib/datadog/core/telemetry/emitter.rb +46 -0
  188. data/lib/datadog/core/telemetry/event.rb +67 -0
  189. data/lib/datadog/core/telemetry/ext.rb +9 -0
  190. data/lib/datadog/core/telemetry/heartbeat.rb +37 -0
  191. data/lib/datadog/core/telemetry/http/adapters/net.rb +111 -0
  192. data/lib/datadog/core/telemetry/http/env.rb +20 -0
  193. data/lib/datadog/core/telemetry/http/ext.rb +20 -0
  194. data/lib/datadog/core/telemetry/http/response.rb +64 -0
  195. data/lib/datadog/core/telemetry/http/transport.rb +54 -0
  196. data/lib/datadog/core/telemetry/v1/app_event.rb +52 -0
  197. data/lib/datadog/core/telemetry/v1/application.rb +92 -0
  198. data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
  199. data/lib/datadog/core/telemetry/v1/dependency.rb +43 -0
  200. data/lib/datadog/core/telemetry/v1/host.rb +59 -0
  201. data/lib/datadog/core/telemetry/v1/integration.rb +64 -0
  202. data/lib/datadog/core/telemetry/v1/product.rb +36 -0
  203. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +106 -0
  204. data/lib/datadog/core/transport/config.rb +58 -0
  205. data/lib/datadog/core/transport/http/api/instance.rb +37 -0
  206. data/lib/datadog/core/transport/http/api/spec.rb +19 -0
  207. data/lib/datadog/core/transport/http/api.rb +57 -0
  208. data/lib/datadog/core/transport/http/builder.rb +217 -0
  209. data/lib/datadog/core/transport/http/client.rb +45 -0
  210. data/lib/datadog/core/transport/http/config.rb +268 -0
  211. data/lib/datadog/core/transport/http/negotiation.rb +144 -0
  212. data/lib/datadog/core/transport/http.rb +169 -0
  213. data/lib/datadog/core/transport/negotiation.rb +60 -0
  214. data/lib/datadog/core/utils/compression.rb +36 -0
  215. data/lib/datadog/core/utils/forking.rb +61 -0
  216. data/lib/datadog/core/utils/hash.rb +32 -0
  217. data/lib/datadog/core/utils/network.rb +140 -0
  218. data/lib/datadog/core/utils/object_set.rb +43 -0
  219. data/lib/datadog/core/utils/only_once.rb +42 -0
  220. data/lib/datadog/core/utils/safe_dup.rb +43 -0
  221. data/lib/datadog/core/utils/sequence.rb +26 -0
  222. data/lib/datadog/core/utils/string_table.rb +47 -0
  223. data/lib/datadog/core/utils/time.rb +52 -0
  224. data/lib/datadog/core/utils.rb +92 -0
  225. data/lib/datadog/core/vendor/ipaddr.rb +78 -0
  226. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +118 -0
  227. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +59 -0
  228. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +137 -0
  229. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +11 -0
  230. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +10 -0
  231. data/lib/datadog/core/vendor/multipart-post/multipart.rb +14 -0
  232. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +34 -0
  233. data/lib/datadog/core/worker.rb +24 -0
  234. data/lib/datadog/core/workers/async.rb +182 -0
  235. data/lib/datadog/core/workers/interval_loop.rb +123 -0
  236. data/lib/datadog/core/workers/polling.rb +57 -0
  237. data/lib/datadog/core/workers/queue.rb +44 -0
  238. data/lib/datadog/core/workers/runtime_metrics.rb +62 -0
  239. data/lib/datadog/core.rb +45 -0
  240. data/lib/datadog/kit/appsec/events.rb +119 -0
  241. data/lib/datadog/kit/enable_core_dumps.rb +50 -0
  242. data/lib/datadog/kit/identity.rb +89 -0
  243. data/lib/datadog/kit.rb +11 -0
  244. data/lib/datadog/opentelemetry/api/context.rb +186 -0
  245. data/lib/datadog/opentelemetry/api/trace/span.rb +14 -0
  246. data/lib/datadog/opentelemetry/sdk/configurator.rb +37 -0
  247. data/lib/datadog/opentelemetry/sdk/id_generator.rb +26 -0
  248. data/lib/datadog/opentelemetry/sdk/propagator.rb +90 -0
  249. data/lib/datadog/opentelemetry/sdk/span_processor.rb +91 -0
  250. data/lib/datadog/opentelemetry.rb +47 -0
  251. data/lib/datadog/opentracer/binary_propagator.rb +26 -0
  252. data/lib/datadog/opentracer/carrier.rb +9 -0
  253. data/lib/datadog/opentracer/distributed_headers.rb +54 -0
  254. data/lib/datadog/opentracer/global_tracer.rb +17 -0
  255. data/lib/datadog/opentracer/propagator.rb +26 -0
  256. data/lib/datadog/opentracer/rack_propagator.rb +71 -0
  257. data/lib/datadog/opentracer/scope.rb +18 -0
  258. data/lib/datadog/opentracer/scope_manager.rb +9 -0
  259. data/lib/datadog/opentracer/span.rb +99 -0
  260. data/lib/datadog/opentracer/span_context.rb +19 -0
  261. data/lib/datadog/opentracer/span_context_factory.rb +27 -0
  262. data/lib/datadog/opentracer/text_map_propagator.rb +86 -0
  263. data/lib/datadog/opentracer/thread_local_scope.rb +34 -0
  264. data/lib/datadog/opentracer/thread_local_scope_manager.rb +64 -0
  265. data/lib/datadog/opentracer/tracer.rb +212 -0
  266. data/lib/datadog/opentracer.rb +24 -0
  267. data/lib/datadog/profiling/backtrace_location.rb +34 -0
  268. data/lib/datadog/profiling/buffer.rb +43 -0
  269. data/lib/datadog/profiling/collectors/code_provenance.rb +113 -0
  270. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +114 -0
  271. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  272. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +66 -0
  273. data/lib/datadog/profiling/collectors/old_stack.rb +301 -0
  274. data/lib/datadog/profiling/collectors/stack.rb +13 -0
  275. data/lib/datadog/profiling/collectors/thread_context.rb +46 -0
  276. data/lib/datadog/profiling/component.rb +275 -0
  277. data/lib/datadog/profiling/encoding/profile.rb +41 -0
  278. data/lib/datadog/profiling/event.rb +15 -0
  279. data/lib/datadog/profiling/events/stack.rb +82 -0
  280. data/lib/datadog/profiling/exporter.rb +83 -0
  281. data/lib/datadog/profiling/ext/forking.rb +96 -0
  282. data/lib/datadog/profiling/ext.rb +45 -0
  283. data/lib/datadog/profiling/flush.rb +38 -0
  284. data/lib/datadog/profiling/http_transport.rb +130 -0
  285. data/lib/datadog/profiling/load_native_extension.rb +20 -0
  286. data/lib/datadog/profiling/native_extension.rb +41 -0
  287. data/lib/datadog/profiling/old_recorder.rb +107 -0
  288. data/lib/datadog/profiling/pprof/builder.rb +125 -0
  289. data/lib/datadog/profiling/pprof/converter.rb +102 -0
  290. data/lib/datadog/profiling/pprof/message_set.rb +16 -0
  291. data/lib/datadog/profiling/pprof/payload.rb +20 -0
  292. data/lib/datadog/profiling/pprof/pprof_pb.rb +81 -0
  293. data/lib/datadog/profiling/pprof/stack_sample.rb +139 -0
  294. data/lib/datadog/profiling/pprof/string_table.rb +12 -0
  295. data/lib/datadog/profiling/pprof/template.rb +118 -0
  296. data/lib/datadog/profiling/preload.rb +5 -0
  297. data/lib/datadog/profiling/profiler.rb +39 -0
  298. data/lib/datadog/profiling/scheduler.rb +130 -0
  299. data/lib/datadog/profiling/stack_recorder.rb +56 -0
  300. data/lib/datadog/profiling/tag_builder.rb +53 -0
  301. data/lib/datadog/profiling/tasks/exec.rb +48 -0
  302. data/lib/datadog/profiling/tasks/help.rb +16 -0
  303. data/lib/datadog/profiling/tasks/setup.rb +58 -0
  304. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +43 -0
  305. data/lib/datadog/profiling/trace_identifiers/helper.rb +45 -0
  306. data/lib/datadog/profiling.rb +212 -0
  307. data/lib/datadog/tracing/analytics.rb +25 -0
  308. data/lib/datadog/tracing/buffer.rb +127 -0
  309. data/lib/datadog/tracing/client_ip.rb +61 -0
  310. data/lib/datadog/tracing/component.rb +176 -0
  311. data/lib/datadog/tracing/configuration/ext.rb +101 -0
  312. data/lib/datadog/tracing/configuration/settings.rb +465 -0
  313. data/lib/datadog/tracing/context.rb +68 -0
  314. data/lib/datadog/tracing/context_provider.rb +80 -0
  315. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +35 -0
  316. data/lib/datadog/tracing/contrib/action_cable/event.rb +71 -0
  317. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +56 -0
  318. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +61 -0
  319. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +57 -0
  320. data/lib/datadog/tracing/contrib/action_cable/events.rb +37 -0
  321. data/lib/datadog/tracing/contrib/action_cable/ext.rb +30 -0
  322. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +88 -0
  323. data/lib/datadog/tracing/contrib/action_cable/integration.rb +48 -0
  324. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +31 -0
  325. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +36 -0
  326. data/lib/datadog/tracing/contrib/action_mailer/event.rb +52 -0
  327. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +58 -0
  328. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +45 -0
  329. data/lib/datadog/tracing/contrib/action_mailer/events.rb +34 -0
  330. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +31 -0
  331. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +48 -0
  332. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +29 -0
  333. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +136 -0
  334. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +29 -0
  335. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +47 -0
  336. data/lib/datadog/tracing/contrib/action_pack/ext.rb +20 -0
  337. data/lib/datadog/tracing/contrib/action_pack/integration.rb +48 -0
  338. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +27 -0
  339. data/lib/datadog/tracing/contrib/action_pack/utils.rb +38 -0
  340. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +34 -0
  341. data/lib/datadog/tracing/contrib/action_view/event.rb +35 -0
  342. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +52 -0
  343. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +55 -0
  344. data/lib/datadog/tracing/contrib/action_view/events.rb +34 -0
  345. data/lib/datadog/tracing/contrib/action_view/ext.rb +22 -0
  346. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +76 -0
  347. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +89 -0
  348. data/lib/datadog/tracing/contrib/action_view/integration.rb +55 -0
  349. data/lib/datadog/tracing/contrib/action_view/patcher.rb +45 -0
  350. data/lib/datadog/tracing/contrib/action_view/utils.rb +34 -0
  351. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +37 -0
  352. data/lib/datadog/tracing/contrib/active_job/event.rb +58 -0
  353. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +48 -0
  354. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +47 -0
  355. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +47 -0
  356. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +49 -0
  357. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +47 -0
  358. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +48 -0
  359. data/lib/datadog/tracing/contrib/active_job/events.rb +42 -0
  360. data/lib/datadog/tracing/contrib/active_job/ext.rb +37 -0
  361. data/lib/datadog/tracing/contrib/active_job/integration.rb +48 -0
  362. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +24 -0
  363. data/lib/datadog/tracing/contrib/active_job/patcher.rb +36 -0
  364. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +33 -0
  365. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +68 -0
  366. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +43 -0
  367. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +45 -0
  368. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +34 -0
  369. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +22 -0
  370. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +43 -0
  371. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +32 -0
  372. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +34 -0
  373. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +136 -0
  374. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +44 -0
  375. data/lib/datadog/tracing/contrib/active_record/event.rb +30 -0
  376. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +56 -0
  377. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +79 -0
  378. data/lib/datadog/tracing/contrib/active_record/events.rb +34 -0
  379. data/lib/datadog/tracing/contrib/active_record/ext.rb +27 -0
  380. data/lib/datadog/tracing/contrib/active_record/integration.rb +54 -0
  381. data/lib/datadog/tracing/contrib/active_record/patcher.rb +27 -0
  382. data/lib/datadog/tracing/contrib/active_record/utils.rb +126 -0
  383. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +305 -0
  384. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +282 -0
  385. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +73 -0
  386. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +47 -0
  387. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +43 -0
  388. data/lib/datadog/tracing/contrib/active_support/ext.rb +29 -0
  389. data/lib/datadog/tracing/contrib/active_support/integration.rb +49 -0
  390. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +71 -0
  391. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +71 -0
  392. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +162 -0
  393. data/lib/datadog/tracing/contrib/active_support/patcher.rb +27 -0
  394. data/lib/datadog/tracing/contrib/analytics.rb +29 -0
  395. data/lib/datadog/tracing/contrib/auto_instrument.rb +53 -0
  396. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +44 -0
  397. data/lib/datadog/tracing/contrib/aws/ext.rb +36 -0
  398. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +108 -0
  399. data/lib/datadog/tracing/contrib/aws/integration.rb +45 -0
  400. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +62 -0
  401. data/lib/datadog/tracing/contrib/aws/patcher.rb +57 -0
  402. data/lib/datadog/tracing/contrib/aws/service/base.rb +16 -0
  403. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +22 -0
  404. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +22 -0
  405. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +32 -0
  406. data/lib/datadog/tracing/contrib/aws/service/s3.rb +22 -0
  407. data/lib/datadog/tracing/contrib/aws/service/sns.rb +30 -0
  408. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +27 -0
  409. data/lib/datadog/tracing/contrib/aws/service/states.rb +40 -0
  410. data/lib/datadog/tracing/contrib/aws/services.rb +137 -0
  411. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +23 -0
  412. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +53 -0
  413. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +14 -0
  414. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +27 -0
  415. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +41 -0
  416. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +32 -0
  417. data/lib/datadog/tracing/contrib/configurable.rb +102 -0
  418. data/lib/datadog/tracing/contrib/configuration/resolver.rb +85 -0
  419. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +43 -0
  420. data/lib/datadog/tracing/contrib/configuration/settings.rb +39 -0
  421. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +43 -0
  422. data/lib/datadog/tracing/contrib/dalli/ext.rb +24 -0
  423. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +64 -0
  424. data/lib/datadog/tracing/contrib/dalli/integration.rb +50 -0
  425. data/lib/datadog/tracing/contrib/dalli/patcher.rb +28 -0
  426. data/lib/datadog/tracing/contrib/dalli/quantize.rb +24 -0
  427. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +38 -0
  428. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +26 -0
  429. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +41 -0
  430. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +37 -0
  431. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +108 -0
  432. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +34 -0
  433. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +45 -0
  434. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +27 -0
  435. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +48 -0
  436. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +155 -0
  437. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +85 -0
  438. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +47 -0
  439. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +176 -0
  440. data/lib/datadog/tracing/contrib/ethon/ext.rb +23 -0
  441. data/lib/datadog/tracing/contrib/ethon/integration.rb +46 -0
  442. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +99 -0
  443. data/lib/datadog/tracing/contrib/ethon/patcher.rb +30 -0
  444. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +47 -0
  445. data/lib/datadog/tracing/contrib/excon/ext.rb +20 -0
  446. data/lib/datadog/tracing/contrib/excon/integration.rb +46 -0
  447. data/lib/datadog/tracing/contrib/excon/middleware.rb +172 -0
  448. data/lib/datadog/tracing/contrib/excon/patcher.rb +31 -0
  449. data/lib/datadog/tracing/contrib/ext.rb +30 -0
  450. data/lib/datadog/tracing/contrib/extensions.rb +197 -0
  451. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +51 -0
  452. data/lib/datadog/tracing/contrib/faraday/connection.rb +22 -0
  453. data/lib/datadog/tracing/contrib/faraday/ext.rb +20 -0
  454. data/lib/datadog/tracing/contrib/faraday/integration.rb +46 -0
  455. data/lib/datadog/tracing/contrib/faraday/middleware.rb +94 -0
  456. data/lib/datadog/tracing/contrib/faraday/patcher.rb +54 -0
  457. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +22 -0
  458. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +42 -0
  459. data/lib/datadog/tracing/contrib/grape/endpoint.rb +248 -0
  460. data/lib/datadog/tracing/contrib/grape/ext.rb +26 -0
  461. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +35 -0
  462. data/lib/datadog/tracing/contrib/grape/integration.rb +42 -0
  463. data/lib/datadog/tracing/contrib/grape/patcher.rb +33 -0
  464. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +36 -0
  465. data/lib/datadog/tracing/contrib/graphql/ext.rb +17 -0
  466. data/lib/datadog/tracing/contrib/graphql/integration.rb +42 -0
  467. data/lib/datadog/tracing/contrib/graphql/patcher.rb +88 -0
  468. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +48 -0
  469. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +100 -0
  470. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +88 -0
  471. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +105 -0
  472. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +26 -0
  473. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +42 -0
  474. data/lib/datadog/tracing/contrib/grpc/ext.rb +25 -0
  475. data/lib/datadog/tracing/contrib/grpc/integration.rb +48 -0
  476. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +53 -0
  477. data/lib/datadog/tracing/contrib/grpc/patcher.rb +34 -0
  478. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  479. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +22 -0
  480. data/lib/datadog/tracing/contrib/hanami/ext.rb +22 -0
  481. data/lib/datadog/tracing/contrib/hanami/integration.rb +42 -0
  482. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  483. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  484. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  485. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  486. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +43 -0
  487. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +52 -0
  488. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +38 -0
  489. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +37 -0
  490. data/lib/datadog/tracing/contrib/http/ext.rb +21 -0
  491. data/lib/datadog/tracing/contrib/http/instrumentation.rb +138 -0
  492. data/lib/datadog/tracing/contrib/http/integration.rb +49 -0
  493. data/lib/datadog/tracing/contrib/http/patcher.rb +30 -0
  494. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +17 -0
  495. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +52 -0
  496. data/lib/datadog/tracing/contrib/httpclient/ext.rb +21 -0
  497. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +118 -0
  498. data/lib/datadog/tracing/contrib/httpclient/integration.rb +46 -0
  499. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +40 -0
  500. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +52 -0
  501. data/lib/datadog/tracing/contrib/httprb/ext.rb +21 -0
  502. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +128 -0
  503. data/lib/datadog/tracing/contrib/httprb/integration.rb +46 -0
  504. data/lib/datadog/tracing/contrib/httprb/patcher.rb +40 -0
  505. data/lib/datadog/tracing/contrib/integration.rb +78 -0
  506. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +35 -0
  507. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +19 -0
  508. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +18 -0
  509. data/lib/datadog/tracing/contrib/kafka/event.rb +53 -0
  510. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +40 -0
  511. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +47 -0
  512. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +45 -0
  513. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +45 -0
  514. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +35 -0
  515. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +35 -0
  516. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +35 -0
  517. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +39 -0
  518. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +42 -0
  519. data/lib/datadog/tracing/contrib/kafka/events.rb +48 -0
  520. data/lib/datadog/tracing/contrib/kafka/ext.rb +51 -0
  521. data/lib/datadog/tracing/contrib/kafka/integration.rb +42 -0
  522. data/lib/datadog/tracing/contrib/kafka/patcher.rb +29 -0
  523. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +23 -0
  524. data/lib/datadog/tracing/contrib/lograge/ext.rb +13 -0
  525. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +46 -0
  526. data/lib/datadog/tracing/contrib/lograge/integration.rb +48 -0
  527. data/lib/datadog/tracing/contrib/lograge/patcher.rb +29 -0
  528. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +47 -0
  529. data/lib/datadog/tracing/contrib/mongodb/ext.rb +33 -0
  530. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +47 -0
  531. data/lib/datadog/tracing/contrib/mongodb/integration.rb +46 -0
  532. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +47 -0
  533. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +34 -0
  534. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +128 -0
  535. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +55 -0
  536. data/lib/datadog/tracing/contrib/mysql2/ext.rb +22 -0
  537. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +80 -0
  538. data/lib/datadog/tracing/contrib/mysql2/integration.rb +41 -0
  539. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +31 -0
  540. data/lib/datadog/tracing/contrib/patchable.rb +109 -0
  541. data/lib/datadog/tracing/contrib/patcher.rb +83 -0
  542. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +55 -0
  543. data/lib/datadog/tracing/contrib/pg/ext.rb +31 -0
  544. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +171 -0
  545. data/lib/datadog/tracing/contrib/pg/integration.rb +41 -0
  546. data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
  547. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +43 -0
  548. data/lib/datadog/tracing/contrib/presto/ext.rb +32 -0
  549. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +127 -0
  550. data/lib/datadog/tracing/contrib/presto/integration.rb +41 -0
  551. data/lib/datadog/tracing/contrib/presto/patcher.rb +35 -0
  552. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +41 -0
  553. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +31 -0
  554. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  555. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +53 -0
  556. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +40 -0
  557. data/lib/datadog/tracing/contrib/qless/ext.rb +24 -0
  558. data/lib/datadog/tracing/contrib/qless/integration.rb +41 -0
  559. data/lib/datadog/tracing/contrib/qless/patcher.rb +36 -0
  560. data/lib/datadog/tracing/contrib/qless/qless_job.rb +75 -0
  561. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +30 -0
  562. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +47 -0
  563. data/lib/datadog/tracing/contrib/que/ext.rb +32 -0
  564. data/lib/datadog/tracing/contrib/que/integration.rb +44 -0
  565. data/lib/datadog/tracing/contrib/que/patcher.rb +26 -0
  566. data/lib/datadog/tracing/contrib/que/tracer.rb +63 -0
  567. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +43 -0
  568. data/lib/datadog/tracing/contrib/racecar/event.rb +81 -0
  569. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +36 -0
  570. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +33 -0
  571. data/lib/datadog/tracing/contrib/racecar/events/message.rb +36 -0
  572. data/lib/datadog/tracing/contrib/racecar/events.rb +36 -0
  573. data/lib/datadog/tracing/contrib/racecar/ext.rb +30 -0
  574. data/lib/datadog/tracing/contrib/racecar/integration.rb +42 -0
  575. data/lib/datadog/tracing/contrib/racecar/patcher.rb +29 -0
  576. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +49 -0
  577. data/lib/datadog/tracing/contrib/rack/ext.rb +28 -0
  578. data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
  579. data/lib/datadog/tracing/contrib/rack/integration.rb +48 -0
  580. data/lib/datadog/tracing/contrib/rack/middlewares.rb +349 -0
  581. data/lib/datadog/tracing/contrib/rack/patcher.rb +117 -0
  582. data/lib/datadog/tracing/contrib/rack/request_queue.rb +46 -0
  583. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +10 -0
  584. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +79 -0
  585. data/lib/datadog/tracing/contrib/rails/ext.rb +17 -0
  586. data/lib/datadog/tracing/contrib/rails/framework.rb +148 -0
  587. data/lib/datadog/tracing/contrib/rails/integration.rb +47 -0
  588. data/lib/datadog/tracing/contrib/rails/log_injection.rb +30 -0
  589. data/lib/datadog/tracing/contrib/rails/middlewares.rb +46 -0
  590. data/lib/datadog/tracing/contrib/rails/patcher.rb +118 -0
  591. data/lib/datadog/tracing/contrib/rails/railtie.rb +17 -0
  592. data/lib/datadog/tracing/contrib/rails/utils.rb +28 -0
  593. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +51 -0
  594. data/lib/datadog/tracing/contrib/rake/ext.rb +24 -0
  595. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +101 -0
  596. data/lib/datadog/tracing/contrib/rake/integration.rb +41 -0
  597. data/lib/datadog/tracing/contrib/rake/patcher.rb +33 -0
  598. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +47 -0
  599. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +48 -0
  600. data/lib/datadog/tracing/contrib/redis/ext.rb +27 -0
  601. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +86 -0
  602. data/lib/datadog/tracing/contrib/redis/integration.rb +78 -0
  603. data/lib/datadog/tracing/contrib/redis/patcher.rb +77 -0
  604. data/lib/datadog/tracing/contrib/redis/quantize.rb +80 -0
  605. data/lib/datadog/tracing/contrib/redis/tags.rb +59 -0
  606. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +70 -0
  607. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +160 -0
  608. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  609. data/lib/datadog/tracing/contrib/registry.rb +52 -0
  610. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +37 -0
  611. data/lib/datadog/tracing/contrib/resque/ext.rb +19 -0
  612. data/lib/datadog/tracing/contrib/resque/integration.rb +46 -0
  613. data/lib/datadog/tracing/contrib/resque/patcher.rb +29 -0
  614. data/lib/datadog/tracing/contrib/resque/resque_job.rb +106 -0
  615. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +47 -0
  616. data/lib/datadog/tracing/contrib/rest_client/ext.rb +20 -0
  617. data/lib/datadog/tracing/contrib/rest_client/integration.rb +41 -0
  618. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +28 -0
  619. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +109 -0
  620. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +34 -0
  621. data/lib/datadog/tracing/contrib/roda/ext.rb +18 -0
  622. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +76 -0
  623. data/lib/datadog/tracing/contrib/roda/integration.rb +45 -0
  624. data/lib/datadog/tracing/contrib/roda/patcher.rb +30 -0
  625. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +23 -0
  626. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +13 -0
  627. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +51 -0
  628. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +50 -0
  629. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +29 -0
  630. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +33 -0
  631. data/lib/datadog/tracing/contrib/sequel/database.rb +60 -0
  632. data/lib/datadog/tracing/contrib/sequel/dataset.rb +67 -0
  633. data/lib/datadog/tracing/contrib/sequel/ext.rb +20 -0
  634. data/lib/datadog/tracing/contrib/sequel/integration.rb +41 -0
  635. data/lib/datadog/tracing/contrib/sequel/patcher.rb +37 -0
  636. data/lib/datadog/tracing/contrib/sequel/utils.rb +88 -0
  637. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +38 -0
  638. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +24 -0
  639. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +42 -0
  640. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +28 -0
  641. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +65 -0
  642. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +66 -0
  643. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +45 -0
  644. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +38 -0
  645. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +42 -0
  646. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +59 -0
  647. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +90 -0
  648. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +61 -0
  649. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +36 -0
  650. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +34 -0
  651. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +57 -0
  652. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +34 -0
  653. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +118 -0
  654. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +44 -0
  655. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +41 -0
  656. data/lib/datadog/tracing/contrib/sinatra/env.rb +53 -0
  657. data/lib/datadog/tracing/contrib/sinatra/ext.rb +34 -0
  658. data/lib/datadog/tracing/contrib/sinatra/framework.rb +114 -0
  659. data/lib/datadog/tracing/contrib/sinatra/headers.rb +35 -0
  660. data/lib/datadog/tracing/contrib/sinatra/integration.rb +41 -0
  661. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +75 -0
  662. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +84 -0
  663. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +127 -0
  664. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +36 -0
  665. data/lib/datadog/tracing/contrib/sneakers/ext.rb +25 -0
  666. data/lib/datadog/tracing/contrib/sneakers/integration.rb +44 -0
  667. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +27 -0
  668. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +60 -0
  669. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +28 -0
  670. data/lib/datadog/tracing/contrib/status_code_matcher.rb +72 -0
  671. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +33 -0
  672. data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
  673. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  674. data/lib/datadog/tracing/contrib/stripe/patcher.rb +28 -0
  675. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  676. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +35 -0
  677. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +28 -0
  678. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +25 -0
  679. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +102 -0
  680. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +41 -0
  681. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +35 -0
  682. data/lib/datadog/tracing/contrib/utils/database.rb +29 -0
  683. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +109 -0
  684. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +177 -0
  685. data/lib/datadog/tracing/contrib.rb +80 -0
  686. data/lib/datadog/tracing/correlation.rb +111 -0
  687. data/lib/datadog/tracing/diagnostics/ext.rb +34 -0
  688. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  689. data/lib/datadog/tracing/distributed/b3_multi.rb +72 -0
  690. data/lib/datadog/tracing/distributed/b3_single.rb +68 -0
  691. data/lib/datadog/tracing/distributed/datadog.rb +200 -0
  692. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +84 -0
  693. data/lib/datadog/tracing/distributed/fetcher.rb +21 -0
  694. data/lib/datadog/tracing/distributed/headers/ext.rb +34 -0
  695. data/lib/datadog/tracing/distributed/helpers.rb +65 -0
  696. data/lib/datadog/tracing/distributed/none.rb +18 -0
  697. data/lib/datadog/tracing/distributed/propagation.rb +126 -0
  698. data/lib/datadog/tracing/distributed/trace_context.rb +380 -0
  699. data/lib/datadog/tracing/event.rb +74 -0
  700. data/lib/datadog/tracing/flush.rb +96 -0
  701. data/lib/datadog/tracing/metadata/analytics.rb +26 -0
  702. data/lib/datadog/tracing/metadata/errors.rb +24 -0
  703. data/lib/datadog/tracing/metadata/ext.rb +188 -0
  704. data/lib/datadog/tracing/metadata/tagging.rb +129 -0
  705. data/lib/datadog/tracing/metadata.rb +20 -0
  706. data/lib/datadog/tracing/pipeline/span_filter.rb +46 -0
  707. data/lib/datadog/tracing/pipeline/span_processor.rb +39 -0
  708. data/lib/datadog/tracing/pipeline.rb +61 -0
  709. data/lib/datadog/tracing/propagation/http.rb +14 -0
  710. data/lib/datadog/tracing/runtime/metrics.rb +17 -0
  711. data/lib/datadog/tracing/sampling/all_sampler.rb +25 -0
  712. data/lib/datadog/tracing/sampling/ext.rb +56 -0
  713. data/lib/datadog/tracing/sampling/matcher.rb +68 -0
  714. data/lib/datadog/tracing/sampling/priority_sampler.rb +165 -0
  715. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +94 -0
  716. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +62 -0
  717. data/lib/datadog/tracing/sampling/rate_limiter.rb +186 -0
  718. data/lib/datadog/tracing/sampling/rate_sampler.rb +68 -0
  719. data/lib/datadog/tracing/sampling/rule.rb +72 -0
  720. data/lib/datadog/tracing/sampling/rule_sampler.rb +128 -0
  721. data/lib/datadog/tracing/sampling/sampler.rb +42 -0
  722. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  723. data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
  724. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  725. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  726. data/lib/datadog/tracing/sampling/span/sampler.rb +77 -0
  727. data/lib/datadog/tracing/span.rb +214 -0
  728. data/lib/datadog/tracing/span_operation.rb +517 -0
  729. data/lib/datadog/tracing/sync_writer.rb +67 -0
  730. data/lib/datadog/tracing/trace_digest.rb +146 -0
  731. data/lib/datadog/tracing/trace_operation.rb +473 -0
  732. data/lib/datadog/tracing/trace_segment.rb +217 -0
  733. data/lib/datadog/tracing/tracer.rb +530 -0
  734. data/lib/datadog/tracing/utils.rb +83 -0
  735. data/lib/datadog/tracing/workers/trace_writer.rb +192 -0
  736. data/lib/datadog/tracing/workers.rb +121 -0
  737. data/lib/datadog/tracing/writer.rb +183 -0
  738. data/lib/datadog/tracing.rb +142 -0
  739. data/lib/ddtrace/auto_instrument.rb +15 -2
  740. data/lib/ddtrace/auto_instrument_base.rb +2 -0
  741. data/lib/ddtrace/profiling/preload.rb +2 -3
  742. data/lib/ddtrace/transport/ext.rb +39 -0
  743. data/lib/ddtrace/transport/http/adapters/net.rb +29 -6
  744. data/lib/ddtrace/transport/http/adapters/registry.rb +2 -0
  745. data/lib/ddtrace/transport/http/adapters/test.rb +5 -3
  746. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +24 -13
  747. data/lib/ddtrace/transport/http/api/endpoint.rb +2 -0
  748. data/lib/ddtrace/transport/http/api/fallbacks.rb +2 -0
  749. data/lib/ddtrace/transport/http/api/instance.rb +2 -0
  750. data/lib/ddtrace/transport/http/api/map.rb +3 -1
  751. data/lib/ddtrace/transport/http/api/spec.rb +2 -0
  752. data/lib/ddtrace/transport/http/api.rb +7 -14
  753. data/lib/ddtrace/transport/http/builder.rb +17 -10
  754. data/lib/ddtrace/transport/http/client.rb +5 -3
  755. data/lib/ddtrace/transport/http/env.rb +2 -0
  756. data/lib/ddtrace/transport/http/response.rb +37 -5
  757. data/lib/ddtrace/transport/http/statistics.rb +3 -3
  758. data/lib/ddtrace/transport/http/traces.rb +9 -7
  759. data/lib/ddtrace/transport/http.rb +40 -39
  760. data/lib/ddtrace/transport/io/client.rb +5 -3
  761. data/lib/ddtrace/transport/io/response.rb +3 -1
  762. data/lib/ddtrace/transport/io/traces.rb +7 -5
  763. data/lib/ddtrace/transport/io.rb +6 -4
  764. data/lib/ddtrace/transport/parcel.rb +3 -0
  765. data/lib/ddtrace/transport/request.rb +3 -1
  766. data/lib/ddtrace/transport/serializable_trace.rb +122 -0
  767. data/lib/ddtrace/transport/statistics.rb +7 -4
  768. data/lib/ddtrace/transport/trace_formatter.rb +198 -0
  769. data/lib/ddtrace/transport/traces.rb +22 -11
  770. data/lib/ddtrace/version.rb +20 -17
  771. data/lib/ddtrace.rb +9 -82
  772. metadata +784 -1026
  773. data/.circleci/config.yml +0 -894
  774. data/.circleci/images/primary/Dockerfile-2.0.0 +0 -83
  775. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -83
  776. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -83
  777. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -85
  778. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -83
  779. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -83
  780. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -83
  781. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -83
  782. data/.circleci/images/primary/Dockerfile-3.0.0 +0 -73
  783. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +0 -88
  784. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +0 -73
  785. data/.circleci/images/primary/Dockerfile-truffleruby-21.0.0 +0 -73
  786. data/.dockerignore +0 -0
  787. data/.env +0 -26
  788. data/.github/CODEOWNERS +0 -1
  789. data/.github/workflows/add-milestone-to-pull-requests.yml +0 -42
  790. data/.github/workflows/create-next-milestone.yml +0 -20
  791. data/.gitignore +0 -62
  792. data/.gitlab-ci.yml +0 -27
  793. data/.rspec +0 -1
  794. data/.rubocop.yml +0 -359
  795. data/.rubocop_todo.yml +0 -438
  796. data/.simplecov +0 -47
  797. data/.yardopts +0 -5
  798. data/Appraisals +0 -1429
  799. data/CONTRIBUTING.md +0 -85
  800. data/Gemfile +0 -69
  801. data/Rakefile +0 -994
  802. data/benchmarks/postgres_database.yml +0 -9
  803. data/benchmarks/profiler_sample_loop.rb +0 -69
  804. data/benchmarks/sidekiq_test.rb +0 -154
  805. data/ddtrace.gemspec +0 -44
  806. data/docker-compose.yml +0 -444
  807. data/docs/DevelopmentGuide.md +0 -249
  808. data/docs/GettingStarted.md +0 -2482
  809. data/docs/ProfilingDevelopment.md +0 -88
  810. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +0 -79
  811. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +0 -1518
  812. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +0 -35
  813. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +0 -157
  814. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +0 -34
  815. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +0 -153
  816. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +0 -35
  817. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +0 -174
  818. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +0 -35
  819. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +0 -206
  820. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +0 -35
  821. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +0 -206
  822. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +0 -40
  823. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +0 -271
  824. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +0 -40
  825. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +0 -271
  826. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +0 -41
  827. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +0 -273
  828. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +0 -41
  829. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  830. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +0 -42
  831. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +0 -279
  832. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +0 -40
  833. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +0 -290
  834. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +0 -40
  835. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +0 -290
  836. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +0 -41
  837. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +0 -292
  838. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +0 -41
  839. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -297
  840. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +0 -40
  841. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +0 -287
  842. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +0 -40
  843. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +0 -287
  844. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +0 -41
  845. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +0 -289
  846. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +0 -41
  847. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  848. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +0 -42
  849. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +0 -295
  850. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +0 -36
  851. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +0 -180
  852. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +0 -36
  853. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +0 -180
  854. data/gemfiles/jruby_9.2.11.1_contrib.gemfile +0 -79
  855. data/gemfiles/jruby_9.2.11.1_contrib.gemfile.lock +0 -1518
  856. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile +0 -35
  857. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile.lock +0 -157
  858. data/gemfiles/jruby_9.2.11.1_core_old.gemfile +0 -34
  859. data/gemfiles/jruby_9.2.11.1_core_old.gemfile.lock +0 -153
  860. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile +0 -35
  861. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile.lock +0 -174
  862. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile +0 -35
  863. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile.lock +0 -206
  864. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile +0 -35
  865. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile.lock +0 -206
  866. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile +0 -40
  867. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile.lock +0 -271
  868. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile +0 -40
  869. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile.lock +0 -271
  870. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile +0 -41
  871. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile.lock +0 -273
  872. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile +0 -41
  873. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  874. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile +0 -42
  875. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile.lock +0 -279
  876. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile +0 -40
  877. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile.lock +0 -290
  878. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile +0 -40
  879. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile.lock +0 -290
  880. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile +0 -41
  881. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile.lock +0 -292
  882. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile +0 -41
  883. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile.lock +0 -297
  884. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile +0 -40
  885. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile.lock +0 -287
  886. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile +0 -40
  887. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile.lock +0 -287
  888. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile +0 -41
  889. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile.lock +0 -289
  890. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile +0 -41
  891. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  892. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile +0 -42
  893. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile.lock +0 -295
  894. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile +0 -36
  895. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile.lock +0 -180
  896. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile +0 -36
  897. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile.lock +0 -180
  898. data/gemfiles/ruby_2.0.0_contrib_old.gemfile +0 -64
  899. data/gemfiles/ruby_2.0.0_contrib_old.gemfile.lock +0 -290
  900. data/gemfiles/ruby_2.0.0_core_old.gemfile +0 -33
  901. data/gemfiles/ruby_2.0.0_core_old.gemfile.lock +0 -118
  902. data/gemfiles/ruby_2.0.0_rails30_postgres.gemfile +0 -39
  903. data/gemfiles/ruby_2.0.0_rails30_postgres.gemfile.lock +0 -196
  904. data/gemfiles/ruby_2.0.0_rails30_postgres_sidekiq.gemfile +0 -40
  905. data/gemfiles/ruby_2.0.0_rails30_postgres_sidekiq.gemfile.lock +0 -205
  906. data/gemfiles/ruby_2.0.0_rails32_mysql2.gemfile +0 -43
  907. data/gemfiles/ruby_2.0.0_rails32_mysql2.gemfile.lock +0 -217
  908. data/gemfiles/ruby_2.0.0_rails32_postgres.gemfile +0 -39
  909. data/gemfiles/ruby_2.0.0_rails32_postgres.gemfile.lock +0 -204
  910. data/gemfiles/ruby_2.0.0_rails32_postgres_redis.gemfile +0 -41
  911. data/gemfiles/ruby_2.0.0_rails32_postgres_redis.gemfile.lock +0 -223
  912. data/gemfiles/ruby_2.0.0_rails32_postgres_sidekiq.gemfile +0 -40
  913. data/gemfiles/ruby_2.0.0_rails32_postgres_sidekiq.gemfile.lock +0 -213
  914. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +0 -66
  915. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +0 -305
  916. data/gemfiles/ruby_2.1.10_core_old.gemfile +0 -33
  917. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +0 -118
  918. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +0 -39
  919. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +0 -196
  920. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +0 -40
  921. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  922. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +0 -42
  923. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +0 -215
  924. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +0 -39
  925. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +0 -204
  926. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +0 -41
  927. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +0 -223
  928. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +0 -40
  929. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  930. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +0 -38
  931. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +0 -218
  932. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +0 -38
  933. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +0 -218
  934. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +0 -40
  935. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +0 -237
  936. data/gemfiles/ruby_2.2.10_contrib.gemfile +0 -73
  937. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +0 -1450
  938. data/gemfiles/ruby_2.2.10_core_old.gemfile +0 -33
  939. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +0 -118
  940. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +0 -39
  941. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +0 -196
  942. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +0 -40
  943. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  944. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +0 -41
  945. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +0 -212
  946. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +0 -39
  947. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +0 -204
  948. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +0 -41
  949. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +0 -223
  950. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +0 -40
  951. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  952. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +0 -38
  953. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +0 -218
  954. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +0 -38
  955. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +0 -218
  956. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +0 -40
  957. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +0 -237
  958. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +0 -40
  959. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +0 -229
  960. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +0 -38
  961. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +0 -234
  962. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +0 -38
  963. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +0 -234
  964. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +0 -39
  965. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +0 -236
  966. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +0 -39
  967. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  968. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +0 -40
  969. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +0 -245
  970. data/gemfiles/ruby_2.3.8_contrib.gemfile +0 -73
  971. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +0 -1459
  972. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +0 -34
  973. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +0 -127
  974. data/gemfiles/ruby_2.3.8_core_old.gemfile +0 -33
  975. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +0 -123
  976. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +0 -34
  977. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +0 -144
  978. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +0 -34
  979. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +0 -174
  980. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +0 -39
  981. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +0 -201
  982. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +0 -40
  983. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +0 -210
  984. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +0 -41
  985. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +0 -217
  986. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +0 -39
  987. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +0 -209
  988. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +0 -41
  989. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +0 -228
  990. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +0 -40
  991. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +0 -218
  992. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +0 -38
  993. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +0 -223
  994. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +0 -38
  995. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +0 -223
  996. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +0 -40
  997. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +0 -242
  998. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +0 -40
  999. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +0 -234
  1000. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +0 -37
  1001. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +0 -234
  1002. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +0 -37
  1003. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +0 -234
  1004. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +0 -38
  1005. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +0 -236
  1006. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +0 -38
  1007. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  1008. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +0 -39
  1009. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +0 -245
  1010. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +0 -35
  1011. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +0 -150
  1012. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +0 -35
  1013. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +0 -150
  1014. data/gemfiles/ruby_2.4.6_contrib.gemfile +0 -78
  1015. data/gemfiles/ruby_2.4.6_contrib.gemfile.lock +0 -1513
  1016. data/gemfiles/ruby_2.4.6_contrib_old.gemfile +0 -38
  1017. data/gemfiles/ruby_2.4.6_contrib_old.gemfile.lock +0 -155
  1018. data/gemfiles/ruby_2.4.6_core_old.gemfile +0 -37
  1019. data/gemfiles/ruby_2.4.6_core_old.gemfile.lock +0 -151
  1020. data/gemfiles/ruby_2.4.6_cucumber3.gemfile +0 -38
  1021. data/gemfiles/ruby_2.4.6_cucumber3.gemfile.lock +0 -172
  1022. data/gemfiles/ruby_2.4.6_cucumber4.gemfile +0 -38
  1023. data/gemfiles/ruby_2.4.6_cucumber4.gemfile.lock +0 -202
  1024. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile +0 -41
  1025. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile.lock +0 -262
  1026. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile +0 -41
  1027. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile.lock +0 -262
  1028. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile +0 -42
  1029. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile.lock +0 -264
  1030. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile +0 -42
  1031. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -264
  1032. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile +0 -43
  1033. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile.lock +0 -273
  1034. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile +0 -39
  1035. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile.lock +0 -178
  1036. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile +0 -39
  1037. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile.lock +0 -178
  1038. data/gemfiles/ruby_2.5.6_contrib.gemfile +0 -83
  1039. data/gemfiles/ruby_2.5.6_contrib.gemfile.lock +0 -1526
  1040. data/gemfiles/ruby_2.5.6_contrib_old.gemfile +0 -39
  1041. data/gemfiles/ruby_2.5.6_contrib_old.gemfile.lock +0 -165
  1042. data/gemfiles/ruby_2.5.6_core_old.gemfile +0 -38
  1043. data/gemfiles/ruby_2.5.6_core_old.gemfile.lock +0 -161
  1044. data/gemfiles/ruby_2.5.6_cucumber3.gemfile +0 -39
  1045. data/gemfiles/ruby_2.5.6_cucumber3.gemfile.lock +0 -182
  1046. data/gemfiles/ruby_2.5.6_cucumber4.gemfile +0 -39
  1047. data/gemfiles/ruby_2.5.6_cucumber4.gemfile.lock +0 -214
  1048. data/gemfiles/ruby_2.5.6_cucumber5.gemfile +0 -39
  1049. data/gemfiles/ruby_2.5.6_cucumber5.gemfile.lock +0 -214
  1050. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile +0 -44
  1051. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile.lock +0 -276
  1052. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile +0 -44
  1053. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile.lock +0 -276
  1054. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile +0 -45
  1055. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile.lock +0 -278
  1056. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile +0 -45
  1057. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  1058. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile +0 -46
  1059. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile.lock +0 -284
  1060. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile +0 -44
  1061. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile.lock +0 -295
  1062. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile +0 -44
  1063. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile.lock +0 -295
  1064. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile +0 -45
  1065. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile.lock +0 -297
  1066. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile +0 -45
  1067. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile.lock +0 -302
  1068. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile +0 -44
  1069. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile.lock +0 -292
  1070. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile +0 -44
  1071. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile.lock +0 -292
  1072. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile +0 -45
  1073. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile.lock +0 -294
  1074. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile +0 -45
  1075. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  1076. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile +0 -46
  1077. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile.lock +0 -300
  1078. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile +0 -40
  1079. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile.lock +0 -188
  1080. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile +0 -40
  1081. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile.lock +0 -188
  1082. data/gemfiles/ruby_2.6.4_contrib.gemfile +0 -79
  1083. data/gemfiles/ruby_2.6.4_contrib.gemfile.lock +0 -1524
  1084. data/gemfiles/ruby_2.6.4_contrib_old.gemfile +0 -39
  1085. data/gemfiles/ruby_2.6.4_contrib_old.gemfile.lock +0 -167
  1086. data/gemfiles/ruby_2.6.4_core_old.gemfile +0 -38
  1087. data/gemfiles/ruby_2.6.4_core_old.gemfile.lock +0 -163
  1088. data/gemfiles/ruby_2.6.4_cucumber3.gemfile +0 -39
  1089. data/gemfiles/ruby_2.6.4_cucumber3.gemfile.lock +0 -184
  1090. data/gemfiles/ruby_2.6.4_cucumber4.gemfile +0 -39
  1091. data/gemfiles/ruby_2.6.4_cucumber4.gemfile.lock +0 -216
  1092. data/gemfiles/ruby_2.6.4_cucumber5.gemfile +0 -39
  1093. data/gemfiles/ruby_2.6.4_cucumber5.gemfile.lock +0 -216
  1094. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile +0 -42
  1095. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile.lock +0 -276
  1096. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile +0 -42
  1097. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile.lock +0 -276
  1098. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile +0 -43
  1099. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile.lock +0 -278
  1100. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile +0 -43
  1101. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  1102. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile +0 -44
  1103. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile.lock +0 -284
  1104. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile +0 -42
  1105. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile.lock +0 -295
  1106. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile +0 -42
  1107. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile.lock +0 -295
  1108. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile +0 -43
  1109. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile.lock +0 -297
  1110. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile +0 -43
  1111. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile.lock +0 -302
  1112. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile +0 -42
  1113. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile.lock +0 -292
  1114. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile +0 -42
  1115. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile.lock +0 -292
  1116. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile +0 -43
  1117. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile.lock +0 -294
  1118. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile +0 -43
  1119. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  1120. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile +0 -44
  1121. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile.lock +0 -300
  1122. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile +0 -40
  1123. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile.lock +0 -190
  1124. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile +0 -40
  1125. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile.lock +0 -190
  1126. data/gemfiles/ruby_2.7.0_contrib.gemfile +0 -78
  1127. data/gemfiles/ruby_2.7.0_contrib.gemfile.lock +0 -1523
  1128. data/gemfiles/ruby_2.7.0_contrib_old.gemfile +0 -39
  1129. data/gemfiles/ruby_2.7.0_contrib_old.gemfile.lock +0 -167
  1130. data/gemfiles/ruby_2.7.0_core_old.gemfile +0 -38
  1131. data/gemfiles/ruby_2.7.0_core_old.gemfile.lock +0 -163
  1132. data/gemfiles/ruby_2.7.0_cucumber3.gemfile +0 -39
  1133. data/gemfiles/ruby_2.7.0_cucumber3.gemfile.lock +0 -184
  1134. data/gemfiles/ruby_2.7.0_cucumber4.gemfile +0 -39
  1135. data/gemfiles/ruby_2.7.0_cucumber4.gemfile.lock +0 -216
  1136. data/gemfiles/ruby_2.7.0_cucumber5.gemfile +0 -39
  1137. data/gemfiles/ruby_2.7.0_cucumber5.gemfile.lock +0 -216
  1138. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile +0 -42
  1139. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +0 -276
  1140. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +0 -42
  1141. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +0 -276
  1142. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile +0 -44
  1143. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile.lock +0 -295
  1144. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile +0 -44
  1145. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -295
  1146. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile +0 -44
  1147. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile.lock +0 -284
  1148. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile +0 -42
  1149. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +0 -295
  1150. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile +0 -42
  1151. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +0 -295
  1152. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile +0 -43
  1153. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +0 -297
  1154. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile +0 -43
  1155. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  1156. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile +0 -42
  1157. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +0 -292
  1158. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +0 -42
  1159. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +0 -292
  1160. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile +0 -44
  1161. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile.lock +0 -311
  1162. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile +0 -44
  1163. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -311
  1164. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile +0 -44
  1165. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile.lock +0 -300
  1166. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile +0 -40
  1167. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +0 -190
  1168. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile +0 -40
  1169. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +0 -190
  1170. data/gemfiles/ruby_3.0.0_contrib.gemfile +0 -77
  1171. data/gemfiles/ruby_3.0.0_contrib.gemfile.lock +0 -1534
  1172. data/gemfiles/ruby_3.0.0_core_old.gemfile +0 -39
  1173. data/gemfiles/ruby_3.0.0_core_old.gemfile.lock +0 -165
  1174. data/gemfiles/ruby_3.0.0_cucumber3.gemfile +0 -40
  1175. data/gemfiles/ruby_3.0.0_cucumber3.gemfile.lock +0 -186
  1176. data/gemfiles/ruby_3.0.0_cucumber4.gemfile +0 -40
  1177. data/gemfiles/ruby_3.0.0_cucumber4.gemfile.lock +0 -218
  1178. data/gemfiles/ruby_3.0.0_cucumber5.gemfile +0 -40
  1179. data/gemfiles/ruby_3.0.0_cucumber5.gemfile.lock +0 -218
  1180. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile +0 -43
  1181. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile.lock +0 -295
  1182. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile +0 -43
  1183. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile.lock +0 -295
  1184. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile +0 -44
  1185. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile.lock +0 -297
  1186. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile +0 -44
  1187. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  1188. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile +0 -41
  1189. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile.lock +0 -192
  1190. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile +0 -41
  1191. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile.lock +0 -192
  1192. data/integration/README.md +0 -67
  1193. data/integration/apps/rack/.dockerignore +0 -1
  1194. data/integration/apps/rack/.envrc.sample +0 -1
  1195. data/integration/apps/rack/.gitignore +0 -4
  1196. data/integration/apps/rack/.rspec +0 -1
  1197. data/integration/apps/rack/Dockerfile +0 -28
  1198. data/integration/apps/rack/Dockerfile-ci +0 -11
  1199. data/integration/apps/rack/Gemfile +0 -24
  1200. data/integration/apps/rack/README.md +0 -93
  1201. data/integration/apps/rack/app/acme.rb +0 -80
  1202. data/integration/apps/rack/app/datadog.rb +0 -17
  1203. data/integration/apps/rack/bin/run +0 -22
  1204. data/integration/apps/rack/bin/setup +0 -17
  1205. data/integration/apps/rack/bin/test +0 -24
  1206. data/integration/apps/rack/config/puma.rb +0 -14
  1207. data/integration/apps/rack/config/unicorn.rb +0 -23
  1208. data/integration/apps/rack/config.ru +0 -6
  1209. data/integration/apps/rack/docker-compose.ci.yml +0 -62
  1210. data/integration/apps/rack/docker-compose.yml +0 -78
  1211. data/integration/apps/rack/script/build-images +0 -38
  1212. data/integration/apps/rack/script/ci +0 -50
  1213. data/integration/apps/rack/spec/integration/basic_spec.rb +0 -10
  1214. data/integration/apps/rack/spec/spec_helper.rb +0 -16
  1215. data/integration/apps/rack/spec/support/integration_helper.rb +0 -22
  1216. data/integration/apps/rails-five/.dockerignore +0 -1
  1217. data/integration/apps/rails-five/.env +0 -3
  1218. data/integration/apps/rails-five/.envrc.sample +0 -1
  1219. data/integration/apps/rails-five/.gitignore +0 -30
  1220. data/integration/apps/rails-five/Dockerfile +0 -25
  1221. data/integration/apps/rails-five/Dockerfile-ci +0 -11
  1222. data/integration/apps/rails-five/Gemfile +0 -104
  1223. data/integration/apps/rails-five/README.md +0 -94
  1224. data/integration/apps/rails-five/Rakefile +0 -6
  1225. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +0 -4
  1226. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +0 -4
  1227. data/integration/apps/rails-five/app/controllers/application_controller.rb +0 -2
  1228. data/integration/apps/rails-five/app/controllers/basic_controller.rb +0 -36
  1229. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  1230. data/integration/apps/rails-five/app/controllers/health_controller.rb +0 -9
  1231. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +0 -12
  1232. data/integration/apps/rails-five/app/jobs/application_job.rb +0 -2
  1233. data/integration/apps/rails-five/app/jobs/test_job.rb +0 -12
  1234. data/integration/apps/rails-five/app/mailers/application_mailer.rb +0 -4
  1235. data/integration/apps/rails-five/app/models/application_record.rb +0 -3
  1236. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  1237. data/integration/apps/rails-five/app/models/test.rb +0 -2
  1238. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +0 -13
  1239. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +0 -1
  1240. data/integration/apps/rails-five/bin/bundle +0 -3
  1241. data/integration/apps/rails-five/bin/rails +0 -9
  1242. data/integration/apps/rails-five/bin/rake +0 -9
  1243. data/integration/apps/rails-five/bin/run +0 -24
  1244. data/integration/apps/rails-five/bin/setup +0 -27
  1245. data/integration/apps/rails-five/bin/spring +0 -17
  1246. data/integration/apps/rails-five/bin/test +0 -21
  1247. data/integration/apps/rails-five/bin/update +0 -28
  1248. data/integration/apps/rails-five/config/application.rb +0 -97
  1249. data/integration/apps/rails-five/config/boot.rb +0 -4
  1250. data/integration/apps/rails-five/config/cable.yml +0 -10
  1251. data/integration/apps/rails-five/config/credentials.yml.enc +0 -1
  1252. data/integration/apps/rails-five/config/database.yml +0 -28
  1253. data/integration/apps/rails-five/config/environment.rb +0 -5
  1254. data/integration/apps/rails-five/config/environments/development.rb +0 -51
  1255. data/integration/apps/rails-five/config/environments/production.rb +0 -82
  1256. data/integration/apps/rails-five/config/environments/test.rb +0 -43
  1257. data/integration/apps/rails-five/config/initializers/datadog.rb +0 -18
  1258. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +0 -4
  1259. data/integration/apps/rails-five/config/initializers/resque.rb +0 -4
  1260. data/integration/apps/rails-five/config/initializers/rollbar.rb +0 -5
  1261. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +0 -14
  1262. data/integration/apps/rails-five/config/locales/en.yml +0 -33
  1263. data/integration/apps/rails-five/config/puma.rb +0 -24
  1264. data/integration/apps/rails-five/config/routes.rb +0 -11
  1265. data/integration/apps/rails-five/config/spring.rb +0 -6
  1266. data/integration/apps/rails-five/config/unicorn.rb +0 -29
  1267. data/integration/apps/rails-five/config.ru +0 -5
  1268. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +0 -11
  1269. data/integration/apps/rails-five/db/schema.rb +0 -23
  1270. data/integration/apps/rails-five/db/seeds.rb +0 -7
  1271. data/integration/apps/rails-five/docker-compose.ci.yml +0 -98
  1272. data/integration/apps/rails-five/docker-compose.yml +0 -100
  1273. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  1274. data/integration/apps/rails-five/log/.keep +0 -0
  1275. data/integration/apps/rails-five/public/robots.txt +0 -1
  1276. data/integration/apps/rails-five/script/build-images +0 -35
  1277. data/integration/apps/rails-five/script/ci +0 -50
  1278. data/integration/apps/rails-five/spec/integration/basic_spec.rb +0 -10
  1279. data/integration/apps/rails-five/spec/spec_helper.rb +0 -16
  1280. data/integration/apps/rails-five/spec/support/integration_helper.rb +0 -22
  1281. data/integration/apps/rails-five/storage/.keep +0 -0
  1282. data/integration/apps/rails-five/tmp/.keep +0 -0
  1283. data/integration/apps/rails-five/vendor/.keep +0 -0
  1284. data/integration/apps/ruby/.dockerignore +0 -1
  1285. data/integration/apps/ruby/.envrc.sample +0 -1
  1286. data/integration/apps/ruby/.gitignore +0 -2
  1287. data/integration/apps/ruby/Dockerfile +0 -25
  1288. data/integration/apps/ruby/Dockerfile-ci +0 -11
  1289. data/integration/apps/ruby/Gemfile +0 -11
  1290. data/integration/apps/ruby/README.md +0 -70
  1291. data/integration/apps/ruby/agent.yaml +0 -3
  1292. data/integration/apps/ruby/app/datadog.rb +0 -13
  1293. data/integration/apps/ruby/app/fibonacci.rb +0 -58
  1294. data/integration/apps/ruby/bin/run +0 -20
  1295. data/integration/apps/ruby/bin/setup +0 -17
  1296. data/integration/apps/ruby/bin/test +0 -21
  1297. data/integration/apps/ruby/docker-compose.ci.yml +0 -51
  1298. data/integration/apps/ruby/docker-compose.yml +0 -63
  1299. data/integration/apps/ruby/script/build-images +0 -38
  1300. data/integration/apps/ruby/script/ci +0 -50
  1301. data/integration/images/agent/Dockerfile +0 -2
  1302. data/integration/images/agent/agent.yaml +0 -3
  1303. data/integration/images/include/datadog/analyzer.rb +0 -71
  1304. data/integration/images/include/datadog/demo_env.rb +0 -101
  1305. data/integration/images/include/http-health-check +0 -33
  1306. data/integration/images/ruby/2.0/Dockerfile +0 -54
  1307. data/integration/images/ruby/2.1/Dockerfile +0 -54
  1308. data/integration/images/ruby/2.2/Dockerfile +0 -54
  1309. data/integration/images/ruby/2.3/Dockerfile +0 -70
  1310. data/integration/images/ruby/2.4/Dockerfile +0 -54
  1311. data/integration/images/ruby/2.5/Dockerfile +0 -54
  1312. data/integration/images/ruby/2.6/Dockerfile +0 -54
  1313. data/integration/images/ruby/2.7/Dockerfile +0 -54
  1314. data/integration/images/ruby/3.0/Dockerfile +0 -54
  1315. data/integration/images/wrk/Dockerfile +0 -33
  1316. data/integration/images/wrk/scripts/entrypoint.sh +0 -17
  1317. data/integration/images/wrk/scripts/scenarios/basic/default.lua +0 -1
  1318. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +0 -1
  1319. data/integration/script/build-images +0 -43
  1320. data/lib/ddtrace/analytics.rb +0 -38
  1321. data/lib/ddtrace/buffer.rb +0 -326
  1322. data/lib/ddtrace/chunker.rb +0 -34
  1323. data/lib/ddtrace/configuration/agent_settings_resolver.rb +0 -241
  1324. data/lib/ddtrace/configuration/base.rb +0 -84
  1325. data/lib/ddtrace/configuration/components.rb +0 -226
  1326. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -24
  1327. data/lib/ddtrace/configuration/option.rb +0 -64
  1328. data/lib/ddtrace/configuration/option_definition.rb +0 -121
  1329. data/lib/ddtrace/configuration/option_definition_set.rb +0 -18
  1330. data/lib/ddtrace/configuration/option_set.rb +0 -6
  1331. data/lib/ddtrace/configuration/options.rb +0 -111
  1332. data/lib/ddtrace/configuration/pin_setup.rb +0 -31
  1333. data/lib/ddtrace/configuration/settings.rb +0 -340
  1334. data/lib/ddtrace/configuration.rb +0 -198
  1335. data/lib/ddtrace/context.rb +0 -322
  1336. data/lib/ddtrace/context_flush.rb +0 -69
  1337. data/lib/ddtrace/context_provider.rb +0 -61
  1338. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -30
  1339. data/lib/ddtrace/contrib/action_cable/event.rb +0 -66
  1340. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -49
  1341. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -55
  1342. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -50
  1343. data/lib/ddtrace/contrib/action_cable/events.rb +0 -33
  1344. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -26
  1345. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -31
  1346. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -45
  1347. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -27
  1348. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -146
  1349. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -25
  1350. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -32
  1351. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -19
  1352. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -45
  1353. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -23
  1354. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -36
  1355. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -31
  1356. data/lib/ddtrace/contrib/action_view/event.rb +0 -35
  1357. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -46
  1358. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -49
  1359. data/lib/ddtrace/contrib/action_view/events.rb +0 -30
  1360. data/lib/ddtrace/contrib/action_view/ext.rb +0 -20
  1361. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -74
  1362. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -167
  1363. data/lib/ddtrace/contrib/action_view/integration.rb +0 -52
  1364. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -47
  1365. data/lib/ddtrace/contrib/action_view/utils.rb +0 -32
  1366. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -30
  1367. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -68
  1368. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -32
  1369. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -35
  1370. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -30
  1371. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -20
  1372. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -40
  1373. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -29
  1374. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +0 -30
  1375. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -134
  1376. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -35
  1377. data/lib/ddtrace/contrib/active_record/event.rb +0 -30
  1378. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -60
  1379. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -68
  1380. data/lib/ddtrace/contrib/active_record/events.rb +0 -30
  1381. data/lib/ddtrace/contrib/active_record/ext.rb +0 -24
  1382. data/lib/ddtrace/contrib/active_record/integration.rb +0 -53
  1383. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -23
  1384. data/lib/ddtrace/contrib/active_record/utils.rb +0 -123
  1385. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -258
  1386. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -69
  1387. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -47
  1388. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -30
  1389. data/lib/ddtrace/contrib/active_support/ext.rb +0 -27
  1390. data/lib/ddtrace/contrib/active_support/integration.rb +0 -46
  1391. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -75
  1392. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -67
  1393. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -163
  1394. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -23
  1395. data/lib/ddtrace/contrib/analytics.rb +0 -24
  1396. data/lib/ddtrace/contrib/auto_instrument.rb +0 -48
  1397. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -30
  1398. data/lib/ddtrace/contrib/aws/ext.rb +0 -23
  1399. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -61
  1400. data/lib/ddtrace/contrib/aws/integration.rb +0 -42
  1401. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -56
  1402. data/lib/ddtrace/contrib/aws/patcher.rb +0 -49
  1403. data/lib/ddtrace/contrib/aws/services.rb +0 -118
  1404. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -20
  1405. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -41
  1406. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -12
  1407. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -23
  1408. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -38
  1409. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -28
  1410. data/lib/ddtrace/contrib/configurable.rb +0 -102
  1411. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -81
  1412. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -39
  1413. data/lib/ddtrace/contrib/configuration/settings.rb +0 -55
  1414. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -28
  1415. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -17
  1416. data/lib/ddtrace/contrib/cucumber/formatter.rb +0 -98
  1417. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +0 -24
  1418. data/lib/ddtrace/contrib/cucumber/integration.rb +0 -45
  1419. data/lib/ddtrace/contrib/cucumber/patcher.rb +0 -23
  1420. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -30
  1421. data/lib/ddtrace/contrib/dalli/ext.rb +0 -20
  1422. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -54
  1423. data/lib/ddtrace/contrib/dalli/integration.rb +0 -38
  1424. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -25
  1425. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -22
  1426. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -32
  1427. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -23
  1428. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -38
  1429. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -28
  1430. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -84
  1431. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -31
  1432. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -22
  1433. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -39
  1434. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -122
  1435. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -81
  1436. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -32
  1437. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -151
  1438. data/lib/ddtrace/contrib/ethon/ext.rb +0 -19
  1439. data/lib/ddtrace/contrib/ethon/integration.rb +0 -43
  1440. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -84
  1441. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -25
  1442. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -33
  1443. data/lib/ddtrace/contrib/excon/ext.rb +0 -17
  1444. data/lib/ddtrace/contrib/excon/integration.rb +0 -43
  1445. data/lib/ddtrace/contrib/excon/middleware.rb +0 -163
  1446. data/lib/ddtrace/contrib/excon/patcher.rb +0 -27
  1447. data/lib/ddtrace/contrib/extensions.rb +0 -143
  1448. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -38
  1449. data/lib/ddtrace/contrib/faraday/connection.rb +0 -18
  1450. data/lib/ddtrace/contrib/faraday/ext.rb +0 -17
  1451. data/lib/ddtrace/contrib/faraday/integration.rb +0 -43
  1452. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -85
  1453. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -53
  1454. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -18
  1455. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -38
  1456. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -236
  1457. data/lib/ddtrace/contrib/grape/ext.rb +0 -23
  1458. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -33
  1459. data/lib/ddtrace/contrib/grape/integration.rb +0 -39
  1460. data/lib/ddtrace/contrib/grape/patcher.rb +0 -31
  1461. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -32
  1462. data/lib/ddtrace/contrib/graphql/ext.rb +0 -16
  1463. data/lib/ddtrace/contrib/graphql/integration.rb +0 -39
  1464. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -60
  1465. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -30
  1466. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -58
  1467. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -81
  1468. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -74
  1469. data/lib/ddtrace/contrib/grpc/ext.rb +0 -18
  1470. data/lib/ddtrace/contrib/grpc/integration.rb +0 -38
  1471. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -49
  1472. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -32
  1473. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -37
  1474. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -32
  1475. data/lib/ddtrace/contrib/http/ext.rb +0 -17
  1476. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -179
  1477. data/lib/ddtrace/contrib/http/integration.rb +0 -45
  1478. data/lib/ddtrace/contrib/http/patcher.rb +0 -26
  1479. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -10
  1480. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +0 -32
  1481. data/lib/ddtrace/contrib/httpclient/ext.rb +0 -17
  1482. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +0 -147
  1483. data/lib/ddtrace/contrib/httpclient/integration.rb +0 -43
  1484. data/lib/ddtrace/contrib/httpclient/patcher.rb +0 -38
  1485. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +0 -32
  1486. data/lib/ddtrace/contrib/httprb/ext.rb +0 -17
  1487. data/lib/ddtrace/contrib/httprb/instrumentation.rb +0 -157
  1488. data/lib/ddtrace/contrib/httprb/integration.rb +0 -43
  1489. data/lib/ddtrace/contrib/httprb/patcher.rb +0 -38
  1490. data/lib/ddtrace/contrib/integration.rb +0 -16
  1491. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +0 -30
  1492. data/lib/ddtrace/contrib/kafka/consumer_event.rb +0 -14
  1493. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +0 -14
  1494. data/lib/ddtrace/contrib/kafka/event.rb +0 -51
  1495. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +0 -34
  1496. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +0 -41
  1497. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +0 -39
  1498. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +0 -39
  1499. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +0 -29
  1500. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +0 -29
  1501. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +0 -29
  1502. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +0 -32
  1503. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +0 -35
  1504. data/lib/ddtrace/contrib/kafka/events.rb +0 -44
  1505. data/lib/ddtrace/contrib/kafka/ext.rb +0 -41
  1506. data/lib/ddtrace/contrib/kafka/integration.rb +0 -39
  1507. data/lib/ddtrace/contrib/kafka/patcher.rb +0 -26
  1508. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -33
  1509. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -23
  1510. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -69
  1511. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -38
  1512. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -68
  1513. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -31
  1514. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -111
  1515. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -30
  1516. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -18
  1517. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -64
  1518. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -38
  1519. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -27
  1520. data/lib/ddtrace/contrib/patchable.rb +0 -70
  1521. data/lib/ddtrace/contrib/patcher.rb +0 -65
  1522. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -30
  1523. data/lib/ddtrace/contrib/presto/ext.rb +0 -28
  1524. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -110
  1525. data/lib/ddtrace/contrib/presto/integration.rb +0 -38
  1526. data/lib/ddtrace/contrib/presto/patcher.rb +0 -33
  1527. data/lib/ddtrace/contrib/qless/configuration/settings.rb +0 -35
  1528. data/lib/ddtrace/contrib/qless/ext.rb +0 -20
  1529. data/lib/ddtrace/contrib/qless/integration.rb +0 -38
  1530. data/lib/ddtrace/contrib/qless/patcher.rb +0 -35
  1531. data/lib/ddtrace/contrib/qless/qless_job.rb +0 -73
  1532. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +0 -33
  1533. data/lib/ddtrace/contrib/que/configuration/settings.rb +0 -43
  1534. data/lib/ddtrace/contrib/que/ext.rb +0 -30
  1535. data/lib/ddtrace/contrib/que/integration.rb +0 -42
  1536. data/lib/ddtrace/contrib/que/patcher.rb +0 -24
  1537. data/lib/ddtrace/contrib/que/tracer.rb +0 -57
  1538. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -30
  1539. data/lib/ddtrace/contrib/racecar/event.rb +0 -76
  1540. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -27
  1541. data/lib/ddtrace/contrib/racecar/events/consume.rb +0 -27
  1542. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -27
  1543. data/lib/ddtrace/contrib/racecar/events.rb +0 -32
  1544. data/lib/ddtrace/contrib/racecar/ext.rb +0 -25
  1545. data/lib/ddtrace/contrib/racecar/integration.rb +0 -39
  1546. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -26
  1547. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -46
  1548. data/lib/ddtrace/contrib/rack/ext.rb +0 -21
  1549. data/lib/ddtrace/contrib/rack/integration.rb +0 -45
  1550. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -287
  1551. data/lib/ddtrace/contrib/rack/patcher.rb +0 -105
  1552. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -44
  1553. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +0 -10
  1554. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -93
  1555. data/lib/ddtrace/contrib/rails/ext.rb +0 -17
  1556. data/lib/ddtrace/contrib/rails/framework.rb +0 -124
  1557. data/lib/ddtrace/contrib/rails/integration.rb +0 -44
  1558. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -81
  1559. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -43
  1560. data/lib/ddtrace/contrib/rails/patcher.rb +0 -107
  1561. data/lib/ddtrace/contrib/rails/railtie.rb +0 -17
  1562. data/lib/ddtrace/contrib/rails/utils.rb +0 -24
  1563. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -31
  1564. data/lib/ddtrace/contrib/rake/ext.rb +0 -21
  1565. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -90
  1566. data/lib/ddtrace/contrib/rake/integration.rb +0 -38
  1567. data/lib/ddtrace/contrib/rake/patcher.rb +0 -30
  1568. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -45
  1569. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -35
  1570. data/lib/ddtrace/contrib/redis/ext.rb +0 -22
  1571. data/lib/ddtrace/contrib/redis/integration.rb +0 -42
  1572. data/lib/ddtrace/contrib/redis/patcher.rb +0 -114
  1573. data/lib/ddtrace/contrib/redis/quantize.rb +0 -75
  1574. data/lib/ddtrace/contrib/redis/tags.rb +0 -46
  1575. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -158
  1576. data/lib/ddtrace/contrib/registerable.rb +0 -33
  1577. data/lib/ddtrace/contrib/registry.rb +0 -42
  1578. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -48
  1579. data/lib/ddtrace/contrib/resque/ext.rb +0 -17
  1580. data/lib/ddtrace/contrib/resque/integration.rb +0 -47
  1581. data/lib/ddtrace/contrib/resque/patcher.rb +0 -29
  1582. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -103
  1583. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -31
  1584. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -17
  1585. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -38
  1586. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -23
  1587. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -91
  1588. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -28
  1589. data/lib/ddtrace/contrib/rspec/example.rb +0 -75
  1590. data/lib/ddtrace/contrib/rspec/ext.rb +0 -16
  1591. data/lib/ddtrace/contrib/rspec/integration.rb +0 -46
  1592. data/lib/ddtrace/contrib/rspec/patcher.rb +0 -23
  1593. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -28
  1594. data/lib/ddtrace/contrib/sequel/database.rb +0 -63
  1595. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -63
  1596. data/lib/ddtrace/contrib/sequel/ext.rb +0 -19
  1597. data/lib/ddtrace/contrib/sequel/integration.rb +0 -38
  1598. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -33
  1599. data/lib/ddtrace/contrib/sequel/utils.rb +0 -74
  1600. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -31
  1601. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -21
  1602. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -39
  1603. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -24
  1604. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -55
  1605. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -43
  1606. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -37
  1607. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -27
  1608. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -38
  1609. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -41
  1610. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -65
  1611. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -44
  1612. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -39
  1613. data/lib/ddtrace/contrib/sinatra/env.rb +0 -57
  1614. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -27
  1615. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -29
  1616. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -38
  1617. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -28
  1618. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -127
  1619. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -105
  1620. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +0 -33
  1621. data/lib/ddtrace/contrib/sneakers/ext.rb +0 -22
  1622. data/lib/ddtrace/contrib/sneakers/integration.rb +0 -41
  1623. data/lib/ddtrace/contrib/sneakers/patcher.rb +0 -24
  1624. data/lib/ddtrace/contrib/sneakers/tracer.rb +0 -53
  1625. data/lib/ddtrace/contrib/status_code_matcher.rb +0 -69
  1626. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -30
  1627. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -26
  1628. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -21
  1629. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -88
  1630. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -38
  1631. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -42
  1632. data/lib/ddtrace/correlation.rb +0 -39
  1633. data/lib/ddtrace/diagnostics/environment_logger.rb +0 -279
  1634. data/lib/ddtrace/diagnostics/health.rb +0 -33
  1635. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -44
  1636. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -56
  1637. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -42
  1638. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -71
  1639. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -43
  1640. data/lib/ddtrace/encoding.rb +0 -69
  1641. data/lib/ddtrace/environment.rb +0 -41
  1642. data/lib/ddtrace/error.rb +0 -105
  1643. data/lib/ddtrace/event.rb +0 -52
  1644. data/lib/ddtrace/ext/analytics.rb +0 -12
  1645. data/lib/ddtrace/ext/app_types.rb +0 -12
  1646. data/lib/ddtrace/ext/ci.rb +0 -297
  1647. data/lib/ddtrace/ext/correlation.rb +0 -11
  1648. data/lib/ddtrace/ext/diagnostics.rb +0 -36
  1649. data/lib/ddtrace/ext/distributed.rb +0 -39
  1650. data/lib/ddtrace/ext/environment.rb +0 -16
  1651. data/lib/ddtrace/ext/errors.rb +0 -10
  1652. data/lib/ddtrace/ext/forced_tracing.rb +0 -25
  1653. data/lib/ddtrace/ext/git.rb +0 -11
  1654. data/lib/ddtrace/ext/http.rb +0 -46
  1655. data/lib/ddtrace/ext/integration.rb +0 -8
  1656. data/lib/ddtrace/ext/manual_tracing.rb +0 -9
  1657. data/lib/ddtrace/ext/metrics.rb +0 -15
  1658. data/lib/ddtrace/ext/net.rb +0 -10
  1659. data/lib/ddtrace/ext/priority.rb +0 -16
  1660. data/lib/ddtrace/ext/profiling.rb +0 -53
  1661. data/lib/ddtrace/ext/runtime.rb +0 -30
  1662. data/lib/ddtrace/ext/sampling.rb +0 -16
  1663. data/lib/ddtrace/ext/sql.rb +0 -8
  1664. data/lib/ddtrace/ext/test.rb +0 -24
  1665. data/lib/ddtrace/ext/transport.rb +0 -20
  1666. data/lib/ddtrace/forced_tracing.rb +0 -38
  1667. data/lib/ddtrace/logger.rb +0 -40
  1668. data/lib/ddtrace/metrics.rb +0 -230
  1669. data/lib/ddtrace/opentelemetry/extensions.rb +0 -13
  1670. data/lib/ddtrace/opentelemetry/span.rb +0 -33
  1671. data/lib/ddtrace/opentracer/binary_propagator.rb +0 -24
  1672. data/lib/ddtrace/opentracer/carrier.rb +0 -6
  1673. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -55
  1674. data/lib/ddtrace/opentracer/global_tracer.rb +0 -15
  1675. data/lib/ddtrace/opentracer/propagator.rb +0 -22
  1676. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -60
  1677. data/lib/ddtrace/opentracer/scope.rb +0 -15
  1678. data/lib/ddtrace/opentracer/scope_manager.rb +0 -6
  1679. data/lib/ddtrace/opentracer/span.rb +0 -94
  1680. data/lib/ddtrace/opentracer/span_context.rb +0 -14
  1681. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -23
  1682. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -75
  1683. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -31
  1684. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -40
  1685. data/lib/ddtrace/opentracer/tracer.rb +0 -208
  1686. data/lib/ddtrace/opentracer.rb +0 -40
  1687. data/lib/ddtrace/patcher.rb +0 -68
  1688. data/lib/ddtrace/pin.rb +0 -85
  1689. data/lib/ddtrace/pipeline/span_filter.rb +0 -38
  1690. data/lib/ddtrace/pipeline/span_processor.rb +0 -20
  1691. data/lib/ddtrace/pipeline.rb +0 -46
  1692. data/lib/ddtrace/profiling/backtrace_location.rb +0 -32
  1693. data/lib/ddtrace/profiling/buffer.rb +0 -41
  1694. data/lib/ddtrace/profiling/collectors/stack.rb +0 -259
  1695. data/lib/ddtrace/profiling/encoding/profile.rb +0 -31
  1696. data/lib/ddtrace/profiling/event.rb +0 -13
  1697. data/lib/ddtrace/profiling/events/stack.rb +0 -102
  1698. data/lib/ddtrace/profiling/exporter.rb +0 -23
  1699. data/lib/ddtrace/profiling/ext/cpu.rb +0 -52
  1700. data/lib/ddtrace/profiling/ext/cthread.rb +0 -157
  1701. data/lib/ddtrace/profiling/ext/forking.rb +0 -97
  1702. data/lib/ddtrace/profiling/flush.rb +0 -41
  1703. data/lib/ddtrace/profiling/pprof/builder.rb +0 -121
  1704. data/lib/ddtrace/profiling/pprof/converter.rb +0 -85
  1705. data/lib/ddtrace/profiling/pprof/message_set.rb +0 -12
  1706. data/lib/ddtrace/profiling/pprof/payload.rb +0 -18
  1707. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +0 -81
  1708. data/lib/ddtrace/profiling/pprof/stack_sample.rb +0 -90
  1709. data/lib/ddtrace/profiling/pprof/string_table.rb +0 -10
  1710. data/lib/ddtrace/profiling/pprof/template.rb +0 -114
  1711. data/lib/ddtrace/profiling/profiler.rb +0 -30
  1712. data/lib/ddtrace/profiling/recorder.rb +0 -95
  1713. data/lib/ddtrace/profiling/scheduler.rb +0 -105
  1714. data/lib/ddtrace/profiling/tasks/setup.rb +0 -77
  1715. data/lib/ddtrace/profiling/transport/client.rb +0 -12
  1716. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +0 -91
  1717. data/lib/ddtrace/profiling/transport/http/api/instance.rb +0 -36
  1718. data/lib/ddtrace/profiling/transport/http/api/spec.rb +0 -40
  1719. data/lib/ddtrace/profiling/transport/http/api.rb +0 -43
  1720. data/lib/ddtrace/profiling/transport/http/builder.rb +0 -28
  1721. data/lib/ddtrace/profiling/transport/http/client.rb +0 -33
  1722. data/lib/ddtrace/profiling/transport/http/response.rb +0 -21
  1723. data/lib/ddtrace/profiling/transport/http.rb +0 -118
  1724. data/lib/ddtrace/profiling/transport/io/client.rb +0 -27
  1725. data/lib/ddtrace/profiling/transport/io/response.rb +0 -16
  1726. data/lib/ddtrace/profiling/transport/io.rb +0 -30
  1727. data/lib/ddtrace/profiling/transport/parcel.rb +0 -17
  1728. data/lib/ddtrace/profiling/transport/request.rb +0 -15
  1729. data/lib/ddtrace/profiling/transport/response.rb +0 -8
  1730. data/lib/ddtrace/profiling.rb +0 -105
  1731. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -74
  1732. data/lib/ddtrace/propagation/http_propagator.rb +0 -90
  1733. data/lib/ddtrace/quantization/hash.rb +0 -103
  1734. data/lib/ddtrace/quantization/http.rb +0 -87
  1735. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  1736. data/lib/ddtrace/runtime/class_count.rb +0 -17
  1737. data/lib/ddtrace/runtime/container.rb +0 -87
  1738. data/lib/ddtrace/runtime/gc.rb +0 -16
  1739. data/lib/ddtrace/runtime/identity.rb +0 -48
  1740. data/lib/ddtrace/runtime/metrics.rb +0 -114
  1741. data/lib/ddtrace/runtime/object_space.rb +0 -19
  1742. data/lib/ddtrace/runtime/socket.rb +0 -14
  1743. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  1744. data/lib/ddtrace/sampler.rb +0 -292
  1745. data/lib/ddtrace/sampling/matcher.rb +0 -57
  1746. data/lib/ddtrace/sampling/rate_limiter.rb +0 -176
  1747. data/lib/ddtrace/sampling/rule.rb +0 -61
  1748. data/lib/ddtrace/sampling/rule_sampler.rb +0 -120
  1749. data/lib/ddtrace/sampling.rb +0 -2
  1750. data/lib/ddtrace/span.rb +0 -432
  1751. data/lib/ddtrace/sync_writer.rb +0 -67
  1752. data/lib/ddtrace/tasks/exec.rb +0 -48
  1753. data/lib/ddtrace/tasks/help.rb +0 -14
  1754. data/lib/ddtrace/tracer.rb +0 -453
  1755. data/lib/ddtrace/utils/compression.rb +0 -27
  1756. data/lib/ddtrace/utils/database.rb +0 -25
  1757. data/lib/ddtrace/utils/forking.rb +0 -52
  1758. data/lib/ddtrace/utils/object_set.rb +0 -41
  1759. data/lib/ddtrace/utils/only_once.rb +0 -40
  1760. data/lib/ddtrace/utils/sequence.rb +0 -17
  1761. data/lib/ddtrace/utils/string_table.rb +0 -45
  1762. data/lib/ddtrace/utils/time.rb +0 -45
  1763. data/lib/ddtrace/utils.rb +0 -68
  1764. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -301
  1765. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -116
  1766. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +0 -57
  1767. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +0 -135
  1768. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +0 -9
  1769. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +0 -8
  1770. data/lib/ddtrace/vendor/multipart-post/multipart.rb +0 -12
  1771. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +0 -32
  1772. data/lib/ddtrace/worker.rb +0 -20
  1773. data/lib/ddtrace/workers/async.rb +0 -173
  1774. data/lib/ddtrace/workers/loop.rb +0 -131
  1775. data/lib/ddtrace/workers/polling.rb +0 -49
  1776. data/lib/ddtrace/workers/queue.rb +0 -40
  1777. data/lib/ddtrace/workers/runtime_metrics.rb +0 -64
  1778. data/lib/ddtrace/workers/trace_writer.rb +0 -199
  1779. data/lib/ddtrace/workers.rb +0 -122
  1780. data/lib/ddtrace/writer.rb +0 -199
  1781. data/tasks/release_gem.rake +0 -28
  1782. /data/lib/{ddtrace → datadog/core}/vendor/multipart-post/LICENSE +0 -0
  1783. /data/lib/{ddtrace → datadog}/profiling/pprof/pprof.proto +0 -0
  1784. /data/lib/{ddtrace/vendor/active_record → datadog/tracing/contrib/active_record/vendor}/MIT-LICENSE +0 -0
  1785. /data/lib/{ddtrace → datadog/tracing}/contrib/redis/vendor/LICENSE +0 -0
data/LICENSE-3rdparty.csv CHANGED
@@ -1,2 +1,8 @@
1
1
  Component,Origin,License,Copyright
2
- ddtrace/vendor/multipart-post,https://github.com/socketry/multipart-post,MIT,"Copyright (c) 2007-2013 Nick Sieger."
2
+ lib/datadog/core/vendor/multipart-post,https://github.com/socketry/multipart-post,MIT,"Copyright (c) 2007-2013 Nick Sieger."
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."
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,24 +1,31 @@
1
1
  # Datadog Trace Client
2
2
 
3
- [![CircleCI](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master.svg?style=svg&circle-token=b0bd5ef866ec7f7b018f48731bb495f2d1372cc1)](https://circleci.com/gh/DataDog/dd-trace-rb/tree/master)
3
+ [![Gem](https://img.shields.io/gem/v/ddtrace)](https://rubygems.org/gems/ddtrace/)
4
4
  [![codecov](https://codecov.io/gh/DataDog/dd-trace-rb/branch/master/graph/badge.svg)](https://app.codecov.io/gh/DataDog/dd-trace-rb/branch/master)
5
+ [![YARD documentation](https://img.shields.io/badge/YARD-documentation-blue)][api docs]
5
6
 
6
7
  ``ddtrace`` is Datadog’s tracing client for Ruby. It is used to trace requests as they flow across web servers,
7
- databases and microservices so that developers have great visiblity into bottlenecks and troublesome requests.
8
+ databases and microservices so that developers have great visibility into bottlenecks and troublesome requests.
8
9
 
9
10
  ## Getting started
10
11
 
11
- For a basic product overview, check out our [setup documentation][setup docs].
12
+ **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).**
12
13
 
13
- For installation, configuration, and details about using the API, check out our [API documentation][api docs] and [gem documentation][gem docs].
14
+ For a product overview, installation, and configuration check out our [documentation][public docs].
14
15
 
15
- For descriptions of terminology used in APM, take a look at the [official documentation][visualization docs].
16
+ For the gem API, check out our [API documentation][api docs].
17
+
18
+ For descriptions of terminology used in APM, take a look at the [APM Terms and Concepts][APM glossary].
16
19
 
17
20
  For contributing, checkout the [contribution guidelines][contribution docs] and [development guide][development docs].
18
21
 
19
- [setup docs]: https://docs.datadoghq.com/tracing/setup/ruby/
20
- [api docs]: https://github.com/DataDog/dd-trace-rb/blob/master/docs/GettingStarted.md
21
- [gem docs]: http://gems.datadoghq.com/trace/docs/
22
- [visualization docs]: https://docs.datadoghq.com/tracing/visualization/
22
+ [public docs]: https://docs.datadoghq.com/tracing/setup/ruby/
23
+ [api docs]: https://datadog.github.io/dd-trace-rb/
24
+ [APM glossary]: https://docs.datadoghq.com/tracing/glossary/
23
25
  [contribution docs]: https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md
24
26
  [development docs]: https://github.com/DataDog/dd-trace-rb/blob/master/docs/DevelopmentGuide.md
27
+
28
+ ## Special thanks
29
+
30
+ * [Mike Fiedler](https://github.com/miketheman) for working on a number of Datadog Ruby projects, as well as graciously
31
+ gifting control of the `datadog` gem
data/bin/ddtracerb CHANGED
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
- require 'ddtrace/tasks/exec'
3
- require 'ddtrace/tasks/help'
2
+ require 'datadog/profiling/tasks/exec'
3
+ require 'datadog/profiling/tasks/help'
4
4
 
5
5
  command = ARGV.shift
6
6
 
7
7
  case command
8
8
  when 'exec'
9
- Datadog::Tasks::Exec.new(ARGV).run
9
+ Datadog::Profiling::Tasks::Exec.new(ARGV).run
10
10
  when 'help', '--help'
11
- Datadog::Tasks::Help.new.run
11
+ Datadog::Profiling::Tasks::Help.new.run
12
12
  else
13
13
  puts "Command '#{command}' is not valid for ddtrace."
14
- Datadog::Tasks::Help.new.run
14
+ Datadog::Profiling::Tasks::Help.new.run
15
15
  end
@@ -0,0 +1,134 @@
1
+ #include <stdbool.h>
2
+ #include <dlfcn.h>
3
+ #include <ruby.h>
4
+
5
+ // Why this exists:
6
+ //
7
+ // The Datadog::Profiling::Loader exists because when Ruby loads a native extension (using `require`), it uses
8
+ // `dlopen(..., RTLD_LAZY | RTLD_GLOBAL)` (https://github.com/ruby/ruby/blob/67950a4c0a884bdb78d9beb4405ebf7459229b21/dln.c#L362).
9
+ // This means that every symbol exposed directly or indirectly by that native extension becomes visible to every other
10
+ // extension in the Ruby process. This can cause issues, see https://github.com/rubyjs/mini_racer/pull/179.
11
+ //
12
+ // Instead of `RTLD_LAZY | RTLD_GLOBAL`, we want to call `dlopen` with `RTLD_LAZY | RTLD_LOCAL | RTLD_DEEPBIND` when
13
+ // loading the profiling native extension, to avoid leaking any unintended symbols (`RTLD_LOCAL`) and avoid picking
14
+ // up other's symbols (`RTLD_DEEPBIND`).
15
+ //
16
+ // But Ruby's extension loading mechanism is not configurable -- there's no way to tell it to use different flags when
17
+ // calling `dlopen`. To get around this, this file (ddtrace_profiling_loader.c) introduces another extension
18
+ // (profiling loader) which has only a single responsibility: mimic Ruby's extension loading mechanism, but when calling
19
+ // `dlopen` use a different set of flags.
20
+ // This idea was shamelessly stolen from @lloeki's work in https://github.com/rubyjs/mini_racer/pull/179, big thanks!
21
+ //
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 libdatadog).
24
+ // Future versions of Rust have been patched not to expose this
25
+ // (see https://github.com/rust-lang/rust/pull/95604#issuecomment-1108563434) so we may want to revisit the need
26
+ // for this loader in the future, and perhaps delete it if we no longer require its services :)
27
+
28
+ #ifndef RTLD_DEEPBIND
29
+ #define RTLD_DEEPBIND 0
30
+ #endif
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
+
39
+ static VALUE ok_symbol = Qnil; // :ok in Ruby
40
+ static VALUE error_symbol = Qnil; // :error in Ruby
41
+
42
+ static VALUE _native_load(DDTRACE_UNUSED VALUE self, VALUE ruby_path, VALUE ruby_init_name);
43
+ static bool failed_to_load(void *handle, VALUE *failure_details);
44
+ static bool incompatible_library(void *handle, VALUE *failure_details);
45
+ static bool failed_to_initialize(void *handle, char *init_name, VALUE *failure_details);
46
+ static void set_failure_from_dlerror(VALUE *failure_details);
47
+ static void unload_failed_library(void *handle);
48
+
49
+ #define DDTRACE_EXPORT __attribute__ ((visibility ("default")))
50
+
51
+ void DDTRACE_EXPORT Init_ddtrace_profiling_loader(void) {
52
+ VALUE datadog_module = rb_define_module("Datadog");
53
+ VALUE profiling_module = rb_define_module_under(datadog_module, "Profiling");
54
+ VALUE loader_module = rb_define_module_under(profiling_module, "Loader");
55
+ rb_define_singleton_method(loader_module, "_native_load", _native_load, 2);
56
+
57
+ ok_symbol = ID2SYM(rb_intern_const("ok"));
58
+ error_symbol = ID2SYM(rb_intern_const("error"));
59
+ }
60
+
61
+ static VALUE _native_load(DDTRACE_UNUSED VALUE self, VALUE ruby_path, VALUE ruby_init_name) {
62
+ Check_Type(ruby_path, T_STRING);
63
+ Check_Type(ruby_init_name, T_STRING);
64
+
65
+ char *path = StringValueCStr(ruby_path);
66
+ char *init_name = StringValueCStr(ruby_init_name);
67
+
68
+ void *handle = dlopen(path, RTLD_LAZY | RTLD_LOCAL | RTLD_DEEPBIND);
69
+
70
+ VALUE failure_details = Qnil;
71
+
72
+ if (
73
+ failed_to_load(handle, &failure_details) ||
74
+ incompatible_library(handle, &failure_details) ||
75
+ failed_to_initialize(handle, init_name, &failure_details)
76
+ ) {
77
+ return rb_ary_new_from_args(2, error_symbol, failure_details);
78
+ }
79
+
80
+ return rb_ary_new_from_args(2, ok_symbol, Qnil);
81
+ }
82
+
83
+ static bool failed_to_load(void *handle, VALUE *failure_details) {
84
+ if (handle == NULL) {
85
+ set_failure_from_dlerror(failure_details);
86
+ return true;
87
+ } else {
88
+ return false;
89
+ }
90
+ }
91
+
92
+ static bool incompatible_library(void *handle, VALUE *failure_details) {
93
+ // The library being loaded may be linked to a different libruby than the current executing Ruby.
94
+ // We check if this is the case by checking if a well-known symbol resolves to a common address.
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) {
105
+ *failure_details = rb_str_new_cstr("library was compiled and linked to a different Ruby version");
106
+ unload_failed_library(handle);
107
+ return true;
108
+ } else {
109
+ return false;
110
+ }
111
+ }
112
+
113
+ static bool failed_to_initialize(void *handle, char *init_name, VALUE *failure_details) {
114
+ void (*initialization_function)(void) = dlsym(handle, init_name);
115
+
116
+ if (initialization_function == NULL) {
117
+ set_failure_from_dlerror(failure_details);
118
+ unload_failed_library(handle);
119
+ return true;
120
+ } else {
121
+ (*initialization_function)();
122
+ return false;
123
+ }
124
+ }
125
+
126
+ static void set_failure_from_dlerror(VALUE *failure_details) {
127
+ char *failure = dlerror();
128
+ *failure_details = failure == NULL ? Qnil : rb_str_new_cstr(failure);
129
+ }
130
+
131
+ static void unload_failed_library(void *handle) {
132
+ // Note: According to the Ruby VM sources, this may fail with a segfault on really old versions of macOS (< 10.11)
133
+ dlclose(handle);
134
+ }
@@ -0,0 +1,72 @@
1
+ # rubocop:disable Style/StderrPuts
2
+ # rubocop:disable Style/GlobalVars
3
+
4
+ if RUBY_ENGINE != 'ruby' || Gem.win_platform?
5
+ $stderr.puts(
6
+ 'WARN: Skipping build of ddtrace profiling loader. See ddtrace profiling native extension note for details.'
7
+ )
8
+
9
+ File.write('Makefile', 'all install clean: # dummy makefile that does nothing')
10
+ exit
11
+ end
12
+
13
+ require 'mkmf'
14
+
15
+ # mkmf on modern Rubies actually has an append_cflags that does something similar
16
+ # (see https://github.com/ruby/ruby/pull/5760), but as usual we need a bit more boilerplate to deal with legacy Rubies
17
+ def add_compiler_flag(flag)
18
+ if try_cflags(flag)
19
+ $CFLAGS << ' ' << flag
20
+ else
21
+ $stderr.puts("WARNING: '#{flag}' not accepted by compiler, skipping it")
22
+ end
23
+ end
24
+
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?)
36
+ add_compiler_flag '-Wno-unused-function'
37
+
38
+ # Allow defining variables at any point in a function
39
+ add_compiler_flag '-Wno-declaration-after-statement'
40
+
41
+ # If we forget to include a Ruby header, the function call may still appear to work, but then
42
+ # cause a segfault later. Let's ensure that never happens.
43
+ add_compiler_flag '-Werror-implicit-function-declaration'
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
+
48
+ # The native extension is not intended to expose any symbols/functions for other native libraries to use;
49
+ # the sole exception being `Init_ddtrace_profiling_loader` which needs to be visible for Ruby to call it when
50
+ # it `dlopen`s the library.
51
+ #
52
+ # By setting this compiler flag, we tell it to assume that everything is private unless explicitly stated.
53
+ # For more details see https://gcc.gnu.org/wiki/Visibility
54
+ add_compiler_flag '-fvisibility=hidden'
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
+
63
+ # Tag the native extension library with the Ruby version and Ruby platform.
64
+ # This makes it easier for development (avoids "oops I forgot to rebuild when I switched my Ruby") and ensures that
65
+ # the wrong library is never loaded.
66
+ # When requiring, we need to use the exact same string, including the version and the platform.
67
+ EXTENSION_NAME = "ddtrace_profiling_loader.#{RUBY_VERSION}_#{RUBY_PLATFORM}".freeze
68
+
69
+ create_makefile(EXTENSION_NAME)
70
+
71
+ # rubocop:enable Style/GlobalVars
72
+ # rubocop:enable Style/StderrPuts
@@ -0,0 +1,158 @@
1
+ # Profiling Native Extension Design
2
+
3
+ The profiling native extension is used to:
4
+
5
+ 1. Implement features which are expensive (in terms of resources) or otherwise impossible to implement using Ruby code.
6
+ 2. Bridge between Ruby-specific profiling features and [`libdatadog`](https://github.com/DataDog/libdatadog), a Rust-based
7
+ library with common profiling functionality.
8
+
9
+ Due to (1), this extension is quite coupled with MRI Ruby ("C Ruby") internals, and is not intended to support other rubies such as
10
+ JRuby or TruffleRuby. When below we say "Ruby", read it as "MRI Ruby".
11
+
12
+ ## Disabling
13
+
14
+ The profiling native extension can be disabled by setting `DD_PROFILING_NO_EXTENSION=true` when installing
15
+ the gem. Setting `DD_PROFILING_NO_EXTENSION` at installation time skips compilation of the extension entirely.
16
+
17
+ (If you're a customer and needed to use this, please tell us why on <https://github.com/DataDog/dd-trace-rb/issues/new>.)
18
+
19
+ In past releases, it was possible for the profiler to run without the native extension, but that's no longer the case,
20
+ and disabling the extension will disable profiling.
21
+
22
+ ## Who is this page for?
23
+
24
+ **This documentation is intended to be used by dd-trace-rb developers. Please see the `docs/` folder for user-level
25
+ documentation.**
26
+
27
+ ## Must not block or break users that cannot use it
28
+
29
+ The profiling native extension is (and must always be) designed to **not cause failures** during gem installation, even
30
+ if some features, Ruby versions, or operating systems are not supported.
31
+
32
+ E.g. the extension must not break installation on Ruby 2.1 (or the oldest Ruby version we support at the time) on 64-bit ARM macOS,
33
+ even if at run time it will effectively do nothing for such a setup.
34
+
35
+ We have a CI setup to help validate this, but this is really important to keep in mind when adding to or changing the
36
+ existing codebase.
37
+
38
+ ## Memory leaks and Interaction with Ruby VM APIs
39
+
40
+ When adding to or changing the native extension, we must always consider what API calls can lead to Ruby exceptions to
41
+ be raised, and whether there are is dynamically-allocated memory that can be leaked if that happens.
42
+
43
+ (When a Ruby exception is raised, the VM will use `setjmp` and `longjmp` to jump back in the stack and thus skip
44
+ our clean-up code, like in a Ruby-level exception.)
45
+
46
+ We avoid issues using a combination of:
47
+
48
+ * Avoiding dynamic allocation as much as possible
49
+ * Getting all needed data and doing all validations before doing any dynamic allocations
50
+ * Avoiding calling Ruby VM APIs after doing dynamic allocations
51
+ * Wrapping dynamic allocations into Ruby GC-managed objects (using `TypedData_Wrap_Struct`), so that Ruby will manage
52
+ their lifetime and call `free` when the GC-managed object is no longer being referenced
53
+ * Using [`rb_protect` and similar APIs](https://silverhammermba.github.io/emberb/c/?#rescue) to run cleanup code on
54
+ exception cases
55
+
56
+ Non-exhaustive list of APIs that cause exceptions to be raised:
57
+
58
+ * `Check_TypedStruct`, `Check_Type`, `ENFORCE_TYPE`
59
+ * `rb_funcall`
60
+ * `rb_thread_call_without_gvl`
61
+ * [Numeric conversion APIs, e.g. `NUM2LONG`, `NUM2INT`, etc.](https://silverhammermba.github.io/emberb/c/?#translation)
62
+ * Our `char_slice_from_ruby_string` helper
63
+
64
+ ## Usage of private VM headers
65
+
66
+ To implement some of the features below, we sometimes require access to private Ruby header files (that describe VM
67
+ internal types, structures and functions).
68
+
69
+ Because these private header files are not included in regular Ruby installations, we have two different workarounds:
70
+
71
+ 1. for Ruby versions 2.6 to 3.2 we make use use the Ruby private MJIT header
72
+ 2. for Ruby versions < 2.6 and > 3.2 we make use of the `debase-ruby_core_source` gem
73
+
74
+ Functions which make use of these headers are defined in the <private_vm_api_acccess.c> file.
75
+
76
+ There is currently no way for disabling usage of the private MJIT header for Ruby 2.6 to 3.2.
77
+
78
+ **Important Note**: Our medium/long-term plan is to stop relying on all private Ruby headers, and instead request and
79
+ contribute upstream changes so that they become official public VM APIs.
80
+
81
+ ### Approach 1: Using the Ruby private MJIT header
82
+
83
+ Ruby versions 2.6 to 3.2 shipped a JIT compiler called MJIT. This compiler does not directly generate machine code;
84
+ instead it generates C code and uses the system C compiler to turn it into machine code.
85
+
86
+ The generated C code `#include`s a private header -- which we reference as "the MJIT header" everywhere.
87
+ The MJIT header gets shipped with all MJIT-enabled Rubies and includes the layout of many internal VM structures;
88
+ and of course the intention is that it is only used by the Ruby MJIT compiler.
89
+
90
+ This header is placed inside the `include/` directory in a Ruby installation, and is named for that specific Ruby
91
+ version. e.g. `rb_mjit_min_header-2.7.4.h`.
92
+
93
+ This header was removed in Ruby 3.3.
94
+
95
+ ### Approach 2: Using the `debase-ruby_core_source` gem
96
+
97
+ The [`debase-ruby_core_source`](https://github.com/ruby-debug/debase-ruby_core_source) contains almost no code;
98
+ instead, it just contains per-Ruby-version folders with the private VM headers (`.h`) files for that version.
99
+
100
+ Thus, even though a regular Ruby installation does not include these files, we can access the copy inside this gem.
101
+
102
+ ## Feature: Getting thread CPU-time clock_ids
103
+
104
+ * **OS support**: Linux
105
+
106
+ To enable CPU-time profiling, we use the `pthread_getcpuclockid(pthread_t thread, clockid_t *clockid)` C function to
107
+ obtain a `clockid_t` that can then be used with the `Process.clock_gettime` method (or directly with the
108
+ `clock_gettime()` C function).
109
+
110
+ The challenge with using `pthread_getcpuclockid()` is that we need to get the `pthread_t` for a given Ruby `Thread`
111
+ object. We previously did this with a weird combination of monkey patching and `pthread_self()` (effectively patching
112
+ every `Thread` to run `pthread_self()` at initialization time and stash that value somewhere), but this had a number
113
+ of downsides.
114
+
115
+ The approach we use in the profiling native extension is to reach inside the internal structure of the `Thread` object,
116
+ and extract the `pthread_t` that Ruby itself keeps, but does not expose. This is implemented in the `pthread_id_for()`
117
+ function in `private_vm_api_acccess.c`. Thus, using this trick we can at any point in execution go from a `Thread`
118
+ object into the `clockid_t` that we need.
119
+
120
+ Note that `pthread_getcpuclockid()` is not available on macOS (nor, obviously, on Windows), and hence this feature
121
+ is currently Linux-specific. Thus, in the <clock_id_from_pthread.c> file we implement the feature for supported Ruby
122
+ setups but if something is missing we instead compile in <clock_id_noop.c> that includes a no-op implementation of the
123
+ feature.
124
+
125
+ ## Fork-safety
126
+
127
+ It's common for Ruby applications to create child processes via the use of `fork`. For instance, this strategy is used
128
+ by the puma webserver and the resque job processing tool.
129
+
130
+ Thus, the profiler needs to be designed to take this into account. I'll call out two important parts of this design:
131
+
132
+ 1. Automatically propagate profiler to child processes. To make onboarding easier, we monkey patch the Ruby `fork` APIs
133
+ so that the profiler is automatically restarted in child processes. This way, the user only needs to start profiling at
134
+ the beginning of their application, and automatically forks are profiled as well.
135
+
136
+ 2. The profiler must ensure correctness and stability even if the application forks. There must be no impact on the
137
+ application or incorrect data generated.
138
+
139
+ ### Fork-safety for libdatadog
140
+
141
+ Since libdatadog is built in native code (Rust), special care needs to be take to consider how we're using it and how
142
+ it can be affected by the use of `fork`.
143
+
144
+ * Profile-related APIs: `Profile_new` and `Profile_add` and `Profile_free` are only called with the Ruby Global VM Lock
145
+ being held. Thus, if Ruby APIs are being used for fork, this prevents any concurrency between profile mutation and
146
+ forking, because if we’re holding the lock, then no other thread can call into the fork APIs.
147
+ (Calling libc `fork()` directly from a native extension is possible but would break the VM as well, since it does need
148
+ to do some of its own work when forking happens, so we’ll ignore that one)
149
+
150
+ * Exporter-related APIs: Explicitly to make sure we had no issues with forking, we create a new `CancellationToken_new`
151
+ and `ProfileExporterV3_new` for every report. We do release the Global VM Lock during exporting, so it's possible for
152
+ forking and exporting to be concurrent.
153
+
154
+ Both the CancellationToken and ProfileExporter are only referenced on the stack of the thread doing the exporting, so
155
+ they will not be reused in the child process after the fork. In the worst case, if a report is concurrent with a fork,
156
+ then it's possible a small amount of memory will not be cleaned up in the child process.
157
+
158
+ Because there is no leftover undefined state, we guarantee correctness for the exporter APIs.
@@ -0,0 +1,25 @@
1
+ #pragma once
2
+
3
+ #include <stdbool.h>
4
+ #include <time.h>
5
+
6
+ // Contains the operating-system specific identifier needed to fetch CPU-time, and a flag to indicate if we failed to fetch it
7
+ typedef struct thread_cpu_time_id {
8
+ bool valid;
9
+ clockid_t clock_id;
10
+ } thread_cpu_time_id;
11
+
12
+ // Contains the current cpu time, and a flag to indicate if we failed to fetch it
13
+ typedef struct thread_cpu_time {
14
+ bool valid;
15
+ long result_ns;
16
+ } thread_cpu_time;
17
+
18
+ void self_test_clock_id(void);
19
+
20
+ // TODO: Remove this after the OldStack profiler gets removed
21
+ VALUE clock_id_for(VALUE self, VALUE thread);
22
+
23
+ // Safety: This function is assumed never to raise exceptions by callers
24
+ thread_cpu_time_id thread_cpu_time_id_for(VALUE thread);
25
+ thread_cpu_time thread_cpu_time_for(thread_cpu_time_id time_id);
@@ -0,0 +1,75 @@
1
+ #include "extconf.h"
2
+
3
+ // This file is only compiled on systems where pthread_getcpuclockid() is available;
4
+ // Otherwise we compile clock_id_noop.c
5
+ #ifdef HAVE_PTHREAD_GETCPUCLOCKID
6
+
7
+ #include <pthread.h>
8
+ #include <time.h>
9
+ #include <errno.h>
10
+ #include <ruby.h>
11
+
12
+ #include "helpers.h"
13
+ #include "private_vm_api_access.h"
14
+ #include "clock_id.h"
15
+ #include "time_helpers.h"
16
+
17
+ // Validate that our home-cooked pthread_id_for() matches pthread_self() for the current thread
18
+ void self_test_clock_id(void) {
19
+ rb_nativethread_id_t expected_pthread_id = pthread_self();
20
+ rb_nativethread_id_t actual_pthread_id = pthread_id_for(rb_thread_current());
21
+
22
+ if (expected_pthread_id != actual_pthread_id) rb_raise(rb_eRuntimeError, "pthread_id_for() self-test failed");
23
+ }
24
+
25
+ // TODO: Remove this after the OldStack profiler gets removed
26
+ VALUE clock_id_for(DDTRACE_UNUSED VALUE _self, VALUE thread) {
27
+ rb_nativethread_id_t thread_id = pthread_id_for(thread);
28
+
29
+ clockid_t clock_id;
30
+ int error = pthread_getcpuclockid(thread_id, &clock_id);
31
+
32
+ if (error == 0) {
33
+ return CLOCKID2NUM(clock_id);
34
+ } else {
35
+ switch(error) {
36
+ // The more specific error messages are based on the pthread_getcpuclockid(3) man page
37
+ case ENOENT:
38
+ rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread: Per-thread CPU time clocks are not supported by the system."));
39
+ case ESRCH:
40
+ rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread: No thread could be found."));
41
+ default:
42
+ rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread"));
43
+ }
44
+ }
45
+ }
46
+
47
+ // Safety: This function is assumed never to raise exceptions by callers
48
+ thread_cpu_time_id thread_cpu_time_id_for(VALUE thread) {
49
+ rb_nativethread_id_t thread_id = pthread_id_for(thread);
50
+ clockid_t clock_id;
51
+
52
+ int error = pthread_getcpuclockid(thread_id, &clock_id);
53
+
54
+ if (error == 0) {
55
+ return (thread_cpu_time_id) {.valid = true, .clock_id = clock_id};
56
+ } else {
57
+ // TODO: Include the error code in some way in the output?
58
+ return (thread_cpu_time_id) {.valid = false};
59
+ }
60
+ }
61
+
62
+ thread_cpu_time thread_cpu_time_for(thread_cpu_time_id time_id) {
63
+ thread_cpu_time error = (thread_cpu_time) {.valid = false};
64
+
65
+ if (!time_id.valid) { return error; }
66
+
67
+ struct timespec current_cpu;
68
+
69
+ // TODO: Include the error code in some way in the output?
70
+ if (clock_gettime(time_id.clock_id, &current_cpu) != 0) return error;
71
+
72
+ return (thread_cpu_time) {.valid = true, .result_ns = current_cpu.tv_nsec + SECONDS_AS_NS(current_cpu.tv_sec)};
73
+ }
74
+
75
+ #endif
@@ -0,0 +1,23 @@
1
+ #include "extconf.h"
2
+
3
+ // This file is the dual of clock_id_from_pthread.c for systems where that info
4
+ // is not available.
5
+ #ifndef HAVE_PTHREAD_GETCPUCLOCKID
6
+
7
+ #include <ruby.h>
8
+
9
+ #include "clock_id.h"
10
+ #include "helpers.h"
11
+
12
+ void self_test_clock_id(void) { } // Nothing to check
13
+ VALUE clock_id_for(DDTRACE_UNUSED VALUE _self, DDTRACE_UNUSED VALUE _thread) { return Qnil; } // Nothing to return
14
+
15
+ thread_cpu_time_id thread_cpu_time_id_for(DDTRACE_UNUSED VALUE _thread) {
16
+ return (thread_cpu_time_id) {.valid = false};
17
+ }
18
+
19
+ thread_cpu_time thread_cpu_time_for(DDTRACE_UNUSED thread_cpu_time_id _time_id) {
20
+ return (thread_cpu_time) {.valid = false};
21
+ }
22
+
23
+ #endif