ddtrace 0.50.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1625) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.gitignore +10 -0
  4. data/CHANGELOG.md +430 -11
  5. data/CONTRIBUTING.md +1 -5
  6. data/LICENSE-3rdparty.csv +2 -1
  7. data/README.md +4 -0
  8. data/bin/ddtracerb +5 -5
  9. data/ddtrace.gemspec +20 -5
  10. data/docs/0.x-trace.png +0 -0
  11. data/docs/1.0-trace.png +0 -0
  12. data/docs/AutoInstrumentation.md +36 -0
  13. data/docs/Deprecation.md +8 -0
  14. data/docs/DevelopmentGuide.md +17 -7
  15. data/docs/GettingStarted.md +660 -486
  16. data/docs/ProfilingDevelopment.md +45 -23
  17. data/docs/PublicApi.md +14 -0
  18. data/docs/UpgradeGuide.md +736 -0
  19. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +86 -0
  20. data/ext/ddtrace_profiling_native_extension/clock_id.h +4 -0
  21. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +52 -0
  22. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +14 -0
  23. data/ext/ddtrace_profiling_native_extension/extconf.rb +206 -0
  24. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +35 -0
  25. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +3 -0
  26. data/ext/ddtrace_profiling_native_extension/profiling.c +24 -0
  27. data/lib/datadog/appsec/assets/blocked.html +4 -0
  28. data/lib/datadog/appsec/assets/waf_rules/README.md +7 -0
  29. data/lib/datadog/appsec/assets/waf_rules/recommended.json +5638 -0
  30. data/lib/datadog/appsec/assets/waf_rules/risky.json +1499 -0
  31. data/lib/datadog/appsec/assets/waf_rules/strict.json +1298 -0
  32. data/lib/datadog/appsec/assets.rb +38 -0
  33. data/lib/datadog/appsec/autoload.rb +16 -0
  34. data/lib/datadog/appsec/configuration/settings.rb +175 -0
  35. data/lib/datadog/appsec/configuration.rb +72 -0
  36. data/lib/datadog/appsec/contrib/auto_instrument.rb +29 -0
  37. data/lib/datadog/appsec/contrib/configuration/settings.rb +20 -0
  38. data/lib/datadog/appsec/contrib/integration.rb +37 -0
  39. data/lib/datadog/appsec/contrib/patcher.rb +12 -0
  40. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +22 -0
  41. data/lib/datadog/appsec/contrib/rack/ext.rb +15 -0
  42. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +126 -0
  43. data/lib/datadog/appsec/contrib/rack/integration.rb +48 -0
  44. data/lib/datadog/appsec/contrib/rack/patcher.rb +33 -0
  45. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +87 -0
  46. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +64 -0
  47. data/lib/datadog/appsec/contrib/rack/request.rb +52 -0
  48. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +57 -0
  49. data/lib/datadog/appsec/contrib/rack/response.rb +24 -0
  50. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +22 -0
  51. data/lib/datadog/appsec/contrib/rails/ext.rb +15 -0
  52. data/lib/datadog/appsec/contrib/rails/framework.rb +30 -0
  53. data/lib/datadog/appsec/contrib/rails/integration.rb +48 -0
  54. data/lib/datadog/appsec/contrib/rails/patcher.rb +125 -0
  55. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +20 -0
  56. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +22 -0
  57. data/lib/datadog/appsec/contrib/sinatra/ext.rb +15 -0
  58. data/lib/datadog/appsec/contrib/sinatra/framework.rb +34 -0
  59. data/lib/datadog/appsec/contrib/sinatra/integration.rb +48 -0
  60. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +77 -0
  61. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +20 -0
  62. data/lib/datadog/appsec/event.rb +106 -0
  63. data/lib/datadog/appsec/extensions.rb +121 -0
  64. data/lib/datadog/appsec/instrumentation/gateway.rb +44 -0
  65. data/lib/datadog/appsec/processor.rb +121 -0
  66. data/lib/datadog/appsec/rate_limiter.rb +55 -0
  67. data/lib/datadog/appsec/reactive/address_hash.rb +18 -0
  68. data/lib/datadog/appsec/reactive/engine.rb +44 -0
  69. data/lib/datadog/appsec/reactive/operation.rb +52 -0
  70. data/lib/datadog/appsec/reactive/subscriber.rb +18 -0
  71. data/lib/datadog/appsec.rb +23 -0
  72. data/lib/datadog/ci/configuration/components.rb +10 -8
  73. data/lib/datadog/ci/configuration/settings.rb +20 -3
  74. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +6 -3
  75. data/lib/datadog/ci/contrib/cucumber/ext.rb +3 -0
  76. data/lib/datadog/ci/contrib/cucumber/formatter.rb +5 -8
  77. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +3 -1
  78. data/lib/datadog/ci/contrib/cucumber/integration.rb +4 -2
  79. data/lib/datadog/ci/contrib/cucumber/patcher.rb +4 -2
  80. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +6 -3
  81. data/lib/datadog/ci/contrib/rspec/example.rb +5 -8
  82. data/lib/datadog/ci/contrib/rspec/ext.rb +3 -0
  83. data/lib/datadog/ci/contrib/rspec/integration.rb +6 -4
  84. data/lib/datadog/ci/contrib/rspec/patcher.rb +4 -2
  85. data/lib/datadog/ci/ext/app_types.rb +3 -1
  86. data/lib/datadog/ci/ext/environment.rb +312 -126
  87. data/lib/datadog/ci/ext/settings.rb +3 -1
  88. data/lib/datadog/ci/ext/test.rb +10 -1
  89. data/lib/datadog/ci/extensions.rb +6 -4
  90. data/lib/datadog/ci/flush.rb +38 -0
  91. data/lib/datadog/ci/test.rb +33 -13
  92. data/lib/datadog/ci.rb +5 -1
  93. data/lib/datadog/core/buffer/cruby.rb +55 -0
  94. data/lib/datadog/core/buffer/random.rb +134 -0
  95. data/lib/datadog/core/buffer/thread_safe.rb +58 -0
  96. data/lib/datadog/core/chunker.rb +35 -0
  97. data/lib/datadog/core/configuration/agent_settings_resolver.rb +365 -0
  98. data/lib/datadog/core/configuration/base.rb +89 -0
  99. data/lib/datadog/core/configuration/components.rb +393 -0
  100. data/lib/datadog/core/configuration/dependency_resolver.rb +28 -0
  101. data/lib/datadog/core/configuration/option.rb +69 -0
  102. data/lib/datadog/core/configuration/option_definition.rb +126 -0
  103. data/lib/datadog/core/configuration/option_definition_set.rb +22 -0
  104. data/lib/datadog/core/configuration/option_set.rb +10 -0
  105. data/lib/datadog/core/configuration/options.rb +118 -0
  106. data/lib/datadog/core/configuration/settings.rb +618 -0
  107. data/lib/datadog/core/configuration.rb +284 -0
  108. data/lib/datadog/core/diagnostics/environment_logger.rb +283 -0
  109. data/lib/datadog/core/diagnostics/ext.rb +41 -0
  110. data/lib/datadog/core/diagnostics/health.rb +37 -0
  111. data/lib/datadog/core/encoding.rb +76 -0
  112. data/lib/datadog/core/environment/cgroup.rb +53 -0
  113. data/lib/datadog/core/environment/class_count.rb +21 -0
  114. data/lib/datadog/core/environment/container.rb +92 -0
  115. data/lib/datadog/core/environment/ext.rb +46 -0
  116. data/lib/datadog/core/environment/gc.rb +20 -0
  117. data/lib/datadog/core/environment/identity.rb +58 -0
  118. data/lib/datadog/core/environment/socket.rb +24 -0
  119. data/lib/datadog/core/environment/thread_count.rb +20 -0
  120. data/lib/datadog/core/environment/variable_helpers.rb +44 -0
  121. data/lib/datadog/core/environment/vm_cache.rb +47 -0
  122. data/lib/datadog/core/error.rb +101 -0
  123. data/lib/datadog/core/extensions.rb +16 -0
  124. data/lib/datadog/core/git/ext.rb +35 -0
  125. data/lib/datadog/core/logger.rb +46 -0
  126. data/lib/datadog/core/metrics/client.rb +188 -0
  127. data/lib/datadog/core/metrics/ext.rb +20 -0
  128. data/lib/datadog/core/metrics/helpers.rb +25 -0
  129. data/lib/datadog/core/metrics/logging.rb +44 -0
  130. data/lib/datadog/core/metrics/metric.rb +14 -0
  131. data/lib/datadog/core/metrics/options.rb +50 -0
  132. data/lib/datadog/core/pin.rb +75 -0
  133. data/lib/datadog/core/runtime/ext.rb +28 -0
  134. data/lib/datadog/core/runtime/metrics.rb +126 -0
  135. data/lib/datadog/core/utils/compression.rb +32 -0
  136. data/lib/datadog/core/utils/forking.rb +63 -0
  137. data/lib/datadog/core/utils/object_set.rb +43 -0
  138. data/lib/datadog/core/utils/only_once.rb +44 -0
  139. data/lib/datadog/core/utils/safe_dup.rb +27 -0
  140. data/lib/datadog/core/utils/sequence.rb +21 -0
  141. data/lib/datadog/core/utils/string_table.rb +49 -0
  142. data/lib/datadog/core/utils/time.rb +54 -0
  143. data/lib/datadog/core/utils.rb +115 -0
  144. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +120 -0
  145. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +61 -0
  146. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +139 -0
  147. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +13 -0
  148. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +12 -0
  149. data/lib/datadog/core/vendor/multipart-post/multipart.rb +16 -0
  150. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +36 -0
  151. data/lib/datadog/core/worker.rb +24 -0
  152. data/lib/datadog/core/workers/async.rb +180 -0
  153. data/lib/datadog/core/workers/interval_loop.rb +119 -0
  154. data/lib/datadog/core/workers/polling.rb +59 -0
  155. data/lib/datadog/core/workers/queue.rb +44 -0
  156. data/lib/datadog/core/workers/runtime_metrics.rb +65 -0
  157. data/lib/datadog/core.rb +74 -0
  158. data/lib/datadog/opentracer/binary_propagator.rb +26 -0
  159. data/lib/datadog/opentracer/carrier.rb +9 -0
  160. data/lib/datadog/opentracer/distributed_headers.rb +58 -0
  161. data/lib/datadog/opentracer/global_tracer.rb +17 -0
  162. data/lib/datadog/opentracer/propagator.rb +26 -0
  163. data/lib/datadog/opentracer/rack_propagator.rb +72 -0
  164. data/lib/datadog/opentracer/scope.rb +18 -0
  165. data/lib/datadog/opentracer/scope_manager.rb +9 -0
  166. data/lib/datadog/opentracer/span.rb +101 -0
  167. data/lib/datadog/opentracer/span_context.rb +19 -0
  168. data/lib/datadog/opentracer/span_context_factory.rb +27 -0
  169. data/lib/datadog/opentracer/text_map_propagator.rb +87 -0
  170. data/lib/datadog/opentracer/thread_local_scope.rb +34 -0
  171. data/lib/datadog/opentracer/thread_local_scope_manager.rb +43 -0
  172. data/lib/datadog/opentracer/tracer.rb +214 -0
  173. data/lib/datadog/opentracer.rb +24 -0
  174. data/lib/datadog/profiling/backtrace_location.rb +34 -0
  175. data/lib/datadog/profiling/buffer.rb +43 -0
  176. data/lib/datadog/profiling/collectors/code_provenance.rb +114 -0
  177. data/lib/datadog/profiling/collectors/stack.rb +297 -0
  178. data/lib/datadog/profiling/encoding/profile.rb +48 -0
  179. data/lib/datadog/profiling/event.rb +15 -0
  180. data/lib/datadog/profiling/events/stack.rb +82 -0
  181. data/lib/datadog/profiling/exporter.rb +25 -0
  182. data/lib/datadog/profiling/ext/forking.rb +99 -0
  183. data/lib/datadog/profiling/ext.rb +57 -0
  184. data/lib/datadog/profiling/flush.rb +69 -0
  185. data/lib/datadog/profiling/native_extension.rb +41 -0
  186. data/lib/datadog/profiling/pprof/builder.rb +127 -0
  187. data/lib/datadog/profiling/pprof/converter.rb +104 -0
  188. data/lib/datadog/profiling/pprof/message_set.rb +16 -0
  189. data/lib/datadog/profiling/pprof/payload.rb +20 -0
  190. data/lib/datadog/profiling/pprof/pprof_pb.rb +83 -0
  191. data/lib/datadog/profiling/pprof/stack_sample.rb +141 -0
  192. data/lib/datadog/profiling/pprof/string_table.rb +12 -0
  193. data/lib/datadog/profiling/pprof/template.rb +120 -0
  194. data/lib/datadog/profiling/preload.rb +5 -0
  195. data/lib/datadog/profiling/profiler.rb +34 -0
  196. data/lib/datadog/profiling/recorder.rb +117 -0
  197. data/lib/datadog/profiling/scheduler.rb +151 -0
  198. data/lib/datadog/profiling/tasks/exec.rb +50 -0
  199. data/lib/datadog/profiling/tasks/help.rb +18 -0
  200. data/lib/datadog/profiling/tasks/setup.rb +91 -0
  201. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +45 -0
  202. data/lib/datadog/profiling/trace_identifiers/helper.rb +47 -0
  203. data/lib/datadog/profiling/transport/client.rb +16 -0
  204. data/lib/datadog/profiling/transport/http/api/endpoint.rb +107 -0
  205. data/lib/datadog/profiling/transport/http/api/instance.rb +38 -0
  206. data/lib/datadog/profiling/transport/http/api/spec.rb +42 -0
  207. data/lib/datadog/profiling/transport/http/api.rb +45 -0
  208. data/lib/datadog/profiling/transport/http/builder.rb +30 -0
  209. data/lib/datadog/profiling/transport/http/client.rb +35 -0
  210. data/lib/datadog/profiling/transport/http/response.rb +23 -0
  211. data/lib/datadog/profiling/transport/http.rb +112 -0
  212. data/lib/datadog/profiling/transport/io/client.rb +29 -0
  213. data/lib/datadog/profiling/transport/io/response.rb +18 -0
  214. data/lib/datadog/profiling/transport/io.rb +32 -0
  215. data/lib/datadog/profiling/transport/parcel.rb +19 -0
  216. data/lib/datadog/profiling/transport/request.rb +17 -0
  217. data/lib/datadog/profiling/transport/response.rb +10 -0
  218. data/lib/datadog/profiling.rb +168 -0
  219. data/lib/datadog/tracing/analytics.rb +25 -0
  220. data/lib/datadog/tracing/buffer.rb +126 -0
  221. data/lib/datadog/tracing/configuration/ext.rb +51 -0
  222. data/lib/datadog/tracing/context.rb +68 -0
  223. data/lib/datadog/tracing/context_provider.rb +66 -0
  224. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +35 -0
  225. data/lib/datadog/tracing/contrib/action_cable/event.rb +72 -0
  226. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +58 -0
  227. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +63 -0
  228. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +59 -0
  229. data/lib/datadog/tracing/contrib/action_cable/events.rb +37 -0
  230. data/lib/datadog/tracing/contrib/action_cable/ext.rb +32 -0
  231. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +91 -0
  232. data/lib/datadog/tracing/contrib/action_cable/integration.rb +50 -0
  233. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +31 -0
  234. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +36 -0
  235. data/lib/datadog/tracing/contrib/action_mailer/event.rb +52 -0
  236. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +60 -0
  237. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +47 -0
  238. data/lib/datadog/tracing/contrib/action_mailer/events.rb +34 -0
  239. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +33 -0
  240. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +50 -0
  241. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +29 -0
  242. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +156 -0
  243. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +29 -0
  244. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +36 -0
  245. data/lib/datadog/tracing/contrib/action_pack/ext.rb +22 -0
  246. data/lib/datadog/tracing/contrib/action_pack/integration.rb +50 -0
  247. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +27 -0
  248. data/lib/datadog/tracing/contrib/action_pack/utils.rb +40 -0
  249. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +36 -0
  250. data/lib/datadog/tracing/contrib/action_view/event.rb +35 -0
  251. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +54 -0
  252. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +57 -0
  253. data/lib/datadog/tracing/contrib/action_view/events.rb +34 -0
  254. data/lib/datadog/tracing/contrib/action_view/ext.rb +24 -0
  255. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +78 -0
  256. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +91 -0
  257. data/lib/datadog/tracing/contrib/action_view/integration.rb +57 -0
  258. data/lib/datadog/tracing/contrib/action_view/patcher.rb +48 -0
  259. data/lib/datadog/tracing/contrib/action_view/utils.rb +36 -0
  260. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +37 -0
  261. data/lib/datadog/tracing/contrib/active_job/event.rb +58 -0
  262. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +50 -0
  263. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +49 -0
  264. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +49 -0
  265. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +51 -0
  266. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +49 -0
  267. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +50 -0
  268. data/lib/datadog/tracing/contrib/active_job/events.rb +42 -0
  269. data/lib/datadog/tracing/contrib/active_job/ext.rb +39 -0
  270. data/lib/datadog/tracing/contrib/active_job/integration.rb +50 -0
  271. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +26 -0
  272. data/lib/datadog/tracing/contrib/active_job/patcher.rb +36 -0
  273. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +33 -0
  274. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +69 -0
  275. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +45 -0
  276. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +47 -0
  277. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +34 -0
  278. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +24 -0
  279. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +45 -0
  280. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +33 -0
  281. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +36 -0
  282. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +138 -0
  283. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +39 -0
  284. data/lib/datadog/tracing/contrib/active_record/event.rb +30 -0
  285. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +58 -0
  286. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +78 -0
  287. data/lib/datadog/tracing/contrib/active_record/events.rb +34 -0
  288. data/lib/datadog/tracing/contrib/active_record/ext.rb +29 -0
  289. data/lib/datadog/tracing/contrib/active_record/integration.rb +56 -0
  290. data/lib/datadog/tracing/contrib/active_record/patcher.rb +27 -0
  291. data/lib/datadog/tracing/contrib/active_record/utils.rb +128 -0
  292. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +307 -0
  293. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +270 -0
  294. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +73 -0
  295. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +47 -0
  296. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +35 -0
  297. data/lib/datadog/tracing/contrib/active_support/ext.rb +31 -0
  298. data/lib/datadog/tracing/contrib/active_support/integration.rb +51 -0
  299. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +71 -0
  300. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +71 -0
  301. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +162 -0
  302. data/lib/datadog/tracing/contrib/active_support/patcher.rb +27 -0
  303. data/lib/datadog/tracing/contrib/analytics.rb +29 -0
  304. data/lib/datadog/tracing/contrib/auto_instrument.rb +53 -0
  305. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +35 -0
  306. data/lib/datadog/tracing/contrib/aws/ext.rb +27 -0
  307. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +95 -0
  308. data/lib/datadog/tracing/contrib/aws/integration.rb +47 -0
  309. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +60 -0
  310. data/lib/datadog/tracing/contrib/aws/patcher.rb +57 -0
  311. data/lib/datadog/tracing/contrib/aws/services.rb +123 -0
  312. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +23 -0
  313. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +46 -0
  314. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +16 -0
  315. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +27 -0
  316. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +43 -0
  317. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +33 -0
  318. data/lib/datadog/tracing/contrib/configurable.rb +102 -0
  319. data/lib/datadog/tracing/contrib/configuration/resolver.rb +85 -0
  320. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +43 -0
  321. data/lib/datadog/tracing/contrib/configuration/settings.rb +43 -0
  322. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +35 -0
  323. data/lib/datadog/tracing/contrib/dalli/ext.rb +24 -0
  324. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +58 -0
  325. data/lib/datadog/tracing/contrib/dalli/integration.rb +52 -0
  326. data/lib/datadog/tracing/contrib/dalli/patcher.rb +29 -0
  327. data/lib/datadog/tracing/contrib/dalli/quantize.rb +26 -0
  328. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +38 -0
  329. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +26 -0
  330. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +43 -0
  331. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +32 -0
  332. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +101 -0
  333. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +36 -0
  334. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +26 -0
  335. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +44 -0
  336. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +115 -0
  337. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +89 -0
  338. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +37 -0
  339. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +177 -0
  340. data/lib/datadog/tracing/contrib/ethon/ext.rb +24 -0
  341. data/lib/datadog/tracing/contrib/ethon/integration.rb +48 -0
  342. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +96 -0
  343. data/lib/datadog/tracing/contrib/ethon/patcher.rb +32 -0
  344. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +38 -0
  345. data/lib/datadog/tracing/contrib/excon/ext.rb +21 -0
  346. data/lib/datadog/tracing/contrib/excon/integration.rb +48 -0
  347. data/lib/datadog/tracing/contrib/excon/middleware.rb +170 -0
  348. data/lib/datadog/tracing/contrib/excon/patcher.rb +31 -0
  349. data/lib/datadog/tracing/contrib/extensions.rb +199 -0
  350. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +42 -0
  351. data/lib/datadog/tracing/contrib/faraday/connection.rb +22 -0
  352. data/lib/datadog/tracing/contrib/faraday/ext.rb +21 -0
  353. data/lib/datadog/tracing/contrib/faraday/integration.rb +48 -0
  354. data/lib/datadog/tracing/contrib/faraday/middleware.rb +93 -0
  355. data/lib/datadog/tracing/contrib/faraday/patcher.rb +57 -0
  356. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +22 -0
  357. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +42 -0
  358. data/lib/datadog/tracing/contrib/grape/endpoint.rb +253 -0
  359. data/lib/datadog/tracing/contrib/grape/ext.rb +28 -0
  360. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +37 -0
  361. data/lib/datadog/tracing/contrib/grape/integration.rb +44 -0
  362. data/lib/datadog/tracing/contrib/grape/patcher.rb +34 -0
  363. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +36 -0
  364. data/lib/datadog/tracing/contrib/graphql/ext.rb +19 -0
  365. data/lib/datadog/tracing/contrib/graphql/integration.rb +44 -0
  366. data/lib/datadog/tracing/contrib/graphql/patcher.rb +92 -0
  367. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +37 -0
  368. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +84 -0
  369. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +90 -0
  370. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +104 -0
  371. data/lib/datadog/tracing/contrib/grpc/ext.rb +23 -0
  372. data/lib/datadog/tracing/contrib/grpc/integration.rb +43 -0
  373. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +53 -0
  374. data/lib/datadog/tracing/contrib/grpc/patcher.rb +38 -0
  375. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +44 -0
  376. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +37 -0
  377. data/lib/datadog/tracing/contrib/http/ext.rb +21 -0
  378. data/lib/datadog/tracing/contrib/http/instrumentation.rb +139 -0
  379. data/lib/datadog/tracing/contrib/http/integration.rb +49 -0
  380. data/lib/datadog/tracing/contrib/http/patcher.rb +30 -0
  381. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +17 -0
  382. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +37 -0
  383. data/lib/datadog/tracing/contrib/httpclient/ext.rb +21 -0
  384. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +117 -0
  385. data/lib/datadog/tracing/contrib/httpclient/integration.rb +48 -0
  386. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +42 -0
  387. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +37 -0
  388. data/lib/datadog/tracing/contrib/httprb/ext.rb +21 -0
  389. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +128 -0
  390. data/lib/datadog/tracing/contrib/httprb/integration.rb +48 -0
  391. data/lib/datadog/tracing/contrib/httprb/patcher.rb +42 -0
  392. data/lib/datadog/tracing/contrib/integration.rb +78 -0
  393. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +35 -0
  394. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +18 -0
  395. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +18 -0
  396. data/lib/datadog/tracing/contrib/kafka/event.rb +52 -0
  397. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +42 -0
  398. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +49 -0
  399. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +47 -0
  400. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +47 -0
  401. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +37 -0
  402. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +37 -0
  403. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +37 -0
  404. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +40 -0
  405. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +43 -0
  406. data/lib/datadog/tracing/contrib/kafka/events.rb +48 -0
  407. data/lib/datadog/tracing/contrib/kafka/ext.rb +52 -0
  408. data/lib/datadog/tracing/contrib/kafka/integration.rb +44 -0
  409. data/lib/datadog/tracing/contrib/kafka/patcher.rb +30 -0
  410. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +23 -0
  411. data/lib/datadog/tracing/contrib/lograge/ext.rb +15 -0
  412. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +46 -0
  413. data/lib/datadog/tracing/contrib/lograge/integration.rb +50 -0
  414. data/lib/datadog/tracing/contrib/lograge/patcher.rb +29 -0
  415. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +38 -0
  416. data/lib/datadog/tracing/contrib/mongodb/ext.rb +27 -0
  417. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +47 -0
  418. data/lib/datadog/tracing/contrib/mongodb/integration.rb +48 -0
  419. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +49 -0
  420. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +34 -0
  421. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +121 -0
  422. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +35 -0
  423. data/lib/datadog/tracing/contrib/mysql2/ext.rb +22 -0
  424. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +62 -0
  425. data/lib/datadog/tracing/contrib/mysql2/integration.rb +43 -0
  426. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +31 -0
  427. data/lib/datadog/tracing/contrib/patchable.rb +109 -0
  428. data/lib/datadog/tracing/contrib/patcher.rb +74 -0
  429. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +35 -0
  430. data/lib/datadog/tracing/contrib/presto/ext.rb +32 -0
  431. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +125 -0
  432. data/lib/datadog/tracing/contrib/presto/integration.rb +43 -0
  433. data/lib/datadog/tracing/contrib/presto/patcher.rb +37 -0
  434. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +40 -0
  435. data/lib/datadog/tracing/contrib/qless/ext.rb +26 -0
  436. data/lib/datadog/tracing/contrib/qless/integration.rb +43 -0
  437. data/lib/datadog/tracing/contrib/qless/patcher.rb +39 -0
  438. data/lib/datadog/tracing/contrib/qless/qless_job.rb +75 -0
  439. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +32 -0
  440. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +49 -0
  441. data/lib/datadog/tracing/contrib/que/ext.rb +34 -0
  442. data/lib/datadog/tracing/contrib/que/integration.rb +46 -0
  443. data/lib/datadog/tracing/contrib/que/patcher.rb +29 -0
  444. data/lib/datadog/tracing/contrib/que/tracer.rb +61 -0
  445. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +35 -0
  446. data/lib/datadog/tracing/contrib/racecar/event.rb +79 -0
  447. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +35 -0
  448. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +35 -0
  449. data/lib/datadog/tracing/contrib/racecar/events/message.rb +35 -0
  450. data/lib/datadog/tracing/contrib/racecar/events.rb +36 -0
  451. data/lib/datadog/tracing/contrib/racecar/ext.rb +31 -0
  452. data/lib/datadog/tracing/contrib/racecar/integration.rb +44 -0
  453. data/lib/datadog/tracing/contrib/racecar/patcher.rb +30 -0
  454. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +51 -0
  455. data/lib/datadog/tracing/contrib/rack/ext.rb +25 -0
  456. data/lib/datadog/tracing/contrib/rack/integration.rb +50 -0
  457. data/lib/datadog/tracing/contrib/rack/middlewares.rb +255 -0
  458. data/lib/datadog/tracing/contrib/rack/patcher.rb +109 -0
  459. data/lib/datadog/tracing/contrib/rack/request_queue.rb +48 -0
  460. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +12 -0
  461. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +71 -0
  462. data/lib/datadog/tracing/contrib/rails/ext.rb +19 -0
  463. data/lib/datadog/tracing/contrib/rails/framework.rb +152 -0
  464. data/lib/datadog/tracing/contrib/rails/integration.rb +49 -0
  465. data/lib/datadog/tracing/contrib/rails/log_injection.rb +47 -0
  466. data/lib/datadog/tracing/contrib/rails/middlewares.rb +47 -0
  467. data/lib/datadog/tracing/contrib/rails/patcher.rb +121 -0
  468. data/lib/datadog/tracing/contrib/rails/railtie.rb +19 -0
  469. data/lib/datadog/tracing/contrib/rails/utils.rb +28 -0
  470. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +36 -0
  471. data/lib/datadog/tracing/contrib/rake/ext.rb +26 -0
  472. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +98 -0
  473. data/lib/datadog/tracing/contrib/rake/integration.rb +43 -0
  474. data/lib/datadog/tracing/contrib/rake/patcher.rb +35 -0
  475. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +49 -0
  476. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +40 -0
  477. data/lib/datadog/tracing/contrib/redis/ext.rb +26 -0
  478. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +78 -0
  479. data/lib/datadog/tracing/contrib/redis/integration.rb +47 -0
  480. data/lib/datadog/tracing/contrib/redis/patcher.rb +36 -0
  481. data/lib/datadog/tracing/contrib/redis/quantize.rb +79 -0
  482. data/lib/datadog/tracing/contrib/redis/tags.rb +54 -0
  483. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +162 -0
  484. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  485. data/lib/datadog/tracing/contrib/registry.rb +52 -0
  486. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +37 -0
  487. data/lib/datadog/tracing/contrib/resque/ext.rb +21 -0
  488. data/lib/datadog/tracing/contrib/resque/integration.rb +48 -0
  489. data/lib/datadog/tracing/contrib/resque/patcher.rb +30 -0
  490. data/lib/datadog/tracing/contrib/resque/resque_job.rb +103 -0
  491. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +36 -0
  492. data/lib/datadog/tracing/contrib/rest_client/ext.rb +21 -0
  493. data/lib/datadog/tracing/contrib/rest_client/integration.rb +43 -0
  494. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +30 -0
  495. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +105 -0
  496. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +23 -0
  497. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +15 -0
  498. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +50 -0
  499. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +52 -0
  500. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +29 -0
  501. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +33 -0
  502. data/lib/datadog/tracing/contrib/sequel/database.rb +60 -0
  503. data/lib/datadog/tracing/contrib/sequel/dataset.rb +65 -0
  504. data/lib/datadog/tracing/contrib/sequel/ext.rb +22 -0
  505. data/lib/datadog/tracing/contrib/sequel/integration.rb +43 -0
  506. data/lib/datadog/tracing/contrib/sequel/patcher.rb +37 -0
  507. data/lib/datadog/tracing/contrib/sequel/utils.rb +87 -0
  508. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +38 -0
  509. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +25 -0
  510. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +44 -0
  511. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +28 -0
  512. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +61 -0
  513. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +53 -0
  514. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +43 -0
  515. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +38 -0
  516. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +53 -0
  517. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +71 -0
  518. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +34 -0
  519. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +34 -0
  520. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +33 -0
  521. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +79 -0
  522. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +44 -0
  523. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +43 -0
  524. data/lib/datadog/tracing/contrib/sinatra/env.rb +66 -0
  525. data/lib/datadog/tracing/contrib/sinatra/ext.rb +32 -0
  526. data/lib/datadog/tracing/contrib/sinatra/framework.rb +107 -0
  527. data/lib/datadog/tracing/contrib/sinatra/headers.rb +35 -0
  528. data/lib/datadog/tracing/contrib/sinatra/integration.rb +43 -0
  529. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +77 -0
  530. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +159 -0
  531. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +123 -0
  532. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +38 -0
  533. data/lib/datadog/tracing/contrib/sneakers/ext.rb +26 -0
  534. data/lib/datadog/tracing/contrib/sneakers/integration.rb +46 -0
  535. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +30 -0
  536. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +58 -0
  537. data/lib/datadog/tracing/contrib/status_code_matcher.rb +75 -0
  538. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +35 -0
  539. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +28 -0
  540. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +27 -0
  541. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +105 -0
  542. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +43 -0
  543. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +38 -0
  544. data/lib/datadog/tracing/contrib/utils/database.rb +31 -0
  545. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +111 -0
  546. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +99 -0
  547. data/lib/datadog/tracing/contrib.rb +76 -0
  548. data/lib/datadog/tracing/correlation.rb +100 -0
  549. data/lib/datadog/tracing/distributed/headers/b3.rb +55 -0
  550. data/lib/datadog/tracing/distributed/headers/b3_single.rb +67 -0
  551. data/lib/datadog/tracing/distributed/headers/datadog.rb +52 -0
  552. data/lib/datadog/tracing/distributed/headers/ext.rb +31 -0
  553. data/lib/datadog/tracing/distributed/helpers.rb +44 -0
  554. data/lib/datadog/tracing/distributed/parser.rb +70 -0
  555. data/lib/datadog/tracing/event.rb +77 -0
  556. data/lib/datadog/tracing/flush.rb +74 -0
  557. data/lib/datadog/tracing/metadata/analytics.rb +26 -0
  558. data/lib/datadog/tracing/metadata/errors.rb +24 -0
  559. data/lib/datadog/tracing/metadata/ext.rb +151 -0
  560. data/lib/datadog/tracing/metadata/tagging.rb +110 -0
  561. data/lib/datadog/tracing/metadata.rb +20 -0
  562. data/lib/datadog/tracing/pipeline/span_filter.rb +42 -0
  563. data/lib/datadog/tracing/pipeline/span_processor.rb +39 -0
  564. data/lib/datadog/tracing/pipeline.rb +65 -0
  565. data/lib/datadog/tracing/propagation/grpc.rb +88 -0
  566. data/lib/datadog/tracing/propagation/http.rb +109 -0
  567. data/lib/datadog/tracing/runtime/metrics.rb +19 -0
  568. data/lib/datadog/tracing/sampling/all_sampler.rb +25 -0
  569. data/lib/datadog/tracing/sampling/ext.rb +27 -0
  570. data/lib/datadog/tracing/sampling/matcher.rb +68 -0
  571. data/lib/datadog/tracing/sampling/priority_sampler.rb +113 -0
  572. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +97 -0
  573. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +41 -0
  574. data/lib/datadog/tracing/sampling/rate_limiter.rb +185 -0
  575. data/lib/datadog/tracing/sampling/rate_sampler.rb +55 -0
  576. data/lib/datadog/tracing/sampling/rule.rb +70 -0
  577. data/lib/datadog/tracing/sampling/rule_sampler.rb +133 -0
  578. data/lib/datadog/tracing/sampling/sampler.rb +44 -0
  579. data/lib/datadog/tracing/span.rb +212 -0
  580. data/lib/datadog/tracing/span_operation.rb +521 -0
  581. data/lib/datadog/tracing/sync_writer.rb +69 -0
  582. data/lib/datadog/tracing/trace_digest.rb +60 -0
  583. data/lib/datadog/tracing/trace_operation.rb +432 -0
  584. data/lib/datadog/tracing/trace_segment.rb +207 -0
  585. data/lib/datadog/tracing/tracer.rb +505 -0
  586. data/lib/datadog/tracing/workers/trace_writer.rb +195 -0
  587. data/lib/datadog/tracing/workers.rb +125 -0
  588. data/lib/datadog/tracing/writer.rb +180 -0
  589. data/lib/datadog/tracing.rb +142 -0
  590. data/lib/ddtrace/auto_instrument.rb +7 -1
  591. data/lib/ddtrace/auto_instrument_base.rb +2 -0
  592. data/lib/ddtrace/profiling/preload.rb +3 -2
  593. data/lib/ddtrace/transport/ext.rb +35 -0
  594. data/lib/ddtrace/transport/http/adapters/net.rb +17 -5
  595. data/lib/ddtrace/transport/http/adapters/registry.rb +2 -0
  596. data/lib/ddtrace/transport/http/adapters/test.rb +6 -2
  597. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +25 -12
  598. data/lib/ddtrace/transport/http/api/endpoint.rb +2 -0
  599. data/lib/ddtrace/transport/http/api/fallbacks.rb +2 -0
  600. data/lib/ddtrace/transport/http/api/instance.rb +2 -0
  601. data/lib/ddtrace/transport/http/api/map.rb +2 -0
  602. data/lib/ddtrace/transport/http/api/spec.rb +2 -0
  603. data/lib/ddtrace/transport/http/api.rb +6 -11
  604. data/lib/ddtrace/transport/http/builder.rb +15 -6
  605. data/lib/ddtrace/transport/http/client.rb +4 -1
  606. data/lib/ddtrace/transport/http/env.rb +2 -0
  607. data/lib/ddtrace/transport/http/response.rb +2 -0
  608. data/lib/ddtrace/transport/http/statistics.rb +2 -0
  609. data/lib/ddtrace/transport/http/traces.rb +4 -0
  610. data/lib/ddtrace/transport/http.rb +38 -36
  611. data/lib/ddtrace/transport/io/client.rb +3 -1
  612. data/lib/ddtrace/transport/io/response.rb +2 -0
  613. data/lib/ddtrace/transport/io/traces.rb +5 -1
  614. data/lib/ddtrace/transport/io.rb +4 -2
  615. data/lib/ddtrace/transport/parcel.rb +5 -0
  616. data/lib/ddtrace/transport/request.rb +2 -0
  617. data/lib/ddtrace/transport/response.rb +2 -0
  618. data/lib/ddtrace/transport/serializable_trace.rb +118 -0
  619. data/lib/ddtrace/transport/statistics.rb +7 -4
  620. data/lib/ddtrace/transport/trace_formatter.rb +187 -0
  621. data/lib/ddtrace/transport/traces.rb +18 -7
  622. data/lib/ddtrace/version.rb +15 -12
  623. data/lib/ddtrace.rb +9 -79
  624. metadata +591 -1012
  625. data/.circleci/config.yml +0 -870
  626. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -83
  627. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -83
  628. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -85
  629. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -83
  630. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -83
  631. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -83
  632. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -83
  633. data/.circleci/images/primary/Dockerfile-3.0.0 +0 -73
  634. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +0 -88
  635. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +0 -73
  636. data/.circleci/images/primary/Dockerfile-truffleruby-21.1.0 +0 -73
  637. data/.dockerignore +0 -0
  638. data/.env +0 -26
  639. data/.github/CODEOWNERS +0 -1
  640. data/.github/workflows/add-milestone-to-pull-requests.yml +0 -42
  641. data/.github/workflows/create-next-milestone.yml +0 -20
  642. data/.gitlab-ci.yml +0 -27
  643. data/.rspec +0 -1
  644. data/.rubocop.yml +0 -351
  645. data/.rubocop_todo.yml +0 -438
  646. data/.simplecov +0 -47
  647. data/.yardopts +0 -5
  648. data/Appraisals +0 -1323
  649. data/Gemfile +0 -69
  650. data/Rakefile +0 -939
  651. data/benchmarks/data/profiler-submission-marshal.gz +0 -0
  652. data/benchmarks/postgres_database.yml +0 -9
  653. data/benchmarks/profiler_sample_loop.rb +0 -69
  654. data/benchmarks/profiler_submission.rb +0 -93
  655. data/benchmarks/sidekiq_test.rb +0 -154
  656. data/docker-compose.yml +0 -414
  657. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +0 -79
  658. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +0 -1518
  659. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +0 -35
  660. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +0 -157
  661. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +0 -34
  662. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +0 -153
  663. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +0 -35
  664. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +0 -174
  665. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +0 -35
  666. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +0 -206
  667. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +0 -35
  668. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +0 -206
  669. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +0 -40
  670. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +0 -271
  671. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +0 -40
  672. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +0 -271
  673. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +0 -41
  674. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +0 -273
  675. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +0 -41
  676. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  677. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +0 -42
  678. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +0 -279
  679. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +0 -40
  680. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +0 -290
  681. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +0 -40
  682. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +0 -290
  683. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +0 -41
  684. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +0 -292
  685. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +0 -41
  686. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -297
  687. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +0 -40
  688. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +0 -287
  689. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +0 -40
  690. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +0 -287
  691. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +0 -41
  692. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +0 -289
  693. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +0 -41
  694. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  695. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +0 -42
  696. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +0 -295
  697. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +0 -36
  698. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +0 -180
  699. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +0 -36
  700. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +0 -180
  701. data/gemfiles/jruby_9.2.11.1_contrib.gemfile +0 -79
  702. data/gemfiles/jruby_9.2.11.1_contrib.gemfile.lock +0 -1518
  703. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile +0 -35
  704. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile.lock +0 -157
  705. data/gemfiles/jruby_9.2.11.1_core_old.gemfile +0 -34
  706. data/gemfiles/jruby_9.2.11.1_core_old.gemfile.lock +0 -153
  707. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile +0 -35
  708. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile.lock +0 -174
  709. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile +0 -35
  710. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile.lock +0 -206
  711. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile +0 -35
  712. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile.lock +0 -206
  713. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile +0 -40
  714. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile.lock +0 -271
  715. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile +0 -40
  716. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile.lock +0 -271
  717. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile +0 -41
  718. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile.lock +0 -273
  719. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile +0 -41
  720. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  721. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile +0 -42
  722. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile.lock +0 -279
  723. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile +0 -40
  724. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile.lock +0 -290
  725. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile +0 -40
  726. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile.lock +0 -290
  727. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile +0 -41
  728. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile.lock +0 -292
  729. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile +0 -41
  730. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile.lock +0 -297
  731. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile +0 -40
  732. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile.lock +0 -287
  733. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile +0 -40
  734. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile.lock +0 -287
  735. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile +0 -41
  736. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile.lock +0 -289
  737. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile +0 -41
  738. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  739. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile +0 -42
  740. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile.lock +0 -295
  741. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile +0 -36
  742. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile.lock +0 -180
  743. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile +0 -36
  744. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile.lock +0 -180
  745. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +0 -66
  746. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +0 -305
  747. data/gemfiles/ruby_2.1.10_core_old.gemfile +0 -33
  748. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +0 -118
  749. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +0 -39
  750. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +0 -196
  751. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +0 -40
  752. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  753. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +0 -42
  754. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +0 -215
  755. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +0 -39
  756. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +0 -204
  757. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +0 -41
  758. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +0 -223
  759. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +0 -40
  760. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  761. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +0 -38
  762. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +0 -218
  763. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +0 -38
  764. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +0 -218
  765. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +0 -40
  766. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +0 -237
  767. data/gemfiles/ruby_2.2.10_contrib.gemfile +0 -73
  768. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +0 -1450
  769. data/gemfiles/ruby_2.2.10_core_old.gemfile +0 -33
  770. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +0 -118
  771. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +0 -39
  772. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +0 -196
  773. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +0 -40
  774. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  775. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +0 -41
  776. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +0 -212
  777. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +0 -39
  778. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +0 -204
  779. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +0 -41
  780. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +0 -223
  781. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +0 -40
  782. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  783. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +0 -38
  784. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +0 -218
  785. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +0 -38
  786. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +0 -218
  787. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +0 -40
  788. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +0 -237
  789. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +0 -40
  790. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +0 -229
  791. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +0 -38
  792. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +0 -234
  793. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +0 -38
  794. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +0 -234
  795. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +0 -39
  796. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +0 -236
  797. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +0 -39
  798. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  799. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +0 -40
  800. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +0 -245
  801. data/gemfiles/ruby_2.3.8_contrib.gemfile +0 -73
  802. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +0 -1459
  803. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +0 -34
  804. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +0 -127
  805. data/gemfiles/ruby_2.3.8_core_old.gemfile +0 -33
  806. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +0 -123
  807. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +0 -34
  808. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +0 -144
  809. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +0 -34
  810. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +0 -174
  811. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +0 -39
  812. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +0 -201
  813. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +0 -40
  814. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +0 -210
  815. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +0 -41
  816. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +0 -217
  817. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +0 -39
  818. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +0 -209
  819. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +0 -41
  820. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +0 -228
  821. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +0 -40
  822. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +0 -218
  823. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +0 -38
  824. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +0 -223
  825. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +0 -38
  826. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +0 -223
  827. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +0 -40
  828. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +0 -242
  829. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +0 -40
  830. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +0 -234
  831. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +0 -37
  832. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +0 -234
  833. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +0 -37
  834. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +0 -234
  835. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +0 -38
  836. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +0 -236
  837. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +0 -38
  838. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  839. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +0 -39
  840. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +0 -245
  841. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +0 -35
  842. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +0 -150
  843. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +0 -35
  844. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +0 -150
  845. data/gemfiles/ruby_2.4.6_contrib.gemfile +0 -78
  846. data/gemfiles/ruby_2.4.6_contrib.gemfile.lock +0 -1513
  847. data/gemfiles/ruby_2.4.6_contrib_old.gemfile +0 -38
  848. data/gemfiles/ruby_2.4.6_contrib_old.gemfile.lock +0 -155
  849. data/gemfiles/ruby_2.4.6_core_old.gemfile +0 -37
  850. data/gemfiles/ruby_2.4.6_core_old.gemfile.lock +0 -151
  851. data/gemfiles/ruby_2.4.6_cucumber3.gemfile +0 -38
  852. data/gemfiles/ruby_2.4.6_cucumber3.gemfile.lock +0 -172
  853. data/gemfiles/ruby_2.4.6_cucumber4.gemfile +0 -38
  854. data/gemfiles/ruby_2.4.6_cucumber4.gemfile.lock +0 -202
  855. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile +0 -41
  856. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile.lock +0 -262
  857. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile +0 -41
  858. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile.lock +0 -262
  859. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile +0 -42
  860. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile.lock +0 -264
  861. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile +0 -42
  862. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -264
  863. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile +0 -43
  864. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile.lock +0 -273
  865. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile +0 -39
  866. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile.lock +0 -178
  867. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile +0 -39
  868. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile.lock +0 -178
  869. data/gemfiles/ruby_2.5.6_contrib.gemfile +0 -83
  870. data/gemfiles/ruby_2.5.6_contrib.gemfile.lock +0 -1526
  871. data/gemfiles/ruby_2.5.6_contrib_old.gemfile +0 -39
  872. data/gemfiles/ruby_2.5.6_contrib_old.gemfile.lock +0 -165
  873. data/gemfiles/ruby_2.5.6_core_old.gemfile +0 -38
  874. data/gemfiles/ruby_2.5.6_core_old.gemfile.lock +0 -161
  875. data/gemfiles/ruby_2.5.6_cucumber3.gemfile +0 -39
  876. data/gemfiles/ruby_2.5.6_cucumber3.gemfile.lock +0 -182
  877. data/gemfiles/ruby_2.5.6_cucumber4.gemfile +0 -39
  878. data/gemfiles/ruby_2.5.6_cucumber4.gemfile.lock +0 -214
  879. data/gemfiles/ruby_2.5.6_cucumber5.gemfile +0 -39
  880. data/gemfiles/ruby_2.5.6_cucumber5.gemfile.lock +0 -214
  881. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile +0 -44
  882. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile.lock +0 -276
  883. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile +0 -44
  884. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile.lock +0 -276
  885. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile +0 -45
  886. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile.lock +0 -278
  887. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile +0 -45
  888. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  889. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile +0 -46
  890. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile.lock +0 -284
  891. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile +0 -44
  892. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile.lock +0 -295
  893. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile +0 -44
  894. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile.lock +0 -295
  895. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile +0 -45
  896. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile.lock +0 -297
  897. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile +0 -45
  898. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile.lock +0 -302
  899. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile +0 -44
  900. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile.lock +0 -292
  901. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile +0 -44
  902. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile.lock +0 -292
  903. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile +0 -45
  904. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile.lock +0 -294
  905. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile +0 -45
  906. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  907. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile +0 -46
  908. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile.lock +0 -300
  909. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile +0 -40
  910. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile.lock +0 -188
  911. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile +0 -40
  912. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile.lock +0 -188
  913. data/gemfiles/ruby_2.6.4_contrib.gemfile +0 -79
  914. data/gemfiles/ruby_2.6.4_contrib.gemfile.lock +0 -1524
  915. data/gemfiles/ruby_2.6.4_contrib_old.gemfile +0 -39
  916. data/gemfiles/ruby_2.6.4_contrib_old.gemfile.lock +0 -167
  917. data/gemfiles/ruby_2.6.4_core_old.gemfile +0 -38
  918. data/gemfiles/ruby_2.6.4_core_old.gemfile.lock +0 -163
  919. data/gemfiles/ruby_2.6.4_cucumber3.gemfile +0 -39
  920. data/gemfiles/ruby_2.6.4_cucumber3.gemfile.lock +0 -184
  921. data/gemfiles/ruby_2.6.4_cucumber4.gemfile +0 -39
  922. data/gemfiles/ruby_2.6.4_cucumber4.gemfile.lock +0 -216
  923. data/gemfiles/ruby_2.6.4_cucumber5.gemfile +0 -39
  924. data/gemfiles/ruby_2.6.4_cucumber5.gemfile.lock +0 -216
  925. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile +0 -42
  926. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile.lock +0 -276
  927. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile +0 -42
  928. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile.lock +0 -276
  929. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile +0 -43
  930. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile.lock +0 -278
  931. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile +0 -43
  932. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  933. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile +0 -44
  934. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile.lock +0 -284
  935. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile +0 -42
  936. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile.lock +0 -295
  937. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile +0 -42
  938. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile.lock +0 -295
  939. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile +0 -43
  940. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile.lock +0 -297
  941. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile +0 -43
  942. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile.lock +0 -302
  943. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile +0 -42
  944. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile.lock +0 -292
  945. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile +0 -42
  946. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile.lock +0 -292
  947. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile +0 -43
  948. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile.lock +0 -294
  949. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile +0 -43
  950. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  951. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile +0 -44
  952. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile.lock +0 -300
  953. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile +0 -40
  954. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile.lock +0 -190
  955. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile +0 -40
  956. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile.lock +0 -190
  957. data/gemfiles/ruby_2.7.0_contrib.gemfile +0 -78
  958. data/gemfiles/ruby_2.7.0_contrib.gemfile.lock +0 -1523
  959. data/gemfiles/ruby_2.7.0_contrib_old.gemfile +0 -39
  960. data/gemfiles/ruby_2.7.0_contrib_old.gemfile.lock +0 -167
  961. data/gemfiles/ruby_2.7.0_core_old.gemfile +0 -38
  962. data/gemfiles/ruby_2.7.0_core_old.gemfile.lock +0 -163
  963. data/gemfiles/ruby_2.7.0_cucumber3.gemfile +0 -39
  964. data/gemfiles/ruby_2.7.0_cucumber3.gemfile.lock +0 -184
  965. data/gemfiles/ruby_2.7.0_cucumber4.gemfile +0 -39
  966. data/gemfiles/ruby_2.7.0_cucumber4.gemfile.lock +0 -216
  967. data/gemfiles/ruby_2.7.0_cucumber5.gemfile +0 -39
  968. data/gemfiles/ruby_2.7.0_cucumber5.gemfile.lock +0 -216
  969. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile +0 -42
  970. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +0 -276
  971. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +0 -42
  972. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +0 -276
  973. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile +0 -44
  974. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile.lock +0 -295
  975. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile +0 -44
  976. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -295
  977. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile +0 -44
  978. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile.lock +0 -284
  979. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile +0 -42
  980. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +0 -295
  981. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile +0 -42
  982. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +0 -295
  983. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile +0 -43
  984. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +0 -297
  985. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile +0 -43
  986. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  987. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile +0 -42
  988. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +0 -292
  989. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +0 -42
  990. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +0 -292
  991. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile +0 -44
  992. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile.lock +0 -311
  993. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile +0 -44
  994. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -311
  995. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile +0 -44
  996. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile.lock +0 -300
  997. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile +0 -40
  998. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +0 -190
  999. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile +0 -40
  1000. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +0 -190
  1001. data/gemfiles/ruby_3.0.0_contrib.gemfile +0 -78
  1002. data/gemfiles/ruby_3.0.0_contrib.gemfile.lock +0 -1540
  1003. data/gemfiles/ruby_3.0.0_core_old.gemfile +0 -39
  1004. data/gemfiles/ruby_3.0.0_core_old.gemfile.lock +0 -165
  1005. data/gemfiles/ruby_3.0.0_cucumber3.gemfile +0 -40
  1006. data/gemfiles/ruby_3.0.0_cucumber3.gemfile.lock +0 -186
  1007. data/gemfiles/ruby_3.0.0_cucumber4.gemfile +0 -40
  1008. data/gemfiles/ruby_3.0.0_cucumber4.gemfile.lock +0 -218
  1009. data/gemfiles/ruby_3.0.0_cucumber5.gemfile +0 -40
  1010. data/gemfiles/ruby_3.0.0_cucumber5.gemfile.lock +0 -218
  1011. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile +0 -43
  1012. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile.lock +0 -295
  1013. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile +0 -43
  1014. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile.lock +0 -295
  1015. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile +0 -44
  1016. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile.lock +0 -297
  1017. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile +0 -44
  1018. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  1019. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile +0 -41
  1020. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile.lock +0 -192
  1021. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile +0 -41
  1022. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile.lock +0 -192
  1023. data/integration/README.md +0 -67
  1024. data/integration/apps/rack/.dockerignore +0 -1
  1025. data/integration/apps/rack/.envrc.sample +0 -1
  1026. data/integration/apps/rack/.gitignore +0 -4
  1027. data/integration/apps/rack/.rspec +0 -1
  1028. data/integration/apps/rack/Dockerfile +0 -28
  1029. data/integration/apps/rack/Dockerfile-ci +0 -11
  1030. data/integration/apps/rack/Gemfile +0 -24
  1031. data/integration/apps/rack/README.md +0 -93
  1032. data/integration/apps/rack/app/acme.rb +0 -80
  1033. data/integration/apps/rack/app/datadog.rb +0 -17
  1034. data/integration/apps/rack/bin/run +0 -22
  1035. data/integration/apps/rack/bin/setup +0 -17
  1036. data/integration/apps/rack/bin/test +0 -24
  1037. data/integration/apps/rack/config/puma.rb +0 -14
  1038. data/integration/apps/rack/config/unicorn.rb +0 -23
  1039. data/integration/apps/rack/config.ru +0 -6
  1040. data/integration/apps/rack/docker-compose.ci.yml +0 -62
  1041. data/integration/apps/rack/docker-compose.yml +0 -78
  1042. data/integration/apps/rack/script/build-images +0 -38
  1043. data/integration/apps/rack/script/ci +0 -51
  1044. data/integration/apps/rack/spec/integration/basic_spec.rb +0 -10
  1045. data/integration/apps/rack/spec/spec_helper.rb +0 -16
  1046. data/integration/apps/rack/spec/support/integration_helper.rb +0 -22
  1047. data/integration/apps/rails-five/.dockerignore +0 -1
  1048. data/integration/apps/rails-five/.env +0 -3
  1049. data/integration/apps/rails-five/.envrc.sample +0 -1
  1050. data/integration/apps/rails-five/.gitignore +0 -30
  1051. data/integration/apps/rails-five/Dockerfile +0 -25
  1052. data/integration/apps/rails-five/Dockerfile-ci +0 -11
  1053. data/integration/apps/rails-five/Gemfile +0 -104
  1054. data/integration/apps/rails-five/README.md +0 -94
  1055. data/integration/apps/rails-five/Rakefile +0 -6
  1056. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +0 -4
  1057. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +0 -4
  1058. data/integration/apps/rails-five/app/controllers/application_controller.rb +0 -2
  1059. data/integration/apps/rails-five/app/controllers/basic_controller.rb +0 -36
  1060. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  1061. data/integration/apps/rails-five/app/controllers/health_controller.rb +0 -9
  1062. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +0 -12
  1063. data/integration/apps/rails-five/app/jobs/application_job.rb +0 -2
  1064. data/integration/apps/rails-five/app/jobs/test_job.rb +0 -12
  1065. data/integration/apps/rails-five/app/mailers/application_mailer.rb +0 -4
  1066. data/integration/apps/rails-five/app/models/application_record.rb +0 -3
  1067. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  1068. data/integration/apps/rails-five/app/models/test.rb +0 -2
  1069. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +0 -13
  1070. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +0 -1
  1071. data/integration/apps/rails-five/bin/bundle +0 -3
  1072. data/integration/apps/rails-five/bin/rails +0 -9
  1073. data/integration/apps/rails-five/bin/rake +0 -9
  1074. data/integration/apps/rails-five/bin/run +0 -24
  1075. data/integration/apps/rails-five/bin/setup +0 -27
  1076. data/integration/apps/rails-five/bin/spring +0 -17
  1077. data/integration/apps/rails-five/bin/test +0 -21
  1078. data/integration/apps/rails-five/bin/update +0 -28
  1079. data/integration/apps/rails-five/config/application.rb +0 -97
  1080. data/integration/apps/rails-five/config/boot.rb +0 -4
  1081. data/integration/apps/rails-five/config/cable.yml +0 -10
  1082. data/integration/apps/rails-five/config/credentials.yml.enc +0 -1
  1083. data/integration/apps/rails-five/config/database.yml +0 -28
  1084. data/integration/apps/rails-five/config/environment.rb +0 -5
  1085. data/integration/apps/rails-five/config/environments/development.rb +0 -51
  1086. data/integration/apps/rails-five/config/environments/production.rb +0 -82
  1087. data/integration/apps/rails-five/config/environments/test.rb +0 -43
  1088. data/integration/apps/rails-five/config/initializers/datadog.rb +0 -18
  1089. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +0 -4
  1090. data/integration/apps/rails-five/config/initializers/resque.rb +0 -4
  1091. data/integration/apps/rails-five/config/initializers/rollbar.rb +0 -5
  1092. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +0 -14
  1093. data/integration/apps/rails-five/config/locales/en.yml +0 -33
  1094. data/integration/apps/rails-five/config/puma.rb +0 -24
  1095. data/integration/apps/rails-five/config/routes.rb +0 -11
  1096. data/integration/apps/rails-five/config/spring.rb +0 -6
  1097. data/integration/apps/rails-five/config/unicorn.rb +0 -29
  1098. data/integration/apps/rails-five/config.ru +0 -5
  1099. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +0 -11
  1100. data/integration/apps/rails-five/db/schema.rb +0 -23
  1101. data/integration/apps/rails-five/db/seeds.rb +0 -7
  1102. data/integration/apps/rails-five/docker-compose.ci.yml +0 -98
  1103. data/integration/apps/rails-five/docker-compose.yml +0 -100
  1104. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  1105. data/integration/apps/rails-five/log/.keep +0 -0
  1106. data/integration/apps/rails-five/public/robots.txt +0 -1
  1107. data/integration/apps/rails-five/script/build-images +0 -35
  1108. data/integration/apps/rails-five/script/ci +0 -51
  1109. data/integration/apps/rails-five/spec/integration/basic_spec.rb +0 -10
  1110. data/integration/apps/rails-five/spec/spec_helper.rb +0 -16
  1111. data/integration/apps/rails-five/spec/support/integration_helper.rb +0 -22
  1112. data/integration/apps/rails-five/storage/.keep +0 -0
  1113. data/integration/apps/rails-five/tmp/.keep +0 -0
  1114. data/integration/apps/rails-five/vendor/.keep +0 -0
  1115. data/integration/apps/rspec/.dockerignore +0 -1
  1116. data/integration/apps/rspec/.envrc.sample +0 -1
  1117. data/integration/apps/rspec/.gitignore +0 -2
  1118. data/integration/apps/rspec/.rspec +0 -1
  1119. data/integration/apps/rspec/Dockerfile +0 -25
  1120. data/integration/apps/rspec/Dockerfile-ci +0 -11
  1121. data/integration/apps/rspec/Gemfile +0 -14
  1122. data/integration/apps/rspec/README.md +0 -70
  1123. data/integration/apps/rspec/agent.yaml +0 -3
  1124. data/integration/apps/rspec/app/datadog.rb +0 -13
  1125. data/integration/apps/rspec/app/fibonacci.rb +0 -30
  1126. data/integration/apps/rspec/bin/run +0 -20
  1127. data/integration/apps/rspec/bin/setup +0 -17
  1128. data/integration/apps/rspec/bin/test +0 -21
  1129. data/integration/apps/rspec/docker-compose.ci.yml +0 -51
  1130. data/integration/apps/rspec/docker-compose.yml +0 -63
  1131. data/integration/apps/rspec/script/build-images +0 -37
  1132. data/integration/apps/rspec/script/ci +0 -53
  1133. data/integration/apps/rspec/spec/fibonacci_spec.rb +0 -16
  1134. data/integration/apps/rspec/spec/rspec_spec.rb +0 -58
  1135. data/integration/apps/rspec/spec/spec_helper.rb +0 -24
  1136. data/integration/apps/ruby/.dockerignore +0 -1
  1137. data/integration/apps/ruby/.envrc.sample +0 -1
  1138. data/integration/apps/ruby/.gitignore +0 -2
  1139. data/integration/apps/ruby/Dockerfile +0 -25
  1140. data/integration/apps/ruby/Dockerfile-ci +0 -11
  1141. data/integration/apps/ruby/Gemfile +0 -11
  1142. data/integration/apps/ruby/README.md +0 -70
  1143. data/integration/apps/ruby/agent.yaml +0 -3
  1144. data/integration/apps/ruby/app/datadog.rb +0 -13
  1145. data/integration/apps/ruby/app/fibonacci.rb +0 -58
  1146. data/integration/apps/ruby/bin/run +0 -20
  1147. data/integration/apps/ruby/bin/setup +0 -17
  1148. data/integration/apps/ruby/bin/test +0 -21
  1149. data/integration/apps/ruby/docker-compose.ci.yml +0 -51
  1150. data/integration/apps/ruby/docker-compose.yml +0 -63
  1151. data/integration/apps/ruby/script/build-images +0 -38
  1152. data/integration/apps/ruby/script/ci +0 -51
  1153. data/integration/images/agent/Dockerfile +0 -2
  1154. data/integration/images/agent/agent.yaml +0 -3
  1155. data/integration/images/include/datadog/analyzer.rb +0 -71
  1156. data/integration/images/include/datadog/demo_env.rb +0 -101
  1157. data/integration/images/include/http-health-check +0 -33
  1158. data/integration/images/ruby/2.1/Dockerfile +0 -54
  1159. data/integration/images/ruby/2.2/Dockerfile +0 -54
  1160. data/integration/images/ruby/2.3/Dockerfile +0 -70
  1161. data/integration/images/ruby/2.4/Dockerfile +0 -54
  1162. data/integration/images/ruby/2.5/Dockerfile +0 -54
  1163. data/integration/images/ruby/2.6/Dockerfile +0 -54
  1164. data/integration/images/ruby/2.7/Dockerfile +0 -54
  1165. data/integration/images/ruby/3.0/Dockerfile +0 -54
  1166. data/integration/images/wrk/Dockerfile +0 -33
  1167. data/integration/images/wrk/scripts/entrypoint.sh +0 -17
  1168. data/integration/images/wrk/scripts/scenarios/basic/default.lua +0 -1
  1169. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +0 -1
  1170. data/integration/script/build-images +0 -43
  1171. data/lib/datadog/ci/context_flush.rb +0 -28
  1172. data/lib/ddtrace/analytics.rb +0 -38
  1173. data/lib/ddtrace/buffer.rb +0 -326
  1174. data/lib/ddtrace/chunker.rb +0 -34
  1175. data/lib/ddtrace/configuration/agent_settings_resolver.rb +0 -230
  1176. data/lib/ddtrace/configuration/base.rb +0 -81
  1177. data/lib/ddtrace/configuration/components.rb +0 -249
  1178. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -24
  1179. data/lib/ddtrace/configuration/option.rb +0 -64
  1180. data/lib/ddtrace/configuration/option_definition.rb +0 -121
  1181. data/lib/ddtrace/configuration/option_definition_set.rb +0 -18
  1182. data/lib/ddtrace/configuration/option_set.rb +0 -6
  1183. data/lib/ddtrace/configuration/options.rb +0 -111
  1184. data/lib/ddtrace/configuration/pin_setup.rb +0 -31
  1185. data/lib/ddtrace/configuration/settings.rb +0 -388
  1186. data/lib/ddtrace/configuration.rb +0 -176
  1187. data/lib/ddtrace/context.rb +0 -325
  1188. data/lib/ddtrace/context_flush.rb +0 -81
  1189. data/lib/ddtrace/context_provider.rb +0 -61
  1190. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -30
  1191. data/lib/ddtrace/contrib/action_cable/event.rb +0 -66
  1192. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -49
  1193. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -55
  1194. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -50
  1195. data/lib/ddtrace/contrib/action_cable/events.rb +0 -33
  1196. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -26
  1197. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -31
  1198. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -45
  1199. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -27
  1200. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -146
  1201. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -25
  1202. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -32
  1203. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -19
  1204. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -45
  1205. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -23
  1206. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -36
  1207. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -31
  1208. data/lib/ddtrace/contrib/action_view/event.rb +0 -35
  1209. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -46
  1210. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -49
  1211. data/lib/ddtrace/contrib/action_view/events.rb +0 -30
  1212. data/lib/ddtrace/contrib/action_view/ext.rb +0 -20
  1213. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -74
  1214. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -167
  1215. data/lib/ddtrace/contrib/action_view/integration.rb +0 -52
  1216. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -47
  1217. data/lib/ddtrace/contrib/action_view/utils.rb +0 -32
  1218. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -30
  1219. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -68
  1220. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -32
  1221. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -35
  1222. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -30
  1223. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -20
  1224. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -40
  1225. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -29
  1226. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +0 -30
  1227. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -134
  1228. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -35
  1229. data/lib/ddtrace/contrib/active_record/event.rb +0 -30
  1230. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -60
  1231. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -68
  1232. data/lib/ddtrace/contrib/active_record/events.rb +0 -30
  1233. data/lib/ddtrace/contrib/active_record/ext.rb +0 -24
  1234. data/lib/ddtrace/contrib/active_record/integration.rb +0 -53
  1235. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -23
  1236. data/lib/ddtrace/contrib/active_record/utils.rb +0 -123
  1237. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -258
  1238. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -69
  1239. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -43
  1240. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -30
  1241. data/lib/ddtrace/contrib/active_support/ext.rb +0 -27
  1242. data/lib/ddtrace/contrib/active_support/integration.rb +0 -46
  1243. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -75
  1244. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -67
  1245. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -163
  1246. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -23
  1247. data/lib/ddtrace/contrib/analytics.rb +0 -24
  1248. data/lib/ddtrace/contrib/auto_instrument.rb +0 -48
  1249. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -30
  1250. data/lib/ddtrace/contrib/aws/ext.rb +0 -23
  1251. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -90
  1252. data/lib/ddtrace/contrib/aws/integration.rb +0 -42
  1253. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -56
  1254. data/lib/ddtrace/contrib/aws/patcher.rb +0 -53
  1255. data/lib/ddtrace/contrib/aws/services.rb +0 -118
  1256. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -20
  1257. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -41
  1258. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -12
  1259. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -23
  1260. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -38
  1261. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -28
  1262. data/lib/ddtrace/contrib/configurable.rb +0 -102
  1263. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -81
  1264. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -39
  1265. data/lib/ddtrace/contrib/configuration/settings.rb +0 -55
  1266. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -30
  1267. data/lib/ddtrace/contrib/dalli/ext.rb +0 -20
  1268. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -54
  1269. data/lib/ddtrace/contrib/dalli/integration.rb +0 -38
  1270. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -25
  1271. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -22
  1272. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -32
  1273. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -23
  1274. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -38
  1275. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -28
  1276. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -84
  1277. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -31
  1278. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -22
  1279. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -39
  1280. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -122
  1281. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -81
  1282. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -32
  1283. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -151
  1284. data/lib/ddtrace/contrib/ethon/ext.rb +0 -19
  1285. data/lib/ddtrace/contrib/ethon/integration.rb +0 -43
  1286. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -84
  1287. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -25
  1288. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -33
  1289. data/lib/ddtrace/contrib/excon/ext.rb +0 -17
  1290. data/lib/ddtrace/contrib/excon/integration.rb +0 -43
  1291. data/lib/ddtrace/contrib/excon/middleware.rb +0 -163
  1292. data/lib/ddtrace/contrib/excon/patcher.rb +0 -27
  1293. data/lib/ddtrace/contrib/extensions.rb +0 -143
  1294. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -38
  1295. data/lib/ddtrace/contrib/faraday/connection.rb +0 -18
  1296. data/lib/ddtrace/contrib/faraday/ext.rb +0 -17
  1297. data/lib/ddtrace/contrib/faraday/integration.rb +0 -43
  1298. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -85
  1299. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -53
  1300. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -18
  1301. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -38
  1302. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -236
  1303. data/lib/ddtrace/contrib/grape/ext.rb +0 -23
  1304. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -33
  1305. data/lib/ddtrace/contrib/grape/integration.rb +0 -39
  1306. data/lib/ddtrace/contrib/grape/patcher.rb +0 -31
  1307. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -32
  1308. data/lib/ddtrace/contrib/graphql/ext.rb +0 -16
  1309. data/lib/ddtrace/contrib/graphql/integration.rb +0 -39
  1310. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -60
  1311. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -30
  1312. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -58
  1313. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -81
  1314. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -74
  1315. data/lib/ddtrace/contrib/grpc/ext.rb +0 -18
  1316. data/lib/ddtrace/contrib/grpc/integration.rb +0 -38
  1317. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -49
  1318. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -32
  1319. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -37
  1320. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -32
  1321. data/lib/ddtrace/contrib/http/ext.rb +0 -17
  1322. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -179
  1323. data/lib/ddtrace/contrib/http/integration.rb +0 -45
  1324. data/lib/ddtrace/contrib/http/patcher.rb +0 -26
  1325. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -10
  1326. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +0 -32
  1327. data/lib/ddtrace/contrib/httpclient/ext.rb +0 -17
  1328. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +0 -147
  1329. data/lib/ddtrace/contrib/httpclient/integration.rb +0 -43
  1330. data/lib/ddtrace/contrib/httpclient/patcher.rb +0 -38
  1331. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +0 -32
  1332. data/lib/ddtrace/contrib/httprb/ext.rb +0 -17
  1333. data/lib/ddtrace/contrib/httprb/instrumentation.rb +0 -157
  1334. data/lib/ddtrace/contrib/httprb/integration.rb +0 -43
  1335. data/lib/ddtrace/contrib/httprb/patcher.rb +0 -38
  1336. data/lib/ddtrace/contrib/integration.rb +0 -16
  1337. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +0 -30
  1338. data/lib/ddtrace/contrib/kafka/consumer_event.rb +0 -14
  1339. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +0 -14
  1340. data/lib/ddtrace/contrib/kafka/event.rb +0 -51
  1341. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +0 -34
  1342. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +0 -41
  1343. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +0 -39
  1344. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +0 -39
  1345. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +0 -29
  1346. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +0 -29
  1347. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +0 -29
  1348. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +0 -32
  1349. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +0 -35
  1350. data/lib/ddtrace/contrib/kafka/events.rb +0 -44
  1351. data/lib/ddtrace/contrib/kafka/ext.rb +0 -41
  1352. data/lib/ddtrace/contrib/kafka/integration.rb +0 -39
  1353. data/lib/ddtrace/contrib/kafka/patcher.rb +0 -26
  1354. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -33
  1355. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -23
  1356. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -69
  1357. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -38
  1358. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -68
  1359. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -31
  1360. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -111
  1361. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -30
  1362. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -18
  1363. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -64
  1364. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -38
  1365. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -27
  1366. data/lib/ddtrace/contrib/patchable.rb +0 -70
  1367. data/lib/ddtrace/contrib/patcher.rb +0 -65
  1368. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -30
  1369. data/lib/ddtrace/contrib/presto/ext.rb +0 -28
  1370. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -110
  1371. data/lib/ddtrace/contrib/presto/integration.rb +0 -38
  1372. data/lib/ddtrace/contrib/presto/patcher.rb +0 -33
  1373. data/lib/ddtrace/contrib/qless/configuration/settings.rb +0 -35
  1374. data/lib/ddtrace/contrib/qless/ext.rb +0 -20
  1375. data/lib/ddtrace/contrib/qless/integration.rb +0 -38
  1376. data/lib/ddtrace/contrib/qless/patcher.rb +0 -33
  1377. data/lib/ddtrace/contrib/qless/qless_job.rb +0 -73
  1378. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +0 -33
  1379. data/lib/ddtrace/contrib/que/configuration/settings.rb +0 -43
  1380. data/lib/ddtrace/contrib/que/ext.rb +0 -30
  1381. data/lib/ddtrace/contrib/que/integration.rb +0 -42
  1382. data/lib/ddtrace/contrib/que/patcher.rb +0 -24
  1383. data/lib/ddtrace/contrib/que/tracer.rb +0 -57
  1384. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -30
  1385. data/lib/ddtrace/contrib/racecar/event.rb +0 -76
  1386. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -27
  1387. data/lib/ddtrace/contrib/racecar/events/consume.rb +0 -27
  1388. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -27
  1389. data/lib/ddtrace/contrib/racecar/events.rb +0 -32
  1390. data/lib/ddtrace/contrib/racecar/ext.rb +0 -25
  1391. data/lib/ddtrace/contrib/racecar/integration.rb +0 -39
  1392. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -26
  1393. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -46
  1394. data/lib/ddtrace/contrib/rack/ext.rb +0 -21
  1395. data/lib/ddtrace/contrib/rack/integration.rb +0 -45
  1396. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -287
  1397. data/lib/ddtrace/contrib/rack/patcher.rb +0 -105
  1398. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -44
  1399. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +0 -10
  1400. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -93
  1401. data/lib/ddtrace/contrib/rails/ext.rb +0 -17
  1402. data/lib/ddtrace/contrib/rails/framework.rb +0 -124
  1403. data/lib/ddtrace/contrib/rails/integration.rb +0 -44
  1404. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -81
  1405. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -43
  1406. data/lib/ddtrace/contrib/rails/patcher.rb +0 -107
  1407. data/lib/ddtrace/contrib/rails/railtie.rb +0 -17
  1408. data/lib/ddtrace/contrib/rails/utils.rb +0 -24
  1409. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -31
  1410. data/lib/ddtrace/contrib/rake/ext.rb +0 -21
  1411. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -90
  1412. data/lib/ddtrace/contrib/rake/integration.rb +0 -38
  1413. data/lib/ddtrace/contrib/rake/patcher.rb +0 -30
  1414. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -45
  1415. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -35
  1416. data/lib/ddtrace/contrib/redis/ext.rb +0 -22
  1417. data/lib/ddtrace/contrib/redis/integration.rb +0 -42
  1418. data/lib/ddtrace/contrib/redis/patcher.rb +0 -114
  1419. data/lib/ddtrace/contrib/redis/quantize.rb +0 -75
  1420. data/lib/ddtrace/contrib/redis/tags.rb +0 -46
  1421. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -158
  1422. data/lib/ddtrace/contrib/registerable.rb +0 -33
  1423. data/lib/ddtrace/contrib/registry.rb +0 -42
  1424. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -48
  1425. data/lib/ddtrace/contrib/resque/ext.rb +0 -17
  1426. data/lib/ddtrace/contrib/resque/integration.rb +0 -47
  1427. data/lib/ddtrace/contrib/resque/patcher.rb +0 -29
  1428. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -103
  1429. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -31
  1430. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -17
  1431. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -38
  1432. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -23
  1433. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -91
  1434. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -28
  1435. data/lib/ddtrace/contrib/sequel/database.rb +0 -63
  1436. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -63
  1437. data/lib/ddtrace/contrib/sequel/ext.rb +0 -19
  1438. data/lib/ddtrace/contrib/sequel/integration.rb +0 -38
  1439. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -33
  1440. data/lib/ddtrace/contrib/sequel/utils.rb +0 -74
  1441. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -31
  1442. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -21
  1443. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -39
  1444. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -24
  1445. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -55
  1446. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -43
  1447. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -37
  1448. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -27
  1449. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -38
  1450. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -41
  1451. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -65
  1452. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -44
  1453. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -39
  1454. data/lib/ddtrace/contrib/sinatra/env.rb +0 -57
  1455. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -27
  1456. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -29
  1457. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -38
  1458. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -28
  1459. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -127
  1460. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -105
  1461. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +0 -33
  1462. data/lib/ddtrace/contrib/sneakers/ext.rb +0 -22
  1463. data/lib/ddtrace/contrib/sneakers/integration.rb +0 -41
  1464. data/lib/ddtrace/contrib/sneakers/patcher.rb +0 -24
  1465. data/lib/ddtrace/contrib/sneakers/tracer.rb +0 -53
  1466. data/lib/ddtrace/contrib/status_code_matcher.rb +0 -69
  1467. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -30
  1468. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -24
  1469. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -21
  1470. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -88
  1471. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -38
  1472. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -42
  1473. data/lib/ddtrace/correlation.rb +0 -39
  1474. data/lib/ddtrace/diagnostics/environment_logger.rb +0 -279
  1475. data/lib/ddtrace/diagnostics/health.rb +0 -33
  1476. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -44
  1477. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -56
  1478. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -42
  1479. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -71
  1480. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -43
  1481. data/lib/ddtrace/encoding.rb +0 -69
  1482. data/lib/ddtrace/environment.rb +0 -41
  1483. data/lib/ddtrace/error.rb +0 -96
  1484. data/lib/ddtrace/event.rb +0 -52
  1485. data/lib/ddtrace/ext/analytics.rb +0 -12
  1486. data/lib/ddtrace/ext/app_types.rb +0 -11
  1487. data/lib/ddtrace/ext/correlation.rb +0 -11
  1488. data/lib/ddtrace/ext/diagnostics.rb +0 -36
  1489. data/lib/ddtrace/ext/distributed.rb +0 -39
  1490. data/lib/ddtrace/ext/environment.rb +0 -16
  1491. data/lib/ddtrace/ext/errors.rb +0 -10
  1492. data/lib/ddtrace/ext/forced_tracing.rb +0 -25
  1493. data/lib/ddtrace/ext/git.rb +0 -11
  1494. data/lib/ddtrace/ext/http.rb +0 -46
  1495. data/lib/ddtrace/ext/integration.rb +0 -8
  1496. data/lib/ddtrace/ext/manual_tracing.rb +0 -9
  1497. data/lib/ddtrace/ext/metrics.rb +0 -15
  1498. data/lib/ddtrace/ext/net.rb +0 -10
  1499. data/lib/ddtrace/ext/priority.rb +0 -16
  1500. data/lib/ddtrace/ext/profiling.rb +0 -53
  1501. data/lib/ddtrace/ext/runtime.rb +0 -30
  1502. data/lib/ddtrace/ext/sampling.rb +0 -16
  1503. data/lib/ddtrace/ext/sql.rb +0 -8
  1504. data/lib/ddtrace/ext/test.rb +0 -8
  1505. data/lib/ddtrace/ext/transport.rb +0 -20
  1506. data/lib/ddtrace/forced_tracing.rb +0 -38
  1507. data/lib/ddtrace/logger.rb +0 -40
  1508. data/lib/ddtrace/metrics.rb +0 -255
  1509. data/lib/ddtrace/opentelemetry/extensions.rb +0 -13
  1510. data/lib/ddtrace/opentelemetry/span.rb +0 -33
  1511. data/lib/ddtrace/opentracer/binary_propagator.rb +0 -24
  1512. data/lib/ddtrace/opentracer/carrier.rb +0 -6
  1513. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -55
  1514. data/lib/ddtrace/opentracer/global_tracer.rb +0 -15
  1515. data/lib/ddtrace/opentracer/propagator.rb +0 -22
  1516. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -60
  1517. data/lib/ddtrace/opentracer/scope.rb +0 -15
  1518. data/lib/ddtrace/opentracer/scope_manager.rb +0 -6
  1519. data/lib/ddtrace/opentracer/span.rb +0 -94
  1520. data/lib/ddtrace/opentracer/span_context.rb +0 -14
  1521. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -23
  1522. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -75
  1523. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -31
  1524. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -40
  1525. data/lib/ddtrace/opentracer/tracer.rb +0 -208
  1526. data/lib/ddtrace/opentracer.rb +0 -21
  1527. data/lib/ddtrace/patcher.rb +0 -68
  1528. data/lib/ddtrace/pin.rb +0 -85
  1529. data/lib/ddtrace/pipeline/span_filter.rb +0 -38
  1530. data/lib/ddtrace/pipeline/span_processor.rb +0 -20
  1531. data/lib/ddtrace/pipeline.rb +0 -46
  1532. data/lib/ddtrace/profiling/backtrace_location.rb +0 -32
  1533. data/lib/ddtrace/profiling/buffer.rb +0 -41
  1534. data/lib/ddtrace/profiling/collectors/stack.rb +0 -262
  1535. data/lib/ddtrace/profiling/encoding/profile.rb +0 -37
  1536. data/lib/ddtrace/profiling/event.rb +0 -13
  1537. data/lib/ddtrace/profiling/events/stack.rb +0 -102
  1538. data/lib/ddtrace/profiling/exporter.rb +0 -23
  1539. data/lib/ddtrace/profiling/ext/cpu.rb +0 -52
  1540. data/lib/ddtrace/profiling/ext/cthread.rb +0 -155
  1541. data/lib/ddtrace/profiling/ext/forking.rb +0 -97
  1542. data/lib/ddtrace/profiling/flush.rb +0 -43
  1543. data/lib/ddtrace/profiling/pprof/builder.rb +0 -119
  1544. data/lib/ddtrace/profiling/pprof/converter.rb +0 -89
  1545. data/lib/ddtrace/profiling/pprof/message_set.rb +0 -12
  1546. data/lib/ddtrace/profiling/pprof/payload.rb +0 -18
  1547. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +0 -81
  1548. data/lib/ddtrace/profiling/pprof/stack_sample.rb +0 -106
  1549. data/lib/ddtrace/profiling/pprof/string_table.rb +0 -10
  1550. data/lib/ddtrace/profiling/pprof/template.rb +0 -118
  1551. data/lib/ddtrace/profiling/profiler.rb +0 -30
  1552. data/lib/ddtrace/profiling/recorder.rb +0 -95
  1553. data/lib/ddtrace/profiling/scheduler.rb +0 -116
  1554. data/lib/ddtrace/profiling/tasks/setup.rb +0 -77
  1555. data/lib/ddtrace/profiling/transport/client.rb +0 -12
  1556. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +0 -100
  1557. data/lib/ddtrace/profiling/transport/http/api/instance.rb +0 -36
  1558. data/lib/ddtrace/profiling/transport/http/api/spec.rb +0 -40
  1559. data/lib/ddtrace/profiling/transport/http/api.rb +0 -43
  1560. data/lib/ddtrace/profiling/transport/http/builder.rb +0 -28
  1561. data/lib/ddtrace/profiling/transport/http/client.rb +0 -33
  1562. data/lib/ddtrace/profiling/transport/http/response.rb +0 -21
  1563. data/lib/ddtrace/profiling/transport/http.rb +0 -118
  1564. data/lib/ddtrace/profiling/transport/io/client.rb +0 -27
  1565. data/lib/ddtrace/profiling/transport/io/response.rb +0 -16
  1566. data/lib/ddtrace/profiling/transport/io.rb +0 -30
  1567. data/lib/ddtrace/profiling/transport/parcel.rb +0 -17
  1568. data/lib/ddtrace/profiling/transport/request.rb +0 -15
  1569. data/lib/ddtrace/profiling/transport/response.rb +0 -8
  1570. data/lib/ddtrace/profiling.rb +0 -107
  1571. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -74
  1572. data/lib/ddtrace/propagation/http_propagator.rb +0 -90
  1573. data/lib/ddtrace/quantization/hash.rb +0 -103
  1574. data/lib/ddtrace/quantization/http.rb +0 -87
  1575. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  1576. data/lib/ddtrace/runtime/class_count.rb +0 -17
  1577. data/lib/ddtrace/runtime/container.rb +0 -87
  1578. data/lib/ddtrace/runtime/gc.rb +0 -16
  1579. data/lib/ddtrace/runtime/identity.rb +0 -48
  1580. data/lib/ddtrace/runtime/metrics.rb +0 -112
  1581. data/lib/ddtrace/runtime/object_space.rb +0 -19
  1582. data/lib/ddtrace/runtime/socket.rb +0 -14
  1583. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  1584. data/lib/ddtrace/sampler.rb +0 -292
  1585. data/lib/ddtrace/sampling/matcher.rb +0 -57
  1586. data/lib/ddtrace/sampling/rate_limiter.rb +0 -176
  1587. data/lib/ddtrace/sampling/rule.rb +0 -61
  1588. data/lib/ddtrace/sampling/rule_sampler.rb +0 -120
  1589. data/lib/ddtrace/sampling.rb +0 -2
  1590. data/lib/ddtrace/span.rb +0 -432
  1591. data/lib/ddtrace/sync_writer.rb +0 -68
  1592. data/lib/ddtrace/tasks/exec.rb +0 -48
  1593. data/lib/ddtrace/tasks/help.rb +0 -14
  1594. data/lib/ddtrace/tracer.rb +0 -457
  1595. data/lib/ddtrace/utils/compression.rb +0 -27
  1596. data/lib/ddtrace/utils/database.rb +0 -25
  1597. data/lib/ddtrace/utils/forking.rb +0 -52
  1598. data/lib/ddtrace/utils/object_set.rb +0 -39
  1599. data/lib/ddtrace/utils/only_once.rb +0 -40
  1600. data/lib/ddtrace/utils/sequence.rb +0 -17
  1601. data/lib/ddtrace/utils/string_table.rb +0 -45
  1602. data/lib/ddtrace/utils/time.rb +0 -43
  1603. data/lib/ddtrace/utils.rb +0 -68
  1604. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -301
  1605. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -116
  1606. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +0 -57
  1607. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +0 -135
  1608. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +0 -9
  1609. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +0 -8
  1610. data/lib/ddtrace/vendor/multipart-post/multipart.rb +0 -12
  1611. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +0 -32
  1612. data/lib/ddtrace/worker.rb +0 -20
  1613. data/lib/ddtrace/workers/async.rb +0 -174
  1614. data/lib/ddtrace/workers/loop.rb +0 -131
  1615. data/lib/ddtrace/workers/polling.rb +0 -55
  1616. data/lib/ddtrace/workers/queue.rb +0 -40
  1617. data/lib/ddtrace/workers/runtime_metrics.rb +0 -64
  1618. data/lib/ddtrace/workers/trace_writer.rb +0 -199
  1619. data/lib/ddtrace/workers.rb +0 -122
  1620. data/lib/ddtrace/writer.rb +0 -199
  1621. data/tasks/release_gem.rake +0 -28
  1622. /data/lib/{ddtrace → datadog/core}/vendor/multipart-post/LICENSE +0 -0
  1623. /data/lib/{ddtrace → datadog}/profiling/pprof/pprof.proto +0 -0
  1624. /data/lib/{ddtrace/vendor/active_record → datadog/tracing/contrib/active_record/vendor}/MIT-LICENSE +0 -0
  1625. /data/lib/{ddtrace → datadog/tracing}/contrib/redis/vendor/LICENSE +0 -0
@@ -1,176 +0,0 @@
1
- require 'forwardable'
2
- require 'ddtrace/configuration/pin_setup'
3
- require 'ddtrace/configuration/settings'
4
- require 'ddtrace/configuration/components'
5
-
6
- module Datadog
7
- # Configuration provides a unique access point for configurations
8
- module Configuration
9
- extend Forwardable
10
-
11
- # Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
12
- #
13
- # This is important because components can end up being accessed from multiple application threads (for instance on
14
- # a threaded webserver), and we don't want their initialization to clash (for instance, starting two profilers...).
15
- #
16
- # Note that a Mutex **IS NOT** reentrant: the same thread cannot grab the same Mutex more than once.
17
- # This means below we are careful not to nest calls to methods that would trigger initialization and grab the lock.
18
- #
19
- # Every method that directly or indirectly mutates @components should be holding the lock (through
20
- # #safely_synchronize) while doing so.
21
- COMPONENTS_WRITE_LOCK = Mutex.new
22
- private_constant :COMPONENTS_WRITE_LOCK
23
-
24
- # We use a separate lock when reading the @components, so that they continue to be accessible during reconfiguration.
25
- # This was needed because we ran into several issues where we still needed to read the old
26
- # components while the COMPONENTS_WRITE_LOCK was being held (see https://github.com/DataDog/dd-trace-rb/pull/1387
27
- # and https://github.com/DataDog/dd-trace-rb/pull/1373#issuecomment-799593022 ).
28
- #
29
- # Technically on MRI we could get away without this lock, but on non-MRI Rubies, we may run into issues because
30
- # we fall into the "UnsafeDCLFactory" case of https://shipilev.net/blog/2014/safe-public-construction/ .
31
- # Specifically, on JRuby reads from the @components do NOT have volatile semantics, and on TruffleRuby they do
32
- # BUT just as an implementation detail, see https://github.com/jruby/jruby/wiki/Concurrency-in-jruby#volatility and
33
- # https://github.com/DataDog/dd-trace-rb/pull/1329#issuecomment-776750377 .
34
- # Concurrency is hard.
35
- COMPONENTS_READ_LOCK = Mutex.new
36
- private_constant :COMPONENTS_READ_LOCK
37
-
38
- attr_writer :configuration
39
-
40
- def configuration
41
- @configuration ||= Settings.new
42
- end
43
-
44
- def configure(target = configuration, opts = {})
45
- if target.is_a?(Settings)
46
- yield(target) if block_given?
47
-
48
- safely_synchronize do |write_components|
49
- write_components.call(
50
- if components?
51
- replace_components!(target, @components)
52
- else
53
- build_components(target)
54
- end
55
- )
56
- end
57
-
58
- target
59
- else
60
- PinSetup.new(target, opts).call
61
- end
62
- end
63
-
64
- def_delegators \
65
- :components,
66
- :health_metrics,
67
- :profiler,
68
- :runtime_metrics,
69
- :tracer
70
-
71
- def logger
72
- # avoid initializing components if they didn't already exist
73
- current_components = components(allow_initialization: false)
74
-
75
- if current_components
76
- @temp_logger = nil
77
- current_components.logger
78
- else
79
- logger_without_components
80
- end
81
- end
82
-
83
- # Gracefully shuts down all components.
84
- #
85
- # Components will still respond to method calls as usual,
86
- # but might not internally perform their work after shutdown.
87
- #
88
- # This avoids errors being raised across the host application
89
- # during shutdown, while allowing for graceful decommission of resources.
90
- #
91
- # Components won't be automatically reinitialized after a shutdown.
92
- def shutdown!
93
- safely_synchronize do
94
- @components.shutdown! if components?
95
- end
96
- end
97
-
98
- protected
99
-
100
- def components(allow_initialization: true)
101
- current_components = COMPONENTS_READ_LOCK.synchronize { defined?(@components) && @components }
102
- return current_components if current_components || !allow_initialization
103
-
104
- safely_synchronize do |write_components|
105
- (defined?(@components) && @components) || write_components.call(build_components(configuration))
106
- end
107
- end
108
-
109
- private
110
-
111
- # Gracefully shuts down the tracer and disposes of component references,
112
- # allowing execution to start anew.
113
- #
114
- # In contrast with +#shutdown!+, components will be automatically
115
- # reinitialized after a reset.
116
- #
117
- # Used internally to ensure a clean environment between test runs.
118
- def reset!
119
- safely_synchronize do |write_components|
120
- @components.shutdown! if components?
121
- write_components.call(nil)
122
- configuration.reset!
123
- end
124
- end
125
-
126
- def safely_synchronize
127
- # Writes to @components should only happen through this proc. Because this proc is only accessible to callers of
128
- # safely_synchronize, this forces all writers to go through this method.
129
- write_components = proc do |new_value|
130
- COMPONENTS_READ_LOCK.synchronize { @components = new_value }
131
- end
132
-
133
- COMPONENTS_WRITE_LOCK.synchronize do
134
- begin
135
- yield write_components
136
- rescue ThreadError => e
137
- logger_without_components.error(
138
- 'Detected deadlock during ddtrace initialization. ' \
139
- 'Please report this at https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug' \
140
- "\n\tSource:\n\t#{e.backtrace.join("\n\t")}"
141
- )
142
- nil
143
- end
144
- end
145
- end
146
-
147
- def components?
148
- # This does not need to grab the COMPONENTS_READ_LOCK because it's not returning the components
149
- (defined?(@components) && @components) != nil
150
- end
151
-
152
- def build_components(settings)
153
- components = Components.new(settings)
154
- components.startup!(settings)
155
- components
156
- end
157
-
158
- def replace_components!(settings, old)
159
- components = Components.new(settings)
160
-
161
- old.shutdown!(components)
162
- components.startup!(settings)
163
- components
164
- end
165
-
166
- def logger_without_components
167
- # Use default logger without initializing components.
168
- # This enables logging during initialization, otherwise we'd run into deadlocks.
169
- @temp_logger ||= begin
170
- logger = configuration.logger.instance || Datadog::Logger.new($stdout)
171
- logger.level = configuration.diagnostics.debug ? ::Logger::DEBUG : configuration.logger.level
172
- logger
173
- end
174
- end
175
- end
176
- end
@@ -1,325 +0,0 @@
1
- require 'ddtrace/diagnostics/health'
2
-
3
- require 'ddtrace/context_flush'
4
- require 'ddtrace/context_provider'
5
- require 'ddtrace/utils/forking'
6
-
7
- module Datadog
8
- # \Context is used to keep track of a hierarchy of spans for the current
9
- # execution flow. During each logical execution, the same \Context is
10
- # used to represent a single logical trace, even if the trace is built
11
- # asynchronously.
12
- #
13
- # A single code execution may use multiple \Context if part of the execution
14
- # must not be related to the current tracing. As example, a delayed job may
15
- # compose a standalone trace instead of being related to the same trace that
16
- # generates the job itself. On the other hand, if it's part of the same
17
- # \Context, it will be related to the original trace.
18
- #
19
- # This data structure is thread-safe.
20
- # rubocop:disable Metrics/ClassLength
21
- class Context
22
- include Datadog::Utils::Forking
23
-
24
- # 100k spans is about a 100Mb footprint
25
- DEFAULT_MAX_LENGTH = 100_000
26
-
27
- attr_reader :max_length
28
-
29
- # Initialize a new thread-safe \Context.
30
- def initialize(options = {})
31
- @mutex = Mutex.new
32
- # max_length is the amount of spans above which, for a given trace,
33
- # the context will simply drop and ignore spans, avoiding high memory usage.
34
- @max_length = options.fetch(:max_length, DEFAULT_MAX_LENGTH)
35
- reset(options)
36
- end
37
-
38
- def trace_id
39
- @mutex.synchronize do
40
- @parent_trace_id
41
- end
42
- end
43
-
44
- def span_id
45
- @mutex.synchronize do
46
- @parent_span_id
47
- end
48
- end
49
-
50
- def sampling_priority
51
- @mutex.synchronize do
52
- @sampling_priority
53
- end
54
- end
55
-
56
- def sampling_priority=(priority)
57
- @mutex.synchronize do
58
- @sampling_priority = priority
59
- end
60
- end
61
-
62
- def origin
63
- @mutex.synchronize do
64
- @origin
65
- end
66
- end
67
-
68
- def origin=(origin)
69
- @mutex.synchronize do
70
- @origin = origin
71
- end
72
- end
73
-
74
- # Return the last active span that corresponds to the last inserted
75
- # item in the trace list. This cannot be considered as the current active
76
- # span in asynchronous environments, because some spans can be closed
77
- # earlier while child spans still need to finish their traced execution.
78
- def current_span
79
- @mutex.synchronize do
80
- return @current_span
81
- end
82
- end
83
-
84
- def current_root_span
85
- @mutex.synchronize do
86
- return @current_root_span
87
- end
88
- end
89
-
90
- # Add a span to the context trace list, keeping it as the last active span.
91
- def add_span(span)
92
- @mutex.synchronize do
93
- # If hitting the hard limit, just drop spans. This is really a rare case
94
- # as it means despite the soft limit, the hard limit is reached, so the trace
95
- # by default has 10000 spans, all of which belong to unfinished parts of a
96
- # larger trace. This is a catch-all to reduce global memory usage.
97
- if @max_length > 0 && @trace.length >= @max_length
98
- # Detach the span from any context, it's being dropped and ignored.
99
- span.context = nil
100
- Datadog.logger.debug("context full, ignoring span #{span.name}")
101
-
102
- # If overflow has already occurred, don't send this metric.
103
- # Prevents metrics spam if buffer repeatedly overflows for the same trace.
104
- unless @overflow
105
- Datadog.health_metrics.error_context_overflow(1, tags: ["max_length:#{@max_length}"])
106
- @overflow = true
107
- end
108
-
109
- return
110
- end
111
- set_current_span(span)
112
- @current_root_span = span if @trace.empty?
113
- @trace << span
114
- span.context = self
115
- end
116
- end
117
-
118
- # Mark a span as a finished, increasing the internal counter to prevent
119
- # cycles inside _trace list.
120
- def close_span(span)
121
- @mutex.synchronize do
122
- @finished_spans += 1
123
- # Current span is only meaningful for linear tree-like traces,
124
- # in other cases, this is just broken and one should rely
125
- # on per-instrumentation code to retrieve handle parent/child relations.
126
- set_current_span(span.parent)
127
- return if span.tracer.nil?
128
-
129
- if span.parent.nil? && !all_spans_finished?
130
- if Datadog.configuration.diagnostics.debug
131
- opened_spans = @trace.length - @finished_spans
132
- Datadog.logger.debug("root span #{span.name} closed but has #{opened_spans} unfinished spans:")
133
- end
134
-
135
- @trace.reject(&:finished?).group_by(&:name).each do |unfinished_span_name, unfinished_spans|
136
- Datadog.logger.debug("unfinished span: #{unfinished_spans.first}") if Datadog.configuration.diagnostics.debug
137
- Datadog.health_metrics.error_unfinished_spans(
138
- unfinished_spans.length,
139
- tags: ["name:#{unfinished_span_name}"]
140
- )
141
- end
142
- end
143
- end
144
- end
145
-
146
- # Returns if the trace for the current Context is finished or not. A \Context
147
- # is considered finished if all spans in this context are finished.
148
- def finished?
149
- @mutex.synchronize do
150
- return all_spans_finished?
151
- end
152
- end
153
-
154
- # @@return [Numeric] numbers of finished spans
155
- def finished_span_count
156
- @mutex.synchronize do
157
- @finished_spans
158
- end
159
- end
160
-
161
- # Returns true if the context is sampled, that is, if it should be kept
162
- # and sent to the trace agent.
163
- def sampled?
164
- @mutex.synchronize do
165
- return @sampled
166
- end
167
- end
168
-
169
- # Returns both the trace list generated in the current context and
170
- # if the context is sampled or not.
171
- #
172
- # It returns +[nil,@sampled]+ if the \Context is
173
- # not finished.
174
- #
175
- # If a trace is returned, the \Context will be reset so that it
176
- # can be re-used immediately.
177
- #
178
- # This operation is thread-safe.
179
- #
180
- # @return [Array<Array<Span>, Boolean>] finished trace and sampled flag
181
- def get
182
- @mutex.synchronize do
183
- trace = @trace
184
- sampled = @sampled
185
-
186
- # still return sampled attribute, even if context is not finished
187
- return nil, sampled unless all_spans_finished?
188
-
189
- # Root span is finished at this point, we can configure it
190
- annotate_for_flush!(@current_root_span)
191
-
192
- # Allow caller to modify trace before context is reset
193
- yield(trace) if block_given?
194
-
195
- reset
196
- [trace, sampled]
197
- end
198
- end
199
-
200
- # Delete any span matching the condition. This is thread safe.
201
- #
202
- # @return [Array<Span>] deleted spans
203
- def delete_span_if
204
- @mutex.synchronize do
205
- [].tap do |deleted_spans|
206
- @trace.delete_if do |span|
207
- finished = span.finished?
208
-
209
- next unless yield span
210
-
211
- deleted_spans << span
212
-
213
- # We need to detach the span from the context, else, some code
214
- # finishing it afterwards would mess up with the number of
215
- # finished_spans and possibly cause other side effects.
216
- span.context = nil
217
- # Acknowledge there's one span less to finish, if needed.
218
- # It's very important to keep this balanced.
219
- @finished_spans -= 1 if finished
220
-
221
- true
222
- end
223
- end
224
- end
225
- end
226
-
227
- # Set tags to root span required for flush
228
- def annotate_for_flush!(span)
229
- attach_sampling_priority(span) if @sampled && @sampling_priority
230
- attach_origin(span) if @origin
231
- end
232
-
233
- def attach_sampling_priority(span)
234
- span.set_metric(
235
- Ext::DistributedTracing::SAMPLING_PRIORITY_KEY,
236
- @sampling_priority
237
- )
238
- end
239
-
240
- def attach_origin(span)
241
- span.set_tag(
242
- Ext::DistributedTracing::ORIGIN_KEY,
243
- @origin
244
- )
245
- end
246
-
247
- # Return a string representation of the context.
248
- def to_s
249
- @mutex.synchronize do
250
- # rubocop:disable Layout/LineLength
251
- "Context(trace.length:#{@trace.length},sampled:#{@sampled},finished_spans:#{@finished_spans},current_span:#{@current_span})"
252
- end
253
- end
254
-
255
- # Generates equivalent context for forked processes.
256
- #
257
- # When Context from parent process is forked, child process
258
- # should have a Context belonging to the same trace but not
259
- # have the parent process spans.
260
- def fork_clone
261
- self.class.new(
262
- trace_id: trace_id,
263
- span_id: span_id,
264
- sampled: sampled?,
265
- sampling_priority: sampling_priority,
266
- origin: origin
267
- )
268
- end
269
-
270
- private
271
-
272
- def reset(options = {})
273
- @trace = []
274
- @parent_trace_id = options.fetch(:trace_id, nil)
275
- @parent_span_id = options.fetch(:span_id, nil)
276
- @sampled = options.fetch(:sampled, false)
277
- @sampling_priority = options.fetch(:sampling_priority, nil)
278
- @origin = options.fetch(:origin, nil)
279
- @finished_spans = 0
280
- @current_span = nil
281
- @current_root_span = nil
282
- @overflow = false
283
- end
284
-
285
- def set_current_span(span)
286
- @current_span = span
287
- if span
288
- @parent_trace_id = span.trace_id
289
- @parent_span_id = span.span_id
290
- @sampled = span.sampled
291
- else
292
- @parent_span_id = nil
293
- end
294
- end
295
-
296
- # Returns if the trace for the current Context is finished or not.
297
- # Low-level internal function, not thread-safe.
298
- def all_spans_finished?
299
- @finished_spans > 0 && @trace.length == @finished_spans
300
- end
301
-
302
- # Return the start time of the root span, or nil if there are no spans or this is undefined.
303
- def start_time
304
- @mutex.synchronize do
305
- return nil if @trace.empty?
306
-
307
- @trace[0].start_time
308
- end
309
- end
310
-
311
- # Return the length of the current trace held by this context.
312
- def length
313
- @mutex.synchronize do
314
- @trace.length
315
- end
316
- end
317
-
318
- # Iterate on each span within the trace. This is thread safe.
319
- def each_span(&block)
320
- @mutex.synchronize do
321
- @trace.each(&block)
322
- end
323
- end
324
- end
325
- end
@@ -1,81 +0,0 @@
1
- module Datadog
2
- module ContextFlush
3
- # Consumes only completed traces (where all spans have finished)
4
- class Finished
5
- # Consumes and returns completed traces (where all spans have finished)
6
- # from the provided +context+, if any.
7
- #
8
- # Any traces consumed are removed from +context+ as a side effect.
9
- #
10
- # @return [Array<Span>] trace to be flushed, or +nil+ if the trace is not finished
11
- def consume!(context)
12
- trace, sampled = get_trace(context)
13
- trace if sampled
14
- end
15
-
16
- protected
17
-
18
- def get_trace(context)
19
- context.get
20
- end
21
- end
22
-
23
- # Performs partial trace flushing to avoid large traces residing in memory for too long
24
- class Partial
25
- # Start flushing partial trace after this many active spans in one trace
26
- DEFAULT_MIN_SPANS_FOR_PARTIAL_FLUSH = 500
27
-
28
- def initialize(options = {})
29
- @min_spans_for_partial = options.fetch(:min_spans_before_partial_flush, DEFAULT_MIN_SPANS_FOR_PARTIAL_FLUSH)
30
- end
31
-
32
- # Consumes and returns completed or partially completed
33
- # traces from the provided +context+, if any.
34
- #
35
- # Partially completed traces, where not all spans have finished,
36
- # will only be returned if there are at least
37
- # +@min_spans_for_partial+ finished spans.
38
- #
39
- # Any spans consumed are removed from +context+ as a side effect.
40
- #
41
- # @return [Array<Span>] partial or complete trace to be flushed, or +nil+ if no spans are finished
42
- def consume!(context)
43
- trace, sampled = get_trace(context)
44
-
45
- return nil unless sampled
46
- return trace if trace && !trace.empty?
47
-
48
- partial_trace(context)
49
- end
50
-
51
- protected
52
-
53
- def get_trace(context)
54
- context.get
55
- end
56
-
57
- private
58
-
59
- def partial_trace(context)
60
- return nil if context.finished_span_count < @min_spans_for_partial
61
-
62
- finished_spans(context)
63
- end
64
-
65
- def finished_spans(context)
66
- trace = context.delete_span_if(&:finished?)
67
-
68
- # Ensure that the first span in a partial trace has
69
- # sampling and origin information.
70
- if trace[0]
71
- context.annotate_for_flush!(trace[0])
72
- else
73
- Datadog.logger.debug('Tried to retrieve trace from context, but got nothing. ' \
74
- "Is there another consumer for this context? #{context.trace_id}")
75
- end
76
-
77
- trace unless trace.empty?
78
- end
79
- end
80
- end
81
- end
@@ -1,61 +0,0 @@
1
- module Datadog
2
- # DefaultContextProvider is a default context provider that retrieves
3
- # all contexts from the current thread-local storage. It is suitable for
4
- # synchronous programming.
5
- class DefaultContextProvider
6
- # Initializes the default context provider with a thread-bound context.
7
- def initialize
8
- @context = ThreadLocalContext.new
9
- end
10
-
11
- # Sets the current context.
12
- def context=(ctx)
13
- @context.local = ctx
14
- end
15
-
16
- # Return the local context.
17
- def context(key = nil)
18
- current_context = key.nil? ? @context.local : @context.local(key)
19
-
20
- # Rebuild/reset context after a fork
21
- #
22
- # We don't want forked processes to copy and retransmit spans
23
- # that were generated from the parent process. Reset it such
24
- # that it acts like a distributed trace.
25
- current_context.after_fork! do
26
- current_context = self.context = current_context.fork_clone
27
- end
28
-
29
- current_context
30
- end
31
- end
32
-
33
- # ThreadLocalContext can be used as a tracer global reference to create
34
- # a different \Context for each thread. In synchronous tracer, this
35
- # is required to prevent multiple threads sharing the same \Context
36
- # in different executions.
37
- class ThreadLocalContext
38
- # ThreadLocalContext can be used as a tracer global reference to create
39
- # a different \Context for each thread. In synchronous tracer, this
40
- # is required to prevent multiple threads sharing the same \Context
41
- # in different executions.
42
- #
43
- # To support multiple tracers simultaneously, each \ThreadLocalContext
44
- # instance has its own thread-local variable.
45
- def initialize
46
- @key = "datadog_context_#{object_id}".to_sym
47
-
48
- self.local = Datadog::Context.new
49
- end
50
-
51
- # Override the thread-local context with a new context.
52
- def local=(ctx)
53
- Thread.current[@key] = ctx
54
- end
55
-
56
- # Return the thread-local context.
57
- def local(thread = Thread.current)
58
- thread[@key] ||= Datadog::Context.new
59
- end
60
- end
61
- end
@@ -1,30 +0,0 @@
1
- require 'ddtrace/contrib/configuration/settings'
2
- require 'ddtrace/contrib/action_cable/ext'
3
-
4
- module Datadog
5
- module Contrib
6
- module ActionCable
7
- module Configuration
8
- # Custom settings for the ActionCable integration
9
- class Settings < Contrib::Configuration::Settings
10
- option :enabled do |o|
11
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
12
- o.lazy
13
- end
14
-
15
- option :analytics_enabled do |o|
16
- o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], false) }
17
- o.lazy
18
- end
19
-
20
- option :analytics_sample_rate do |o|
21
- o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
22
- o.lazy
23
- end
24
-
25
- option :service_name, default: Ext::SERVICE_NAME
26
- end
27
- end
28
- end
29
- end
30
- end