ddtrace 0.42.0 → 0.47.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 (356) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +274 -137
  3. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  4. data/.circleci/images/primary/{Dockerfile-jruby-9.2 → Dockerfile-jruby-9.2-latest} +2 -1
  5. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +73 -0
  6. data/.circleci/images/primary/Dockerfile-truffleruby-21.0.0 +73 -0
  7. data/.github/workflows/add-milestone-to-pull-requests.yml +42 -0
  8. data/.github/workflows/create-next-milestone.yml +20 -0
  9. data/.rubocop.yml +250 -7
  10. data/.rubocop_todo.yml +397 -0
  11. data/.simplecov +9 -0
  12. data/Appraisals +386 -142
  13. data/CHANGELOG.md +1218 -362
  14. data/CONTRIBUTING.md +1 -1
  15. data/Gemfile +55 -3
  16. data/LICENSE-3rdparty.csv +2 -0
  17. data/README.md +1 -0
  18. data/Rakefile +216 -29
  19. data/ddtrace.gemspec +4 -36
  20. data/docker-compose.yml +105 -7
  21. data/docs/DevelopmentGuide.md +30 -2
  22. data/docs/GettingStarted.md +242 -22
  23. data/integration/README.md +68 -0
  24. data/integration/apps/rack/.dockerignore +1 -0
  25. data/integration/apps/rack/.envrc.sample +1 -0
  26. data/integration/apps/rack/.gitignore +4 -0
  27. data/integration/apps/rack/.rspec +1 -0
  28. data/integration/apps/rack/Dockerfile +25 -0
  29. data/integration/apps/rack/Dockerfile-ci +11 -0
  30. data/integration/apps/rack/Gemfile +24 -0
  31. data/integration/apps/rack/README.md +93 -0
  32. data/integration/apps/rack/app/acme.rb +80 -0
  33. data/integration/apps/rack/app/datadog.rb +17 -0
  34. data/integration/apps/rack/bin/run +22 -0
  35. data/integration/apps/rack/bin/setup +17 -0
  36. data/integration/apps/rack/bin/test +24 -0
  37. data/integration/apps/rack/config.ru +6 -0
  38. data/integration/apps/rack/config/puma.rb +14 -0
  39. data/integration/apps/rack/config/unicorn.rb +23 -0
  40. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  41. data/integration/apps/rack/docker-compose.yml +78 -0
  42. data/integration/apps/rack/script/build-images +38 -0
  43. data/integration/apps/rack/script/ci +50 -0
  44. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  45. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  46. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  47. data/integration/apps/rails-five/.dockerignore +1 -0
  48. data/integration/apps/rails-five/.env +3 -0
  49. data/integration/apps/rails-five/.envrc.sample +1 -0
  50. data/integration/apps/rails-five/.gitignore +30 -0
  51. data/integration/apps/rails-five/Dockerfile +25 -0
  52. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  53. data/integration/apps/rails-five/Gemfile +104 -0
  54. data/integration/apps/rails-five/README.md +94 -0
  55. data/integration/apps/rails-five/Rakefile +6 -0
  56. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  57. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  58. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  59. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  60. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  61. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  62. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  63. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  64. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  65. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  66. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  67. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  68. data/integration/apps/rails-five/app/models/test.rb +2 -0
  69. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  70. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  71. data/integration/apps/rails-five/bin/bundle +3 -0
  72. data/integration/apps/rails-five/bin/rails +9 -0
  73. data/integration/apps/rails-five/bin/rake +9 -0
  74. data/integration/apps/rails-five/bin/run +24 -0
  75. data/integration/apps/rails-five/bin/setup +27 -0
  76. data/integration/apps/rails-five/bin/spring +17 -0
  77. data/integration/apps/rails-five/bin/test +21 -0
  78. data/integration/apps/rails-five/bin/update +28 -0
  79. data/integration/apps/rails-five/config.ru +5 -0
  80. data/integration/apps/rails-five/config/application.rb +97 -0
  81. data/integration/apps/rails-five/config/boot.rb +4 -0
  82. data/integration/apps/rails-five/config/cable.yml +10 -0
  83. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  84. data/integration/apps/rails-five/config/database.yml +28 -0
  85. data/integration/apps/rails-five/config/environment.rb +5 -0
  86. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  87. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  88. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  89. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  90. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  91. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  92. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  93. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  94. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  95. data/integration/apps/rails-five/config/puma.rb +24 -0
  96. data/integration/apps/rails-five/config/routes.rb +11 -0
  97. data/integration/apps/rails-five/config/spring.rb +6 -0
  98. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  99. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  100. data/integration/apps/rails-five/db/schema.rb +23 -0
  101. data/integration/apps/rails-five/db/seeds.rb +7 -0
  102. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  103. data/integration/apps/rails-five/docker-compose.yml +100 -0
  104. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  105. data/integration/apps/rails-five/log/.keep +0 -0
  106. data/integration/apps/rails-five/public/robots.txt +1 -0
  107. data/integration/apps/rails-five/script/build-images +35 -0
  108. data/integration/apps/rails-five/script/ci +50 -0
  109. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  110. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  111. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  112. data/integration/apps/rails-five/storage/.keep +0 -0
  113. data/integration/apps/rails-five/tmp/.keep +0 -0
  114. data/integration/apps/rails-five/vendor/.keep +0 -0
  115. data/integration/apps/ruby/.dockerignore +1 -0
  116. data/integration/apps/ruby/.envrc.sample +1 -0
  117. data/integration/apps/ruby/.gitignore +2 -0
  118. data/integration/apps/ruby/Dockerfile +25 -0
  119. data/integration/apps/ruby/Dockerfile-ci +11 -0
  120. data/integration/apps/ruby/Gemfile +11 -0
  121. data/integration/apps/ruby/README.md +70 -0
  122. data/integration/apps/ruby/agent.yaml +3 -0
  123. data/integration/apps/ruby/app/datadog.rb +13 -0
  124. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  125. data/integration/apps/ruby/bin/run +20 -0
  126. data/integration/apps/ruby/bin/setup +17 -0
  127. data/integration/apps/ruby/bin/test +21 -0
  128. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  129. data/integration/apps/ruby/docker-compose.yml +63 -0
  130. data/integration/apps/ruby/script/build-images +38 -0
  131. data/integration/apps/ruby/script/ci +50 -0
  132. data/integration/images/agent/Dockerfile +2 -0
  133. data/integration/images/agent/agent.yaml +3 -0
  134. data/integration/images/include/datadog/analyzer.rb +71 -0
  135. data/integration/images/include/datadog/demo_env.rb +101 -0
  136. data/integration/images/include/http-health-check +33 -0
  137. data/integration/images/ruby/2.0/Dockerfile +54 -0
  138. data/integration/images/ruby/2.1/Dockerfile +54 -0
  139. data/integration/images/ruby/2.2/Dockerfile +54 -0
  140. data/integration/images/ruby/2.3/Dockerfile +70 -0
  141. data/integration/images/ruby/2.4/Dockerfile +54 -0
  142. data/integration/images/ruby/2.5/Dockerfile +54 -0
  143. data/integration/images/ruby/2.6/Dockerfile +54 -0
  144. data/integration/images/ruby/2.7/Dockerfile +54 -0
  145. data/integration/images/ruby/3.0/Dockerfile +54 -0
  146. data/integration/images/wrk/Dockerfile +33 -0
  147. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  148. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  149. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  150. data/integration/script/build-images +43 -0
  151. data/lib/ddtrace.rb +10 -5
  152. data/lib/ddtrace/analytics.rb +2 -0
  153. data/lib/ddtrace/auto_instrument.rb +3 -0
  154. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  155. data/lib/ddtrace/buffer.rb +4 -4
  156. data/lib/ddtrace/configuration.rb +108 -23
  157. data/lib/ddtrace/configuration/base.rb +1 -1
  158. data/lib/ddtrace/configuration/components.rb +2 -2
  159. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  160. data/lib/ddtrace/configuration/options.rb +4 -7
  161. data/lib/ddtrace/configuration/settings.rb +21 -5
  162. data/lib/ddtrace/context.rb +23 -6
  163. data/lib/ddtrace/context_provider.rb +12 -2
  164. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  165. data/lib/ddtrace/contrib/action_cable/integration.rb +7 -0
  166. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  167. data/lib/ddtrace/contrib/action_pack/integration.rb +7 -0
  168. data/lib/ddtrace/contrib/action_view/event.rb +1 -5
  169. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  170. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  171. data/lib/ddtrace/contrib/action_view/integration.rb +7 -0
  172. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  173. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +101 -18
  174. data/lib/ddtrace/contrib/active_record/integration.rb +7 -0
  175. data/lib/ddtrace/contrib/active_record/utils.rb +68 -21
  176. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +104 -3
  177. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +21 -0
  178. data/lib/ddtrace/contrib/active_support/ext.rb +3 -0
  179. data/lib/ddtrace/contrib/active_support/integration.rb +7 -1
  180. data/lib/ddtrace/contrib/active_support/notifications/event.rb +12 -1
  181. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  182. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  183. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  184. data/lib/ddtrace/contrib/aws/instrumentation.rb +2 -1
  185. data/lib/ddtrace/contrib/aws/patcher.rb +1 -1
  186. data/lib/ddtrace/contrib/aws/services.rb +3 -0
  187. data/lib/ddtrace/contrib/configurable.rb +63 -37
  188. data/lib/ddtrace/contrib/configuration/resolver.rb +70 -5
  189. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +20 -20
  190. data/lib/ddtrace/contrib/configuration/settings.rb +7 -6
  191. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +28 -0
  192. data/lib/ddtrace/contrib/cucumber/ext.rb +17 -0
  193. data/lib/ddtrace/contrib/cucumber/formatter.rb +98 -0
  194. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +24 -0
  195. data/lib/ddtrace/contrib/cucumber/integration.rb +45 -0
  196. data/lib/ddtrace/contrib/cucumber/patcher.rb +23 -0
  197. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  198. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +1 -0
  199. data/lib/ddtrace/contrib/delayed_job/plugin.rb +2 -1
  200. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  201. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  202. data/lib/ddtrace/contrib/ethon/easy_patch.rb +11 -10
  203. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  204. data/lib/ddtrace/contrib/excon/middleware.rb +9 -7
  205. data/lib/ddtrace/contrib/extensions.rb +53 -3
  206. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  207. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  208. data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -0
  209. data/lib/ddtrace/contrib/grape/endpoint.rb +47 -21
  210. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  211. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  212. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  213. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  214. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  215. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  216. data/lib/ddtrace/contrib/http/instrumentation.rb +7 -7
  217. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  218. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  219. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +147 -0
  220. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  221. data/lib/ddtrace/contrib/httpclient/patcher.rb +38 -0
  222. data/lib/ddtrace/contrib/httprb/instrumentation.rb +15 -21
  223. data/lib/ddtrace/contrib/httprb/patcher.rb +5 -2
  224. data/lib/ddtrace/contrib/kafka/event.rb +1 -1
  225. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  226. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  227. data/lib/ddtrace/contrib/patchable.rb +18 -7
  228. data/lib/ddtrace/contrib/patcher.rb +9 -6
  229. data/lib/ddtrace/contrib/presto/patcher.rb +5 -2
  230. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  231. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  232. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  233. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  234. data/lib/ddtrace/contrib/qless/qless_job.rb +73 -0
  235. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +33 -0
  236. data/lib/ddtrace/contrib/que/configuration/settings.rb +1 -0
  237. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  238. data/lib/ddtrace/contrib/que/tracer.rb +3 -2
  239. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  240. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  241. data/lib/ddtrace/contrib/rack/integration.rb +7 -0
  242. data/lib/ddtrace/contrib/rack/middlewares.rb +6 -11
  243. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  244. data/lib/ddtrace/contrib/rack/request_queue.rb +6 -1
  245. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  246. data/lib/ddtrace/contrib/rails/patcher.rb +11 -4
  247. data/lib/ddtrace/contrib/rails/utils.rb +4 -0
  248. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  249. data/lib/ddtrace/contrib/rake/integration.rb +1 -1
  250. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +14 -5
  251. data/lib/ddtrace/contrib/redis/configuration/settings.rb +5 -0
  252. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  253. data/lib/ddtrace/contrib/redis/patcher.rb +20 -3
  254. data/lib/ddtrace/contrib/redis/quantize.rb +28 -0
  255. data/lib/ddtrace/contrib/redis/tags.rb +5 -1
  256. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  257. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  258. data/lib/ddtrace/contrib/registry.rb +2 -2
  259. data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
  260. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  261. data/lib/ddtrace/contrib/resque/resque_job.rb +3 -1
  262. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  263. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +28 -0
  264. data/lib/ddtrace/contrib/rspec/example.rb +75 -0
  265. data/lib/ddtrace/contrib/rspec/ext.rb +16 -0
  266. data/lib/ddtrace/contrib/rspec/integration.rb +46 -0
  267. data/lib/ddtrace/contrib/rspec/patcher.rb +23 -0
  268. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  269. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  270. data/lib/ddtrace/contrib/shoryuken/tracer.rb +3 -1
  271. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
  272. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +5 -7
  273. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  274. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  275. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  276. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  277. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +5 -5
  278. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
  279. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  280. data/lib/ddtrace/contrib/sneakers/tracer.rb +16 -21
  281. data/lib/ddtrace/contrib/status_code_matcher.rb +69 -0
  282. data/lib/ddtrace/correlation.rb +1 -0
  283. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -1
  284. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  285. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
  286. data/lib/ddtrace/ext/app_types.rb +1 -0
  287. data/lib/ddtrace/ext/ci.rb +297 -0
  288. data/lib/ddtrace/ext/distributed.rb +8 -2
  289. data/lib/ddtrace/ext/git.rb +11 -0
  290. data/lib/ddtrace/ext/http.rb +1 -1
  291. data/lib/ddtrace/ext/runtime.rb +4 -1
  292. data/lib/ddtrace/ext/test.rb +24 -0
  293. data/lib/ddtrace/forced_tracing.rb +2 -0
  294. data/lib/ddtrace/logger.rb +1 -1
  295. data/lib/ddtrace/metrics.rb +10 -6
  296. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  297. data/lib/ddtrace/opentracer/span.rb +2 -6
  298. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  299. data/lib/ddtrace/patcher.rb +25 -4
  300. data/lib/ddtrace/pin.rb +8 -61
  301. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  302. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  303. data/lib/ddtrace/propagation/http_propagator.rb +17 -2
  304. data/lib/ddtrace/quantization/http.rb +1 -0
  305. data/lib/ddtrace/runtime/cgroup.rb +2 -2
  306. data/lib/ddtrace/runtime/container.rb +27 -29
  307. data/lib/ddtrace/runtime/identity.rb +12 -5
  308. data/lib/ddtrace/sampler.rb +1 -1
  309. data/lib/ddtrace/sampling/rate_limiter.rb +65 -16
  310. data/lib/ddtrace/sampling/rule_sampler.rb +1 -0
  311. data/lib/ddtrace/span.rb +7 -7
  312. data/lib/ddtrace/sync_writer.rb +12 -12
  313. data/lib/ddtrace/tracer.rb +21 -6
  314. data/lib/ddtrace/transport/http.rb +15 -8
  315. data/lib/ddtrace/transport/http/adapters/net.rb +27 -8
  316. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  317. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  318. data/lib/ddtrace/transport/http/builder.rb +7 -1
  319. data/lib/ddtrace/transport/http/env.rb +8 -0
  320. data/lib/ddtrace/transport/http/traces.rb +2 -3
  321. data/lib/ddtrace/transport/io.rb +1 -1
  322. data/lib/ddtrace/transport/io/response.rb +1 -3
  323. data/lib/ddtrace/transport/io/traces.rb +6 -0
  324. data/lib/ddtrace/transport/traces.rb +18 -1
  325. data/lib/ddtrace/utils.rb +10 -11
  326. data/lib/ddtrace/utils/compression.rb +27 -0
  327. data/lib/ddtrace/utils/forking.rb +52 -0
  328. data/lib/ddtrace/utils/object_set.rb +41 -0
  329. data/lib/ddtrace/utils/only_once.rb +40 -0
  330. data/lib/ddtrace/utils/sequence.rb +17 -0
  331. data/lib/ddtrace/utils/string_table.rb +45 -0
  332. data/lib/ddtrace/utils/time.rb +32 -1
  333. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  334. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  335. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  336. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  337. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  338. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  339. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  340. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  341. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  342. data/lib/ddtrace/version.rb +1 -1
  343. data/lib/ddtrace/workers.rb +5 -0
  344. data/lib/ddtrace/workers/async.rb +11 -3
  345. data/lib/ddtrace/workers/loop.rb +17 -3
  346. data/lib/ddtrace/workers/polling.rb +1 -0
  347. data/lib/ddtrace/workers/queue.rb +1 -0
  348. data/lib/ddtrace/workers/runtime_metrics.rb +7 -3
  349. data/lib/ddtrace/workers/trace_writer.rb +10 -10
  350. data/lib/ddtrace/writer.rb +26 -5
  351. metadata +186 -373
  352. data/lib/ddtrace/augmentation.rb +0 -13
  353. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  354. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  355. data/lib/ddtrace/augmentation/shim.rb +0 -102
  356. data/lib/ddtrace/monkey.rb +0 -58
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,397 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config --exclude-limit 99999`
3
+ # on 2021-02-19 23:39:59 UTC using RuboCop version 1.10.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
12
+ # URISchemes: http, https
13
+ Layout/LineLength:
14
+ Max: 125
15
+
16
+ # Offense count: 3
17
+ # Configuration parameters: AllowedMethods.
18
+ # AllowedMethods: enums
19
+ Lint/ConstantDefinitionInBlock:
20
+ Exclude:
21
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
22
+ - 'spec/ddtrace/contrib/rails/rack_spec.rb'
23
+ - 'spec/ddtrace/workers/async_spec.rb'
24
+
25
+ # Offense count: 2
26
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
27
+ Lint/DuplicateBranch:
28
+ Exclude:
29
+ - 'lib/ddtrace/quantization/http.rb'
30
+ - 'test/contrib/rails/test_helper.rb'
31
+
32
+ # Offense count: 3
33
+ Lint/DuplicateRequire:
34
+ Exclude:
35
+ - 'lib/ddtrace/contrib/cucumber/integration.rb'
36
+ - 'lib/ddtrace/contrib/rspec/integration.rb'
37
+ - 'spec/ddtrace/contrib/presto/client_spec.rb'
38
+
39
+ # Offense count: 1
40
+ # Cop supports --auto-correct.
41
+ # Configuration parameters: EnforcedStyle.
42
+ # SupportedStyles: runtime_error, standard_error
43
+ Lint/InheritException:
44
+ Exclude:
45
+ - 'spec/ddtrace/tracer_spec.rb'
46
+
47
+ # Offense count: 52
48
+ # Configuration parameters: MaximumRangeSize.
49
+ Lint/MissingCopEnableDirective:
50
+ Exclude:
51
+ - 'Rakefile'
52
+ - 'lib/ddtrace/analytics.rb'
53
+ - 'lib/ddtrace/configuration/components.rb'
54
+ - 'lib/ddtrace/configuration/settings.rb'
55
+ - 'lib/ddtrace/context.rb'
56
+ - 'lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb'
57
+ - 'lib/ddtrace/contrib/active_support/cache/instrumentation.rb'
58
+ - 'lib/ddtrace/contrib/aws/services.rb'
59
+ - 'lib/ddtrace/contrib/elasticsearch/patcher.rb'
60
+ - 'lib/ddtrace/contrib/excon/middleware.rb'
61
+ - 'lib/ddtrace/contrib/grape/endpoint.rb'
62
+ - 'lib/ddtrace/contrib/httprb/instrumentation.rb'
63
+ - 'lib/ddtrace/contrib/rack/middlewares.rb'
64
+ - 'lib/ddtrace/contrib/rails/middlewares.rb'
65
+ - 'lib/ddtrace/contrib/redis/patcher.rb'
66
+ - 'lib/ddtrace/contrib/sinatra/tracer_middleware.rb'
67
+ - 'lib/ddtrace/contrib/sucker_punch/instrumentation.rb'
68
+ - 'lib/ddtrace/ext/ci.rb'
69
+ - 'lib/ddtrace/pin.rb'
70
+ - 'lib/ddtrace/span.rb'
71
+ - 'lib/ddtrace/tracer.rb'
72
+ - 'lib/ddtrace/workers/async.rb'
73
+ - 'spec/ddtrace/contrib/elasticsearch/quantize_spec.rb'
74
+ - 'spec/ddtrace/contrib/http/request_spec.rb'
75
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
76
+ - 'spec/ddtrace/contrib/patchable_spec.rb'
77
+ - 'spec/ddtrace/contrib/presto/client_spec.rb'
78
+ - 'spec/ddtrace/contrib/qless/support/job.rb'
79
+ - 'spec/ddtrace/contrib/rails/support/database.rb'
80
+ - 'spec/ddtrace/contrib/rails/support/middleware.rb'
81
+ - 'spec/ddtrace/diagnostics/health_spec.rb'
82
+ - 'spec/ddtrace/runtime/cgroup_spec.rb'
83
+ - 'spec/support/container_helpers.rb'
84
+ - 'spec/support/tracer_helpers.rb'
85
+ - 'test/contrib/rails/controller_test.rb'
86
+ - 'test/contrib/rails/errors_test.rb'
87
+ - 'test/tracer_test.rb'
88
+
89
+ # Offense count: 24
90
+ Lint/MissingSuper:
91
+ Exclude:
92
+ - 'lib/ddtrace/contrib/grpc/datadog_interceptor.rb'
93
+ - 'lib/ddtrace/opentracer/scope.rb'
94
+ - 'lib/ddtrace/opentracer/span.rb'
95
+ - 'lib/ddtrace/opentracer/span_context.rb'
96
+ - 'lib/ddtrace/sampler.rb'
97
+ - 'lib/ddtrace/sampling/matcher.rb'
98
+ - 'lib/ddtrace/sampling/rate_limiter.rb'
99
+ - 'lib/ddtrace/transport/http/adapters/net.rb'
100
+ - 'lib/ddtrace/transport/http/adapters/unix_socket.rb'
101
+ - 'lib/ddtrace/transport/http/builder.rb'
102
+ - 'lib/ddtrace/transport/http/env.rb'
103
+ - 'lib/ddtrace/transport/http/traces.rb'
104
+ - 'lib/ddtrace/transport/traces.rb'
105
+ - 'lib/ddtrace/workers/runtime_metrics.rb'
106
+ - 'lib/ddtrace/workers/trace_writer.rb'
107
+ - 'spec/support/faux_transport.rb'
108
+ - 'spec/support/spy_transport.rb'
109
+ - 'test/helper.rb'
110
+
111
+ # Offense count: 1
112
+ # Configuration parameters: AllowComments.
113
+ Lint/SuppressedException:
114
+ Exclude:
115
+ - 'lib/ddtrace/contrib/ethon/easy_patch.rb'
116
+
117
+ # Offense count: 2
118
+ # Configuration parameters: CheckForMethodsWithNoSideEffects.
119
+ Lint/Void:
120
+ Exclude:
121
+ - 'spec/ddtrace/contrib/grpc/support/grpc_helper.rb'
122
+
123
+ # Offense count: 2
124
+ # Configuration parameters: IgnoredMethods.
125
+ Metrics/CyclomaticComplexity:
126
+ Max: 17
127
+
128
+ # Offense count: 2
129
+ # Configuration parameters: IgnoredMethods.
130
+ Metrics/PerceivedComplexity:
131
+ Max: 18
132
+
133
+ # Offense count: 4
134
+ # Configuration parameters: EnforcedStyleForLeadingUnderscores.
135
+ # SupportedStylesForLeadingUnderscores: disallowed, required, optional
136
+ Naming/MemoizedInstanceVariableName:
137
+ Exclude:
138
+ - 'lib/ddtrace/configuration.rb'
139
+ - 'lib/ddtrace/contrib/active_record/configuration/resolver.rb'
140
+ - 'lib/ddtrace/contrib/extensions.rb'
141
+ - 'lib/ddtrace/contrib/sequel/database.rb'
142
+
143
+ # Offense count: 6
144
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers.
145
+ # SupportedStyles: snake_case, normalcase, non_integer
146
+ # AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339
147
+ Naming/VariableNumber:
148
+ Exclude:
149
+ - 'spec/ddtrace/contrib/ethon/typhoeus_integration_spec.rb'
150
+ - 'spec/ddtrace/contrib/resque/instrumentation_spec.rb'
151
+
152
+ # Offense count: 12
153
+ Performance/MethodObjectAsBlock:
154
+ Exclude:
155
+ - 'lib/ddtrace/contrib/cucumber/formatter.rb'
156
+ - 'lib/ddtrace/contrib/delayed_job/plugin.rb'
157
+ - 'lib/ddtrace/pipeline.rb'
158
+ - 'spec/ddtrace/contrib/cucumber/patcher_spec.rb'
159
+
160
+ # Offense count: 6
161
+ RSpec/EmptyExampleGroup:
162
+ Exclude:
163
+ - 'spec/ddtrace/buffer_spec.rb'
164
+ - 'spec/ddtrace/configuration/components_spec.rb'
165
+ - 'spec/ddtrace/ext/ci_spec.rb'
166
+ - 'spec/ddtrace/opentracer/distributed_headers_spec.rb'
167
+
168
+ # Offense count: 2
169
+ # Cop supports --auto-correct.
170
+ RSpec/ExpectActual:
171
+ Exclude:
172
+ - 'spec/routing/**/*'
173
+ - 'spec/ddtrace/contrib/rspec/instrumentation_spec.rb'
174
+
175
+ # Offense count: 3
176
+ RSpec/IteratedExpectation:
177
+ Exclude:
178
+ - 'spec/ddtrace/contrib/grpc/support/grpc_helper.rb'
179
+ - 'spec/ddtrace/contrib/rack/integration_test_spec.rb'
180
+
181
+ # Offense count: 3
182
+ RSpec/LeakyConstantDeclaration:
183
+ Exclude:
184
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
185
+ - 'spec/ddtrace/contrib/rails/rack_spec.rb'
186
+ - 'spec/ddtrace/workers/async_spec.rb'
187
+
188
+ # Offense count: 37
189
+ RSpec/MissingExampleGroupArgument:
190
+ Exclude:
191
+ - 'spec/ddtrace/configuration/settings_spec.rb'
192
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
193
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
194
+
195
+ # Offense count: 18
196
+ RSpec/MultipleDescribes:
197
+ Exclude:
198
+ - 'spec/ddtrace/analytics_spec.rb'
199
+ - 'spec/ddtrace/buffer_spec.rb'
200
+ - 'spec/ddtrace/configuration/option_definition_spec.rb'
201
+ - 'spec/ddtrace/context_flush_spec.rb'
202
+ - 'spec/ddtrace/context_provider_spec.rb'
203
+ - 'spec/ddtrace/forced_tracing_spec.rb'
204
+ - 'spec/ddtrace/metrics_spec.rb'
205
+ - 'spec/ddtrace/sampler_spec.rb'
206
+ - 'spec/ddtrace/sampling/matcher_spec.rb'
207
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
208
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
209
+ - 'spec/ddtrace/transport/http/adapters/unix_socket_spec.rb'
210
+ - 'spec/ddtrace/transport/http/traces_spec.rb'
211
+ - 'spec/ddtrace/transport/io/traces_spec.rb'
212
+ - 'spec/ddtrace/transport/response_spec.rb'
213
+ - 'spec/ddtrace/transport/statistics_spec.rb'
214
+ - 'spec/ddtrace/transport/traces_spec.rb'
215
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
216
+
217
+ # Offense count: 143
218
+ # Configuration parameters: IgnoreSharedExamples.
219
+ RSpec/NamedSubject:
220
+ Exclude:
221
+ - 'spec/ddtrace/benchmark/gem_loading_spec.rb'
222
+ - 'spec/ddtrace/chunker_spec.rb'
223
+ - 'spec/ddtrace/context_flush_spec.rb'
224
+ - 'spec/ddtrace/context_provider_spec.rb'
225
+ - 'spec/ddtrace/context_spec.rb'
226
+ - 'spec/ddtrace/contrib/active_support/notifications/subscription_spec.rb'
227
+ - 'spec/ddtrace/contrib/ethon/easy_patch_spec.rb'
228
+ - 'spec/ddtrace/contrib/ethon/multi_patch_spec.rb'
229
+ - 'spec/ddtrace/contrib/excon/instrumentation_spec.rb'
230
+ - 'spec/ddtrace/contrib/faraday/middleware_spec.rb'
231
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
232
+ - 'spec/ddtrace/contrib/grpc/datadog_interceptor/client_spec.rb'
233
+ - 'spec/ddtrace/contrib/grpc/datadog_interceptor/server_spec.rb'
234
+ - 'spec/ddtrace/contrib/grpc/interception_context_spec.rb'
235
+ - 'spec/ddtrace/contrib/http/patcher_spec.rb'
236
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
237
+ - 'spec/ddtrace/contrib/mongodb/regression_issue_1235_spec.rb'
238
+ - 'spec/ddtrace/contrib/patcher_spec.rb'
239
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
240
+ - 'spec/ddtrace/contrib/rails/database_spec.rb'
241
+ - 'spec/ddtrace/pin_spec.rb'
242
+ - 'spec/ddtrace/pipeline/span_filter_spec.rb'
243
+ - 'spec/ddtrace/pipeline/span_processor_spec.rb'
244
+ - 'spec/ddtrace/pipeline_spec.rb'
245
+ - 'spec/ddtrace/propagation/grpc_propagator_spec.rb'
246
+ - 'spec/ddtrace/sampling/rate_limiter_spec.rb'
247
+ - 'spec/ddtrace/sampling/rule_sampler_spec.rb'
248
+ - 'spec/ddtrace/span_spec.rb'
249
+ - 'spec/ddtrace/tracer_spec.rb'
250
+ - 'spec/ddtrace/transport/traces_spec.rb'
251
+
252
+ # Offense count: 4
253
+ RSpec/OverwritingSetup:
254
+ Exclude:
255
+ - 'spec/ddtrace/buffer_spec.rb'
256
+ - 'spec/ddtrace/sampling/rule_spec.rb'
257
+
258
+ # Offense count: 8
259
+ RSpec/RepeatedDescription:
260
+ Exclude:
261
+ - 'spec/ddtrace/contrib/rest_client/request_patch_spec.rb'
262
+
263
+ # Offense count: 2
264
+ RSpec/RepeatedExampleGroupBody:
265
+ Exclude:
266
+ - 'spec/ddtrace/contrib/elasticsearch/patcher_spec.rb'
267
+
268
+ # Offense count: 12
269
+ RSpec/RepeatedExampleGroupDescription:
270
+ Exclude:
271
+ - 'spec/ddtrace/contrib/elasticsearch/patcher_spec.rb'
272
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
273
+ - 'spec/ddtrace/contrib/redis/quantize_spec.rb'
274
+ - 'spec/ddtrace/opentracer/scope_manager_spec.rb'
275
+ - 'spec/ddtrace/opentracer/thread_local_scope_manager_spec.rb'
276
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
277
+
278
+ # Offense count: 53
279
+ RSpec/ScatteredSetup:
280
+ Exclude:
281
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
282
+ - 'spec/ddtrace/configuration/settings_spec.rb'
283
+ - 'spec/ddtrace/contrib/action_cable/instrumentation_spec.rb'
284
+ - 'spec/ddtrace/contrib/action_cable/patcher_spec.rb'
285
+ - 'spec/ddtrace/contrib/elasticsearch/transport_spec.rb'
286
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
287
+ - 'spec/ddtrace/contrib/http/miniapp_spec.rb'
288
+ - 'spec/ddtrace/contrib/http/request_spec.rb'
289
+ - 'spec/ddtrace/contrib/mongodb/regression_issue_1235_spec.rb'
290
+ - 'spec/ddtrace/contrib/presto/client_spec.rb'
291
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
292
+ - 'spec/ddtrace/contrib/rails/database_spec.rb'
293
+ - 'spec/ddtrace/contrib/rails/rails_active_job_spec.rb'
294
+ - 'spec/ddtrace/contrib/rails/railtie_spec.rb'
295
+ - 'spec/ddtrace/contrib/rails/redis_cache_spec.rb'
296
+ - 'spec/ddtrace/contrib/redis/miniapp_spec.rb'
297
+ - 'spec/ddtrace/diagnostics/environment_logger_spec.rb'
298
+ - 'spec/ddtrace/opentracer/rack_propagator_spec.rb'
299
+ - 'spec/ddtrace/opentracer/span_spec.rb'
300
+ - 'spec/ddtrace/opentracer/text_map_propagator_spec.rb'
301
+ - 'spec/ddtrace/tracer_spec.rb'
302
+ - 'spec/ddtrace/workers/loop_spec.rb'
303
+
304
+ # Offense count: 2
305
+ RSpec/UnspecifiedException:
306
+ Exclude:
307
+ - 'spec/ddtrace/contrib/delayed_job/plugin_spec.rb'
308
+ - 'spec/ddtrace/contrib/sidekiq/tracer_configure_spec.rb'
309
+
310
+ # Offense count: 303
311
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
312
+ RSpec/VerifiedDoubles:
313
+ Exclude:
314
+ - 'spec/ddtrace/buffer_spec.rb'
315
+ - 'spec/ddtrace/configuration/base_spec.rb'
316
+ - 'spec/ddtrace/configuration/components_spec.rb'
317
+ - 'spec/ddtrace/configuration/option_definition_spec.rb'
318
+ - 'spec/ddtrace/configuration/option_spec.rb'
319
+ - 'spec/ddtrace/configuration/options_spec.rb'
320
+ - 'spec/ddtrace/configuration/settings_spec.rb'
321
+ - 'spec/ddtrace/configuration_spec.rb'
322
+ - 'spec/ddtrace/context_provider_spec.rb'
323
+ - 'spec/ddtrace/context_spec.rb'
324
+ - 'spec/ddtrace/contrib/action_cable/patcher_spec.rb'
325
+ - 'spec/ddtrace/contrib/active_support/notifications/event_spec.rb'
326
+ - 'spec/ddtrace/contrib/active_support/notifications/subscriber_spec.rb'
327
+ - 'spec/ddtrace/contrib/active_support/notifications/subscription_spec.rb'
328
+ - 'spec/ddtrace/contrib/analytics_spec.rb'
329
+ - 'spec/ddtrace/contrib/configuration/resolver_spec.rb'
330
+ - 'spec/ddtrace/contrib/configuration/settings_spec.rb'
331
+ - 'spec/ddtrace/contrib/cucumber/formatter_spec.rb'
332
+ - 'spec/ddtrace/contrib/delayed_job/plugin_spec.rb'
333
+ - 'spec/ddtrace/contrib/ethon/easy_patch_spec.rb'
334
+ - 'spec/ddtrace/contrib/extensions_spec.rb'
335
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
336
+ - 'spec/ddtrace/contrib/patchable_spec.rb'
337
+ - 'spec/ddtrace/contrib/rails/action_controller_spec.rb'
338
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
339
+ - 'spec/ddtrace/contrib/rake/instrumentation_spec.rb'
340
+ - 'spec/ddtrace/contrib/registry_spec.rb'
341
+ - 'spec/ddtrace/contrib/shoryuken/tracer_spec.rb'
342
+ - 'spec/ddtrace/contrib/sneakers/tracer_spec.rb'
343
+ - 'spec/ddtrace/correlation_spec.rb'
344
+ - 'spec/ddtrace/environment_spec.rb'
345
+ - 'spec/ddtrace/forced_tracing_spec.rb'
346
+ - 'spec/ddtrace/integration_spec.rb'
347
+ - 'spec/ddtrace/metrics_spec.rb'
348
+ - 'spec/ddtrace/opentracer/global_tracer_spec.rb'
349
+ - 'spec/ddtrace/opentracer/rack_propagator_spec.rb'
350
+ - 'spec/ddtrace/opentracer/text_map_propagator_spec.rb'
351
+ - 'spec/ddtrace/opentracer/tracer_spec.rb'
352
+ - 'spec/ddtrace/patcher_spec.rb'
353
+ - 'spec/ddtrace/pin_spec.rb'
354
+ - 'spec/ddtrace/runtime/metrics_spec.rb'
355
+ - 'spec/ddtrace/tracer_spec.rb'
356
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
357
+ - 'spec/ddtrace/transport/http/adapters/registry_spec.rb'
358
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
359
+ - 'spec/ddtrace/transport/http/adapters/unix_socket_spec.rb'
360
+ - 'spec/ddtrace/transport/http/api/endpoint_spec.rb'
361
+ - 'spec/ddtrace/transport/http/api/instance_spec.rb'
362
+ - 'spec/ddtrace/transport/http/builder_spec.rb'
363
+ - 'spec/ddtrace/transport/http/client_spec.rb'
364
+ - 'spec/ddtrace/transport/http/response_spec.rb'
365
+ - 'spec/ddtrace/transport/http/statistics_spec.rb'
366
+ - 'spec/ddtrace/transport/http/traces_spec.rb'
367
+ - 'spec/ddtrace/transport/http_spec.rb'
368
+ - 'spec/ddtrace/transport/io/client_spec.rb'
369
+ - 'spec/ddtrace/transport/io/response_spec.rb'
370
+ - 'spec/ddtrace/transport/io/traces_spec.rb'
371
+ - 'spec/ddtrace/transport/parcel_spec.rb'
372
+ - 'spec/ddtrace/transport/traces_spec.rb'
373
+ - 'spec/ddtrace/utils/object_set_spec.rb'
374
+ - 'spec/ddtrace/utils/string_table_spec.rb'
375
+ - 'spec/ddtrace/worker_spec.rb'
376
+ - 'spec/ddtrace/workers/async_spec.rb'
377
+ - 'spec/ddtrace/workers/loop_spec.rb'
378
+ - 'spec/ddtrace/workers/polling_spec.rb'
379
+ - 'spec/ddtrace/workers/queue_spec.rb'
380
+ - 'spec/ddtrace/workers/runtime_metrics_spec.rb'
381
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
382
+ - 'spec/ddtrace/workers_integration_spec.rb'
383
+ - 'spec/ddtrace/writer_spec.rb'
384
+ - 'spec/support/statsd_helpers.rb'
385
+
386
+ # Offense count: 24
387
+ Style/ClassVars:
388
+ Exclude:
389
+ - 'spec/ddtrace/contrib/rails/support/rails3.rb'
390
+ - 'spec/ddtrace/contrib/rails/support/rails4.rb'
391
+ - 'spec/ddtrace/contrib/rails/support/rails5.rb'
392
+ - 'spec/ddtrace/contrib/rails/support/rails6.rb'
393
+
394
+ # Offense count: 1
395
+ Style/MixinUsage:
396
+ Exclude:
397
+ - 'test/benchmark_test.rb'
data/.simplecov CHANGED
@@ -1,7 +1,16 @@
1
+ # Enable branch coverage reporting.
2
+ # SimpleCov only supports branch coverage in
3
+ # Ruby >= 2.5.
4
+ SimpleCov.enable_coverage :branch if RUBY_VERSION >= '2.5.0'
5
+
6
+ # Categorize SimpleCov report, for easier reading
1
7
  SimpleCov.add_group 'contrib', '/lib/ddtrace/contrib'
2
8
  SimpleCov.add_group 'transport', '/lib/ddtrace/transport'
3
9
  SimpleCov.add_group 'spec', '/spec/'
4
10
 
11
+ # Exclude code not maintained by this project
12
+ SimpleCov.add_filter %r{/vendor/}
13
+
5
14
  SimpleCov.coverage_dir ENV.fetch('COVERAGE_DIR', 'coverage')
6
15
 
7
16
  # Each test run requires its own unique command_name.
data/Appraisals CHANGED
@@ -2,6 +2,12 @@ lib = File.expand_path('../lib', __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
  require 'ddtrace/version'
4
4
 
5
+ def self.gem_cucumber(version)
6
+ appraise "cucumber#{version}" do
7
+ gem 'cucumber', ">=#{version}.0.0", "<#{version + 1}.0.0"
8
+ end
9
+ end
10
+
5
11
  if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(Datadog::VERSION::MINIMUM_RUBY_VERSION)
6
12
  raise NotImplementedError, "Ruby versions < #{Datadog::VERSION::MINIMUM_RUBY_VERSION} are not supported!"
7
13
  elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
@@ -33,6 +39,7 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
33
39
  gem 'activerecord-mysql-adapter', platform: :ruby
34
40
  gem 'activerecord-jdbcmysql-adapter', platform: :jruby
35
41
  gem 'rack-cache', '1.7.1'
42
+ gem 'sqlite3', '~> 1.3.5'
36
43
  gem 'lograge', '< 0.4'
37
44
  end
38
45
 
@@ -80,6 +87,7 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
80
87
  gem 'excon'
81
88
  gem 'hiredis'
82
89
  gem 'http'
90
+ gem 'httpclient'
83
91
  gem 'mongo', '< 2.5'
84
92
  gem 'mysql2', '0.3.21', platform: :ruby
85
93
  gem 'pg', '< 1.0', platform: :ruby
@@ -90,6 +98,7 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
90
98
  gem 'redis', '< 4.0'
91
99
  gem 'rest-client'
92
100
  gem 'resque', '< 2.0'
101
+ gem 'rspec', '>= 3.0.0'
93
102
  gem 'sequel', '~> 4.0', '< 4.37'
94
103
  gem 'sidekiq', '~> 3.5.4'
95
104
  gem 'sinatra', '1.4.5'
@@ -128,6 +137,7 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
128
137
  gem 'activerecord-mysql-adapter', platform: :ruby
129
138
  gem 'activerecord-jdbcmysql-adapter', platform: :jruby
130
139
  gem 'rack-cache', '1.7.1'
140
+ gem 'sqlite3', '~> 1.3.5'
131
141
  gem 'lograge', '< 0.4'
132
142
  end
133
143
 
@@ -202,6 +212,7 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
202
212
  gem 'excon'
203
213
  gem 'hiredis'
204
214
  gem 'http'
215
+ gem 'httpclient'
205
216
  gem 'mongo', '< 2.5'
206
217
  gem 'mysql2', '0.3.21', platform: :ruby
207
218
  gem 'pg', '< 1.0', platform: :ruby
@@ -213,6 +224,7 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
213
224
  gem 'rest-client'
214
225
  gem 'resque', '< 2.0'
215
226
  gem 'ruby-kafka', '>= 0.7.10'
227
+ gem 'rspec', '>= 3.0.0'
216
228
  gem 'sequel', '~> 4.0', '< 4.37'
217
229
  gem 'shoryuken'
218
230
  gem 'sidekiq', '~> 3.5.4'
@@ -252,6 +264,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
252
264
  gem 'activerecord-mysql-adapter', platform: :ruby
253
265
  gem 'activerecord-jdbcmysql-adapter', platform: :jruby
254
266
  gem 'rack-cache', '1.7.1'
267
+ gem 'sqlite3', '~> 1.3.5'
255
268
  gem 'lograge', '< 0.4'
256
269
  end
257
270
 
@@ -377,12 +390,14 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
377
390
  gem 'excon'
378
391
  gem 'faraday'
379
392
  gem 'grape'
380
- gem 'graphql', '< 1.9.4'
393
+ gem 'graphql', '>= 1.12.0'
381
394
  gem 'grpc', '~> 1.21.0' # Last version to support Ruby < 2.3
382
395
  gem 'hiredis'
383
396
  gem 'http'
397
+ gem 'httpclient'
384
398
  gem 'mongo', '>= 2.8.0'
385
399
  gem 'mysql2', '< 0.5', platform: :ruby
400
+ gem 'qless'
386
401
  gem 'racecar', '>= 0.3.5'
387
402
  gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
388
403
  gem 'rack-test'
@@ -391,6 +406,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
391
406
  gem 'rest-client'
392
407
  gem 'resque', '< 2.0'
393
408
  gem 'ruby-kafka', '>= 0.7.10'
409
+ gem 'rspec', '>= 3.0.0'
394
410
  gem 'sequel'
395
411
  gem 'shoryuken'
396
412
  gem 'sidekiq'
@@ -431,6 +447,7 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
431
447
  gem 'activerecord-mysql-adapter', platform: :ruby
432
448
  gem 'activerecord-jdbcmysql-adapter', platform: :jruby
433
449
  gem 'rack-cache', '1.7.1'
450
+ gem 'sqlite3', '~> 1.3.5'
434
451
  gem 'lograge', '< 0.4'
435
452
  end
436
453
 
@@ -549,6 +566,8 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
549
566
  gem 'resque', '>= 2.0'
550
567
  end
551
568
 
569
+ (3..4).each { |v| gem_cucumber(v) }
570
+
552
571
  appraise 'contrib' do
553
572
  gem 'actionpack'
554
573
  gem 'actionview'
@@ -564,15 +583,17 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
564
583
  gem 'excon'
565
584
  gem 'faraday'
566
585
  gem 'grape'
567
- gem 'graphql'
586
+ gem 'graphql', '>= 1.12.0'
568
587
  gem 'grpc'
569
588
  gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
570
589
  gem 'hiredis'
571
590
  gem 'http'
591
+ gem 'httpclient'
572
592
  gem 'mongo', '>= 2.8.0'
573
593
  gem 'mysql2', '< 0.5', platform: :ruby
574
594
  gem 'pg', platform: :ruby
575
595
  gem 'presto-client', '>= 0.5.14'
596
+ gem 'qless'
576
597
  gem 'racecar', '>= 0.3.5'
577
598
  gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
578
599
  gem 'rack-test'
@@ -581,6 +602,7 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
581
602
  gem 'rest-client'
582
603
  gem 'resque'
583
604
  gem 'ruby-kafka', '>= 0.7.10'
605
+ gem 'rspec', '>= 3.0.0'
584
606
  gem 'sequel'
585
607
  gem 'shoryuken'
586
608
  gem 'sidekiq'
@@ -648,6 +670,8 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
648
670
  gem 'resque', '>= 2.0'
649
671
  end
650
672
 
673
+ (3..4).each { |v| gem_cucumber(v) }
674
+
651
675
  appraise 'contrib' do
652
676
  gem 'actionpack'
653
677
  gem 'actionview'
@@ -655,6 +679,7 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
655
679
  gem 'activerecord', '< 5.1.5'
656
680
  gem 'aws-sdk'
657
681
  gem 'concurrent-ruby'
682
+ gem 'cucumber'
658
683
  gem 'dalli'
659
684
  gem 'delayed_job'
660
685
  gem 'delayed_job_active_record'
@@ -663,15 +688,17 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
663
688
  gem 'excon'
664
689
  gem 'faraday'
665
690
  gem 'grape'
666
- gem 'graphql'
691
+ gem 'graphql', '>= 1.12.0'
667
692
  gem 'grpc'
668
693
  gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
669
694
  gem 'hiredis'
670
695
  gem 'http'
696
+ gem 'httpclient'
671
697
  gem 'mongo', '>= 2.8.0'
672
698
  gem 'mysql2', '< 0.5', platform: :ruby
673
699
  gem 'pg', platform: :ruby
674
700
  gem 'presto-client', '>= 0.5.14'
701
+ gem 'qless'
675
702
  gem 'racecar', '>= 0.3.5'
676
703
  gem 'rack'
677
704
  gem 'rack-test'
@@ -680,6 +707,7 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
680
707
  gem 'rest-client'
681
708
  gem 'resque'
682
709
  gem 'ruby-kafka', '>= 0.7.10'
710
+ gem 'rspec', '>= 3.0.0'
683
711
  gem 'sequel'
684
712
  gem 'shoryuken'
685
713
  gem 'sidekiq'
@@ -697,151 +725,207 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
697
725
  end
698
726
  elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
699
727
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
700
- appraise 'rails5-mysql2' do
701
- gem 'rails', '~> 5.2.1'
702
- gem 'mysql2', '< 1', platform: :ruby
703
- gem 'activerecord-jdbcmysql-adapter', platform: :jruby
704
- gem 'sprockets', '< 4'
705
- gem 'lograge'
706
- end
728
+ appraise 'rails5-mysql2' do
729
+ gem 'rails', '~> 5.2.1'
730
+ gem 'mysql2', '< 1', platform: :ruby
731
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
732
+ gem 'sprockets', '< 4'
733
+ gem 'lograge'
734
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
735
+ end
707
736
 
708
- appraise 'rails5-postgres' do
709
- gem 'rails', '~> 5.2.1'
710
- gem 'pg', '< 1.0', platform: :ruby
711
- gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
712
- gem 'sprockets', '< 4'
713
- gem 'lograge'
714
- end
737
+ appraise 'rails5-postgres' do
738
+ gem 'rails', '~> 5.2.1'
739
+ gem 'pg', '< 1.0', platform: :ruby
740
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
741
+ gem 'sprockets', '< 4'
742
+ gem 'lograge'
743
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
744
+ end
715
745
 
716
- appraise 'rails5-postgres-redis' do
717
- gem 'rails', '~> 5.2.1'
718
- gem 'pg', '< 1.0', platform: :ruby
719
- gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
720
- gem 'redis', '>= 4.0.1'
721
- gem 'sprockets', '< 4'
722
- gem 'lograge'
723
- end
746
+ appraise 'rails5-postgres-redis' do
747
+ gem 'rails', '~> 5.2.1'
748
+ gem 'pg', '< 1.0', platform: :ruby
749
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
750
+ gem 'redis', '>= 4.0.1'
751
+ gem 'sprockets', '< 4'
752
+ gem 'lograge'
753
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
754
+ end
724
755
 
725
- appraise 'rails5-postgres-redis-activesupport' do
726
- gem 'rails', '~> 5.2.1'
727
- gem 'pg', '< 1.0', platform: :ruby
728
- gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
729
- gem 'redis', '>= 4.0.1'
730
- gem 'sprockets', '< 4'
731
- gem 'lograge'
732
- end
756
+ appraise 'rails5-postgres-redis-activesupport' do
757
+ gem 'rails', '~> 5.2.1'
758
+ gem 'pg', '< 1.0', platform: :ruby
759
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
760
+ gem 'redis', '>= 4.0.1'
761
+ gem 'sprockets', '< 4'
762
+ gem 'lograge'
763
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
764
+ end
733
765
 
734
- appraise 'rails5-postgres-sidekiq' do
735
- gem 'rails', '~> 5.2.1'
736
- gem 'pg', '< 1.0', platform: :ruby
737
- gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
738
- gem 'sidekiq'
739
- gem 'activejob'
740
- gem 'sprockets', '< 4'
741
- gem 'lograge'
742
- end
766
+ appraise 'rails5-postgres-sidekiq' do
767
+ gem 'rails', '~> 5.2.1'
768
+ gem 'pg', '< 1.0', platform: :ruby
769
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
770
+ gem 'sidekiq'
771
+ gem 'activejob'
772
+ gem 'sprockets', '< 4'
773
+ gem 'lograge'
774
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
775
+ end
743
776
 
744
- appraise 'rails6-mysql2' do
745
- gem 'rails', '~> 6.0.0'
746
- gem 'mysql2', '< 1', platform: :ruby
747
- gem 'activerecord-jdbcmysql-adapter', '>= 60', platform: :jruby # try remove >= 60
748
- gem 'sprockets', '< 4'
749
- gem 'lograge'
750
- end
777
+ appraise 'rails6-mysql2' do
778
+ gem 'rails', '~> 6.0.0'
779
+ gem 'mysql2', '< 1', platform: :ruby
780
+ gem 'activerecord-jdbcmysql-adapter', '>= 60', platform: :jruby # try remove >= 60
781
+ gem 'sprockets', '< 4'
782
+ gem 'lograge'
783
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
784
+ end
751
785
 
752
- appraise 'rails6-postgres' do
753
- gem 'rails', '~> 6.0.0'
754
- gem 'pg', '< 1.0', platform: :ruby
755
- gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
756
- gem 'sprockets', '< 4'
757
- gem 'lograge'
758
- end
786
+ appraise 'rails6-postgres' do
787
+ gem 'rails', '~> 6.0.0'
788
+ gem 'pg', '< 1.0', platform: :ruby
789
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
790
+ gem 'sprockets', '< 4'
791
+ gem 'lograge'
792
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
793
+ end
759
794
 
760
- appraise 'rails6-postgres-redis' do
761
- gem 'rails', '~> 6.0.0'
762
- gem 'pg', '< 1.0', platform: :ruby
763
- gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
764
- gem 'redis', '>= 4.0.1'
765
- gem 'sprockets', '< 4'
766
- gem 'lograge'
767
- end
795
+ appraise 'rails6-postgres-redis' do
796
+ gem 'rails', '~> 6.0.0'
797
+ gem 'pg', '< 1.0', platform: :ruby
798
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
799
+ gem 'redis', '>= 4.0.1'
800
+ gem 'sprockets', '< 4'
801
+ gem 'lograge'
802
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
803
+ end
768
804
 
769
- appraise 'rails6-postgres-redis-activesupport' do
770
- gem 'rails', '~> 6.0.0'
771
- gem 'pg', '< 1.0', platform: :ruby
772
- gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
773
- gem 'redis', '>= 4.0.1'
774
- gem 'sprockets', '< 4'
775
- gem 'lograge'
776
- end
805
+ appraise 'rails6-postgres-redis-activesupport' do
806
+ gem 'rails', '~> 6.0.0'
807
+ gem 'pg', '< 1.0', platform: :ruby
808
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
809
+ gem 'redis', '>= 4.0.1'
810
+ gem 'sprockets', '< 4'
811
+ gem 'lograge'
812
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
813
+ end
777
814
 
778
- appraise 'rails6-postgres-sidekiq' do
779
- gem 'rails', '~> 6.0.0'
780
- gem 'pg', '< 1.0', platform: :ruby
781
- gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
782
- gem 'sidekiq'
783
- gem 'activejob'
784
- gem 'sprockets', '< 4'
785
- gem 'lograge'
786
- end
815
+ appraise 'rails6-postgres-sidekiq' do
816
+ gem 'rails', '~> 6.0.0'
817
+ gem 'pg', '< 1.0', platform: :ruby
818
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
819
+ gem 'sidekiq'
820
+ gem 'activejob'
821
+ gem 'sprockets', '< 4'
822
+ gem 'lograge'
823
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
824
+ end
787
825
 
788
- appraise 'resque2-redis3' do
789
- gem 'redis', '< 4.0'
790
- gem 'resque', '>= 2.0'
791
- end
826
+ appraise 'rails61-mysql2' do
827
+ gem 'rails', '~> 6.1.0'
828
+ gem 'mysql2', '~> 0.5', platform: :ruby
829
+ gem 'activerecord-jdbcmysql-adapter', '>= 61', platform: :jruby
830
+ gem 'sprockets', '< 4'
831
+ gem 'lograge', '~> 0.11'
832
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
833
+ end
792
834
 
793
- appraise 'resque2-redis4' do
794
- gem 'redis', '>= 4.0'
795
- gem 'resque', '>= 2.0'
796
- end
835
+ appraise 'rails61-postgres' do
836
+ gem 'rails', '~> 6.1.0'
837
+ gem 'pg', '>= 1.1', platform: :ruby
838
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 61', platform: :jruby
839
+ gem 'sprockets', '< 4'
840
+ gem 'lograge', '~> 0.11'
841
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
842
+ end
797
843
 
798
- appraise 'contrib' do
799
- gem 'actionpack'
800
- gem 'actionview'
801
- gem 'active_model_serializers', '>= 0.10.0'
802
- gem 'activerecord'
803
- gem 'aws-sdk'
804
- gem 'concurrent-ruby'
805
- gem 'dalli'
806
- gem 'delayed_job'
807
- gem 'delayed_job_active_record'
808
- gem 'elasticsearch-transport'
809
- gem 'ethon'
810
- gem 'excon'
811
- gem 'faraday'
812
- gem 'grape'
813
- gem 'graphql'
814
- gem 'grpc', platform: :ruby
815
- gem 'hiredis'
816
- gem 'http'
817
- gem 'mongo', '>= 2.8.0'
818
- gem 'mysql2', '< 0.5', platform: :ruby
819
- gem 'activerecord-jdbcmysql-adapter', platform: :jruby
820
- gem 'pg', platform: :ruby
821
- gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
822
- gem 'presto-client', '>= 0.5.14'
823
- gem 'racecar', '>= 0.3.5'
824
- gem 'rack'
825
- gem 'rack-test'
826
- gem 'rake', '>= 12.3'
827
- gem 'redis', '< 4.0'
828
- gem 'rest-client'
829
- gem 'resque'
830
- gem 'ruby-kafka', '>= 0.7.10'
831
- gem 'sequel'
832
- gem 'shoryuken'
833
- gem 'sidekiq'
834
- gem 'sinatra'
835
- gem 'sneakers', '>= 2.12.0'
836
- gem 'sqlite3', '~> 1.4.1', platform: :ruby
837
- gem 'sucker_punch'
838
- gem 'typhoeus'
839
- gem 'que', '>= 1.0.0.beta2'
840
- end
844
+ appraise 'rails61-postgres-redis' do
845
+ gem 'rails', '~> 6.1.0'
846
+ gem 'pg', '>= 1.1', platform: :ruby
847
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 61', platform: :jruby
848
+ gem 'redis', '>= 4.2.5'
849
+ gem 'sprockets', '< 4'
850
+ gem 'lograge', '~> 0.11'
851
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
852
+ end
841
853
 
842
- appraise 'contrib-old' do
843
- gem 'faraday', '0.17'
844
- end
854
+ appraise 'rails61-postgres-sidekiq' do
855
+ gem 'rails', '~> 6.1.0'
856
+ gem 'pg', '>= 1.1', platform: :ruby
857
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 61', platform: :jruby
858
+ gem 'sidekiq', '>= 6.1.2'
859
+ gem 'sprockets', '< 4'
860
+ gem 'lograge', '~> 0.11'
861
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
862
+ end
863
+
864
+ appraise 'resque2-redis3' do
865
+ gem 'redis', '< 4.0'
866
+ gem 'resque', '>= 2.0'
867
+ end
868
+
869
+ appraise 'resque2-redis4' do
870
+ gem 'redis', '>= 4.0'
871
+ gem 'resque', '>= 2.0'
872
+ end
873
+
874
+ (3..5).each { |v| gem_cucumber(v) }
875
+
876
+ appraise 'contrib' do
877
+ gem 'actionpack'
878
+ gem 'actionview'
879
+ gem 'active_model_serializers', '>= 0.10.0'
880
+ gem 'activerecord'
881
+ gem 'aws-sdk'
882
+ gem 'concurrent-ruby'
883
+ gem 'cucumber'
884
+ gem 'dalli'
885
+ gem 'delayed_job'
886
+ gem 'delayed_job_active_record'
887
+ gem 'elasticsearch-transport'
888
+ gem 'ethon'
889
+ gem 'excon'
890
+ gem 'faraday'
891
+ gem 'grape'
892
+ gem 'graphql', '>= 1.12.0'
893
+ gem 'grpc', platform: :ruby
894
+ gem 'hiredis'
895
+ gem 'http'
896
+ gem 'httpclient'
897
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
898
+ gem 'mongo', '>= 2.8.0'
899
+ gem 'mysql2', '< 1', platform: :ruby
900
+ gem 'activerecord-jdbcmysql-adapter', '>= 60.2', platform: :jruby
901
+ gem 'pg', platform: :ruby
902
+ gem 'activerecord-jdbcpostgresql-adapter', '>= 60.2', platform: :jruby
903
+ gem 'presto-client', '>= 0.5.14'
904
+ gem 'qless', (RUBY_PLATFORM == 'java' ? '0.10.0' : '>= 0') # Newer releases require `rusage`, which is not available for JRuby
905
+ gem 'racecar', '>= 0.3.5'
906
+ gem 'rack'
907
+ gem 'rack-test'
908
+ gem 'rake', '>= 12.3'
909
+ gem 'redis', '< 4.0'
910
+ gem 'rest-client'
911
+ gem 'resque'
912
+ gem 'ruby-kafka', '>= 0.7.10'
913
+ gem 'rspec', '>= 3.0.0'
914
+ gem 'sequel'
915
+ gem 'shoryuken'
916
+ gem 'sidekiq'
917
+ gem 'sinatra'
918
+ gem 'sneakers', '>= 2.12.0'
919
+ gem 'sqlite3', '~> 1.4.1', platform: :ruby
920
+ gem 'jdbc-sqlite3', '>= 3.28', platform: :jruby
921
+ gem 'sucker_punch'
922
+ gem 'typhoeus'
923
+ gem 'que', '>= 1.0.0.beta2'
924
+ end
925
+
926
+ appraise 'contrib-old' do
927
+ gem 'faraday', '0.17'
928
+ end
845
929
  elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
846
930
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
847
931
  if RUBY_PLATFORM != 'java'
@@ -923,6 +1007,36 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
923
1007
  gem 'lograge'
924
1008
  end
925
1009
 
1010
+ appraise 'rails61-mysql2' do
1011
+ gem 'rails', '~> 6.1.0'
1012
+ gem 'mysql2', '~> 0.5', platform: :ruby
1013
+ gem 'sprockets', '< 4'
1014
+ gem 'lograge', '~> 0.11'
1015
+ end
1016
+
1017
+ appraise 'rails61-postgres' do
1018
+ gem 'rails', '~> 6.1.0'
1019
+ gem 'pg', '>= 1.1', platform: :ruby
1020
+ gem 'sprockets', '< 4'
1021
+ gem 'lograge', '~> 0.11'
1022
+ end
1023
+
1024
+ appraise 'rails61-postgres-redis' do
1025
+ gem 'rails', '~> 6.1.0'
1026
+ gem 'pg', '>= 1.1', platform: :ruby
1027
+ gem 'redis', '>= 4.2.5'
1028
+ gem 'sprockets', '< 4'
1029
+ gem 'lograge', '~> 0.11'
1030
+ end
1031
+
1032
+ appraise 'rails61-postgres-sidekiq' do
1033
+ gem 'rails', '~> 6.1.0'
1034
+ gem 'pg', '>= 1.1', platform: :ruby
1035
+ gem 'sidekiq', '>= 6.1.2'
1036
+ gem 'sprockets', '< 4'
1037
+ gem 'lograge', '~> 0.11'
1038
+ end
1039
+
926
1040
  appraise 'resque2-redis3' do
927
1041
  gem 'redis', '< 4.0'
928
1042
  gem 'resque', '>= 2.0'
@@ -933,6 +1047,8 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
933
1047
  gem 'resque', '>= 2.0'
934
1048
  end
935
1049
 
1050
+ (3..5).each { |v| gem_cucumber(v) }
1051
+
936
1052
  appraise 'contrib' do
937
1053
  gem 'actionpack'
938
1054
  gem 'actionview'
@@ -940,6 +1056,7 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
940
1056
  gem 'activerecord'
941
1057
  gem 'aws-sdk'
942
1058
  gem 'concurrent-ruby'
1059
+ gem 'cucumber'
943
1060
  gem 'dalli'
944
1061
  gem 'delayed_job'
945
1062
  gem 'delayed_job_active_record'
@@ -948,14 +1065,16 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
948
1065
  gem 'excon'
949
1066
  gem 'faraday'
950
1067
  gem 'grape'
951
- gem 'graphql'
1068
+ gem 'graphql', '>= 1.12.0'
952
1069
  gem 'grpc'
953
1070
  gem 'hiredis'
954
1071
  gem 'http'
1072
+ gem 'httpclient'
955
1073
  gem 'mongo', '>= 2.8.0'
956
- gem 'mysql2', '< 0.5', platform: :ruby
1074
+ gem 'mysql2', '< 1', platform: :ruby
957
1075
  gem 'pg', platform: :ruby
958
1076
  gem 'presto-client', '>= 0.5.14'
1077
+ gem 'qless'
959
1078
  gem 'racecar', '>= 0.3.5'
960
1079
  gem 'rack'
961
1080
  gem 'rack-test'
@@ -964,6 +1083,7 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
964
1083
  gem 'rest-client'
965
1084
  gem 'resque'
966
1085
  gem 'ruby-kafka', '>= 0.7.10'
1086
+ gem 'rspec', '>= 3.0.0'
967
1087
  gem 'sequel'
968
1088
  gem 'shoryuken'
969
1089
  gem 'sidekiq'
@@ -979,11 +1099,12 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
979
1099
  gem 'faraday', '0.17'
980
1100
  end
981
1101
  end
982
- elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1102
+ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
1103
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
983
1104
  if RUBY_PLATFORM != 'java'
984
1105
  appraise 'rails5-mysql2' do
985
1106
  gem 'rails', '~> 5.2.1'
986
- gem 'mysql2', '< 0.5', platform: :ruby
1107
+ gem 'mysql2', '< 1', platform: :ruby
987
1108
  gem 'sprockets', '< 4'
988
1109
  gem 'lograge'
989
1110
  end
@@ -1024,7 +1145,7 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1024
1145
 
1025
1146
  appraise 'rails6-mysql2' do
1026
1147
  gem 'rails', '~> 6.0.0'
1027
- gem 'mysql2', '< 0.6', platform: :ruby
1148
+ gem 'mysql2', '< 1', platform: :ruby
1028
1149
  gem 'sprockets', '< 4'
1029
1150
  gem 'lograge'
1030
1151
  end
@@ -1063,6 +1184,36 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1063
1184
  gem 'lograge'
1064
1185
  end
1065
1186
 
1187
+ appraise 'rails61-mysql2' do
1188
+ gem 'rails', '~> 6.1.0'
1189
+ gem 'mysql2', '~> 0.5', platform: :ruby
1190
+ gem 'sprockets', '< 4'
1191
+ gem 'lograge', '~> 0.11'
1192
+ end
1193
+
1194
+ appraise 'rails61-postgres' do
1195
+ gem 'rails', '~> 6.1.0'
1196
+ gem 'pg', '>= 1.1', platform: :ruby
1197
+ gem 'sprockets', '< 4'
1198
+ gem 'lograge', '~> 0.11'
1199
+ end
1200
+
1201
+ appraise 'rails61-postgres-redis' do
1202
+ gem 'rails', '~> 6.1.0'
1203
+ gem 'pg', '>= 1.1', platform: :ruby
1204
+ gem 'redis', '>= 4.2.5'
1205
+ gem 'sprockets', '< 4'
1206
+ gem 'lograge', '~> 0.11'
1207
+ end
1208
+
1209
+ appraise 'rails61-postgres-sidekiq' do
1210
+ gem 'rails', '~> 6.1.0'
1211
+ gem 'pg', '>= 1.1', platform: :ruby
1212
+ gem 'sidekiq', '>= 6.1.2'
1213
+ gem 'sprockets', '< 4'
1214
+ gem 'lograge', '~> 0.11'
1215
+ end
1216
+
1066
1217
  appraise 'resque2-redis3' do
1067
1218
  gem 'redis', '< 4.0'
1068
1219
  gem 'resque', '>= 2.0'
@@ -1073,6 +1224,8 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1073
1224
  gem 'resque', '>= 2.0'
1074
1225
  end
1075
1226
 
1227
+ (3..5).each { |v| gem_cucumber(v) }
1228
+
1076
1229
  appraise 'contrib' do
1077
1230
  gem 'actionpack'
1078
1231
  gem 'actionview'
@@ -1080,6 +1233,7 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1080
1233
  gem 'activerecord'
1081
1234
  gem 'aws-sdk'
1082
1235
  gem 'concurrent-ruby'
1236
+ gem 'cucumber'
1083
1237
  gem 'dalli'
1084
1238
  gem 'delayed_job'
1085
1239
  gem 'delayed_job_active_record'
@@ -1087,14 +1241,16 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1087
1241
  gem 'ethon'
1088
1242
  gem 'excon'
1089
1243
  gem 'grape'
1090
- gem 'graphql'
1244
+ gem 'graphql', '>= 1.12.0'
1091
1245
  gem 'grpc'
1092
1246
  gem 'hiredis'
1093
1247
  gem 'http'
1248
+ gem 'httpclient'
1094
1249
  gem 'mongo', '>= 2.8.0'
1095
- gem 'mysql2', '< 0.5', platform: :ruby
1250
+ gem 'mysql2', '< 1', platform: :ruby
1096
1251
  gem 'pg', platform: :ruby
1097
1252
  gem 'presto-client', '>= 0.5.14'
1253
+ gem 'qless'
1098
1254
  gem 'racecar', '>= 0.3.5'
1099
1255
  gem 'rack'
1100
1256
  gem 'rack-test'
@@ -1103,6 +1259,7 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1103
1259
  gem 'rest-client'
1104
1260
  gem 'resque'
1105
1261
  gem 'ruby-kafka', '>= 0.7.10'
1262
+ gem 'rspec', '>= 3.0.0'
1106
1263
  gem 'sequel'
1107
1264
  gem 'shoryuken'
1108
1265
  gem 'sidekiq'
@@ -1118,4 +1275,91 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
1118
1275
  gem 'faraday', '0.17'
1119
1276
  end
1120
1277
  end
1278
+ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
1279
+ appraise 'rails61-mysql2' do
1280
+ gem 'rails', '~> 6.1.0'
1281
+ gem 'mysql2', '~> 0.5', platform: :ruby
1282
+ gem 'sprockets', '< 4'
1283
+ gem 'lograge', '~> 0.11'
1284
+ end
1285
+
1286
+ appraise 'rails61-postgres' do
1287
+ gem 'rails', '~> 6.1.0'
1288
+ gem 'pg', '>= 1.1', platform: :ruby
1289
+ gem 'sprockets', '< 4'
1290
+ gem 'lograge', '~> 0.11'
1291
+ end
1292
+
1293
+ appraise 'rails61-postgres-redis' do
1294
+ gem 'rails', '~> 6.1.0'
1295
+ gem 'pg', '>= 1.1', platform: :ruby
1296
+ gem 'redis', '>= 4.2.5'
1297
+ gem 'sprockets', '< 4'
1298
+ gem 'lograge', '~> 0.11'
1299
+ end
1300
+
1301
+ appraise 'rails61-postgres-sidekiq' do
1302
+ gem 'rails', '~> 6.1.0'
1303
+ gem 'pg', '>= 1.1', platform: :ruby
1304
+ gem 'sidekiq', '>= 6.1.2'
1305
+ gem 'sprockets', '< 4'
1306
+ gem 'lograge', '~> 0.11'
1307
+ end
1308
+
1309
+ appraise 'resque2-redis3' do
1310
+ gem 'redis', '< 4.0'
1311
+ gem 'resque', '>= 2.0'
1312
+ end
1313
+
1314
+ appraise 'resque2-redis4' do
1315
+ gem 'redis', '>= 4.0'
1316
+ gem 'resque', '>= 2.0'
1317
+ end
1318
+
1319
+ (3..5).each { |v| gem_cucumber(v) }
1320
+
1321
+ appraise 'contrib' do
1322
+ gem 'actionpack'
1323
+ gem 'actionview'
1324
+ gem 'active_model_serializers', '>= 0.10.0'
1325
+ gem 'activerecord'
1326
+ gem 'aws-sdk'
1327
+ gem 'concurrent-ruby'
1328
+ gem 'cucumber'
1329
+ gem 'dalli'
1330
+ gem 'delayed_job'
1331
+ gem 'delayed_job_active_record'
1332
+ gem 'elasticsearch-transport'
1333
+ gem 'ethon'
1334
+ gem 'excon'
1335
+ gem 'grape'
1336
+ gem 'graphql', '>= 1.12.0'
1337
+ # gem 'grpc' # Pending 3.0 support by transient protobuf dependency https://github.com/protocolbuffers/protobuf/issues/7922
1338
+ gem 'hiredis'
1339
+ gem 'http'
1340
+ gem 'httpclient'
1341
+ gem 'mongo', '>= 2.8.0'
1342
+ gem 'mysql2', '>= 0.5.3', platform: :ruby
1343
+ gem 'pg', '>= 1.1', platform: :ruby
1344
+ gem 'presto-client', '>= 0.5.14'
1345
+ gem 'qless'
1346
+ # gem 'racecar', '>= 0.3.5' # Pending release of our fix: https://github.com/appsignal/rdkafka-ruby/pull/144
1347
+ gem 'rack'
1348
+ gem 'rack-test'
1349
+ gem 'rake', '>= 12.3'
1350
+ gem 'redis', '< 4.0'
1351
+ gem 'rest-client'
1352
+ gem 'resque'
1353
+ gem 'ruby-kafka', '>= 0.7.10'
1354
+ gem 'rspec', '>= 3.0.0'
1355
+ gem 'sequel'
1356
+ gem 'shoryuken'
1357
+ gem 'sidekiq'
1358
+ gem 'sinatra'
1359
+ gem 'sneakers', '>= 2.12.0'
1360
+ gem 'sqlite3', '>= 1.4.2'
1361
+ gem 'sucker_punch'
1362
+ gem 'typhoeus'
1363
+ gem 'que', '>= 1.0.0.beta2'
1364
+ end
1121
1365
  end