ddtrace 0.38.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 (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