ddtrace 0.38.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (433) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +492 -0
  3. data/.circleci/images/primary/Dockerfile-2.0.0 +73 -0
  4. data/.circleci/images/primary/Dockerfile-2.1.10 +73 -0
  5. data/.circleci/images/primary/Dockerfile-2.2.10 +73 -0
  6. data/.circleci/images/primary/Dockerfile-2.3.8 +75 -0
  7. data/.circleci/images/primary/Dockerfile-2.4.6 +73 -0
  8. data/.circleci/images/primary/Dockerfile-2.5.6 +73 -0
  9. data/.circleci/images/primary/Dockerfile-2.6.4 +73 -0
  10. data/.circleci/images/primary/Dockerfile-2.7.0 +73 -0
  11. data/.circleci/images/primary/Dockerfile-jruby-9.2 +77 -0
  12. data/.dockerignore +1 -0
  13. data/.env +26 -0
  14. data/.github/CODEOWNERS +1 -0
  15. data/.gitignore +61 -0
  16. data/.gitlab-ci.yml +26 -0
  17. data/.rspec +1 -0
  18. data/.rubocop.yml +85 -0
  19. data/.yardopts +5 -0
  20. data/Appraisals +961 -0
  21. data/CHANGELOG.md +1402 -0
  22. data/CONTRIBUTING.md +85 -0
  23. data/Gemfile +7 -0
  24. data/LICENSE +6 -0
  25. data/LICENSE.Apache +200 -0
  26. data/LICENSE.BSD3 +24 -0
  27. data/NOTICE +4 -0
  28. data/README.md +23 -0
  29. data/Rakefile +753 -0
  30. data/benchmarks/postgres_database.yml +9 -0
  31. data/benchmarks/sidekiq_test.rb +154 -0
  32. data/ddtrace.gemspec +71 -0
  33. data/docker-compose.yml +370 -0
  34. data/docs/DevelopmentGuide.md +195 -0
  35. data/docs/GettingStarted.md +2224 -0
  36. data/lib/ddtrace.rb +76 -0
  37. data/lib/ddtrace/analytics.rb +36 -0
  38. data/lib/ddtrace/augmentation.rb +13 -0
  39. data/lib/ddtrace/augmentation/method_wrapper.rb +20 -0
  40. data/lib/ddtrace/augmentation/method_wrapping.rb +38 -0
  41. data/lib/ddtrace/augmentation/shim.rb +102 -0
  42. data/lib/ddtrace/buffer.rb +119 -0
  43. data/lib/ddtrace/chunker.rb +34 -0
  44. data/lib/ddtrace/configuration.rb +53 -0
  45. data/lib/ddtrace/configuration/base.rb +84 -0
  46. data/lib/ddtrace/configuration/components.rb +154 -0
  47. data/lib/ddtrace/configuration/dependency_resolver.rb +24 -0
  48. data/lib/ddtrace/configuration/option.rb +64 -0
  49. data/lib/ddtrace/configuration/option_definition.rb +123 -0
  50. data/lib/ddtrace/configuration/option_definition_set.rb +18 -0
  51. data/lib/ddtrace/configuration/option_set.rb +6 -0
  52. data/lib/ddtrace/configuration/options.rb +112 -0
  53. data/lib/ddtrace/configuration/pin_setup.rb +31 -0
  54. data/lib/ddtrace/configuration/settings.rb +273 -0
  55. data/lib/ddtrace/context.rb +305 -0
  56. data/lib/ddtrace/context_flush.rb +69 -0
  57. data/lib/ddtrace/context_provider.rb +50 -0
  58. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +25 -0
  59. data/lib/ddtrace/contrib/action_cable/event.rb +65 -0
  60. data/lib/ddtrace/contrib/action_cable/events.rb +33 -0
  61. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +49 -0
  62. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +55 -0
  63. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +50 -0
  64. data/lib/ddtrace/contrib/action_cable/ext.rb +23 -0
  65. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +31 -0
  66. data/lib/ddtrace/contrib/action_cable/integration.rb +38 -0
  67. data/lib/ddtrace/contrib/action_cable/patcher.rb +27 -0
  68. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +148 -0
  69. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +25 -0
  70. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +27 -0
  71. data/lib/ddtrace/contrib/action_pack/ext.rb +16 -0
  72. data/lib/ddtrace/contrib/action_pack/integration.rb +38 -0
  73. data/lib/ddtrace/contrib/action_pack/patcher.rb +23 -0
  74. data/lib/ddtrace/contrib/action_pack/utils.rb +36 -0
  75. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +26 -0
  76. data/lib/ddtrace/contrib/action_view/event.rb +39 -0
  77. data/lib/ddtrace/contrib/action_view/events.rb +30 -0
  78. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +45 -0
  79. data/lib/ddtrace/contrib/action_view/events/render_template.rb +48 -0
  80. data/lib/ddtrace/contrib/action_view/ext.rb +17 -0
  81. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +74 -0
  82. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +167 -0
  83. data/lib/ddtrace/contrib/action_view/integration.rb +45 -0
  84. data/lib/ddtrace/contrib/action_view/patcher.rb +47 -0
  85. data/lib/ddtrace/contrib/action_view/utils.rb +32 -0
  86. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +25 -0
  87. data/lib/ddtrace/contrib/active_model_serializers/event.rb +68 -0
  88. data/lib/ddtrace/contrib/active_model_serializers/events.rb +30 -0
  89. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +32 -0
  90. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +35 -0
  91. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +17 -0
  92. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +40 -0
  93. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +29 -0
  94. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +45 -0
  95. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +30 -0
  96. data/lib/ddtrace/contrib/active_record/event.rb +30 -0
  97. data/lib/ddtrace/contrib/active_record/events.rb +30 -0
  98. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +60 -0
  99. data/lib/ddtrace/contrib/active_record/events/sql.rb +64 -0
  100. data/lib/ddtrace/contrib/active_record/ext.rb +21 -0
  101. data/lib/ddtrace/contrib/active_record/integration.rb +46 -0
  102. data/lib/ddtrace/contrib/active_record/patcher.rb +23 -0
  103. data/lib/ddtrace/contrib/active_record/utils.rb +76 -0
  104. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +157 -0
  105. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +48 -0
  106. data/lib/ddtrace/contrib/active_support/cache/redis.rb +47 -0
  107. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +25 -0
  108. data/lib/ddtrace/contrib/active_support/ext.rb +21 -0
  109. data/lib/ddtrace/contrib/active_support/integration.rb +40 -0
  110. data/lib/ddtrace/contrib/active_support/notifications/event.rb +64 -0
  111. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +66 -0
  112. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +159 -0
  113. data/lib/ddtrace/contrib/active_support/patcher.rb +23 -0
  114. data/lib/ddtrace/contrib/analytics.rb +24 -0
  115. data/lib/ddtrace/contrib/aws/configuration/settings.rb +25 -0
  116. data/lib/ddtrace/contrib/aws/ext.rb +20 -0
  117. data/lib/ddtrace/contrib/aws/instrumentation.rb +56 -0
  118. data/lib/ddtrace/contrib/aws/integration.rb +42 -0
  119. data/lib/ddtrace/contrib/aws/parsed_context.rb +56 -0
  120. data/lib/ddtrace/contrib/aws/patcher.rb +49 -0
  121. data/lib/ddtrace/contrib/aws/services.rb +115 -0
  122. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +15 -0
  123. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +41 -0
  124. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +11 -0
  125. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +23 -0
  126. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +38 -0
  127. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +28 -0
  128. data/lib/ddtrace/contrib/configurable.rb +76 -0
  129. data/lib/ddtrace/contrib/configuration/resolver.rb +16 -0
  130. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +39 -0
  131. data/lib/ddtrace/contrib/configuration/settings.rb +53 -0
  132. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +25 -0
  133. data/lib/ddtrace/contrib/dalli/ext.rb +17 -0
  134. data/lib/ddtrace/contrib/dalli/instrumentation.rb +50 -0
  135. data/lib/ddtrace/contrib/dalli/integration.rb +38 -0
  136. data/lib/ddtrace/contrib/dalli/patcher.rb +63 -0
  137. data/lib/ddtrace/contrib/dalli/quantize.rb +22 -0
  138. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +25 -0
  139. data/lib/ddtrace/contrib/delayed_job/ext.rb +18 -0
  140. data/lib/ddtrace/contrib/delayed_job/integration.rb +38 -0
  141. data/lib/ddtrace/contrib/delayed_job/patcher.rb +28 -0
  142. data/lib/ddtrace/contrib/delayed_job/plugin.rb +61 -0
  143. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +26 -0
  144. data/lib/ddtrace/contrib/elasticsearch/ext.rb +19 -0
  145. data/lib/ddtrace/contrib/elasticsearch/integration.rb +39 -0
  146. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +117 -0
  147. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +80 -0
  148. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +27 -0
  149. data/lib/ddtrace/contrib/ethon/easy_patch.rb +148 -0
  150. data/lib/ddtrace/contrib/ethon/ext.rb +15 -0
  151. data/lib/ddtrace/contrib/ethon/integration.rb +43 -0
  152. data/lib/ddtrace/contrib/ethon/multi_patch.rb +80 -0
  153. data/lib/ddtrace/contrib/ethon/patcher.rb +25 -0
  154. data/lib/ddtrace/contrib/excon/configuration/settings.rb +28 -0
  155. data/lib/ddtrace/contrib/excon/ext.rb +14 -0
  156. data/lib/ddtrace/contrib/excon/integration.rb +43 -0
  157. data/lib/ddtrace/contrib/excon/middleware.rb +157 -0
  158. data/lib/ddtrace/contrib/excon/patcher.rb +27 -0
  159. data/lib/ddtrace/contrib/extensions.rb +93 -0
  160. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +33 -0
  161. data/lib/ddtrace/contrib/faraday/connection.rb +18 -0
  162. data/lib/ddtrace/contrib/faraday/ext.rb +14 -0
  163. data/lib/ddtrace/contrib/faraday/integration.rb +43 -0
  164. data/lib/ddtrace/contrib/faraday/middleware.rb +83 -0
  165. data/lib/ddtrace/contrib/faraday/patcher.rb +80 -0
  166. data/lib/ddtrace/contrib/faraday/rack_builder.rb +18 -0
  167. data/lib/ddtrace/contrib/grape/configuration/settings.rb +27 -0
  168. data/lib/ddtrace/contrib/grape/endpoint.rb +208 -0
  169. data/lib/ddtrace/contrib/grape/ext.rb +19 -0
  170. data/lib/ddtrace/contrib/grape/instrumentation.rb +33 -0
  171. data/lib/ddtrace/contrib/grape/integration.rb +39 -0
  172. data/lib/ddtrace/contrib/grape/patcher.rb +73 -0
  173. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +27 -0
  174. data/lib/ddtrace/contrib/graphql/ext.rb +13 -0
  175. data/lib/ddtrace/contrib/graphql/integration.rb +39 -0
  176. data/lib/ddtrace/contrib/graphql/patcher.rb +60 -0
  177. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +25 -0
  178. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +74 -0
  179. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +54 -0
  180. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +76 -0
  181. data/lib/ddtrace/contrib/grpc/ext.rb +15 -0
  182. data/lib/ddtrace/contrib/grpc/integration.rb +38 -0
  183. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +49 -0
  184. data/lib/ddtrace/contrib/grpc/patcher.rb +68 -0
  185. data/lib/ddtrace/contrib/http/circuit_breaker.rb +39 -0
  186. data/lib/ddtrace/contrib/http/configuration/settings.rb +27 -0
  187. data/lib/ddtrace/contrib/http/ext.rb +14 -0
  188. data/lib/ddtrace/contrib/http/instrumentation.rb +175 -0
  189. data/lib/ddtrace/contrib/http/integration.rb +45 -0
  190. data/lib/ddtrace/contrib/http/patcher.rb +26 -0
  191. data/lib/ddtrace/contrib/http_annotation_helper.rb +10 -0
  192. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +27 -0
  193. data/lib/ddtrace/contrib/httprb/ext.rb +14 -0
  194. data/lib/ddtrace/contrib/httprb/instrumentation.rb +163 -0
  195. data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
  196. data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
  197. data/lib/ddtrace/contrib/integration.rb +16 -0
  198. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +25 -0
  199. data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
  200. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
  201. data/lib/ddtrace/contrib/kafka/event.rb +51 -0
  202. data/lib/ddtrace/contrib/kafka/events.rb +44 -0
  203. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
  204. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
  205. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
  206. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
  207. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
  208. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
  209. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
  210. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
  211. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
  212. data/lib/ddtrace/contrib/kafka/ext.rb +38 -0
  213. data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
  214. data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
  215. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +28 -0
  216. data/lib/ddtrace/contrib/mongodb/ext.rb +20 -0
  217. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +67 -0
  218. data/lib/ddtrace/contrib/mongodb/integration.rb +38 -0
  219. data/lib/ddtrace/contrib/mongodb/parsers.rb +68 -0
  220. data/lib/ddtrace/contrib/mongodb/patcher.rb +31 -0
  221. data/lib/ddtrace/contrib/mongodb/subscribers.rb +108 -0
  222. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +25 -0
  223. data/lib/ddtrace/contrib/mysql2/ext.rb +15 -0
  224. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +60 -0
  225. data/lib/ddtrace/contrib/mysql2/integration.rb +38 -0
  226. data/lib/ddtrace/contrib/mysql2/patcher.rb +27 -0
  227. data/lib/ddtrace/contrib/patchable.rb +59 -0
  228. data/lib/ddtrace/contrib/patcher.rb +62 -0
  229. data/lib/ddtrace/contrib/presto/configuration/settings.rb +25 -0
  230. data/lib/ddtrace/contrib/presto/ext.rb +25 -0
  231. data/lib/ddtrace/contrib/presto/instrumentation.rb +107 -0
  232. data/lib/ddtrace/contrib/presto/integration.rb +38 -0
  233. data/lib/ddtrace/contrib/presto/patcher.rb +30 -0
  234. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +25 -0
  235. data/lib/ddtrace/contrib/racecar/event.rb +71 -0
  236. data/lib/ddtrace/contrib/racecar/events.rb +30 -0
  237. data/lib/ddtrace/contrib/racecar/events/batch.rb +27 -0
  238. data/lib/ddtrace/contrib/racecar/events/message.rb +27 -0
  239. data/lib/ddtrace/contrib/racecar/ext.rb +21 -0
  240. data/lib/ddtrace/contrib/racecar/integration.rb +39 -0
  241. data/lib/ddtrace/contrib/racecar/patcher.rb +26 -0
  242. data/lib/ddtrace/contrib/rack/configuration/settings.rb +41 -0
  243. data/lib/ddtrace/contrib/rack/ext.rb +18 -0
  244. data/lib/ddtrace/contrib/rack/integration.rb +38 -0
  245. data/lib/ddtrace/contrib/rack/middlewares.rb +290 -0
  246. data/lib/ddtrace/contrib/rack/patcher.rb +107 -0
  247. data/lib/ddtrace/contrib/rack/request_queue.rb +39 -0
  248. data/lib/ddtrace/contrib/rails/configuration/settings.rb +83 -0
  249. data/lib/ddtrace/contrib/rails/ext.rb +13 -0
  250. data/lib/ddtrace/contrib/rails/framework.rb +124 -0
  251. data/lib/ddtrace/contrib/rails/integration.rb +44 -0
  252. data/lib/ddtrace/contrib/rails/middlewares.rb +38 -0
  253. data/lib/ddtrace/contrib/rails/patcher.rb +74 -0
  254. data/lib/ddtrace/contrib/rails/railtie.rb +17 -0
  255. data/lib/ddtrace/contrib/rails/utils.rb +20 -0
  256. data/lib/ddtrace/contrib/rake/configuration/settings.rb +27 -0
  257. data/lib/ddtrace/contrib/rake/ext.rb +18 -0
  258. data/lib/ddtrace/contrib/rake/instrumentation.rb +88 -0
  259. data/lib/ddtrace/contrib/rake/integration.rb +38 -0
  260. data/lib/ddtrace/contrib/rake/patcher.rb +30 -0
  261. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +36 -0
  262. data/lib/ddtrace/contrib/redis/configuration/settings.rb +25 -0
  263. data/lib/ddtrace/contrib/redis/ext.rb +18 -0
  264. data/lib/ddtrace/contrib/redis/integration.rb +42 -0
  265. data/lib/ddtrace/contrib/redis/patcher.rb +97 -0
  266. data/lib/ddtrace/contrib/redis/quantize.rb +47 -0
  267. data/lib/ddtrace/contrib/redis/tags.rb +38 -0
  268. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +159 -0
  269. data/lib/ddtrace/contrib/registerable.rb +33 -0
  270. data/lib/ddtrace/contrib/registry.rb +42 -0
  271. data/lib/ddtrace/contrib/resque/configuration/settings.rb +26 -0
  272. data/lib/ddtrace/contrib/resque/ext.rb +14 -0
  273. data/lib/ddtrace/contrib/resque/integration.rb +47 -0
  274. data/lib/ddtrace/contrib/resque/patcher.rb +29 -0
  275. data/lib/ddtrace/contrib/resque/resque_job.rb +80 -0
  276. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +26 -0
  277. data/lib/ddtrace/contrib/rest_client/ext.rb +14 -0
  278. data/lib/ddtrace/contrib/rest_client/integration.rb +38 -0
  279. data/lib/ddtrace/contrib/rest_client/patcher.rb +23 -0
  280. data/lib/ddtrace/contrib/rest_client/request_patch.rb +89 -0
  281. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +23 -0
  282. data/lib/ddtrace/contrib/sequel/database.rb +61 -0
  283. data/lib/ddtrace/contrib/sequel/dataset.rb +62 -0
  284. data/lib/ddtrace/contrib/sequel/ext.rb +15 -0
  285. data/lib/ddtrace/contrib/sequel/integration.rb +38 -0
  286. data/lib/ddtrace/contrib/sequel/patcher.rb +33 -0
  287. data/lib/ddtrace/contrib/sequel/utils.rb +46 -0
  288. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +24 -0
  289. data/lib/ddtrace/contrib/shoryuken/ext.rb +18 -0
  290. data/lib/ddtrace/contrib/shoryuken/integration.rb +39 -0
  291. data/lib/ddtrace/contrib/shoryuken/patcher.rb +24 -0
  292. data/lib/ddtrace/contrib/shoryuken/tracer.rb +49 -0
  293. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +43 -0
  294. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +31 -0
  295. data/lib/ddtrace/contrib/sidekiq/ext.rb +24 -0
  296. data/lib/ddtrace/contrib/sidekiq/integration.rb +38 -0
  297. data/lib/ddtrace/contrib/sidekiq/patcher.rb +41 -0
  298. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +67 -0
  299. data/lib/ddtrace/contrib/sidekiq/tracing.rb +45 -0
  300. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +34 -0
  301. data/lib/ddtrace/contrib/sinatra/env.rb +58 -0
  302. data/lib/ddtrace/contrib/sinatra/ext.rb +24 -0
  303. data/lib/ddtrace/contrib/sinatra/headers.rb +31 -0
  304. data/lib/ddtrace/contrib/sinatra/integration.rb +38 -0
  305. data/lib/ddtrace/contrib/sinatra/patcher.rb +28 -0
  306. data/lib/ddtrace/contrib/sinatra/tracer.rb +150 -0
  307. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +78 -0
  308. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +25 -0
  309. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +26 -0
  310. data/lib/ddtrace/contrib/sucker_punch/ext.rb +18 -0
  311. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +84 -0
  312. data/lib/ddtrace/contrib/sucker_punch/integration.rb +38 -0
  313. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +42 -0
  314. data/lib/ddtrace/correlation.rb +38 -0
  315. data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
  316. data/lib/ddtrace/diagnostics/health.rb +33 -0
  317. data/lib/ddtrace/distributed_tracing/headers/b3.rb +44 -0
  318. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +56 -0
  319. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +42 -0
  320. data/lib/ddtrace/distributed_tracing/headers/headers.rb +70 -0
  321. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +45 -0
  322. data/lib/ddtrace/encoding.rb +69 -0
  323. data/lib/ddtrace/environment.rb +31 -0
  324. data/lib/ddtrace/error.rb +27 -0
  325. data/lib/ddtrace/event.rb +52 -0
  326. data/lib/ddtrace/ext/analytics.rb +12 -0
  327. data/lib/ddtrace/ext/app_types.rb +11 -0
  328. data/lib/ddtrace/ext/correlation.rb +11 -0
  329. data/lib/ddtrace/ext/diagnostics.rb +35 -0
  330. data/lib/ddtrace/ext/distributed.rb +33 -0
  331. data/lib/ddtrace/ext/environment.rb +16 -0
  332. data/lib/ddtrace/ext/errors.rb +10 -0
  333. data/lib/ddtrace/ext/forced_tracing.rb +25 -0
  334. data/lib/ddtrace/ext/http.rb +46 -0
  335. data/lib/ddtrace/ext/manual_tracing.rb +9 -0
  336. data/lib/ddtrace/ext/metrics.rb +15 -0
  337. data/lib/ddtrace/ext/net.rb +10 -0
  338. data/lib/ddtrace/ext/priority.rb +16 -0
  339. data/lib/ddtrace/ext/runtime.rb +26 -0
  340. data/lib/ddtrace/ext/sampling.rb +16 -0
  341. data/lib/ddtrace/ext/sql.rb +8 -0
  342. data/lib/ddtrace/ext/transport.rb +17 -0
  343. data/lib/ddtrace/forced_tracing.rb +36 -0
  344. data/lib/ddtrace/logger.rb +40 -0
  345. data/lib/ddtrace/metrics.rb +222 -0
  346. data/lib/ddtrace/monkey.rb +58 -0
  347. data/lib/ddtrace/opentelemetry/extensions.rb +13 -0
  348. data/lib/ddtrace/opentelemetry/span.rb +33 -0
  349. data/lib/ddtrace/opentracer.rb +40 -0
  350. data/lib/ddtrace/opentracer/binary_propagator.rb +24 -0
  351. data/lib/ddtrace/opentracer/carrier.rb +6 -0
  352. data/lib/ddtrace/opentracer/distributed_headers.rb +52 -0
  353. data/lib/ddtrace/opentracer/global_tracer.rb +15 -0
  354. data/lib/ddtrace/opentracer/propagator.rb +22 -0
  355. data/lib/ddtrace/opentracer/rack_propagator.rb +60 -0
  356. data/lib/ddtrace/opentracer/scope.rb +15 -0
  357. data/lib/ddtrace/opentracer/scope_manager.rb +6 -0
  358. data/lib/ddtrace/opentracer/span.rb +98 -0
  359. data/lib/ddtrace/opentracer/span_context.rb +14 -0
  360. data/lib/ddtrace/opentracer/span_context_factory.rb +23 -0
  361. data/lib/ddtrace/opentracer/text_map_propagator.rb +75 -0
  362. data/lib/ddtrace/opentracer/thread_local_scope.rb +30 -0
  363. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +40 -0
  364. data/lib/ddtrace/opentracer/tracer.rb +208 -0
  365. data/lib/ddtrace/patcher.rb +47 -0
  366. data/lib/ddtrace/pin.rb +138 -0
  367. data/lib/ddtrace/pipeline.rb +46 -0
  368. data/lib/ddtrace/pipeline/span_filter.rb +38 -0
  369. data/lib/ddtrace/pipeline/span_processor.rb +20 -0
  370. data/lib/ddtrace/propagation/grpc_propagator.rb +61 -0
  371. data/lib/ddtrace/propagation/http_propagator.rb +75 -0
  372. data/lib/ddtrace/quantization/hash.rb +103 -0
  373. data/lib/ddtrace/quantization/http.rb +86 -0
  374. data/lib/ddtrace/runtime/cgroup.rb +44 -0
  375. data/lib/ddtrace/runtime/class_count.rb +17 -0
  376. data/lib/ddtrace/runtime/container.rb +73 -0
  377. data/lib/ddtrace/runtime/gc.rb +16 -0
  378. data/lib/ddtrace/runtime/identity.rb +41 -0
  379. data/lib/ddtrace/runtime/metrics.rb +96 -0
  380. data/lib/ddtrace/runtime/object_space.rb +19 -0
  381. data/lib/ddtrace/runtime/socket.rb +14 -0
  382. data/lib/ddtrace/runtime/thread_count.rb +16 -0
  383. data/lib/ddtrace/sampler.rb +292 -0
  384. data/lib/ddtrace/sampling.rb +2 -0
  385. data/lib/ddtrace/sampling/matcher.rb +57 -0
  386. data/lib/ddtrace/sampling/rate_limiter.rb +127 -0
  387. data/lib/ddtrace/sampling/rule.rb +61 -0
  388. data/lib/ddtrace/sampling/rule_sampler.rb +125 -0
  389. data/lib/ddtrace/span.rb +307 -0
  390. data/lib/ddtrace/sync_writer.rb +67 -0
  391. data/lib/ddtrace/tracer.rb +439 -0
  392. data/lib/ddtrace/transport/http.rb +91 -0
  393. data/lib/ddtrace/transport/http/adapters/net.rb +120 -0
  394. data/lib/ddtrace/transport/http/adapters/registry.rb +24 -0
  395. data/lib/ddtrace/transport/http/adapters/test.rb +81 -0
  396. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +68 -0
  397. data/lib/ddtrace/transport/http/api.rb +46 -0
  398. data/lib/ddtrace/transport/http/api/endpoint.rb +27 -0
  399. data/lib/ddtrace/transport/http/api/fallbacks.rb +22 -0
  400. data/lib/ddtrace/transport/http/api/instance.rb +33 -0
  401. data/lib/ddtrace/transport/http/api/map.rb +14 -0
  402. data/lib/ddtrace/transport/http/api/spec.rb +15 -0
  403. data/lib/ddtrace/transport/http/builder.rb +163 -0
  404. data/lib/ddtrace/transport/http/client.rb +50 -0
  405. data/lib/ddtrace/transport/http/env.rb +48 -0
  406. data/lib/ddtrace/transport/http/response.rb +26 -0
  407. data/lib/ddtrace/transport/http/statistics.rb +30 -0
  408. data/lib/ddtrace/transport/http/traces.rb +143 -0
  409. data/lib/ddtrace/transport/io.rb +26 -0
  410. data/lib/ddtrace/transport/io/client.rb +76 -0
  411. data/lib/ddtrace/transport/io/response.rb +25 -0
  412. data/lib/ddtrace/transport/io/traces.rb +91 -0
  413. data/lib/ddtrace/transport/parcel.rb +13 -0
  414. data/lib/ddtrace/transport/request.rb +13 -0
  415. data/lib/ddtrace/transport/response.rb +60 -0
  416. data/lib/ddtrace/transport/statistics.rb +72 -0
  417. data/lib/ddtrace/transport/traces.rb +183 -0
  418. data/lib/ddtrace/utils.rb +65 -0
  419. data/lib/ddtrace/utils/database.rb +25 -0
  420. data/lib/ddtrace/utils/time.rb +14 -0
  421. data/lib/ddtrace/vendor/active_record/connection_specification.rb +301 -0
  422. data/lib/ddtrace/version.rb +12 -0
  423. data/lib/ddtrace/worker.rb +20 -0
  424. data/lib/ddtrace/workers.rb +117 -0
  425. data/lib/ddtrace/workers/async.rb +165 -0
  426. data/lib/ddtrace/workers/loop.rb +105 -0
  427. data/lib/ddtrace/workers/polling.rb +48 -0
  428. data/lib/ddtrace/workers/queue.rb +39 -0
  429. data/lib/ddtrace/workers/runtime_metrics.rb +47 -0
  430. data/lib/ddtrace/workers/trace_writer.rb +202 -0
  431. data/lib/ddtrace/writer.rb +175 -0
  432. data/tasks/release_gem.rake +28 -0
  433. metadata +815 -0
@@ -0,0 +1,73 @@
1
+ # Current version: https://github.com/docker-library/ruby/blob/defb10adcd6dd2178be3cd9c884fd035b52d42fb/2.7/buster/Dockerfile
2
+ FROM ruby:2.7.0
3
+
4
+ # Make apt non-interactive
5
+ RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
+ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
+
8
+ ENV DEBIAN_FRONTEND=noninteractive
9
+
10
+ # Install required packages
11
+ RUN set -ex; \
12
+ apt-get update; \
13
+ mkdir -p /usr/share/man/man1; \
14
+ apt-get install -y --no-install-recommends \
15
+ git mercurial xvfb \
16
+ locales sudo openssh-client ca-certificates tar gzip parallel \
17
+ net-tools netcat unzip zip bzip2 gnupg curl wget \
18
+ tzdata rsync vim; \
19
+ rm -rf /var/lib/apt/lists/*;
20
+
21
+ # Set timezone to UTC by default
22
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
+
24
+ # Set language
25
+ RUN locale-gen en_US.UTF-8
26
+ ENV LANG en_US.UTF-8
27
+ ENV LANGUAGE en_US:en
28
+
29
+ # Install jq
30
+ RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
+ && chmod +x /usr/bin/jq \
33
+ && jq --version
34
+
35
+ # Install Docker
36
+ RUN set -ex \
37
+ && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
+ && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
+ && echo Docker URL: $DOCKER_URL \
40
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
+ && ls -lha /tmp/docker.tgz \
42
+ && tar -xz -C /tmp -f /tmp/docker.tgz \
43
+ && mv /tmp/docker/* /usr/bin \
44
+ && rm -rf /tmp/docker /tmp/docker.tgz \
45
+ && which docker \
46
+ && (docker version || true)
47
+
48
+ # Install Docker Compose
49
+ RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
+ && chmod +x /usr/bin/docker-compose \
52
+ && docker-compose version
53
+
54
+ # Install Dockerize
55
+ RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
+ && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
+ && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
+ && dockerize --version
60
+
61
+ # Install RubyGems
62
+ # RUN gem update --system # Upgrading disabled until https://github.com/thoughtbot/appraisal/issues/162 is fixed
63
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
64
+
65
+ # Upgrade RubyGems and Bundler # Upgrading disabled until https://github.com/thoughtbot/appraisal/issues/162 is fixed
66
+ # RUN gem update --system
67
+ # RUN gem install bundler
68
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
69
+
70
+ RUN mkdir /app
71
+ WORKDIR /app
72
+
73
+ CMD ["/bin/sh"]
@@ -0,0 +1,77 @@
1
+ # Current version: https://github.com/cpuguy83/docker-jruby/blob/db08637839406420a254a9c825d94994cded5021/9000/jre/Dockerfile
2
+ FROM jruby:9.2.11.1
3
+
4
+ # Make apt non-interactive
5
+ RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
+ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
+
8
+ ENV DEBIAN_FRONTEND=noninteractive
9
+
10
+ # Install required packages
11
+ RUN set -ex; \
12
+ apt-get update; \
13
+ mkdir -p /usr/share/man/man1; \
14
+ apt-get install -y --no-install-recommends \
15
+ git mercurial xvfb \
16
+ locales sudo openssh-client ca-certificates tar gzip parallel \
17
+ net-tools netcat unzip zip bzip2 gnupg curl wget \
18
+ tzdata rsync vim \
19
+ build-essential; \
20
+ rm -rf /var/lib/apt/lists/*;
21
+
22
+ # Set timezone to UTC by default
23
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
24
+
25
+ # Set language
26
+ RUN locale-gen en_US.UTF-8
27
+ ENV LANG en_US.UTF-8
28
+ ENV LANGUAGE en_US:en
29
+
30
+ # Install jq
31
+ RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
32
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
33
+ && chmod +x /usr/bin/jq \
34
+ && jq --version
35
+
36
+ # Install Docker
37
+ RUN set -ex \
38
+ && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
39
+ && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
40
+ && echo Docker URL: $DOCKER_URL \
41
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
42
+ && ls -lha /tmp/docker.tgz \
43
+ && tar -xz -C /tmp -f /tmp/docker.tgz \
44
+ && mv /tmp/docker/* /usr/bin \
45
+ && rm -rf /tmp/docker /tmp/docker.tgz \
46
+ && which docker \
47
+ && (docker version || true)
48
+
49
+ # Install Docker Compose
50
+ RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
51
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
52
+ && chmod +x /usr/bin/docker-compose \
53
+ && docker-compose version
54
+
55
+ # Install Dockerize
56
+ RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
57
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
58
+ && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
59
+ && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
60
+ && dockerize --version
61
+
62
+ # Install RubyGems
63
+ RUN gem update --system
64
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
65
+
66
+ # Upgrade RubyGems and Bundler
67
+ RUN gem uninstall -i /opt/jruby/lib/ruby/gems/shared bundler -v 2.1.4 # Remove when https://github.com/thoughtbot/appraisal/issues/162 is fixed
68
+ RUN gem install bundler -v 2.1.2 # Remove when https://github.com/thoughtbot/appraisal/issues/162 is fixed
69
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
70
+
71
+ # Ensure JRuby is available when running "bash --login"
72
+ RUN echo "export PATH=/opt/jruby/bin:$BUNDLE_BIN:\$PATH" >> ~/.profile
73
+
74
+ RUN mkdir /app
75
+ WORKDIR /app
76
+
77
+ CMD ["bin", "bash", "--login"]
@@ -0,0 +1 @@
1
+ gemfiles/*
data/.env ADDED
@@ -0,0 +1,26 @@
1
+ DD_AGENT_HOST=localhost
2
+ DD_METRIC_AGENT_PORT=8125
3
+ DD_TRACE_AGENT_PORT=8126
4
+ TEST_DDAGENT_API_KEY=invalid_key_but_this_is_fine
5
+ TEST_ELASTICSEARCH_HOST=127.0.0.1
6
+ TEST_ELASTICSEARCH_NATIVE_PORT=9300
7
+ TEST_ELASTICSEARCH_REST_PORT=9200
8
+ TEST_MEMCACHED_HOST=127.0.0.1
9
+ TEST_MEMCACHED_PORT=11211
10
+ TEST_MONGODB_HOST=127.0.0.1
11
+ TEST_MONGODB_PORT=27017
12
+ TEST_MYSQL_DB=mysql
13
+ TEST_MYSQL_HOST=127.0.0.1
14
+ TEST_MYSQL_PASSWORD=mysql
15
+ TEST_MYSQL_PORT=3306
16
+ TEST_MYSQL_ROOT_PASSWORD=root
17
+ TEST_MYSQL_USER=mysql
18
+ TEST_POSTGRES_DB=postgres
19
+ TEST_POSTGRES_HOST=127.0.0.1
20
+ TEST_POSTGRES_PASSWORD=postgres
21
+ TEST_POSTGRES_PORT=5432
22
+ TEST_POSTGRES_USER=postgres
23
+ TEST_PRESTO_HOST=localhost
24
+ TEST_PRESTO_PORT=8080
25
+ TEST_REDIS_HOST=127.0.0.1
26
+ TEST_REDIS_PORT=6379
@@ -0,0 +1 @@
1
+ * @DataDog/apm-ruby
@@ -0,0 +1,61 @@
1
+ *.gem
2
+ *.rbc
3
+ *.swp
4
+ /.config
5
+ /coverage/
6
+ /InstalledFiles
7
+ /pkg/
8
+ /spec/reports/
9
+ /spec/examples.txt
10
+ /test/tmp/
11
+ /test/version_tmp/
12
+ /tmp/
13
+ /log/
14
+
15
+ # Used by dotenv library to load environment variables.
16
+ # .env
17
+
18
+ ## Specific to RubyMotion:
19
+ .dat*
20
+ .repl_history
21
+ build/
22
+ *.bridgesupport
23
+ build-iPhoneOS/
24
+ build-iPhoneSimulator/
25
+
26
+ ## Specific to RubyMotion (use of CocoaPods):
27
+ #
28
+ # We recommend against adding the Pods directory to your .gitignore. However
29
+ # you should judge for yourself, the pros and cons are mentioned at:
30
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
31
+ #
32
+ # vendor/Pods/
33
+
34
+ ## Documentation cache and generated files:
35
+ /.yardoc/
36
+ /_yardoc/
37
+ /doc/
38
+ /rdoc/
39
+ /html/
40
+
41
+ ## Environment normalization:
42
+ /.bundle/
43
+ /vendor/bundle
44
+ /lib/bundler/man/
45
+
46
+ # for a library or gem, you might want to ignore these files since the code is
47
+ # intended to run in multiple environments; otherwise, check them in:
48
+ .ruby-version
49
+ .ruby-gemset
50
+
51
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
52
+ .rvmrc
53
+ # Ignore local variables
54
+ .envrc
55
+
56
+ # lock files
57
+ Gemfile.lock
58
+ gemfiles/*
59
+
60
+ # bundle config
61
+ gemfiles/.bundle
@@ -0,0 +1,26 @@
1
+ stages:
2
+ - deploy
3
+
4
+ variables:
5
+ INDEX_FILE: index.txt
6
+
7
+ .common: &common
8
+ tags: [ "runner:main", "size:large" ]
9
+
10
+ copy_to_s3:
11
+ <<: *common
12
+ stage: deploy
13
+ image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
14
+ rules:
15
+ - if: '$CI_COMMIT_BRANCH == "master"'
16
+ when: on_success
17
+ - when: manual
18
+ script:
19
+ - export ACCESS_KEY_ID=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-rb.secret_key_id --with-decryption --query "Parameter.Value" --out text)
20
+ - export SECRET_ACCESS_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-rb.secret_sec_key_id --with-decryption --query "Parameter.Value" --out text)
21
+ - export AWS_ACCESS_KEY_ID=$ACCESS_KEY_ID
22
+ - export AWS_SECRET_ACCESS_KEY=$SECRET_ACCESS_KEY
23
+ - echo $CI_COMMIT_REF_NAME >> $INDEX_FILE
24
+ - echo $CI_COMMIT_SHA >> $INDEX_FILE
25
+ - echo $GITLAB_USER_NAME >> $INDEX_FILE
26
+ - aws s3 cp $INDEX_FILE s3://datadog-reliability-env/ruby/$INDEX_FILE
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
@@ -0,0 +1,85 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.1
3
+ Include:
4
+ - 'lib/**/*.rb'
5
+ - 'test/**/*.rb'
6
+ - 'spec/**/*.rb'
7
+ - 'Gemfile'
8
+ - 'Rakefile'
9
+ Exclude:
10
+ - 'Appraisals'
11
+ - '*.gemspec'
12
+ - 'lib/ddtrace/vendor/**/*.rb'
13
+
14
+ # 80 characters is a nice goal, but not worth currently changing in existing
15
+ # code for the sake of changing it to conform to a length set in 1928 (IBM).
16
+ Metrics/LineLength:
17
+ Max: 124
18
+
19
+ # These exceptions are good goals to attain, and probably will over time,
20
+ # so periodic disabling and re-running to inspect values is suggested.
21
+
22
+ Metrics/AbcSize:
23
+ Max: 50
24
+
25
+ # TODO: As refactors continue, this should drop. However, the goal of
26
+ # 10 lines in a method may be a little lofty.
27
+ Metrics/MethodLength:
28
+ Max: 36
29
+
30
+ Performance/Casecmp:
31
+ Enabled: false
32
+
33
+ # TODO: this is not compliant with the Ruby community style guide. We
34
+ # should enable again this rule but it will change the public API because
35
+ # we're using set_ methods. We should work on that because also Rails
36
+ # honors this rule.
37
+ Style/AccessorMethodName:
38
+ Enabled: false
39
+
40
+ Style/MethodCallWithoutArgsParentheses:
41
+ Enabled: false
42
+
43
+ Style/RescueModifier:
44
+ Enabled: false
45
+
46
+ Style/NumericLiterals:
47
+ Enabled: false
48
+
49
+ Metrics/ClassLength:
50
+ Max: 140
51
+
52
+ Metrics/BlockLength:
53
+ Max: 42
54
+ Exclude:
55
+ - test/**/*
56
+ - spec/**/*
57
+
58
+ Metrics/ParameterLists:
59
+ Enabled: false
60
+
61
+ Metrics/CyclomaticComplexity:
62
+ Max: 15
63
+
64
+ Metrics/PerceivedComplexity:
65
+ Max: 15
66
+
67
+ Lint/UnusedMethodArgument:
68
+ Enabled: false
69
+
70
+ # alias and alias_method are not equivalent
71
+ Style/Alias:
72
+ Enabled: false
73
+
74
+ # Disabling advices that would lead to incompatible Ruby 1.9 code
75
+ Style/SymbolArray:
76
+ Enabled: false
77
+
78
+ # Simple conditionals are perfectly fine, and more readable for multiline
79
+ # expressions.
80
+ Style/GuardClause:
81
+ Enabled: false
82
+
83
+ # Case equality is not intrinsically problematic.
84
+ Style/CaseEquality:
85
+ Enabled: false
@@ -0,0 +1,5 @@
1
+ --readme docs/GettingStarted.md
2
+ --main docs/GettingStarted.md
3
+ -
4
+ docs/GettingStarted.md
5
+ LICENSE
@@ -0,0 +1,961 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'ddtrace/version'
4
+
5
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(Datadog::VERSION::MINIMUM_RUBY_VERSION)
6
+ raise NotImplementedError, "Ruby versions < #{Datadog::VERSION::MINIMUM_RUBY_VERSION} are not supported!"
7
+ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
8
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
9
+ if RUBY_PLATFORM != 'java'
10
+ appraise 'rails30-postgres' do
11
+ gem 'test-unit'
12
+ gem 'rails', '3.0.20'
13
+ gem 'pg', '0.15.1', platform: :ruby
14
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
15
+ gem 'rack-cache', '1.7.1'
16
+ end
17
+
18
+ appraise 'rails30-postgres-sidekiq' do
19
+ gem 'test-unit'
20
+ gem 'rails', '3.0.20'
21
+ gem 'pg', '0.15.1', platform: :ruby
22
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
23
+ gem 'sidekiq', '4.0.0'
24
+ gem 'rack-cache', '1.7.1'
25
+ end
26
+
27
+ appraise 'rails32-mysql2' do
28
+ gem 'test-unit'
29
+ gem 'rails', '3.2.22.5'
30
+ gem 'mysql2', '0.3.21', platform: :ruby
31
+ gem 'activerecord-mysql-adapter', platform: :ruby
32
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
33
+ gem 'rack-cache', '1.7.1'
34
+ end
35
+
36
+ appraise 'rails32-postgres' do
37
+ gem 'test-unit'
38
+ gem 'rails', '3.2.22.5'
39
+ gem 'pg', '0.15.1', platform: :ruby
40
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
41
+ gem 'rack-cache', '1.7.1'
42
+ end
43
+
44
+ appraise 'rails32-postgres-redis' do
45
+ gem 'test-unit'
46
+ gem 'rails', '3.2.22.5'
47
+ gem 'pg', '0.15.1', platform: :ruby
48
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
49
+ gem 'redis-rails'
50
+ gem 'redis', '< 4.0'
51
+ gem 'rack-cache', '1.7.1'
52
+ end
53
+
54
+ appraise 'rails32-postgres-sidekiq' do
55
+ gem 'test-unit'
56
+ gem 'rails', '3.2.22.5'
57
+ gem 'pg', '0.15.1', platform: :ruby
58
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
59
+ gem 'sidekiq', '4.0.0'
60
+ gem 'rack-cache', '1.7.1'
61
+ end
62
+
63
+ appraise 'contrib-old' do
64
+ gem 'active_model_serializers', '~> 0.9.0'
65
+ gem 'activerecord', '3.2.22.5'
66
+ gem 'activerecord-mysql-adapter', platform: :ruby
67
+ gem 'aws-sdk', '~> 2.0'
68
+ gem 'concurrent-ruby'
69
+ gem 'dalli'
70
+ gem 'delayed_job'
71
+ gem 'delayed_job_active_record'
72
+ gem 'elasticsearch-transport'
73
+ gem 'ethon'
74
+ gem 'excon'
75
+ gem 'hiredis'
76
+ gem 'http'
77
+ gem 'mongo', '< 2.5'
78
+ gem 'mysql2', '0.3.21', platform: :ruby
79
+ gem 'rack', '1.4.7'
80
+ gem 'rack-cache', '1.7.1'
81
+ gem 'rack-test', '0.7.0'
82
+ gem 'rake', '< 12.3'
83
+ gem 'redis', '< 4.0'
84
+ gem 'rest-client'
85
+ gem 'resque', '< 2.0'
86
+ gem 'sequel', '~> 4.0', '< 4.37'
87
+ gem 'sidekiq', '~> 3.5.4'
88
+ gem 'sinatra', '1.4.5'
89
+ gem 'sqlite3', '~> 1.3.6'
90
+ gem 'sucker_punch'
91
+ gem 'timers', '< 4.2'
92
+ gem 'typhoeus'
93
+ end
94
+ end
95
+ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
96
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
97
+ if RUBY_PLATFORM != 'java'
98
+ appraise 'rails30-postgres' do
99
+ gem 'test-unit'
100
+ gem 'rails', '3.0.20'
101
+ gem 'pg', '0.15.1', platform: :ruby
102
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
103
+ gem 'rack-cache', '1.7.1'
104
+ end
105
+
106
+ appraise 'rails30-postgres-sidekiq' do
107
+ gem 'test-unit'
108
+ gem 'rails', '3.0.20'
109
+ gem 'pg', '0.15.1', platform: :ruby
110
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
111
+ gem 'sidekiq', '4.0.0'
112
+ gem 'rack-cache', '1.7.1'
113
+ end
114
+
115
+ appraise 'rails32-mysql2' do
116
+ gem 'test-unit'
117
+ gem 'rails', '3.2.22.5'
118
+ gem 'mysql2', '0.3.21', platform: :ruby
119
+ gem 'activerecord-mysql-adapter', platform: :ruby
120
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
121
+ gem 'rack-cache', '1.7.1'
122
+ end
123
+
124
+ appraise 'rails32-postgres' do
125
+ gem 'test-unit'
126
+ gem 'rails', '3.2.22.5'
127
+ gem 'pg', '0.15.1', platform: :ruby
128
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
129
+ gem 'rack-cache', '1.7.1'
130
+ end
131
+
132
+ appraise 'rails32-postgres-redis' do
133
+ gem 'test-unit'
134
+ gem 'rails', '3.2.22.5'
135
+ gem 'pg', '0.15.1', platform: :ruby
136
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
137
+ gem 'redis-rails'
138
+ gem 'redis', '< 4.0'
139
+ gem 'rack-cache', '1.7.1'
140
+ end
141
+
142
+ appraise 'rails32-postgres-sidekiq' do
143
+ gem 'test-unit'
144
+ gem 'rails', '3.2.22.5'
145
+ gem 'pg', '0.15.1', platform: :ruby
146
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
147
+ gem 'sidekiq', '4.0.0'
148
+ gem 'rack-cache', '1.7.1'
149
+ end
150
+
151
+ appraise 'rails4-mysql2' do
152
+ gem 'rails', '4.2.11.1'
153
+ gem 'mysql2', '< 1', platform: :ruby
154
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
155
+ gem 'sprockets', '< 4'
156
+ end
157
+
158
+ appraise 'rails4-postgres' do
159
+ gem 'rails', '4.2.11.1'
160
+ gem 'pg', '< 1.0', platform: :ruby
161
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
162
+ gem 'sprockets', '< 4'
163
+ end
164
+
165
+ appraise 'rails4-postgres-redis' do
166
+ gem 'rails', '4.2.11.1'
167
+ gem 'pg', '< 1.0', platform: :ruby
168
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
169
+ gem 'redis-rails'
170
+ gem 'redis', '< 4.0'
171
+ gem 'sprockets', '< 4'
172
+ end
173
+
174
+ appraise 'contrib-old' do
175
+ gem 'active_model_serializers', '~> 0.9.0'
176
+ gem 'activerecord', '3.2.22.5'
177
+ gem 'activerecord-mysql-adapter', platform: :ruby
178
+ gem 'aws-sdk', '~> 2.0'
179
+ gem 'concurrent-ruby'
180
+ gem 'dalli'
181
+ gem 'delayed_job'
182
+ gem 'delayed_job_active_record'
183
+ gem 'elasticsearch-transport'
184
+ gem 'presto-client', '>= 0.5.14'
185
+ gem 'ethon'
186
+ gem 'excon'
187
+ gem 'hiredis'
188
+ gem 'http'
189
+ gem 'mongo', '< 2.5'
190
+ gem 'mysql2', '0.3.21', platform: :ruby
191
+ gem 'rack', '1.4.7'
192
+ gem 'rack-cache', '1.7.1'
193
+ gem 'rack-test', '0.7.0'
194
+ gem 'rake', '< 12.3'
195
+ gem 'redis', '< 4.0'
196
+ gem 'rest-client'
197
+ gem 'resque', '< 2.0'
198
+ gem 'ruby-kafka', '>= 0.7.10'
199
+ gem 'sequel', '~> 4.0', '< 4.37'
200
+ gem 'shoryuken'
201
+ gem 'sidekiq', '~> 3.5.4'
202
+ gem 'sinatra', '1.4.5'
203
+ gem 'sqlite3', '~> 1.3.6'
204
+ gem 'sucker_punch'
205
+ gem 'timers', '< 4.2'
206
+ gem 'typhoeus'
207
+ end
208
+ end
209
+ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
210
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
211
+ if RUBY_PLATFORM != 'java'
212
+ appraise 'rails30-postgres' do
213
+ gem 'test-unit'
214
+ gem 'rails', '3.0.20'
215
+ gem 'pg', '0.15.1', platform: :ruby
216
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
217
+ gem 'rack-cache', '1.7.1'
218
+ end
219
+
220
+ appraise 'rails30-postgres-sidekiq' do
221
+ gem 'test-unit'
222
+ gem 'rails', '3.0.20'
223
+ gem 'pg', '0.15.1', platform: :ruby
224
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
225
+ gem 'sidekiq', '4.0.0'
226
+ gem 'rack-cache', '1.7.1'
227
+ end
228
+
229
+ appraise 'rails32-mysql2' do
230
+ gem 'test-unit'
231
+ gem 'rails', '3.2.22.5'
232
+ gem 'mysql2', '0.3.21', platform: :ruby
233
+ gem 'activerecord-mysql-adapter', platform: :ruby
234
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
235
+ gem 'rack-cache', '1.7.1'
236
+ end
237
+
238
+ appraise 'rails32-postgres' do
239
+ gem 'test-unit'
240
+ gem 'rails', '3.2.22.5'
241
+ gem 'pg', '0.15.1', platform: :ruby
242
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
243
+ gem 'rack-cache', '1.7.1'
244
+ end
245
+
246
+ appraise 'rails32-postgres-redis' do
247
+ gem 'test-unit'
248
+ gem 'rails', '3.2.22.5'
249
+ gem 'pg', '0.15.1', platform: :ruby
250
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
251
+ gem 'redis-rails'
252
+ gem 'redis', '< 4.0'
253
+ gem 'rack-cache', '1.7.1'
254
+ end
255
+
256
+ appraise 'rails32-postgres-sidekiq' do
257
+ gem 'test-unit'
258
+ gem 'rails', '3.2.22.5'
259
+ gem 'pg', '0.15.1', platform: :ruby
260
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
261
+ gem 'sidekiq', '4.0.0'
262
+ gem 'rack-cache', '1.7.1'
263
+ end
264
+
265
+ appraise 'rails4-mysql2' do
266
+ gem 'rails', '4.2.11.1'
267
+ gem 'mysql2', '< 1', platform: :ruby
268
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
269
+ gem 'sprockets', '< 4'
270
+ end
271
+
272
+ appraise 'rails4-postgres' do
273
+ gem 'rails', '4.2.11.1'
274
+ gem 'pg', '< 1.0', platform: :ruby
275
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
276
+ gem 'sprockets', '< 4'
277
+ end
278
+
279
+ appraise 'rails4-postgres-redis' do
280
+ gem 'rails', '4.2.11.1'
281
+ gem 'pg', '< 1.0', platform: :ruby
282
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
283
+ gem 'redis-rails'
284
+ gem 'redis', '< 4.0'
285
+ gem 'sprockets', '< 4'
286
+ end
287
+
288
+ appraise 'rails4-postgres-sidekiq' do
289
+ gem 'rails', '4.2.11.1'
290
+ gem 'pg', '< 1.0', platform: :ruby
291
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
292
+ gem 'sidekiq'
293
+ gem 'activejob'
294
+ gem 'sprockets', '< 4'
295
+ end
296
+
297
+ appraise 'rails5-mysql2' do
298
+ gem 'rails', '5.2.3'
299
+ gem 'mysql2', '< 1', platform: :ruby
300
+ gem 'sprockets', '< 4'
301
+ end
302
+
303
+ appraise 'rails5-postgres' do
304
+ gem 'rails', '5.2.3'
305
+ gem 'pg', '< 1.0', platform: :ruby
306
+ gem 'sprockets', '< 4'
307
+ end
308
+
309
+ appraise 'rails5-postgres-redis' do
310
+ gem 'rails', '5.2.3'
311
+ gem 'pg', '< 1.0', platform: :ruby
312
+ gem 'redis', '>= 4.0.1'
313
+ gem 'sprockets', '< 4'
314
+ end
315
+
316
+ appraise 'rails5-postgres-redis-activesupport' do
317
+ gem 'rails', '5.2.3'
318
+ gem 'pg', '< 1.0', platform: :ruby
319
+ gem 'redis', '>= 4.0.1'
320
+ gem 'sprockets', '< 4'
321
+ end
322
+
323
+ appraise 'rails5-postgres-sidekiq' do
324
+ gem 'rails', '5.2.3'
325
+ gem 'pg', '< 1.0', platform: :ruby
326
+ gem 'sidekiq'
327
+ gem 'activejob'
328
+ gem 'sprockets', '< 4'
329
+ end
330
+
331
+ appraise 'contrib' do
332
+ gem 'actionpack'
333
+ gem 'actionview'
334
+ gem 'active_model_serializers', '>= 0.10.0'
335
+ gem 'activerecord', '< 5.1.5'
336
+ gem 'aws-sdk'
337
+ gem 'concurrent-ruby'
338
+ gem 'dalli'
339
+ gem 'delayed_job'
340
+ gem 'delayed_job_active_record'
341
+ gem 'elasticsearch-transport'
342
+ gem 'presto-client', '>= 0.5.14'
343
+ gem 'ethon'
344
+ gem 'excon'
345
+ gem 'faraday'
346
+ gem 'grape'
347
+ gem 'graphql', '< 1.9.4'
348
+ gem 'grpc', '~> 1.21.0' # Last version to support Ruby < 2.3
349
+ gem 'hiredis'
350
+ gem 'http'
351
+ gem 'mongo', '>= 2.8.0'
352
+ gem 'mysql2', '< 0.5', platform: :ruby
353
+ gem 'racecar', '>= 0.3.5'
354
+ gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
355
+ gem 'rack-test'
356
+ gem 'rake', '>= 12.3'
357
+ gem 'redis', '< 4.0'
358
+ gem 'rest-client'
359
+ gem 'resque', '< 2.0'
360
+ gem 'ruby-kafka', '>= 0.7.10'
361
+ gem 'sequel'
362
+ gem 'shoryuken'
363
+ gem 'sidekiq'
364
+ gem 'sinatra'
365
+ gem 'sqlite3', '~> 1.3.6'
366
+ gem 'sucker_punch'
367
+ gem 'typhoeus'
368
+ end
369
+ end
370
+ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
371
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
372
+ if RUBY_PLATFORM != 'java'
373
+ appraise 'rails30-postgres' do
374
+ gem 'test-unit'
375
+ gem 'rails', '3.0.20'
376
+ gem 'pg', '0.15.1', platform: :ruby
377
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
378
+ gem 'rack-cache', '1.7.1'
379
+ end
380
+
381
+ appraise 'rails30-postgres-sidekiq' do
382
+ gem 'test-unit'
383
+ gem 'rails', '3.0.20'
384
+ gem 'pg', '0.15.1', platform: :ruby
385
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
386
+ gem 'sidekiq', '4.0.0'
387
+ gem 'rack-cache', '1.7.1'
388
+ end
389
+
390
+ appraise 'rails32-mysql2' do
391
+ gem 'test-unit'
392
+ gem 'rails', '3.2.22.5'
393
+ gem 'mysql2', '0.3.21', platform: :ruby
394
+ gem 'activerecord-mysql-adapter', platform: :ruby
395
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
396
+ gem 'rack-cache', '1.7.1'
397
+ end
398
+
399
+ appraise 'rails32-postgres' do
400
+ gem 'test-unit'
401
+ gem 'rails', '3.2.22.5'
402
+ gem 'pg', '0.15.1', platform: :ruby
403
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
404
+ gem 'rack-cache', '1.7.1'
405
+ end
406
+
407
+ appraise 'rails32-postgres-redis' do
408
+ gem 'test-unit'
409
+ gem 'rails', '3.2.22.5'
410
+ gem 'pg', '0.15.1', platform: :ruby
411
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
412
+ gem 'redis-rails'
413
+ gem 'redis', '< 4.0'
414
+ gem 'rack-cache', '1.7.1'
415
+ end
416
+
417
+ appraise 'rails32-postgres-sidekiq' do
418
+ gem 'test-unit'
419
+ gem 'rails', '3.2.22.5'
420
+ gem 'pg', '0.15.1', platform: :ruby
421
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
422
+ gem 'sidekiq', '4.0.0'
423
+ gem 'rack-cache', '1.7.1'
424
+ end
425
+
426
+ appraise 'rails4-mysql2' do
427
+ gem 'rails', '4.2.11.1'
428
+ gem 'mysql2', '< 1', platform: :ruby
429
+ gem 'activerecord-jdbcmysql-adapter', platform: :jruby
430
+ gem 'sprockets', '< 4'
431
+ end
432
+
433
+ appraise 'rails4-postgres' do
434
+ gem 'rails', '4.2.11.1'
435
+ gem 'pg', '< 1.0', platform: :ruby
436
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
437
+ gem 'sprockets', '< 4'
438
+ end
439
+
440
+ appraise 'rails4-postgres-redis' do
441
+ gem 'rails', '4.2.11.1'
442
+ gem 'pg', '< 1.0', platform: :ruby
443
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
444
+ gem 'redis-rails'
445
+ gem 'redis', '< 4.0'
446
+ gem 'sprockets', '< 4'
447
+ end
448
+
449
+ appraise 'rails4-postgres-sidekiq' do
450
+ gem 'rails', '4.2.11.1'
451
+ gem 'pg', '< 1.0', platform: :ruby
452
+ gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
453
+ gem 'sidekiq'
454
+ gem 'activejob'
455
+ gem 'sprockets', '< 4'
456
+ end
457
+
458
+ appraise 'rails5-mysql2' do
459
+ gem 'rails', '~> 5.2.1'
460
+ gem 'mysql2', '< 1', platform: :ruby
461
+ gem 'sprockets', '< 4'
462
+ end
463
+
464
+ appraise 'rails5-postgres' do
465
+ gem 'rails', '~> 5.2.1'
466
+ gem 'pg', '< 1.0', platform: :ruby
467
+ gem 'sprockets', '< 4'
468
+ end
469
+
470
+ appraise 'rails5-postgres-redis' do
471
+ gem 'rails', '~> 5.2.1'
472
+ gem 'pg', '< 1.0', platform: :ruby
473
+ gem 'redis', '>= 4.0.1'
474
+ gem 'sprockets', '< 4'
475
+ end
476
+
477
+ appraise 'rails5-postgres-redis-activesupport' do
478
+ gem 'rails', '~> 5.2.1'
479
+ gem 'pg', '< 1.0', platform: :ruby
480
+ gem 'redis', '>= 4.0.1'
481
+ gem 'sprockets', '< 4'
482
+ end
483
+
484
+ appraise 'rails5-postgres-sidekiq' do
485
+ gem 'rails', '~> 5.2.1'
486
+ gem 'pg', '< 1.0', platform: :ruby
487
+ gem 'sidekiq'
488
+ gem 'activejob'
489
+ gem 'sprockets', '< 4'
490
+ end
491
+
492
+ appraise 'contrib' do
493
+ gem 'actionpack'
494
+ gem 'actionview'
495
+ gem 'active_model_serializers', '>= 0.10.0'
496
+ gem 'activerecord', '< 5.1.5'
497
+ gem 'aws-sdk'
498
+ gem 'concurrent-ruby'
499
+ gem 'dalli'
500
+ gem 'delayed_job'
501
+ gem 'delayed_job_active_record'
502
+ gem 'elasticsearch-transport'
503
+ gem 'ethon'
504
+ gem 'excon'
505
+ gem 'faraday'
506
+ gem 'grape'
507
+ gem 'graphql'
508
+ gem 'grpc'
509
+ gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
510
+ gem 'hiredis'
511
+ gem 'http'
512
+ gem 'mongo', '>= 2.8.0'
513
+ gem 'mysql2', '< 0.5', platform: :ruby
514
+ gem 'presto-client', '>= 0.5.14'
515
+ gem 'racecar', '>= 0.3.5'
516
+ gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
517
+ gem 'rack-test'
518
+ gem 'rake', '>= 12.3'
519
+ gem 'redis', '< 4.0'
520
+ gem 'rest-client'
521
+ gem 'resque', '< 2.0'
522
+ gem 'ruby-kafka', '>= 0.7.10'
523
+ gem 'sequel'
524
+ gem 'shoryuken'
525
+ gem 'sidekiq'
526
+ gem 'sinatra'
527
+ gem 'sqlite3', '~> 1.3.6'
528
+ gem 'sucker_punch'
529
+ gem 'typhoeus'
530
+ end
531
+
532
+ appraise 'contrib-old' do
533
+ gem 'faraday', '0.17'
534
+ end
535
+ end
536
+ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
537
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
538
+ if RUBY_PLATFORM != 'java'
539
+ appraise 'rails5-mysql2' do
540
+ gem 'rails', '~> 5.2.1'
541
+ gem 'mysql2', '< 1', platform: :ruby
542
+ gem 'sprockets', '< 4'
543
+ end
544
+
545
+ appraise 'rails5-postgres' do
546
+ gem 'rails', '~> 5.2.1'
547
+ gem 'pg', '< 1.0', platform: :ruby
548
+ gem 'sprockets', '< 4'
549
+ end
550
+
551
+ appraise 'rails5-postgres-redis' do
552
+ gem 'rails', '~> 5.2.1'
553
+ gem 'pg', '< 1.0', platform: :ruby
554
+ gem 'redis', '>= 4.0.1'
555
+ gem 'sprockets', '< 4'
556
+ end
557
+
558
+ appraise 'rails5-postgres-redis-activesupport' do
559
+ gem 'rails', '~> 5.2.1'
560
+ gem 'pg', '< 1.0', platform: :ruby
561
+ gem 'redis', '>= 4.0.1'
562
+ gem 'sprockets', '< 4'
563
+ end
564
+
565
+ appraise 'rails5-postgres-sidekiq' do
566
+ gem 'rails', '~> 5.2.1'
567
+ gem 'pg', '< 1.0', platform: :ruby
568
+ gem 'sidekiq'
569
+ gem 'activejob'
570
+ gem 'sprockets', '< 4'
571
+ end
572
+
573
+ appraise 'contrib' do
574
+ gem 'actionpack'
575
+ gem 'actionview'
576
+ gem 'active_model_serializers', '>= 0.10.0'
577
+ gem 'activerecord', '< 5.1.5'
578
+ gem 'aws-sdk'
579
+ gem 'concurrent-ruby'
580
+ gem 'dalli'
581
+ gem 'delayed_job'
582
+ gem 'delayed_job_active_record'
583
+ gem 'elasticsearch-transport'
584
+ gem 'ethon'
585
+ gem 'excon'
586
+ gem 'faraday'
587
+ gem 'grape'
588
+ gem 'graphql'
589
+ gem 'grpc'
590
+ gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
591
+ gem 'hiredis'
592
+ gem 'http'
593
+ gem 'mongo', '>= 2.8.0'
594
+ gem 'mysql2', '< 0.5', platform: :ruby
595
+ gem 'presto-client', '>= 0.5.14'
596
+ gem 'racecar', '>= 0.3.5'
597
+ gem 'rack'
598
+ gem 'rack-test'
599
+ gem 'rake', '>= 12.3'
600
+ gem 'redis', '< 4.0'
601
+ gem 'rest-client'
602
+ gem 'resque', '< 2.0'
603
+ gem 'ruby-kafka', '>= 0.7.10'
604
+ gem 'sequel'
605
+ gem 'shoryuken'
606
+ gem 'sidekiq'
607
+ gem 'sinatra'
608
+ gem 'sqlite3', '~> 1.3.6'
609
+ gem 'sucker_punch'
610
+ gem 'typhoeus'
611
+ end
612
+
613
+ appraise 'contrib-old' do
614
+ gem 'faraday', '0.17'
615
+ end
616
+ end
617
+ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
618
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
619
+ if RUBY_PLATFORM != 'java'
620
+ appraise 'rails5-mysql2' do
621
+ gem 'rails', '~> 5.2.1'
622
+ gem 'mysql2', '< 1', platform: :ruby
623
+ gem 'sprockets', '< 4'
624
+ end
625
+
626
+ appraise 'rails5-postgres' do
627
+ gem 'rails', '~> 5.2.1'
628
+ gem 'pg', '< 1.0', platform: :ruby
629
+ gem 'sprockets', '< 4'
630
+ end
631
+
632
+ appraise 'rails5-postgres-redis' do
633
+ gem 'rails', '~> 5.2.1'
634
+ gem 'pg', '< 1.0', platform: :ruby
635
+ gem 'redis', '>= 4.0.1'
636
+ gem 'sprockets', '< 4'
637
+ end
638
+
639
+ appraise 'rails5-postgres-redis-activesupport' do
640
+ gem 'rails', '~> 5.2.1'
641
+ gem 'pg', '< 1.0', platform: :ruby
642
+ gem 'redis', '>= 4.0.1'
643
+ gem 'sprockets', '< 4'
644
+ end
645
+
646
+ appraise 'rails5-postgres-sidekiq' do
647
+ gem 'rails', '~> 5.2.1'
648
+ gem 'pg', '< 1.0', platform: :ruby
649
+ gem 'sidekiq'
650
+ gem 'activejob'
651
+ gem 'sprockets', '< 4'
652
+ end
653
+
654
+ appraise 'rails6-mysql2' do
655
+ gem 'rails', '~> 6.0.0'
656
+ gem 'mysql2', '< 1', platform: :ruby
657
+ gem 'sprockets', '< 4'
658
+ end
659
+
660
+ appraise 'rails6-postgres' do
661
+ gem 'rails', '~> 6.0.0'
662
+ gem 'pg', '< 1.0', platform: :ruby
663
+ gem 'sprockets', '< 4'
664
+ end
665
+
666
+ appraise 'rails6-postgres-redis' do
667
+ gem 'rails', '~> 6.0.0'
668
+ gem 'pg', '< 1.0', platform: :ruby
669
+ gem 'redis', '>= 4.0.1'
670
+ gem 'sprockets', '< 4'
671
+ end
672
+
673
+ appraise 'rails6-postgres-redis-activesupport' do
674
+ gem 'rails', '~> 6.0.0'
675
+ gem 'pg', '< 1.0', platform: :ruby
676
+ gem 'redis', '>= 4.0.1'
677
+ gem 'sprockets', '< 4'
678
+ end
679
+
680
+ appraise 'rails6-postgres-sidekiq' do
681
+ gem 'rails', '~> 6.0.0'
682
+ gem 'pg', '< 1.0', platform: :ruby
683
+ gem 'sidekiq'
684
+ gem 'activejob'
685
+ gem 'sprockets', '< 4'
686
+ end
687
+
688
+ appraise 'contrib' do
689
+ gem 'actionpack'
690
+ gem 'actionview'
691
+ gem 'active_model_serializers', '>= 0.10.0'
692
+ gem 'activerecord'
693
+ gem 'aws-sdk'
694
+ gem 'concurrent-ruby'
695
+ gem 'dalli'
696
+ gem 'delayed_job'
697
+ gem 'delayed_job_active_record'
698
+ gem 'elasticsearch-transport'
699
+ gem 'ethon'
700
+ gem 'excon'
701
+ gem 'faraday'
702
+ gem 'grape'
703
+ gem 'graphql'
704
+ gem 'grpc'
705
+ gem 'hiredis'
706
+ gem 'http'
707
+ gem 'mongo', '>= 2.8.0'
708
+ gem 'mysql2', '< 0.5', platform: :ruby
709
+ gem 'presto-client', '>= 0.5.14'
710
+ gem 'racecar', '>= 0.3.5'
711
+ gem 'rack'
712
+ gem 'rack-test'
713
+ gem 'rake', '>= 12.3'
714
+ gem 'redis', '< 4.0'
715
+ gem 'rest-client'
716
+ gem 'resque', '< 2.0'
717
+ gem 'ruby-kafka', '>= 0.7.10'
718
+ gem 'sequel'
719
+ gem 'shoryuken'
720
+ gem 'sidekiq'
721
+ gem 'sinatra'
722
+ gem 'sqlite3', '~> 1.4.1'
723
+ gem 'sucker_punch'
724
+ gem 'typhoeus'
725
+ end
726
+
727
+ appraise 'contrib-old' do
728
+ gem 'faraday', '0.17'
729
+ end
730
+ end
731
+ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
732
+ && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
733
+ if RUBY_PLATFORM != 'java'
734
+ appraise 'rails5-mysql2' do
735
+ gem 'rails', '~> 5.2.1'
736
+ gem 'mysql2', '< 1', platform: :ruby
737
+ gem 'sprockets', '< 4'
738
+ end
739
+
740
+ appraise 'rails5-postgres' do
741
+ gem 'rails', '~> 5.2.1'
742
+ gem 'pg', '< 1.0', platform: :ruby
743
+ gem 'sprockets', '< 4'
744
+ end
745
+
746
+ appraise 'rails5-postgres-redis' do
747
+ gem 'rails', '~> 5.2.1'
748
+ gem 'pg', '< 1.0', platform: :ruby
749
+ gem 'redis', '>= 4.0.1'
750
+ gem 'sprockets', '< 4'
751
+ end
752
+
753
+ appraise 'rails5-postgres-redis-activesupport' do
754
+ gem 'rails', '~> 5.2.1'
755
+ gem 'pg', '< 1.0', platform: :ruby
756
+ gem 'redis', '>= 4.0.1'
757
+ gem 'sprockets', '< 4'
758
+ end
759
+
760
+ appraise 'rails5-postgres-sidekiq' do
761
+ gem 'rails', '~> 5.2.1'
762
+ gem 'pg', '< 1.0', platform: :ruby
763
+ gem 'sidekiq'
764
+ gem 'activejob'
765
+ gem 'sprockets', '< 4'
766
+ end
767
+
768
+ appraise 'rails6-mysql2' do
769
+ gem 'rails', '~> 6.0.0'
770
+ gem 'mysql2', '< 1', platform: :ruby
771
+ gem 'sprockets', '< 4'
772
+ end
773
+
774
+ appraise 'rails6-postgres' do
775
+ gem 'rails', '~> 6.0.0'
776
+ gem 'pg', '< 1.0', platform: :ruby
777
+ gem 'sprockets', '< 4'
778
+ end
779
+
780
+ appraise 'rails6-postgres-redis' do
781
+ gem 'rails', '~> 6.0.0'
782
+ gem 'pg', '< 1.0', platform: :ruby
783
+ gem 'redis', '>= 4.0.1'
784
+ gem 'sprockets', '< 4'
785
+ end
786
+
787
+ appraise 'rails6-postgres-redis-activesupport' do
788
+ gem 'rails', '~> 6.0.0'
789
+ gem 'pg', '< 1.0', platform: :ruby
790
+ gem 'redis', '>= 4.0.1'
791
+ gem 'sprockets', '< 4'
792
+ end
793
+
794
+ appraise 'rails6-postgres-sidekiq' do
795
+ gem 'rails', '~> 6.0.0'
796
+ gem 'pg', '< 1.0', platform: :ruby
797
+ gem 'sidekiq'
798
+ gem 'activejob'
799
+ gem 'sprockets', '< 4'
800
+ end
801
+
802
+ appraise 'contrib' do
803
+ gem 'actionpack'
804
+ gem 'actionview'
805
+ gem 'active_model_serializers', '>= 0.10.0'
806
+ gem 'activerecord'
807
+ gem 'aws-sdk'
808
+ gem 'concurrent-ruby'
809
+ gem 'dalli'
810
+ gem 'delayed_job'
811
+ gem 'delayed_job_active_record'
812
+ gem 'elasticsearch-transport'
813
+ gem 'ethon'
814
+ gem 'excon'
815
+ gem 'faraday'
816
+ gem 'grape'
817
+ gem 'graphql'
818
+ gem 'grpc'
819
+ gem 'hiredis'
820
+ gem 'http'
821
+ gem 'mongo', '>= 2.8.0'
822
+ gem 'mysql2', '< 0.5', platform: :ruby
823
+ gem 'presto-client', '>= 0.5.14'
824
+ gem 'racecar', '>= 0.3.5'
825
+ gem 'rack'
826
+ gem 'rack-test'
827
+ gem 'rake', '>= 12.3'
828
+ gem 'redis', '< 4.0'
829
+ gem 'rest-client'
830
+ gem 'resque', '< 2.0'
831
+ gem 'ruby-kafka', '>= 0.7.10'
832
+ gem 'sequel'
833
+ gem 'shoryuken'
834
+ gem 'sidekiq'
835
+ gem 'sinatra'
836
+ gem 'sqlite3', '~> 1.4.1'
837
+ gem 'sucker_punch'
838
+ gem 'typhoeus'
839
+ end
840
+
841
+ appraise 'contrib-old' do
842
+ gem 'faraday', '0.17'
843
+ end
844
+ end
845
+ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
846
+ if RUBY_PLATFORM != 'java'
847
+ appraise 'rails5-mysql2' do
848
+ gem 'rails', '~> 5.2.1'
849
+ gem 'mysql2', '< 0.5', platform: :ruby
850
+ gem 'sprockets', '< 4'
851
+ end
852
+
853
+ appraise 'rails5-postgres' do
854
+ gem 'rails', '~> 5.2.1'
855
+ gem 'pg', '< 1.0', platform: :ruby
856
+ gem 'sprockets', '< 4'
857
+ end
858
+
859
+ appraise 'rails5-postgres-redis' do
860
+ gem 'rails', '~> 5.2.1'
861
+ gem 'pg', '< 1.0', platform: :ruby
862
+ gem 'redis-rails'
863
+ gem 'redis'
864
+ gem 'sprockets', '< 4'
865
+ end
866
+
867
+ appraise 'rails5-postgres-redis-activesupport' do
868
+ gem 'rails', '~> 5.2.1'
869
+ gem 'pg', '< 1.0', platform: :ruby
870
+ gem 'redis-rails'
871
+ gem 'redis'
872
+ gem 'sprockets', '< 4'
873
+ end
874
+
875
+ appraise 'rails5-postgres-sidekiq' do
876
+ gem 'rails', '~> 5.2.1'
877
+ gem 'pg', '< 1.0', platform: :ruby
878
+ gem 'sidekiq'
879
+ gem 'activejob'
880
+ gem 'sprockets', '< 4'
881
+ end
882
+
883
+ appraise 'rails6-mysql2' do
884
+ gem 'rails', '~> 6.0.0'
885
+ gem 'mysql2', '< 0.6', platform: :ruby
886
+ gem 'sprockets', '< 4'
887
+ end
888
+
889
+ appraise 'rails6-postgres' do
890
+ gem 'rails', '~> 6.0.0'
891
+ gem 'pg', '< 1.0', platform: :ruby
892
+ gem 'sprockets', '< 4'
893
+ end
894
+
895
+ appraise 'rails6-postgres-redis' do
896
+ gem 'rails', '~> 6.0.0'
897
+ gem 'pg', '< 1.0', platform: :ruby
898
+ gem 'redis-rails'
899
+ gem 'redis'
900
+ gem 'sprockets', '< 4'
901
+ end
902
+
903
+ appraise 'rails6-postgres-redis-activesupport' do
904
+ gem 'rails', '~> 6.0.0'
905
+ gem 'pg', '< 1.0', platform: :ruby
906
+ gem 'redis-rails'
907
+ gem 'redis'
908
+ gem 'sprockets', '< 4'
909
+ end
910
+
911
+ appraise 'rails6-postgres-sidekiq' do
912
+ gem 'rails', '~> 6.0.0'
913
+ gem 'pg', '< 1.0', platform: :ruby
914
+ gem 'sidekiq'
915
+ gem 'activejob'
916
+ gem 'sprockets', '< 4'
917
+ end
918
+
919
+ appraise 'contrib' do
920
+ gem 'actionpack'
921
+ gem 'actionview'
922
+ gem 'active_model_serializers', '>= 0.10.0'
923
+ gem 'activerecord'
924
+ gem 'aws-sdk'
925
+ gem 'concurrent-ruby'
926
+ gem 'dalli'
927
+ gem 'delayed_job'
928
+ gem 'delayed_job_active_record'
929
+ gem 'elasticsearch-transport'
930
+ gem 'ethon'
931
+ gem 'excon'
932
+ gem 'grape'
933
+ gem 'graphql'
934
+ gem 'grpc'
935
+ gem 'hiredis'
936
+ gem 'http'
937
+ gem 'mongo', '>= 2.8.0'
938
+ gem 'mysql2', '< 0.5', platform: :ruby
939
+ gem 'presto-client', '>= 0.5.14'
940
+ gem 'racecar', '>= 0.3.5'
941
+ gem 'rack'
942
+ gem 'rack-test'
943
+ gem 'rake', '>= 12.3'
944
+ gem 'redis', '< 4.0'
945
+ gem 'rest-client'
946
+ gem 'resque', '< 2.0'
947
+ gem 'ruby-kafka', '>= 0.7.10'
948
+ gem 'sequel'
949
+ gem 'shoryuken'
950
+ gem 'sidekiq'
951
+ gem 'sinatra'
952
+ gem 'sqlite3', '~> 1.4.1'
953
+ gem 'sucker_punch'
954
+ gem 'typhoeus'
955
+ end
956
+
957
+ appraise 'contrib-old' do
958
+ gem 'faraday', '0.17'
959
+ end
960
+ end
961
+ end