ddtrace 0.44.0 → 0.48.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 (386) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +183 -15
  3. data/.circleci/images/primary/Dockerfile-2.0.0 +11 -1
  4. data/.circleci/images/primary/Dockerfile-2.1.10 +11 -1
  5. data/.circleci/images/primary/Dockerfile-2.2.10 +11 -1
  6. data/.circleci/images/primary/Dockerfile-2.3.8 +10 -0
  7. data/.circleci/images/primary/Dockerfile-2.4.6 +10 -0
  8. data/.circleci/images/primary/Dockerfile-2.5.6 +10 -0
  9. data/.circleci/images/primary/Dockerfile-2.6.4 +10 -0
  10. data/.circleci/images/primary/Dockerfile-2.7.0 +10 -0
  11. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +88 -0
  12. data/.circleci/images/primary/{Dockerfile-jruby-9.2 → Dockerfile-jruby-9.2.0.0} +1 -5
  13. data/.circleci/images/primary/Dockerfile-truffleruby-21.0.0 +73 -0
  14. data/.github/workflows/create-next-milestone.yml +2 -2
  15. data/.gitlab-ci.yml +18 -18
  16. data/.rubocop.yml +269 -7
  17. data/.rubocop_todo.yml +438 -0
  18. data/.simplecov +6 -0
  19. data/Appraisals +87 -9
  20. data/CHANGELOG.md +238 -1
  21. data/Gemfile +63 -3
  22. data/LICENSE-3rdparty.csv +2 -0
  23. data/README.md +1 -0
  24. data/Rakefile +65 -25
  25. data/bin/ddtracerb +15 -0
  26. data/ddtrace.gemspec +9 -36
  27. data/docker-compose.yml +75 -7
  28. data/docs/DevelopmentGuide.md +28 -0
  29. data/docs/GettingStarted.md +162 -68
  30. data/docs/ProfilingDevelopment.md +88 -0
  31. data/integration/README.md +67 -0
  32. data/integration/apps/rack/.dockerignore +1 -0
  33. data/integration/apps/rack/.envrc.sample +1 -0
  34. data/integration/apps/rack/.gitignore +4 -0
  35. data/integration/apps/rack/.rspec +1 -0
  36. data/integration/apps/rack/Dockerfile +28 -0
  37. data/integration/apps/rack/Dockerfile-ci +11 -0
  38. data/integration/apps/rack/Gemfile +24 -0
  39. data/integration/apps/rack/README.md +93 -0
  40. data/integration/apps/rack/app/acme.rb +80 -0
  41. data/integration/apps/rack/app/datadog.rb +17 -0
  42. data/integration/apps/rack/bin/run +22 -0
  43. data/integration/apps/rack/bin/setup +17 -0
  44. data/integration/apps/rack/bin/test +24 -0
  45. data/integration/apps/rack/config.ru +6 -0
  46. data/integration/apps/rack/config/puma.rb +14 -0
  47. data/integration/apps/rack/config/unicorn.rb +23 -0
  48. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  49. data/integration/apps/rack/docker-compose.yml +78 -0
  50. data/integration/apps/rack/script/build-images +38 -0
  51. data/integration/apps/rack/script/ci +50 -0
  52. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  53. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  54. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  55. data/integration/apps/rails-five/.dockerignore +1 -0
  56. data/integration/apps/rails-five/.env +3 -0
  57. data/integration/apps/rails-five/.envrc.sample +1 -0
  58. data/integration/apps/rails-five/.gitignore +30 -0
  59. data/integration/apps/rails-five/Dockerfile +25 -0
  60. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  61. data/integration/apps/rails-five/Gemfile +104 -0
  62. data/integration/apps/rails-five/README.md +94 -0
  63. data/integration/apps/rails-five/Rakefile +6 -0
  64. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  65. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  66. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  67. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  68. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  69. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  70. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  71. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  72. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  73. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  74. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  75. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  76. data/integration/apps/rails-five/app/models/test.rb +2 -0
  77. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  78. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  79. data/integration/apps/rails-five/bin/bundle +3 -0
  80. data/integration/apps/rails-five/bin/rails +9 -0
  81. data/integration/apps/rails-five/bin/rake +9 -0
  82. data/integration/apps/rails-five/bin/run +24 -0
  83. data/integration/apps/rails-five/bin/setup +27 -0
  84. data/integration/apps/rails-five/bin/spring +17 -0
  85. data/integration/apps/rails-five/bin/test +21 -0
  86. data/integration/apps/rails-five/bin/update +28 -0
  87. data/integration/apps/rails-five/config.ru +5 -0
  88. data/integration/apps/rails-five/config/application.rb +97 -0
  89. data/integration/apps/rails-five/config/boot.rb +4 -0
  90. data/integration/apps/rails-five/config/cable.yml +10 -0
  91. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  92. data/integration/apps/rails-five/config/database.yml +28 -0
  93. data/integration/apps/rails-five/config/environment.rb +5 -0
  94. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  95. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  96. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  97. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  98. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  99. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  100. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  101. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  102. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  103. data/integration/apps/rails-five/config/puma.rb +24 -0
  104. data/integration/apps/rails-five/config/routes.rb +11 -0
  105. data/integration/apps/rails-five/config/spring.rb +6 -0
  106. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  107. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  108. data/integration/apps/rails-five/db/schema.rb +23 -0
  109. data/integration/apps/rails-five/db/seeds.rb +7 -0
  110. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  111. data/integration/apps/rails-five/docker-compose.yml +100 -0
  112. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  113. data/integration/apps/rails-five/log/.keep +0 -0
  114. data/integration/apps/rails-five/public/robots.txt +1 -0
  115. data/integration/apps/rails-five/script/build-images +35 -0
  116. data/integration/apps/rails-five/script/ci +50 -0
  117. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  118. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  119. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  120. data/integration/apps/rails-five/storage/.keep +0 -0
  121. data/integration/apps/rails-five/tmp/.keep +0 -0
  122. data/integration/apps/rails-five/vendor/.keep +0 -0
  123. data/integration/apps/ruby/.dockerignore +1 -0
  124. data/integration/apps/ruby/.envrc.sample +1 -0
  125. data/integration/apps/ruby/.gitignore +2 -0
  126. data/integration/apps/ruby/Dockerfile +25 -0
  127. data/integration/apps/ruby/Dockerfile-ci +11 -0
  128. data/integration/apps/ruby/Gemfile +11 -0
  129. data/integration/apps/ruby/README.md +70 -0
  130. data/integration/apps/ruby/agent.yaml +3 -0
  131. data/integration/apps/ruby/app/datadog.rb +13 -0
  132. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  133. data/integration/apps/ruby/bin/run +20 -0
  134. data/integration/apps/ruby/bin/setup +17 -0
  135. data/integration/apps/ruby/bin/test +21 -0
  136. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  137. data/integration/apps/ruby/docker-compose.yml +63 -0
  138. data/integration/apps/ruby/script/build-images +38 -0
  139. data/integration/apps/ruby/script/ci +50 -0
  140. data/integration/images/agent/Dockerfile +2 -0
  141. data/integration/images/agent/agent.yaml +3 -0
  142. data/integration/images/include/datadog/analyzer.rb +71 -0
  143. data/integration/images/include/datadog/demo_env.rb +101 -0
  144. data/integration/images/include/http-health-check +33 -0
  145. data/integration/images/ruby/2.0/Dockerfile +54 -0
  146. data/integration/images/ruby/2.1/Dockerfile +54 -0
  147. data/integration/images/ruby/2.2/Dockerfile +54 -0
  148. data/integration/images/ruby/2.3/Dockerfile +70 -0
  149. data/integration/images/ruby/2.4/Dockerfile +54 -0
  150. data/integration/images/ruby/2.5/Dockerfile +54 -0
  151. data/integration/images/ruby/2.6/Dockerfile +54 -0
  152. data/integration/images/ruby/2.7/Dockerfile +54 -0
  153. data/integration/images/ruby/3.0/Dockerfile +54 -0
  154. data/integration/images/wrk/Dockerfile +33 -0
  155. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  156. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  157. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  158. data/integration/script/build-images +43 -0
  159. data/lib/ddtrace.rb +8 -5
  160. data/lib/ddtrace/analytics.rb +2 -0
  161. data/lib/ddtrace/auto_instrument.rb +3 -0
  162. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  163. data/lib/ddtrace/buffer.rb +4 -4
  164. data/lib/ddtrace/configuration.rb +121 -26
  165. data/lib/ddtrace/configuration/base.rb +1 -1
  166. data/lib/ddtrace/configuration/components.rb +87 -5
  167. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  168. data/lib/ddtrace/configuration/options.rb +4 -7
  169. data/lib/ddtrace/configuration/settings.rb +48 -3
  170. data/lib/ddtrace/context.rb +5 -6
  171. data/lib/ddtrace/context_provider.rb +0 -1
  172. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  173. data/lib/ddtrace/contrib/action_cable/integration.rb +7 -0
  174. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  175. data/lib/ddtrace/contrib/action_pack/integration.rb +7 -0
  176. data/lib/ddtrace/contrib/action_view/event.rb +1 -1
  177. data/lib/ddtrace/contrib/action_view/integration.rb +7 -0
  178. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  179. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +30 -0
  180. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +107 -18
  181. data/lib/ddtrace/contrib/active_record/integration.rb +7 -0
  182. data/lib/ddtrace/contrib/active_record/utils.rb +57 -20
  183. data/lib/ddtrace/contrib/active_support/integration.rb +7 -1
  184. data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -1
  185. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  186. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  187. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  188. data/lib/ddtrace/contrib/aws/patcher.rb +1 -0
  189. data/lib/ddtrace/contrib/aws/services.rb +2 -0
  190. data/lib/ddtrace/contrib/configurable.rb +63 -39
  191. data/lib/ddtrace/contrib/configuration/resolver.rb +70 -5
  192. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +19 -20
  193. data/lib/ddtrace/contrib/configuration/settings.rb +7 -6
  194. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -10
  195. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -2
  196. data/lib/ddtrace/contrib/cucumber/formatter.rb +5 -11
  197. data/lib/ddtrace/contrib/cucumber/integration.rb +5 -0
  198. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  199. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -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 +10 -9
  203. data/lib/ddtrace/contrib/excon/middleware.rb +2 -6
  204. data/lib/ddtrace/contrib/extensions.rb +53 -3
  205. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  206. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  207. data/lib/ddtrace/contrib/grape/endpoint.rb +8 -15
  208. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  209. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  210. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  211. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  212. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  213. data/lib/ddtrace/contrib/http/instrumentation.rb +5 -5
  214. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  215. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  216. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +147 -0
  217. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  218. data/lib/ddtrace/contrib/httpclient/patcher.rb +38 -0
  219. data/lib/ddtrace/contrib/httprb/instrumentation.rb +14 -20
  220. data/lib/ddtrace/contrib/httprb/patcher.rb +5 -2
  221. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  222. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  223. data/lib/ddtrace/contrib/patchable.rb +18 -7
  224. data/lib/ddtrace/contrib/patcher.rb +9 -6
  225. data/lib/ddtrace/contrib/presto/patcher.rb +5 -2
  226. data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
  227. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
  228. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  229. data/lib/ddtrace/contrib/que/tracer.rb +1 -1
  230. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  231. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  232. data/lib/ddtrace/contrib/rack/integration.rb +7 -0
  233. data/lib/ddtrace/contrib/rack/middlewares.rb +6 -11
  234. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  235. data/lib/ddtrace/contrib/rack/request_queue.rb +6 -1
  236. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  237. data/lib/ddtrace/contrib/rails/patcher.rb +6 -2
  238. data/lib/ddtrace/contrib/rails/utils.rb +4 -0
  239. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  240. data/lib/ddtrace/contrib/rake/integration.rb +1 -1
  241. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +11 -4
  242. data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
  243. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  244. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  245. data/lib/ddtrace/contrib/registry.rb +2 -2
  246. data/lib/ddtrace/contrib/resque/configuration/settings.rb +17 -1
  247. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  248. data/lib/ddtrace/contrib/resque/patcher.rb +4 -4
  249. data/lib/ddtrace/contrib/resque/resque_job.rb +24 -1
  250. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  251. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -10
  252. data/lib/ddtrace/contrib/rspec/example.rb +24 -10
  253. data/lib/ddtrace/contrib/rspec/ext.rb +0 -3
  254. data/lib/ddtrace/contrib/rspec/integration.rb +6 -1
  255. data/lib/ddtrace/contrib/rspec/patcher.rb +0 -2
  256. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  257. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  258. data/lib/ddtrace/contrib/shoryuken/tracer.rb +7 -4
  259. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +2 -7
  260. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  261. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  262. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  263. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  264. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +3 -3
  265. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  266. data/lib/ddtrace/contrib/sneakers/tracer.rb +2 -4
  267. data/lib/ddtrace/contrib/status_code_matcher.rb +5 -3
  268. data/lib/ddtrace/correlation.rb +1 -0
  269. data/lib/ddtrace/diagnostics/environment_logger.rb +3 -2
  270. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  271. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
  272. data/lib/ddtrace/error.rb +2 -0
  273. data/lib/ddtrace/ext/ci.rb +43 -10
  274. data/lib/ddtrace/ext/distributed.rb +1 -1
  275. data/lib/ddtrace/ext/git.rb +0 -1
  276. data/lib/ddtrace/ext/http.rb +1 -1
  277. data/lib/ddtrace/ext/profiling.rb +52 -0
  278. data/lib/ddtrace/ext/runtime.rb +3 -1
  279. data/lib/ddtrace/ext/transport.rb +1 -0
  280. data/lib/ddtrace/forced_tracing.rb +2 -0
  281. data/lib/ddtrace/logger.rb +1 -1
  282. data/lib/ddtrace/metrics.rb +14 -6
  283. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  284. data/lib/ddtrace/opentracer/span.rb +2 -6
  285. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  286. data/lib/ddtrace/patcher.rb +25 -4
  287. data/lib/ddtrace/pin.rb +8 -61
  288. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  289. data/lib/ddtrace/profiling.rb +54 -0
  290. data/lib/ddtrace/profiling/backtrace_location.rb +32 -0
  291. data/lib/ddtrace/profiling/buffer.rb +41 -0
  292. data/lib/ddtrace/profiling/collectors/stack.rb +253 -0
  293. data/lib/ddtrace/profiling/encoding/profile.rb +31 -0
  294. data/lib/ddtrace/profiling/event.rb +13 -0
  295. data/lib/ddtrace/profiling/events/stack.rb +102 -0
  296. data/lib/ddtrace/profiling/exporter.rb +23 -0
  297. data/lib/ddtrace/profiling/ext/cpu.rb +54 -0
  298. data/lib/ddtrace/profiling/ext/cthread.rb +134 -0
  299. data/lib/ddtrace/profiling/ext/forking.rb +97 -0
  300. data/lib/ddtrace/profiling/flush.rb +41 -0
  301. data/lib/ddtrace/profiling/pprof/builder.rb +121 -0
  302. data/lib/ddtrace/profiling/pprof/converter.rb +85 -0
  303. data/lib/ddtrace/profiling/pprof/message_set.rb +12 -0
  304. data/lib/ddtrace/profiling/pprof/payload.rb +18 -0
  305. data/lib/ddtrace/profiling/pprof/pprof.proto +212 -0
  306. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +81 -0
  307. data/lib/ddtrace/profiling/pprof/stack_sample.rb +90 -0
  308. data/lib/ddtrace/profiling/pprof/string_table.rb +10 -0
  309. data/lib/ddtrace/profiling/pprof/template.rb +114 -0
  310. data/lib/ddtrace/profiling/preload.rb +3 -0
  311. data/lib/ddtrace/profiling/profiler.rb +28 -0
  312. data/lib/ddtrace/profiling/recorder.rb +87 -0
  313. data/lib/ddtrace/profiling/scheduler.rb +84 -0
  314. data/lib/ddtrace/profiling/tasks/setup.rb +77 -0
  315. data/lib/ddtrace/profiling/transport/client.rb +12 -0
  316. data/lib/ddtrace/profiling/transport/http.rb +122 -0
  317. data/lib/ddtrace/profiling/transport/http/api.rb +43 -0
  318. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +90 -0
  319. data/lib/ddtrace/profiling/transport/http/api/instance.rb +36 -0
  320. data/lib/ddtrace/profiling/transport/http/api/spec.rb +40 -0
  321. data/lib/ddtrace/profiling/transport/http/builder.rb +28 -0
  322. data/lib/ddtrace/profiling/transport/http/client.rb +33 -0
  323. data/lib/ddtrace/profiling/transport/http/response.rb +21 -0
  324. data/lib/ddtrace/profiling/transport/io.rb +30 -0
  325. data/lib/ddtrace/profiling/transport/io/client.rb +27 -0
  326. data/lib/ddtrace/profiling/transport/io/response.rb +16 -0
  327. data/lib/ddtrace/profiling/transport/parcel.rb +17 -0
  328. data/lib/ddtrace/profiling/transport/request.rb +15 -0
  329. data/lib/ddtrace/profiling/transport/response.rb +8 -0
  330. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  331. data/lib/ddtrace/propagation/http_propagator.rb +17 -2
  332. data/lib/ddtrace/quantization/http.rb +1 -0
  333. data/lib/ddtrace/runtime/cgroup.rb +2 -2
  334. data/lib/ddtrace/runtime/container.rb +32 -26
  335. data/lib/ddtrace/runtime/identity.rb +8 -0
  336. data/lib/ddtrace/sampler.rb +1 -1
  337. data/lib/ddtrace/sampling/rule_sampler.rb +4 -9
  338. data/lib/ddtrace/span.rb +7 -7
  339. data/lib/ddtrace/sync_writer.rb +12 -12
  340. data/lib/ddtrace/tasks/exec.rb +48 -0
  341. data/lib/ddtrace/tasks/help.rb +14 -0
  342. data/lib/ddtrace/tracer.rb +28 -5
  343. data/lib/ddtrace/transport/http.rb +15 -8
  344. data/lib/ddtrace/transport/http/adapters/net.rb +27 -8
  345. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  346. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  347. data/lib/ddtrace/transport/http/builder.rb +7 -1
  348. data/lib/ddtrace/transport/http/env.rb +8 -0
  349. data/lib/ddtrace/transport/http/traces.rb +2 -3
  350. data/lib/ddtrace/transport/io.rb +1 -1
  351. data/lib/ddtrace/transport/io/client.rb +15 -8
  352. data/lib/ddtrace/transport/io/response.rb +1 -3
  353. data/lib/ddtrace/transport/io/traces.rb +6 -0
  354. data/lib/ddtrace/transport/parcel.rb +4 -0
  355. data/lib/ddtrace/transport/traces.rb +18 -1
  356. data/lib/ddtrace/utils/compression.rb +27 -0
  357. data/lib/ddtrace/utils/object_set.rb +41 -0
  358. data/lib/ddtrace/utils/only_once.rb +40 -0
  359. data/lib/ddtrace/utils/sequence.rb +17 -0
  360. data/lib/ddtrace/utils/string_table.rb +45 -0
  361. data/lib/ddtrace/utils/time.rb +32 -1
  362. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  363. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  364. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  365. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  366. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  367. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  368. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  369. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  370. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  371. data/lib/ddtrace/version.rb +3 -1
  372. data/lib/ddtrace/workers.rb +5 -0
  373. data/lib/ddtrace/workers/async.rb +11 -3
  374. data/lib/ddtrace/workers/loop.rb +17 -3
  375. data/lib/ddtrace/workers/polling.rb +1 -0
  376. data/lib/ddtrace/workers/queue.rb +1 -0
  377. data/lib/ddtrace/workers/runtime_metrics.rb +14 -1
  378. data/lib/ddtrace/workers/trace_writer.rb +10 -10
  379. data/lib/ddtrace/writer.rb +7 -4
  380. metadata +213 -379
  381. data/lib/ddtrace/augmentation.rb +0 -13
  382. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  383. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  384. data/lib/ddtrace/augmentation/shim.rb +0 -102
  385. data/lib/ddtrace/contrib/rspec/example_group.rb +0 -61
  386. data/lib/ddtrace/monkey.rb +0 -58
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,438 @@
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: 32
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/profiling/collectors/stack.rb'
97
+ - 'lib/ddtrace/profiling/pprof/converter.rb'
98
+ - 'lib/ddtrace/profiling/pprof/template.rb'
99
+ - 'lib/ddtrace/profiling/recorder.rb'
100
+ - 'lib/ddtrace/profiling/scheduler.rb'
101
+ - 'lib/ddtrace/profiling/transport/http/api/instance.rb'
102
+ - 'lib/ddtrace/profiling/transport/http/api/spec.rb'
103
+ - 'lib/ddtrace/sampler.rb'
104
+ - 'lib/ddtrace/sampling/matcher.rb'
105
+ - 'lib/ddtrace/sampling/rate_limiter.rb'
106
+ - 'lib/ddtrace/transport/http/adapters/net.rb'
107
+ - 'lib/ddtrace/transport/http/adapters/unix_socket.rb'
108
+ - 'lib/ddtrace/transport/http/builder.rb'
109
+ - 'lib/ddtrace/transport/http/env.rb'
110
+ - 'lib/ddtrace/transport/http/traces.rb'
111
+ - 'lib/ddtrace/transport/traces.rb'
112
+ - 'lib/ddtrace/workers/runtime_metrics.rb'
113
+ - 'lib/ddtrace/workers/trace_writer.rb'
114
+ - 'spec/support/faux_transport.rb'
115
+ - 'spec/support/spy_transport.rb'
116
+ - 'test/helper.rb'
117
+
118
+ # Offense count: 1
119
+ Lint/StructNewOverride:
120
+ Exclude:
121
+ - 'lib/ddtrace/profiling/pprof/converter.rb'
122
+
123
+ # Offense count: 1
124
+ # Configuration parameters: AllowComments.
125
+ Lint/SuppressedException:
126
+ Exclude:
127
+ - 'lib/ddtrace/contrib/ethon/easy_patch.rb'
128
+
129
+ # Offense count: 2
130
+ # Configuration parameters: CheckForMethodsWithNoSideEffects.
131
+ Lint/Void:
132
+ Exclude:
133
+ - 'spec/ddtrace/contrib/grpc/support/grpc_helper.rb'
134
+
135
+ # Offense count: 2
136
+ # Configuration parameters: IgnoredMethods.
137
+ Metrics/CyclomaticComplexity:
138
+ Max: 17
139
+
140
+ # Offense count: 2
141
+ # Configuration parameters: IgnoredMethods.
142
+ Metrics/PerceivedComplexity:
143
+ Max: 18
144
+
145
+ # Offense count: 4
146
+ # Configuration parameters: EnforcedStyleForLeadingUnderscores.
147
+ # SupportedStylesForLeadingUnderscores: disallowed, required, optional
148
+ Naming/MemoizedInstanceVariableName:
149
+ Exclude:
150
+ - 'lib/ddtrace/configuration.rb'
151
+ - 'lib/ddtrace/contrib/active_record/configuration/resolver.rb'
152
+ - 'lib/ddtrace/contrib/extensions.rb'
153
+ - 'lib/ddtrace/contrib/sequel/database.rb'
154
+
155
+ # Offense count: 6
156
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers.
157
+ # SupportedStyles: snake_case, normalcase, non_integer
158
+ # AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339
159
+ Naming/VariableNumber:
160
+ Exclude:
161
+ - 'spec/ddtrace/contrib/ethon/typhoeus_integration_spec.rb'
162
+ - 'spec/ddtrace/contrib/resque/instrumentation_spec.rb'
163
+
164
+ # Offense count: 18
165
+ Performance/MethodObjectAsBlock:
166
+ Exclude:
167
+ - 'lib/ddtrace/contrib/cucumber/formatter.rb'
168
+ - 'lib/ddtrace/contrib/delayed_job/plugin.rb'
169
+ - 'lib/ddtrace/pipeline.rb'
170
+ - 'lib/ddtrace/profiling/collectors/stack.rb'
171
+ - 'lib/ddtrace/profiling/pprof/builder.rb'
172
+ - 'lib/ddtrace/profiling/pprof/stack_sample.rb'
173
+ - 'lib/ddtrace/profiling/pprof/template.rb'
174
+ - 'spec/ddtrace/contrib/cucumber/patcher_spec.rb'
175
+
176
+ # Offense count: 6
177
+ RSpec/EmptyExampleGroup:
178
+ Exclude:
179
+ - 'spec/ddtrace/buffer_spec.rb'
180
+ - 'spec/ddtrace/configuration/components_spec.rb'
181
+ - 'spec/ddtrace/ext/ci_spec.rb'
182
+ - 'spec/ddtrace/opentracer/distributed_headers_spec.rb'
183
+
184
+ # Offense count: 2
185
+ # Cop supports --auto-correct.
186
+ RSpec/ExpectActual:
187
+ Exclude:
188
+ - 'spec/routing/**/*'
189
+ - 'spec/ddtrace/contrib/rspec/instrumentation_spec.rb'
190
+
191
+ # Offense count: 3
192
+ RSpec/IteratedExpectation:
193
+ Exclude:
194
+ - 'spec/ddtrace/contrib/grpc/support/grpc_helper.rb'
195
+ - 'spec/ddtrace/contrib/rack/integration_test_spec.rb'
196
+
197
+ # Offense count: 3
198
+ RSpec/LeakyConstantDeclaration:
199
+ Exclude:
200
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
201
+ - 'spec/ddtrace/contrib/rails/rack_spec.rb'
202
+ - 'spec/ddtrace/workers/async_spec.rb'
203
+
204
+ # Offense count: 37
205
+ RSpec/MissingExampleGroupArgument:
206
+ Exclude:
207
+ - 'spec/ddtrace/configuration/settings_spec.rb'
208
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
209
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
210
+
211
+ # Offense count: 18
212
+ RSpec/MultipleDescribes:
213
+ Exclude:
214
+ - 'spec/ddtrace/analytics_spec.rb'
215
+ - 'spec/ddtrace/buffer_spec.rb'
216
+ - 'spec/ddtrace/configuration/option_definition_spec.rb'
217
+ - 'spec/ddtrace/context_flush_spec.rb'
218
+ - 'spec/ddtrace/context_provider_spec.rb'
219
+ - 'spec/ddtrace/forced_tracing_spec.rb'
220
+ - 'spec/ddtrace/metrics_spec.rb'
221
+ - 'spec/ddtrace/sampler_spec.rb'
222
+ - 'spec/ddtrace/sampling/matcher_spec.rb'
223
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
224
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
225
+ - 'spec/ddtrace/transport/http/adapters/unix_socket_spec.rb'
226
+ - 'spec/ddtrace/transport/http/traces_spec.rb'
227
+ - 'spec/ddtrace/transport/io/traces_spec.rb'
228
+ - 'spec/ddtrace/transport/response_spec.rb'
229
+ - 'spec/ddtrace/transport/statistics_spec.rb'
230
+ - 'spec/ddtrace/transport/traces_spec.rb'
231
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
232
+
233
+ # Offense count: 143
234
+ # Configuration parameters: IgnoreSharedExamples.
235
+ RSpec/NamedSubject:
236
+ Exclude:
237
+ - 'spec/ddtrace/benchmark/gem_loading_spec.rb'
238
+ - 'spec/ddtrace/chunker_spec.rb'
239
+ - 'spec/ddtrace/context_flush_spec.rb'
240
+ - 'spec/ddtrace/context_provider_spec.rb'
241
+ - 'spec/ddtrace/context_spec.rb'
242
+ - 'spec/ddtrace/contrib/active_support/notifications/subscription_spec.rb'
243
+ - 'spec/ddtrace/contrib/ethon/easy_patch_spec.rb'
244
+ - 'spec/ddtrace/contrib/ethon/multi_patch_spec.rb'
245
+ - 'spec/ddtrace/contrib/excon/instrumentation_spec.rb'
246
+ - 'spec/ddtrace/contrib/faraday/middleware_spec.rb'
247
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
248
+ - 'spec/ddtrace/contrib/grpc/datadog_interceptor/client_spec.rb'
249
+ - 'spec/ddtrace/contrib/grpc/datadog_interceptor/server_spec.rb'
250
+ - 'spec/ddtrace/contrib/grpc/interception_context_spec.rb'
251
+ - 'spec/ddtrace/contrib/http/patcher_spec.rb'
252
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
253
+ - 'spec/ddtrace/contrib/mongodb/regression_issue_1235_spec.rb'
254
+ - 'spec/ddtrace/contrib/patcher_spec.rb'
255
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
256
+ - 'spec/ddtrace/contrib/rails/database_spec.rb'
257
+ - 'spec/ddtrace/pin_spec.rb'
258
+ - 'spec/ddtrace/pipeline/span_filter_spec.rb'
259
+ - 'spec/ddtrace/pipeline/span_processor_spec.rb'
260
+ - 'spec/ddtrace/pipeline_spec.rb'
261
+ - 'spec/ddtrace/propagation/grpc_propagator_spec.rb'
262
+ - 'spec/ddtrace/sampling/rate_limiter_spec.rb'
263
+ - 'spec/ddtrace/sampling/rule_sampler_spec.rb'
264
+ - 'spec/ddtrace/span_spec.rb'
265
+ - 'spec/ddtrace/tracer_spec.rb'
266
+ - 'spec/ddtrace/transport/traces_spec.rb'
267
+
268
+ # Offense count: 4
269
+ RSpec/OverwritingSetup:
270
+ Exclude:
271
+ - 'spec/ddtrace/buffer_spec.rb'
272
+ - 'spec/ddtrace/sampling/rule_spec.rb'
273
+
274
+ # Offense count: 8
275
+ RSpec/RepeatedDescription:
276
+ Exclude:
277
+ - 'spec/ddtrace/contrib/rest_client/request_patch_spec.rb'
278
+
279
+ # Offense count: 2
280
+ RSpec/RepeatedExampleGroupBody:
281
+ Exclude:
282
+ - 'spec/ddtrace/contrib/elasticsearch/patcher_spec.rb'
283
+
284
+ # Offense count: 12
285
+ RSpec/RepeatedExampleGroupDescription:
286
+ Exclude:
287
+ - 'spec/ddtrace/contrib/elasticsearch/patcher_spec.rb'
288
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
289
+ - 'spec/ddtrace/contrib/redis/quantize_spec.rb'
290
+ - 'spec/ddtrace/opentracer/scope_manager_spec.rb'
291
+ - 'spec/ddtrace/opentracer/thread_local_scope_manager_spec.rb'
292
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
293
+
294
+ # Offense count: 53
295
+ RSpec/ScatteredSetup:
296
+ Exclude:
297
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
298
+ - 'spec/ddtrace/configuration/settings_spec.rb'
299
+ - 'spec/ddtrace/contrib/action_cable/instrumentation_spec.rb'
300
+ - 'spec/ddtrace/contrib/action_cable/patcher_spec.rb'
301
+ - 'spec/ddtrace/contrib/elasticsearch/transport_spec.rb'
302
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
303
+ - 'spec/ddtrace/contrib/http/miniapp_spec.rb'
304
+ - 'spec/ddtrace/contrib/http/request_spec.rb'
305
+ - 'spec/ddtrace/contrib/mongodb/regression_issue_1235_spec.rb'
306
+ - 'spec/ddtrace/contrib/presto/client_spec.rb'
307
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
308
+ - 'spec/ddtrace/contrib/rails/database_spec.rb'
309
+ - 'spec/ddtrace/contrib/rails/rails_active_job_spec.rb'
310
+ - 'spec/ddtrace/contrib/rails/railtie_spec.rb'
311
+ - 'spec/ddtrace/contrib/rails/redis_cache_spec.rb'
312
+ - 'spec/ddtrace/contrib/redis/miniapp_spec.rb'
313
+ - 'spec/ddtrace/diagnostics/environment_logger_spec.rb'
314
+ - 'spec/ddtrace/opentracer/rack_propagator_spec.rb'
315
+ - 'spec/ddtrace/opentracer/span_spec.rb'
316
+ - 'spec/ddtrace/opentracer/text_map_propagator_spec.rb'
317
+ - 'spec/ddtrace/tracer_spec.rb'
318
+ - 'spec/ddtrace/workers/loop_spec.rb'
319
+
320
+ # Offense count: 2
321
+ RSpec/UnspecifiedException:
322
+ Exclude:
323
+ - 'spec/ddtrace/contrib/delayed_job/plugin_spec.rb'
324
+ - 'spec/ddtrace/contrib/sidekiq/tracer_configure_spec.rb'
325
+
326
+ # Offense count: 421
327
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
328
+ RSpec/VerifiedDoubles:
329
+ Exclude:
330
+ - 'spec/ddtrace/buffer_spec.rb'
331
+ - 'spec/ddtrace/configuration/base_spec.rb'
332
+ - 'spec/ddtrace/configuration/components_spec.rb'
333
+ - 'spec/ddtrace/configuration/option_definition_spec.rb'
334
+ - 'spec/ddtrace/configuration/option_spec.rb'
335
+ - 'spec/ddtrace/configuration/options_spec.rb'
336
+ - 'spec/ddtrace/configuration/settings_spec.rb'
337
+ - 'spec/ddtrace/configuration_spec.rb'
338
+ - 'spec/ddtrace/context_provider_spec.rb'
339
+ - 'spec/ddtrace/context_spec.rb'
340
+ - 'spec/ddtrace/contrib/action_cable/patcher_spec.rb'
341
+ - 'spec/ddtrace/contrib/active_support/notifications/event_spec.rb'
342
+ - 'spec/ddtrace/contrib/active_support/notifications/subscriber_spec.rb'
343
+ - 'spec/ddtrace/contrib/active_support/notifications/subscription_spec.rb'
344
+ - 'spec/ddtrace/contrib/analytics_spec.rb'
345
+ - 'spec/ddtrace/contrib/configuration/resolver_spec.rb'
346
+ - 'spec/ddtrace/contrib/configuration/settings_spec.rb'
347
+ - 'spec/ddtrace/contrib/cucumber/formatter_spec.rb'
348
+ - 'spec/ddtrace/contrib/delayed_job/plugin_spec.rb'
349
+ - 'spec/ddtrace/contrib/ethon/easy_patch_spec.rb'
350
+ - 'spec/ddtrace/contrib/extensions_spec.rb'
351
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
352
+ - 'spec/ddtrace/contrib/patchable_spec.rb'
353
+ - 'spec/ddtrace/contrib/rails/action_controller_spec.rb'
354
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
355
+ - 'spec/ddtrace/contrib/rake/instrumentation_spec.rb'
356
+ - 'spec/ddtrace/contrib/registry_spec.rb'
357
+ - 'spec/ddtrace/contrib/shoryuken/tracer_spec.rb'
358
+ - 'spec/ddtrace/contrib/sneakers/tracer_spec.rb'
359
+ - 'spec/ddtrace/correlation_spec.rb'
360
+ - 'spec/ddtrace/environment_spec.rb'
361
+ - 'spec/ddtrace/forced_tracing_spec.rb'
362
+ - 'spec/ddtrace/integration_spec.rb'
363
+ - 'spec/ddtrace/metrics_spec.rb'
364
+ - 'spec/ddtrace/opentracer/global_tracer_spec.rb'
365
+ - 'spec/ddtrace/opentracer/rack_propagator_spec.rb'
366
+ - 'spec/ddtrace/opentracer/text_map_propagator_spec.rb'
367
+ - 'spec/ddtrace/opentracer/tracer_spec.rb'
368
+ - 'spec/ddtrace/patcher_spec.rb'
369
+ - 'spec/ddtrace/pin_spec.rb'
370
+ - 'spec/ddtrace/profiling/backtrace_location_spec.rb'
371
+ - 'spec/ddtrace/profiling/collectors/stack_spec.rb'
372
+ - 'spec/ddtrace/profiling/encoding/profile_spec.rb'
373
+ - 'spec/ddtrace/profiling/events/stack_spec.rb'
374
+ - 'spec/ddtrace/profiling/exporter_spec.rb'
375
+ - 'spec/ddtrace/profiling/ext/cthread_spec.rb'
376
+ - 'spec/ddtrace/profiling/ext/forking_spec.rb'
377
+ - 'spec/ddtrace/profiling/flush_spec.rb'
378
+ - 'spec/ddtrace/profiling/pprof/builder_spec.rb'
379
+ - 'spec/ddtrace/profiling/pprof/converter_spec.rb'
380
+ - 'spec/ddtrace/profiling/pprof/message_set_spec.rb'
381
+ - 'spec/ddtrace/profiling/pprof/payload_spec.rb'
382
+ - 'spec/ddtrace/profiling/pprof/template_spec.rb'
383
+ - 'spec/ddtrace/profiling/transport/http/api/endpoint_spec.rb'
384
+ - 'spec/ddtrace/profiling/transport/http/api/instance_spec.rb'
385
+ - 'spec/ddtrace/profiling/transport/http/builder_spec.rb'
386
+ - 'spec/ddtrace/profiling/transport/http/client_spec.rb'
387
+ - 'spec/ddtrace/profiling/transport/http/response_spec.rb'
388
+ - 'spec/ddtrace/profiling/transport/http_spec.rb'
389
+ - 'spec/ddtrace/profiling/transport/io/client_spec.rb'
390
+ - 'spec/ddtrace/profiling/transport/io/response_spec.rb'
391
+ - 'spec/ddtrace/profiling/transport/io_spec.rb'
392
+ - 'spec/ddtrace/profiling/transport/parcel_spec.rb'
393
+ - 'spec/ddtrace/profiling_spec.rb'
394
+ - 'spec/ddtrace/runtime/metrics_spec.rb'
395
+ - 'spec/ddtrace/tasks/exec_spec.rb'
396
+ - 'spec/ddtrace/tracer_spec.rb'
397
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
398
+ - 'spec/ddtrace/transport/http/adapters/registry_spec.rb'
399
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
400
+ - 'spec/ddtrace/transport/http/adapters/unix_socket_spec.rb'
401
+ - 'spec/ddtrace/transport/http/api/endpoint_spec.rb'
402
+ - 'spec/ddtrace/transport/http/api/instance_spec.rb'
403
+ - 'spec/ddtrace/transport/http/builder_spec.rb'
404
+ - 'spec/ddtrace/transport/http/client_spec.rb'
405
+ - 'spec/ddtrace/transport/http/response_spec.rb'
406
+ - 'spec/ddtrace/transport/http/statistics_spec.rb'
407
+ - 'spec/ddtrace/transport/http/traces_spec.rb'
408
+ - 'spec/ddtrace/transport/http_spec.rb'
409
+ - 'spec/ddtrace/transport/io/client_spec.rb'
410
+ - 'spec/ddtrace/transport/io/response_spec.rb'
411
+ - 'spec/ddtrace/transport/io/traces_spec.rb'
412
+ - 'spec/ddtrace/transport/parcel_spec.rb'
413
+ - 'spec/ddtrace/transport/traces_spec.rb'
414
+ - 'spec/ddtrace/utils/object_set_spec.rb'
415
+ - 'spec/ddtrace/utils/string_table_spec.rb'
416
+ - 'spec/ddtrace/worker_spec.rb'
417
+ - 'spec/ddtrace/workers/async_spec.rb'
418
+ - 'spec/ddtrace/workers/loop_spec.rb'
419
+ - 'spec/ddtrace/workers/polling_spec.rb'
420
+ - 'spec/ddtrace/workers/queue_spec.rb'
421
+ - 'spec/ddtrace/workers/runtime_metrics_spec.rb'
422
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
423
+ - 'spec/ddtrace/workers_integration_spec.rb'
424
+ - 'spec/ddtrace/writer_spec.rb'
425
+ - 'spec/support/statsd_helpers.rb'
426
+
427
+ # Offense count: 24
428
+ Style/ClassVars:
429
+ Exclude:
430
+ - 'spec/ddtrace/contrib/rails/support/rails3.rb'
431
+ - 'spec/ddtrace/contrib/rails/support/rails4.rb'
432
+ - 'spec/ddtrace/contrib/rails/support/rails5.rb'
433
+ - 'spec/ddtrace/contrib/rails/support/rails6.rb'
434
+
435
+ # Offense count: 1
436
+ Style/MixinUsage:
437
+ Exclude:
438
+ - 'test/benchmark_test.rb'
data/.simplecov CHANGED
@@ -1,3 +1,9 @@
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/'
data/Appraisals CHANGED
@@ -41,6 +41,8 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
41
41
  gem 'rack-cache', '1.7.1'
42
42
  gem 'sqlite3', '~> 1.3.5'
43
43
  gem 'lograge', '< 0.4'
44
+ gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax
45
+ gem 'safe_yaml' # Required for makara, as YAML.safe_load is not available in Ruby 2.0
44
46
  end
45
47
 
46
48
  appraise 'rails32-postgres' do
@@ -87,6 +89,8 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
87
89
  gem 'excon'
88
90
  gem 'hiredis'
89
91
  gem 'http'
92
+ gem 'httpclient'
93
+ gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax
90
94
  gem 'mongo', '< 2.5'
91
95
  gem 'mysql2', '0.3.21', platform: :ruby
92
96
  gem 'pg', '< 1.0', platform: :ruby
@@ -98,6 +102,7 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
98
102
  gem 'rest-client'
99
103
  gem 'resque', '< 2.0'
100
104
  gem 'rspec', '>= 3.0.0'
105
+ gem 'safe_yaml' # Required for makara, as YAML.safe_load is not available in Ruby 2.0
101
106
  gem 'sequel', '~> 4.0', '< 4.37'
102
107
  gem 'sidekiq', '~> 3.5.4'
103
108
  gem 'sinatra', '1.4.5'
@@ -106,6 +111,10 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
106
111
  gem 'timers', '< 4.2'
107
112
  gem 'typhoeus'
108
113
  end
114
+
115
+ appraise 'core-old' do
116
+ gem 'dogstatsd-ruby', '~> 4'
117
+ end
109
118
  end
110
119
  elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
111
120
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
@@ -138,6 +147,7 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
138
147
  gem 'rack-cache', '1.7.1'
139
148
  gem 'sqlite3', '~> 1.3.5'
140
149
  gem 'lograge', '< 0.4'
150
+ gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax
141
151
  end
142
152
 
143
153
  appraise 'rails32-postgres' do
@@ -211,6 +221,8 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
211
221
  gem 'excon'
212
222
  gem 'hiredis'
213
223
  gem 'http'
224
+ gem 'httpclient'
225
+ gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax
214
226
  gem 'mongo', '< 2.5'
215
227
  gem 'mysql2', '0.3.21', platform: :ruby
216
228
  gem 'pg', '< 1.0', platform: :ruby
@@ -232,6 +244,10 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
232
244
  gem 'timers', '< 4.2'
233
245
  gem 'typhoeus'
234
246
  end
247
+
248
+ appraise 'core-old' do
249
+ gem 'dogstatsd-ruby', '~> 4'
250
+ end
235
251
  end
236
252
  elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
237
253
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
@@ -337,6 +353,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
337
353
  gem 'mysql2', '< 1', platform: :ruby
338
354
  gem 'sprockets', '< 4'
339
355
  gem 'lograge'
356
+ gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved.
340
357
  end
341
358
 
342
359
  appraise 'rails5-postgres' do
@@ -344,6 +361,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
344
361
  gem 'pg', '< 1.0', platform: :ruby
345
362
  gem 'sprockets', '< 4'
346
363
  gem 'lograge'
364
+ gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved.
347
365
  end
348
366
 
349
367
  appraise 'rails5-postgres-redis' do
@@ -352,6 +370,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
352
370
  gem 'redis', '>= 4.0.1'
353
371
  gem 'sprockets', '< 4'
354
372
  gem 'lograge'
373
+ gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved.
355
374
  end
356
375
 
357
376
  appraise 'rails5-postgres-redis-activesupport' do
@@ -360,6 +379,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
360
379
  gem 'redis', '>= 4.0.1'
361
380
  gem 'sprockets', '< 4'
362
381
  gem 'lograge'
382
+ gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved.
363
383
  end
364
384
 
365
385
  appraise 'rails5-postgres-sidekiq' do
@@ -369,6 +389,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
369
389
  gem 'activejob'
370
390
  gem 'sprockets', '< 4'
371
391
  gem 'lograge'
392
+ gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved.
372
393
  end
373
394
 
374
395
  appraise 'contrib' do
@@ -388,10 +409,12 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
388
409
  gem 'excon'
389
410
  gem 'faraday'
390
411
  gem 'grape'
391
- gem 'graphql', '< 1.9.4'
392
- gem 'grpc', '~> 1.21.0' # Last version to support Ruby < 2.3
412
+ gem 'graphql', '>= 1.12.0'
413
+ gem 'grpc', '~> 1.19.0' # Last version to support Ruby < 2.3 & google-protobuf < 3.7
393
414
  gem 'hiredis'
394
415
  gem 'http'
416
+ gem 'httpclient'
417
+ gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax
395
418
  gem 'mongo', '>= 2.8.0'
396
419
  gem 'mysql2', '< 0.5', platform: :ruby
397
420
  gem 'qless'
@@ -414,6 +437,10 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
414
437
  gem 'typhoeus'
415
438
  gem 'que', '>= 1.0.0.beta2'
416
439
  end
440
+
441
+ appraise 'core-old' do
442
+ gem 'dogstatsd-ruby', '~> 4'
443
+ end
417
444
  end
418
445
  elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
419
446
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
@@ -580,11 +607,13 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
580
607
  gem 'excon'
581
608
  gem 'faraday'
582
609
  gem 'grape'
583
- gem 'graphql'
610
+ gem 'graphql', '>= 1.12.0'
584
611
  gem 'grpc'
585
612
  gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
586
613
  gem 'hiredis'
587
614
  gem 'http'
615
+ gem 'httpclient'
616
+ gem 'makara'
588
617
  gem 'mongo', '>= 2.8.0'
589
618
  gem 'mysql2', '< 0.5', platform: :ruby
590
619
  gem 'pg', platform: :ruby
@@ -613,6 +642,10 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
613
642
  appraise 'contrib-old' do
614
643
  gem 'faraday', '0.17'
615
644
  end
645
+
646
+ appraise 'core-old' do
647
+ gem 'dogstatsd-ruby', '~> 4'
648
+ end
616
649
  end
617
650
  elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
618
651
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
@@ -684,11 +717,13 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
684
717
  gem 'excon'
685
718
  gem 'faraday'
686
719
  gem 'grape'
687
- gem 'graphql'
720
+ gem 'graphql', '>= 1.12.0'
688
721
  gem 'grpc'
689
722
  gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
690
723
  gem 'hiredis'
691
724
  gem 'http'
725
+ gem 'httpclient'
726
+ gem 'makara'
692
727
  gem 'mongo', '>= 2.8.0'
693
728
  gem 'mysql2', '< 0.5', platform: :ruby
694
729
  gem 'pg', platform: :ruby
@@ -717,6 +752,10 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
717
752
  appraise 'contrib-old' do
718
753
  gem 'faraday', '0.17'
719
754
  end
755
+
756
+ appraise 'core-old' do
757
+ gem 'dogstatsd-ruby', '~> 4'
758
+ end
720
759
  end
721
760
  elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
722
761
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
@@ -726,6 +765,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
726
765
  gem 'activerecord-jdbcmysql-adapter', platform: :jruby
727
766
  gem 'sprockets', '< 4'
728
767
  gem 'lograge'
768
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
729
769
  end
730
770
 
731
771
  appraise 'rails5-postgres' do
@@ -734,6 +774,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
734
774
  gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
735
775
  gem 'sprockets', '< 4'
736
776
  gem 'lograge'
777
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
737
778
  end
738
779
 
739
780
  appraise 'rails5-postgres-redis' do
@@ -743,6 +784,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
743
784
  gem 'redis', '>= 4.0.1'
744
785
  gem 'sprockets', '< 4'
745
786
  gem 'lograge'
787
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
746
788
  end
747
789
 
748
790
  appraise 'rails5-postgres-redis-activesupport' do
@@ -752,6 +794,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
752
794
  gem 'redis', '>= 4.0.1'
753
795
  gem 'sprockets', '< 4'
754
796
  gem 'lograge'
797
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
755
798
  end
756
799
 
757
800
  appraise 'rails5-postgres-sidekiq' do
@@ -762,6 +805,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
762
805
  gem 'activejob'
763
806
  gem 'sprockets', '< 4'
764
807
  gem 'lograge'
808
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
765
809
  end
766
810
 
767
811
  appraise 'rails6-mysql2' do
@@ -770,6 +814,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
770
814
  gem 'activerecord-jdbcmysql-adapter', '>= 60', platform: :jruby # try remove >= 60
771
815
  gem 'sprockets', '< 4'
772
816
  gem 'lograge'
817
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
773
818
  end
774
819
 
775
820
  appraise 'rails6-postgres' do
@@ -778,6 +823,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
778
823
  gem 'activerecord-jdbcpostgresql-adapter', '>= 60', platform: :jruby
779
824
  gem 'sprockets', '< 4'
780
825
  gem 'lograge'
826
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
781
827
  end
782
828
 
783
829
  appraise 'rails6-postgres-redis' do
@@ -787,6 +833,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
787
833
  gem 'redis', '>= 4.0.1'
788
834
  gem 'sprockets', '< 4'
789
835
  gem 'lograge'
836
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
790
837
  end
791
838
 
792
839
  appraise 'rails6-postgres-redis-activesupport' do
@@ -796,6 +843,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
796
843
  gem 'redis', '>= 4.0.1'
797
844
  gem 'sprockets', '< 4'
798
845
  gem 'lograge'
846
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
799
847
  end
800
848
 
801
849
  appraise 'rails6-postgres-sidekiq' do
@@ -806,6 +854,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
806
854
  gem 'activejob'
807
855
  gem 'sprockets', '< 4'
808
856
  gem 'lograge'
857
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
809
858
  end
810
859
 
811
860
  appraise 'rails61-mysql2' do
@@ -814,6 +863,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
814
863
  gem 'activerecord-jdbcmysql-adapter', '>= 61', platform: :jruby
815
864
  gem 'sprockets', '< 4'
816
865
  gem 'lograge', '~> 0.11'
866
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
817
867
  end
818
868
 
819
869
  appraise 'rails61-postgres' do
@@ -822,6 +872,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
822
872
  gem 'activerecord-jdbcpostgresql-adapter', '>= 61', platform: :jruby
823
873
  gem 'sprockets', '< 4'
824
874
  gem 'lograge', '~> 0.11'
875
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
825
876
  end
826
877
 
827
878
  appraise 'rails61-postgres-redis' do
@@ -831,6 +882,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
831
882
  gem 'redis', '>= 4.2.5'
832
883
  gem 'sprockets', '< 4'
833
884
  gem 'lograge', '~> 0.11'
885
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
834
886
  end
835
887
 
836
888
  appraise 'rails61-postgres-sidekiq' do
@@ -840,6 +892,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
840
892
  gem 'sidekiq', '>= 6.1.2'
841
893
  gem 'sprockets', '< 4'
842
894
  gem 'lograge', '~> 0.11'
895
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
843
896
  end
844
897
 
845
898
  appraise 'resque2-redis3' do
@@ -870,17 +923,20 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
870
923
  gem 'excon'
871
924
  gem 'faraday'
872
925
  gem 'grape'
873
- gem 'graphql'
926
+ gem 'graphql', '>= 1.12.0'
874
927
  gem 'grpc', platform: :ruby
875
928
  gem 'hiredis'
876
929
  gem 'http'
930
+ gem 'httpclient'
931
+ gem 'i18n', '1.8.7', platform: :jruby # Removal pending: https://github.com/ruby-i18n/i18n/issues/555#issuecomment-772112169
932
+ gem 'makara'
877
933
  gem 'mongo', '>= 2.8.0'
878
934
  gem 'mysql2', '< 1', platform: :ruby
879
935
  gem 'activerecord-jdbcmysql-adapter', '>= 60.2', platform: :jruby
880
936
  gem 'pg', platform: :ruby
881
937
  gem 'activerecord-jdbcpostgresql-adapter', '>= 60.2', platform: :jruby
882
938
  gem 'presto-client', '>= 0.5.14'
883
- gem 'qless'
939
+ gem 'qless', (RUBY_PLATFORM == 'java' ? '0.10.0' : '>= 0') # Newer releases require `rusage`, which is not available for JRuby
884
940
  gem 'racecar', '>= 0.3.5'
885
941
  gem 'rack'
886
942
  gem 'rack-test'
@@ -905,6 +961,10 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
905
961
  appraise 'contrib-old' do
906
962
  gem 'faraday', '0.17'
907
963
  end
964
+
965
+ appraise 'core-old' do
966
+ gem 'dogstatsd-ruby', '~> 4'
967
+ end
908
968
  elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
909
969
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
910
970
  if RUBY_PLATFORM != 'java'
@@ -1044,10 +1104,12 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
1044
1104
  gem 'excon'
1045
1105
  gem 'faraday'
1046
1106
  gem 'grape'
1047
- gem 'graphql'
1107
+ gem 'graphql', '>= 1.12.0'
1048
1108
  gem 'grpc'
1049
1109
  gem 'hiredis'
1050
1110
  gem 'http'
1111
+ gem 'httpclient'
1112
+ gem 'makara'
1051
1113
  gem 'mongo', '>= 2.8.0'
1052
1114
  gem 'mysql2', '< 1', platform: :ruby
1053
1115
  gem 'pg', platform: :ruby
@@ -1076,6 +1138,10 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
1076
1138
  appraise 'contrib-old' do
1077
1139
  gem 'faraday', '0.17'
1078
1140
  end
1141
+
1142
+ appraise 'core-old' do
1143
+ gem 'dogstatsd-ruby', '~> 4'
1144
+ end
1079
1145
  end
1080
1146
  elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
1081
1147
  && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3.0.0')
@@ -1219,10 +1285,12 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
1219
1285
  gem 'ethon'
1220
1286
  gem 'excon'
1221
1287
  gem 'grape'
1222
- gem 'graphql'
1288
+ gem 'graphql', '>= 1.12.0'
1223
1289
  gem 'grpc'
1224
1290
  gem 'hiredis'
1225
1291
  gem 'http'
1292
+ gem 'httpclient'
1293
+ gem 'makara'
1226
1294
  gem 'mongo', '>= 2.8.0'
1227
1295
  gem 'mysql2', '< 1', platform: :ruby
1228
1296
  gem 'pg', platform: :ruby
@@ -1251,6 +1319,10 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION) \
1251
1319
  appraise 'contrib-old' do
1252
1320
  gem 'faraday', '0.17'
1253
1321
  end
1322
+
1323
+ appraise 'core-old' do
1324
+ gem 'dogstatsd-ruby', '~> 4'
1325
+ end
1254
1326
  end
1255
1327
  elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
1256
1328
  appraise 'rails61-mysql2' do
@@ -1310,10 +1382,12 @@ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
1310
1382
  gem 'ethon'
1311
1383
  gem 'excon'
1312
1384
  gem 'grape'
1313
- gem 'graphql'
1385
+ gem 'graphql', '>= 1.12.0'
1314
1386
  # gem 'grpc' # Pending 3.0 support by transient protobuf dependency https://github.com/protocolbuffers/protobuf/issues/7922
1315
1387
  gem 'hiredis'
1316
1388
  gem 'http'
1389
+ gem 'httpclient'
1390
+ gem 'makara', '>= 0.6.0.pre' # Ruby 3 requires >= 0.6.0, which is currently in pre-release: https://rubygems.org/gems/makara/versions
1317
1391
  gem 'mongo', '>= 2.8.0'
1318
1392
  gem 'mysql2', '>= 0.5.3', platform: :ruby
1319
1393
  gem 'pg', '>= 1.1', platform: :ruby
@@ -1338,4 +1412,8 @@ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
1338
1412
  gem 'typhoeus'
1339
1413
  gem 'que', '>= 1.0.0.beta2'
1340
1414
  end
1415
+
1416
+ appraise 'core-old' do
1417
+ gem 'dogstatsd-ruby', '~> 4'
1418
+ end
1341
1419
  end