ddtrace 0.42.0 → 0.52.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (572) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.gitignore +7 -1
  4. data/CHANGELOG.md +1474 -362
  5. data/CONTRIBUTING.md +2 -6
  6. data/LICENSE-3rdparty.csv +2 -0
  7. data/README.md +1 -0
  8. data/bin/ddtracerb +15 -0
  9. data/ddtrace.gemspec +18 -39
  10. data/docs/DevelopmentGuide.md +45 -2
  11. data/docs/GettingStarted.md +335 -79
  12. data/docs/ProfilingDevelopment.md +107 -0
  13. data/ext/ddtrace_profiling_native_extension/extconf.rb +28 -0
  14. data/ext/ddtrace_profiling_native_extension/profiling.c +17 -0
  15. data/lib/datadog/ci.rb +17 -0
  16. data/lib/datadog/ci/configuration/components.rb +31 -0
  17. data/lib/datadog/ci/configuration/settings.rb +37 -0
  18. data/lib/datadog/ci/context_flush.rb +29 -0
  19. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +31 -0
  20. data/lib/datadog/ci/contrib/cucumber/ext.rb +20 -0
  21. data/lib/datadog/ci/contrib/cucumber/formatter.rb +98 -0
  22. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +27 -0
  23. data/lib/datadog/ci/contrib/cucumber/integration.rb +48 -0
  24. data/lib/datadog/ci/contrib/cucumber/patcher.rb +26 -0
  25. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +31 -0
  26. data/lib/datadog/ci/contrib/rspec/example.rb +74 -0
  27. data/lib/datadog/ci/contrib/rspec/ext.rb +19 -0
  28. data/lib/datadog/ci/contrib/rspec/integration.rb +49 -0
  29. data/lib/datadog/ci/contrib/rspec/patcher.rb +26 -0
  30. data/lib/datadog/ci/ext/app_types.rb +10 -0
  31. data/lib/datadog/ci/ext/environment.rb +443 -0
  32. data/lib/datadog/ci/ext/settings.rb +11 -0
  33. data/lib/datadog/ci/ext/test.rb +35 -0
  34. data/lib/datadog/ci/extensions.rb +18 -0
  35. data/lib/datadog/ci/test.rb +77 -0
  36. data/lib/datadog/contrib.rb +69 -0
  37. data/lib/datadog/core/environment/cgroup.rb +52 -0
  38. data/lib/datadog/core/environment/class_count.rb +20 -0
  39. data/lib/datadog/core/environment/container.rb +91 -0
  40. data/lib/datadog/core/environment/ext.rb +27 -0
  41. data/lib/datadog/core/environment/gc.rb +19 -0
  42. data/lib/datadog/core/environment/identity.rb +51 -0
  43. data/lib/datadog/core/environment/socket.rb +17 -0
  44. data/lib/datadog/core/environment/thread_count.rb +19 -0
  45. data/lib/datadog/core/environment/variable_helpers.rb +42 -0
  46. data/lib/ddtrace.rb +22 -48
  47. data/lib/ddtrace/analytics.rb +3 -0
  48. data/lib/ddtrace/auto_instrument.rb +5 -0
  49. data/lib/ddtrace/auto_instrument_base.rb +7 -0
  50. data/lib/ddtrace/buffer.rb +10 -8
  51. data/lib/ddtrace/chunker.rb +1 -0
  52. data/lib/ddtrace/configuration.rb +132 -24
  53. data/lib/ddtrace/configuration/agent_settings_resolver.rb +231 -0
  54. data/lib/ddtrace/configuration/base.rb +9 -11
  55. data/lib/ddtrace/configuration/components.rb +167 -26
  56. data/lib/ddtrace/configuration/dependency_resolver.rb +1 -0
  57. data/lib/ddtrace/configuration/option.rb +1 -0
  58. data/lib/ddtrace/configuration/option_definition.rb +2 -3
  59. data/lib/ddtrace/configuration/option_definition_set.rb +1 -0
  60. data/lib/ddtrace/configuration/option_set.rb +1 -0
  61. data/lib/ddtrace/configuration/options.rb +7 -9
  62. data/lib/ddtrace/configuration/pin_setup.rb +1 -0
  63. data/lib/ddtrace/configuration/settings.rb +132 -12
  64. data/lib/ddtrace/context.rb +41 -20
  65. data/lib/ddtrace/context_flush.rb +15 -2
  66. data/lib/ddtrace/context_provider.rb +13 -2
  67. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +1 -0
  68. data/lib/ddtrace/contrib/action_cable/event.rb +6 -4
  69. data/lib/ddtrace/contrib/action_cable/events.rb +1 -0
  70. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +1 -0
  71. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +1 -0
  72. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +1 -0
  73. data/lib/ddtrace/contrib/action_cable/ext.rb +1 -0
  74. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +1 -0
  75. data/lib/ddtrace/contrib/action_cable/integration.rb +8 -0
  76. data/lib/ddtrace/contrib/action_cable/patcher.rb +1 -0
  77. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +22 -13
  78. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +2 -1
  79. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +1 -0
  80. data/lib/ddtrace/contrib/action_pack/ext.rb +1 -0
  81. data/lib/ddtrace/contrib/action_pack/integration.rb +8 -0
  82. data/lib/ddtrace/contrib/action_pack/patcher.rb +1 -0
  83. data/lib/ddtrace/contrib/action_pack/utils.rb +2 -1
  84. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +1 -0
  85. data/lib/ddtrace/contrib/action_view/event.rb +4 -7
  86. data/lib/ddtrace/contrib/action_view/events.rb +1 -0
  87. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +2 -0
  88. data/lib/ddtrace/contrib/action_view/events/render_template.rb +2 -0
  89. data/lib/ddtrace/contrib/action_view/ext.rb +1 -0
  90. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -0
  91. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +1 -0
  92. data/lib/ddtrace/contrib/action_view/integration.rb +8 -0
  93. data/lib/ddtrace/contrib/action_view/patcher.rb +5 -4
  94. data/lib/ddtrace/contrib/action_view/utils.rb +2 -1
  95. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +1 -0
  96. data/lib/ddtrace/contrib/active_model_serializers/event.rb +3 -2
  97. data/lib/ddtrace/contrib/active_model_serializers/events.rb +1 -0
  98. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +1 -0
  99. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +1 -0
  100. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +1 -0
  101. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +1 -0
  102. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +1 -0
  103. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +31 -0
  104. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +108 -18
  105. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +1 -0
  106. data/lib/ddtrace/contrib/active_record/event.rb +3 -2
  107. data/lib/ddtrace/contrib/active_record/events.rb +1 -0
  108. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -0
  109. data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -0
  110. data/lib/ddtrace/contrib/active_record/ext.rb +1 -0
  111. data/lib/ddtrace/contrib/active_record/integration.rb +8 -0
  112. data/lib/ddtrace/contrib/active_record/patcher.rb +1 -0
  113. data/lib/ddtrace/contrib/active_record/utils.rb +69 -21
  114. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +105 -3
  115. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +26 -4
  116. data/lib/ddtrace/contrib/active_support/cache/redis.rb +2 -5
  117. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +1 -0
  118. data/lib/ddtrace/contrib/active_support/ext.rb +4 -0
  119. data/lib/ddtrace/contrib/active_support/integration.rb +8 -1
  120. data/lib/ddtrace/contrib/active_support/notifications/event.rb +15 -3
  121. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +3 -1
  122. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +10 -5
  123. data/lib/ddtrace/contrib/active_support/patcher.rb +1 -0
  124. data/lib/ddtrace/contrib/analytics.rb +1 -0
  125. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  126. data/lib/ddtrace/contrib/aws/configuration/settings.rb +1 -0
  127. data/lib/ddtrace/contrib/aws/ext.rb +1 -0
  128. data/lib/ddtrace/contrib/aws/instrumentation.rb +32 -1
  129. data/lib/ddtrace/contrib/aws/integration.rb +1 -0
  130. data/lib/ddtrace/contrib/aws/parsed_context.rb +1 -0
  131. data/lib/ddtrace/contrib/aws/patcher.rb +6 -1
  132. data/lib/ddtrace/contrib/aws/services.rb +4 -0
  133. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +1 -0
  134. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -0
  135. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
  136. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +1 -0
  137. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +1 -0
  138. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +3 -1
  139. data/lib/ddtrace/contrib/configurable.rb +65 -38
  140. data/lib/ddtrace/contrib/configuration/resolver.rb +71 -5
  141. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +21 -20
  142. data/lib/ddtrace/contrib/configuration/settings.rb +8 -6
  143. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +1 -0
  144. data/lib/ddtrace/contrib/dalli/ext.rb +1 -0
  145. data/lib/ddtrace/contrib/dalli/instrumentation.rb +2 -1
  146. data/lib/ddtrace/contrib/dalli/integration.rb +1 -0
  147. data/lib/ddtrace/contrib/dalli/patcher.rb +2 -39
  148. data/lib/ddtrace/contrib/dalli/quantize.rb +1 -0
  149. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +2 -0
  150. data/lib/ddtrace/contrib/delayed_job/ext.rb +1 -0
  151. data/lib/ddtrace/contrib/delayed_job/integration.rb +1 -0
  152. data/lib/ddtrace/contrib/delayed_job/patcher.rb +1 -0
  153. data/lib/ddtrace/contrib/delayed_job/plugin.rb +3 -1
  154. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +1 -0
  155. data/lib/ddtrace/contrib/elasticsearch/ext.rb +1 -0
  156. data/lib/ddtrace/contrib/elasticsearch/integration.rb +1 -0
  157. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +2 -0
  158. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +6 -2
  159. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +1 -0
  160. data/lib/ddtrace/contrib/ethon/easy_patch.rb +13 -11
  161. data/lib/ddtrace/contrib/ethon/ext.rb +2 -0
  162. data/lib/ddtrace/contrib/ethon/integration.rb +1 -0
  163. data/lib/ddtrace/contrib/ethon/multi_patch.rb +2 -1
  164. data/lib/ddtrace/contrib/ethon/patcher.rb +4 -2
  165. data/lib/ddtrace/contrib/excon/configuration/settings.rb +1 -0
  166. data/lib/ddtrace/contrib/excon/ext.rb +1 -0
  167. data/lib/ddtrace/contrib/excon/integration.rb +1 -0
  168. data/lib/ddtrace/contrib/excon/middleware.rb +10 -7
  169. data/lib/ddtrace/contrib/excon/patcher.rb +1 -0
  170. data/lib/ddtrace/contrib/extensions.rb +90 -14
  171. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +1 -0
  172. data/lib/ddtrace/contrib/faraday/connection.rb +1 -0
  173. data/lib/ddtrace/contrib/faraday/ext.rb +1 -0
  174. data/lib/ddtrace/contrib/faraday/integration.rb +1 -0
  175. data/lib/ddtrace/contrib/faraday/middleware.rb +2 -3
  176. data/lib/ddtrace/contrib/faraday/patcher.rb +3 -38
  177. data/lib/ddtrace/contrib/faraday/rack_builder.rb +1 -0
  178. data/lib/ddtrace/contrib/grape/configuration/settings.rb +8 -0
  179. data/lib/ddtrace/contrib/grape/endpoint.rb +68 -32
  180. data/lib/ddtrace/contrib/grape/ext.rb +2 -0
  181. data/lib/ddtrace/contrib/grape/instrumentation.rb +4 -3
  182. data/lib/ddtrace/contrib/grape/integration.rb +1 -0
  183. data/lib/ddtrace/contrib/grape/patcher.rb +2 -43
  184. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +1 -0
  185. data/lib/ddtrace/contrib/graphql/ext.rb +1 -0
  186. data/lib/ddtrace/contrib/graphql/integration.rb +1 -0
  187. data/lib/ddtrace/contrib/graphql/patcher.rb +1 -0
  188. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +2 -0
  189. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +13 -8
  190. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -0
  191. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +4 -4
  192. data/lib/ddtrace/contrib/grpc/ext.rb +1 -0
  193. data/lib/ddtrace/contrib/grpc/integration.rb +1 -0
  194. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +1 -0
  195. data/lib/ddtrace/contrib/grpc/patcher.rb +3 -37
  196. data/lib/ddtrace/contrib/http/circuit_breaker.rb +2 -3
  197. data/lib/ddtrace/contrib/http/configuration/settings.rb +1 -0
  198. data/lib/ddtrace/contrib/http/ext.rb +1 -0
  199. data/lib/ddtrace/contrib/http/instrumentation.rb +9 -8
  200. data/lib/ddtrace/contrib/http/integration.rb +1 -0
  201. data/lib/ddtrace/contrib/http/patcher.rb +2 -1
  202. data/lib/ddtrace/contrib/http_annotation_helper.rb +1 -0
  203. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +33 -0
  204. data/lib/ddtrace/contrib/httpclient/ext.rb +18 -0
  205. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +148 -0
  206. data/lib/ddtrace/contrib/httpclient/integration.rb +44 -0
  207. data/lib/ddtrace/contrib/httpclient/patcher.rb +39 -0
  208. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +1 -0
  209. data/lib/ddtrace/contrib/httprb/ext.rb +1 -0
  210. data/lib/ddtrace/contrib/httprb/instrumentation.rb +17 -22
  211. data/lib/ddtrace/contrib/httprb/integration.rb +1 -0
  212. data/lib/ddtrace/contrib/httprb/patcher.rb +8 -4
  213. data/lib/ddtrace/contrib/integration.rb +4 -3
  214. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +1 -0
  215. data/lib/ddtrace/contrib/kafka/consumer_event.rb +1 -0
  216. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +1 -0
  217. data/lib/ddtrace/contrib/kafka/event.rb +4 -3
  218. data/lib/ddtrace/contrib/kafka/events.rb +1 -0
  219. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +1 -0
  220. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +1 -0
  221. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +1 -0
  222. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +1 -0
  223. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +1 -0
  224. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +1 -0
  225. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +1 -0
  226. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +1 -0
  227. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +1 -0
  228. data/lib/ddtrace/contrib/kafka/ext.rb +1 -0
  229. data/lib/ddtrace/contrib/kafka/integration.rb +1 -0
  230. data/lib/ddtrace/contrib/kafka/patcher.rb +1 -0
  231. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +19 -0
  232. data/lib/ddtrace/contrib/lograge/ext.rb +11 -0
  233. data/lib/ddtrace/contrib/lograge/instrumentation.rb +39 -0
  234. data/lib/ddtrace/contrib/lograge/integration.rb +46 -0
  235. data/lib/ddtrace/contrib/lograge/patcher.rb +26 -0
  236. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +1 -0
  237. data/lib/ddtrace/contrib/mongodb/ext.rb +1 -0
  238. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +5 -2
  239. data/lib/ddtrace/contrib/mongodb/integration.rb +1 -0
  240. data/lib/ddtrace/contrib/mongodb/parsers.rb +1 -0
  241. data/lib/ddtrace/contrib/mongodb/patcher.rb +3 -2
  242. data/lib/ddtrace/contrib/mongodb/subscribers.rb +3 -3
  243. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +1 -0
  244. data/lib/ddtrace/contrib/mysql2/ext.rb +1 -0
  245. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +2 -1
  246. data/lib/ddtrace/contrib/mysql2/integration.rb +1 -0
  247. data/lib/ddtrace/contrib/mysql2/patcher.rb +2 -1
  248. data/lib/ddtrace/contrib/patchable.rb +21 -9
  249. data/lib/ddtrace/contrib/patcher.rb +12 -8
  250. data/lib/ddtrace/contrib/presto/configuration/settings.rb +1 -0
  251. data/lib/ddtrace/contrib/presto/ext.rb +1 -0
  252. data/lib/ddtrace/contrib/presto/instrumentation.rb +2 -1
  253. data/lib/ddtrace/contrib/presto/integration.rb +1 -0
  254. data/lib/ddtrace/contrib/presto/patcher.rb +7 -3
  255. data/lib/ddtrace/contrib/qless/configuration/settings.rb +36 -0
  256. data/lib/ddtrace/contrib/qless/ext.rb +21 -0
  257. data/lib/ddtrace/contrib/qless/integration.rb +39 -0
  258. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  259. data/lib/ddtrace/contrib/qless/qless_job.rb +74 -0
  260. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +34 -0
  261. data/lib/ddtrace/contrib/que/configuration/settings.rb +2 -0
  262. data/lib/ddtrace/contrib/que/ext.rb +20 -19
  263. data/lib/ddtrace/contrib/que/integration.rb +1 -0
  264. data/lib/ddtrace/contrib/que/patcher.rb +1 -0
  265. data/lib/ddtrace/contrib/que/tracer.rb +4 -2
  266. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +1 -0
  267. data/lib/ddtrace/contrib/racecar/event.rb +4 -2
  268. data/lib/ddtrace/contrib/racecar/events.rb +1 -0
  269. data/lib/ddtrace/contrib/racecar/events/batch.rb +1 -0
  270. data/lib/ddtrace/contrib/racecar/events/consume.rb +1 -0
  271. data/lib/ddtrace/contrib/racecar/events/message.rb +1 -0
  272. data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
  273. data/lib/ddtrace/contrib/racecar/integration.rb +1 -0
  274. data/lib/ddtrace/contrib/racecar/patcher.rb +1 -0
  275. data/lib/ddtrace/contrib/rack/configuration/settings.rb +4 -3
  276. data/lib/ddtrace/contrib/rack/ext.rb +1 -0
  277. data/lib/ddtrace/contrib/rack/integration.rb +8 -0
  278. data/lib/ddtrace/contrib/rack/middlewares.rb +8 -12
  279. data/lib/ddtrace/contrib/rack/patcher.rb +2 -3
  280. data/lib/ddtrace/contrib/rack/request_queue.rb +7 -1
  281. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +11 -0
  282. data/lib/ddtrace/contrib/rails/configuration/settings.rb +1 -0
  283. data/lib/ddtrace/contrib/rails/ext.rb +1 -0
  284. data/lib/ddtrace/contrib/rails/framework.rb +26 -1
  285. data/lib/ddtrace/contrib/rails/integration.rb +1 -0
  286. data/lib/ddtrace/contrib/rails/log_injection.rb +1 -40
  287. data/lib/ddtrace/contrib/rails/middlewares.rb +1 -0
  288. data/lib/ddtrace/contrib/rails/patcher.rb +22 -12
  289. data/lib/ddtrace/contrib/rails/railtie.rb +1 -0
  290. data/lib/ddtrace/contrib/rails/utils.rb +5 -0
  291. data/lib/ddtrace/contrib/rake/configuration/settings.rb +1 -0
  292. data/lib/ddtrace/contrib/rake/ext.rb +1 -0
  293. data/lib/ddtrace/contrib/rake/instrumentation.rb +6 -3
  294. data/lib/ddtrace/contrib/rake/integration.rb +2 -1
  295. data/lib/ddtrace/contrib/rake/patcher.rb +2 -1
  296. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +15 -5
  297. data/lib/ddtrace/contrib/redis/configuration/settings.rb +6 -0
  298. data/lib/ddtrace/contrib/redis/ext.rb +2 -0
  299. data/lib/ddtrace/contrib/redis/integration.rb +1 -0
  300. data/lib/ddtrace/contrib/redis/patcher.rb +21 -3
  301. data/lib/ddtrace/contrib/redis/quantize.rb +29 -0
  302. data/lib/ddtrace/contrib/redis/tags.rb +6 -1
  303. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  304. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +7 -7
  305. data/lib/ddtrace/contrib/registerable.rb +5 -4
  306. data/lib/ddtrace/contrib/registry.rb +3 -2
  307. data/lib/ddtrace/contrib/resque/configuration/settings.rb +19 -1
  308. data/lib/ddtrace/contrib/resque/ext.rb +1 -0
  309. data/lib/ddtrace/contrib/resque/integration.rb +2 -1
  310. data/lib/ddtrace/contrib/resque/patcher.rb +5 -4
  311. data/lib/ddtrace/contrib/resque/resque_job.rb +26 -2
  312. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +1 -0
  313. data/lib/ddtrace/contrib/rest_client/ext.rb +1 -0
  314. data/lib/ddtrace/contrib/rest_client/integration.rb +1 -0
  315. data/lib/ddtrace/contrib/rest_client/patcher.rb +3 -1
  316. data/lib/ddtrace/contrib/rest_client/request_patch.rb +3 -4
  317. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +19 -0
  318. data/lib/ddtrace/contrib/semantic_logger/ext.rb +11 -0
  319. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +43 -0
  320. data/lib/ddtrace/contrib/semantic_logger/integration.rb +48 -0
  321. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +26 -0
  322. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +1 -0
  323. data/lib/ddtrace/contrib/sequel/database.rb +2 -1
  324. data/lib/ddtrace/contrib/sequel/dataset.rb +2 -1
  325. data/lib/ddtrace/contrib/sequel/ext.rb +1 -0
  326. data/lib/ddtrace/contrib/sequel/integration.rb +1 -0
  327. data/lib/ddtrace/contrib/sequel/patcher.rb +3 -2
  328. data/lib/ddtrace/contrib/sequel/utils.rb +6 -6
  329. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +3 -0
  330. data/lib/ddtrace/contrib/shoryuken/ext.rb +1 -0
  331. data/lib/ddtrace/contrib/shoryuken/integration.rb +1 -0
  332. data/lib/ddtrace/contrib/shoryuken/patcher.rb +1 -0
  333. data/lib/ddtrace/contrib/shoryuken/tracer.rb +9 -2
  334. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +1 -0
  335. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +2 -0
  336. data/lib/ddtrace/contrib/sidekiq/ext.rb +1 -0
  337. data/lib/ddtrace/contrib/sidekiq/integration.rb +1 -0
  338. data/lib/ddtrace/contrib/sidekiq/patcher.rb +1 -0
  339. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +6 -7
  340. data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -1
  341. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +1 -0
  342. data/lib/ddtrace/contrib/sinatra/env.rb +2 -3
  343. data/lib/ddtrace/contrib/sinatra/ext.rb +1 -0
  344. data/lib/ddtrace/contrib/sinatra/headers.rb +2 -3
  345. data/lib/ddtrace/contrib/sinatra/integration.rb +1 -0
  346. data/lib/ddtrace/contrib/sinatra/patcher.rb +3 -1
  347. data/lib/ddtrace/contrib/sinatra/tracer.rb +14 -6
  348. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +13 -6
  349. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +2 -0
  350. data/lib/ddtrace/contrib/sneakers/ext.rb +12 -11
  351. data/lib/ddtrace/contrib/sneakers/integration.rb +1 -0
  352. data/lib/ddtrace/contrib/sneakers/patcher.rb +1 -0
  353. data/lib/ddtrace/contrib/sneakers/tracer.rb +17 -21
  354. data/lib/ddtrace/contrib/status_code_matcher.rb +70 -0
  355. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +1 -0
  356. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +5 -6
  357. data/lib/ddtrace/contrib/sucker_punch/ext.rb +1 -0
  358. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +5 -0
  359. data/lib/ddtrace/contrib/sucker_punch/integration.rb +1 -0
  360. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +2 -0
  361. data/lib/ddtrace/correlation.rb +3 -1
  362. data/lib/ddtrace/diagnostics/environment_logger.rb +9 -7
  363. data/lib/ddtrace/diagnostics/health.rb +1 -0
  364. data/lib/ddtrace/distributed_tracing/headers/b3.rb +1 -0
  365. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +1 -0
  366. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -0
  367. data/lib/ddtrace/distributed_tracing/headers/headers.rb +2 -0
  368. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +2 -3
  369. data/lib/ddtrace/encoding.rb +3 -0
  370. data/lib/ddtrace/error.rb +78 -8
  371. data/lib/ddtrace/event.rb +1 -0
  372. data/lib/ddtrace/ext/analytics.rb +1 -0
  373. data/lib/ddtrace/ext/app_types.rb +1 -0
  374. data/lib/ddtrace/ext/correlation.rb +1 -0
  375. data/lib/ddtrace/ext/diagnostics.rb +1 -0
  376. data/lib/ddtrace/ext/distributed.rb +9 -2
  377. data/lib/ddtrace/ext/environment.rb +8 -0
  378. data/lib/ddtrace/ext/errors.rb +1 -0
  379. data/lib/ddtrace/ext/forced_tracing.rb +1 -0
  380. data/lib/ddtrace/ext/git.rb +20 -0
  381. data/lib/ddtrace/ext/http.rb +2 -1
  382. data/lib/ddtrace/ext/integration.rb +1 -0
  383. data/lib/ddtrace/ext/manual_tracing.rb +1 -0
  384. data/lib/ddtrace/ext/metrics.rb +1 -0
  385. data/lib/ddtrace/ext/net.rb +1 -0
  386. data/lib/ddtrace/ext/priority.rb +1 -0
  387. data/lib/ddtrace/ext/profiling.rb +56 -0
  388. data/lib/ddtrace/ext/runtime.rb +2 -7
  389. data/lib/ddtrace/ext/sampling.rb +1 -0
  390. data/lib/ddtrace/ext/sql.rb +1 -0
  391. data/lib/ddtrace/ext/test.rb +9 -0
  392. data/lib/ddtrace/ext/transport.rb +3 -0
  393. data/lib/ddtrace/forced_tracing.rb +3 -0
  394. data/lib/ddtrace/logger.rb +2 -1
  395. data/lib/ddtrace/metrics.rb +84 -24
  396. data/lib/ddtrace/opentelemetry/extensions.rb +2 -1
  397. data/lib/ddtrace/opentelemetry/span.rb +1 -0
  398. data/lib/ddtrace/opentracer.rb +21 -39
  399. data/lib/ddtrace/opentracer/binary_propagator.rb +1 -0
  400. data/lib/ddtrace/opentracer/carrier.rb +1 -0
  401. data/lib/ddtrace/opentracer/distributed_headers.rb +4 -0
  402. data/lib/ddtrace/opentracer/global_tracer.rb +1 -0
  403. data/lib/ddtrace/opentracer/propagator.rb +1 -0
  404. data/lib/ddtrace/opentracer/rack_propagator.rb +1 -0
  405. data/lib/ddtrace/opentracer/scope.rb +1 -0
  406. data/lib/ddtrace/opentracer/scope_manager.rb +1 -0
  407. data/lib/ddtrace/opentracer/span.rb +3 -6
  408. data/lib/ddtrace/opentracer/span_context.rb +1 -0
  409. data/lib/ddtrace/opentracer/span_context_factory.rb +1 -0
  410. data/lib/ddtrace/opentracer/text_map_propagator.rb +1 -0
  411. data/lib/ddtrace/opentracer/thread_local_scope.rb +2 -0
  412. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +1 -0
  413. data/lib/ddtrace/opentracer/tracer.rb +1 -0
  414. data/lib/ddtrace/patcher.rb +28 -6
  415. data/lib/ddtrace/pin.rb +9 -61
  416. data/lib/ddtrace/pipeline.rb +1 -0
  417. data/lib/ddtrace/pipeline/span_filter.rb +2 -1
  418. data/lib/ddtrace/pipeline/span_processor.rb +1 -0
  419. data/lib/ddtrace/profiling.rb +151 -0
  420. data/lib/ddtrace/profiling/backtrace_location.rb +33 -0
  421. data/lib/ddtrace/profiling/buffer.rb +42 -0
  422. data/lib/ddtrace/profiling/collectors/stack.rb +257 -0
  423. data/lib/ddtrace/profiling/encoding/profile.rb +38 -0
  424. data/lib/ddtrace/profiling/event.rb +14 -0
  425. data/lib/ddtrace/profiling/events/stack.rb +81 -0
  426. data/lib/ddtrace/profiling/exporter.rb +24 -0
  427. data/lib/ddtrace/profiling/ext/cpu.rb +67 -0
  428. data/lib/ddtrace/profiling/ext/cthread.rb +156 -0
  429. data/lib/ddtrace/profiling/ext/forking.rb +98 -0
  430. data/lib/ddtrace/profiling/flush.rb +44 -0
  431. data/lib/ddtrace/profiling/native_extension.rb +18 -0
  432. data/lib/ddtrace/profiling/pprof/builder.rb +120 -0
  433. data/lib/ddtrace/profiling/pprof/converter.rb +90 -0
  434. data/lib/ddtrace/profiling/pprof/message_set.rb +15 -0
  435. data/lib/ddtrace/profiling/pprof/payload.rb +19 -0
  436. data/lib/ddtrace/profiling/pprof/pprof.proto +212 -0
  437. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +82 -0
  438. data/lib/ddtrace/profiling/pprof/stack_sample.rb +117 -0
  439. data/lib/ddtrace/profiling/pprof/string_table.rb +11 -0
  440. data/lib/ddtrace/profiling/pprof/template.rb +119 -0
  441. data/lib/ddtrace/profiling/preload.rb +4 -0
  442. data/lib/ddtrace/profiling/profiler.rb +31 -0
  443. data/lib/ddtrace/profiling/recorder.rb +96 -0
  444. data/lib/ddtrace/profiling/scheduler.rb +134 -0
  445. data/lib/ddtrace/profiling/tasks/setup.rb +82 -0
  446. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +41 -0
  447. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +46 -0
  448. data/lib/ddtrace/profiling/transport/client.rb +15 -0
  449. data/lib/ddtrace/profiling/transport/http.rb +120 -0
  450. data/lib/ddtrace/profiling/transport/http/api.rb +44 -0
  451. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +101 -0
  452. data/lib/ddtrace/profiling/transport/http/api/instance.rb +37 -0
  453. data/lib/ddtrace/profiling/transport/http/api/spec.rb +41 -0
  454. data/lib/ddtrace/profiling/transport/http/builder.rb +29 -0
  455. data/lib/ddtrace/profiling/transport/http/client.rb +34 -0
  456. data/lib/ddtrace/profiling/transport/http/response.rb +22 -0
  457. data/lib/ddtrace/profiling/transport/io.rb +31 -0
  458. data/lib/ddtrace/profiling/transport/io/client.rb +28 -0
  459. data/lib/ddtrace/profiling/transport/io/response.rb +17 -0
  460. data/lib/ddtrace/profiling/transport/parcel.rb +18 -0
  461. data/lib/ddtrace/profiling/transport/request.rb +16 -0
  462. data/lib/ddtrace/profiling/transport/response.rb +9 -0
  463. data/lib/ddtrace/propagation/grpc_propagator.rb +2 -0
  464. data/lib/ddtrace/propagation/http_propagator.rb +18 -2
  465. data/lib/ddtrace/quantization/hash.rb +1 -0
  466. data/lib/ddtrace/quantization/http.rb +4 -0
  467. data/lib/ddtrace/runtime/metrics.rb +21 -14
  468. data/lib/ddtrace/sampler.rb +2 -1
  469. data/lib/ddtrace/sampling.rb +1 -0
  470. data/lib/ddtrace/sampling/matcher.rb +1 -0
  471. data/lib/ddtrace/sampling/rate_limiter.rb +66 -16
  472. data/lib/ddtrace/sampling/rule.rb +2 -1
  473. data/lib/ddtrace/sampling/rule_sampler.rb +6 -10
  474. data/lib/ddtrace/span.rb +44 -19
  475. data/lib/ddtrace/sync_writer.rb +17 -15
  476. data/lib/ddtrace/tasks/exec.rb +47 -0
  477. data/lib/ddtrace/tasks/help.rb +15 -0
  478. data/lib/ddtrace/tracer.rb +60 -49
  479. data/lib/ddtrace/transport/http.rb +51 -38
  480. data/lib/ddtrace/transport/http/adapters/net.rb +28 -8
  481. data/lib/ddtrace/transport/http/adapters/registry.rb +2 -0
  482. data/lib/ddtrace/transport/http/adapters/test.rb +1 -0
  483. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +3 -4
  484. data/lib/ddtrace/transport/http/api.rb +1 -0
  485. data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
  486. data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
  487. data/lib/ddtrace/transport/http/api/instance.rb +1 -0
  488. data/lib/ddtrace/transport/http/api/map.rb +1 -0
  489. data/lib/ddtrace/transport/http/api/spec.rb +1 -0
  490. data/lib/ddtrace/transport/http/builder.rb +8 -1
  491. data/lib/ddtrace/transport/http/client.rb +3 -1
  492. data/lib/ddtrace/transport/http/env.rb +9 -0
  493. data/lib/ddtrace/transport/http/response.rb +1 -0
  494. data/lib/ddtrace/transport/http/statistics.rb +3 -2
  495. data/lib/ddtrace/transport/http/traces.rb +6 -6
  496. data/lib/ddtrace/transport/io.rb +2 -1
  497. data/lib/ddtrace/transport/io/client.rb +17 -9
  498. data/lib/ddtrace/transport/io/response.rb +2 -3
  499. data/lib/ddtrace/transport/io/traces.rb +10 -1
  500. data/lib/ddtrace/transport/parcel.rb +7 -0
  501. data/lib/ddtrace/transport/request.rb +1 -0
  502. data/lib/ddtrace/transport/response.rb +1 -0
  503. data/lib/ddtrace/transport/statistics.rb +1 -0
  504. data/lib/ddtrace/transport/traces.rb +21 -3
  505. data/lib/ddtrace/utils.rb +23 -12
  506. data/lib/ddtrace/utils/compression.rb +28 -0
  507. data/lib/ddtrace/utils/database.rb +1 -0
  508. data/lib/ddtrace/utils/forking.rb +53 -0
  509. data/lib/ddtrace/utils/object_set.rb +40 -0
  510. data/lib/ddtrace/utils/only_once.rb +41 -0
  511. data/lib/ddtrace/utils/sequence.rb +18 -0
  512. data/lib/ddtrace/utils/string_table.rb +46 -0
  513. data/lib/ddtrace/utils/time.rb +34 -2
  514. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  515. data/lib/ddtrace/vendor/active_record/connection_specification.rb +1 -0
  516. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  517. data/lib/ddtrace/vendor/multipart-post/multipart.rb +13 -0
  518. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +9 -0
  519. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +117 -0
  520. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +58 -0
  521. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +136 -0
  522. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +10 -0
  523. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +33 -0
  524. data/lib/ddtrace/version.rb +15 -2
  525. data/lib/ddtrace/worker.rb +1 -0
  526. data/lib/ddtrace/workers.rb +8 -2
  527. data/lib/ddtrace/workers/async.rb +15 -5
  528. data/lib/ddtrace/workers/loop.rb +32 -5
  529. data/lib/ddtrace/workers/polling.rb +13 -5
  530. data/lib/ddtrace/workers/queue.rb +3 -1
  531. data/lib/ddtrace/workers/runtime_metrics.rb +22 -4
  532. data/lib/ddtrace/workers/trace_writer.rb +14 -16
  533. data/lib/ddtrace/writer.rb +33 -8
  534. metadata +149 -402
  535. data/.circleci/config.yml +0 -548
  536. data/.circleci/images/primary/Dockerfile-2.0.0 +0 -73
  537. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -73
  538. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -73
  539. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -75
  540. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -73
  541. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -73
  542. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -73
  543. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -73
  544. data/.circleci/images/primary/Dockerfile-jruby-9.2 +0 -77
  545. data/.dockerignore +0 -1
  546. data/.env +0 -26
  547. data/.github/CODEOWNERS +0 -1
  548. data/.gitlab-ci.yml +0 -27
  549. data/.rspec +0 -1
  550. data/.rubocop.yml +0 -85
  551. data/.simplecov +0 -38
  552. data/Appraisals +0 -1121
  553. data/Gemfile +0 -7
  554. data/Rakefile +0 -788
  555. data/benchmarks/postgres_database.yml +0 -9
  556. data/benchmarks/sidekiq_test.rb +0 -154
  557. data/docker-compose.yml +0 -370
  558. data/lib/ddtrace/augmentation.rb +0 -13
  559. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  560. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  561. data/lib/ddtrace/augmentation/shim.rb +0 -102
  562. data/lib/ddtrace/environment.rb +0 -41
  563. data/lib/ddtrace/monkey.rb +0 -58
  564. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  565. data/lib/ddtrace/runtime/class_count.rb +0 -17
  566. data/lib/ddtrace/runtime/container.rb +0 -73
  567. data/lib/ddtrace/runtime/gc.rb +0 -16
  568. data/lib/ddtrace/runtime/identity.rb +0 -41
  569. data/lib/ddtrace/runtime/object_space.rb +0 -19
  570. data/lib/ddtrace/runtime/socket.rb +0 -14
  571. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  572. data/tasks/release_gem.rake +0 -28
data/Gemfile DELETED
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
- # Add debugger for pry that's compatible with 0.10.4
6
- gem 'pry-nav', git: 'https://github.com/nixme/pry-nav.git', branch: 'master'
7
- # This file was generated by Appraisal
data/Rakefile DELETED
@@ -1,788 +0,0 @@
1
- require 'bundler/gem_tasks'
2
- require 'ddtrace/version'
3
- require 'rubocop/rake_task' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
4
- require 'rspec/core/rake_task'
5
- require 'rake/testtask'
6
- require 'appraisal'
7
- require 'yard'
8
-
9
- Dir.glob('tasks/*.rake').each { |r| import r }
10
-
11
- desc 'Run RSpec'
12
- # rubocop:disable Metrics/BlockLength
13
- namespace :spec do
14
- task all: [:main, :benchmark,
15
- :rails, :railsredis, :railsactivejob,
16
- :elasticsearch, :http, :redis, :sidekiq, :sinatra]
17
-
18
- RSpec::Core::RakeTask.new(:main) do |t, args|
19
- t.pattern = 'spec/**/*_spec.rb'
20
- t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry}/**/*_spec.rb'
21
- t.rspec_opts = args.to_a.join(' ')
22
- end
23
-
24
- RSpec::Core::RakeTask.new(:benchmark) do |t, args|
25
- t.pattern = 'spec/ddtrace/benchmark/**/*_spec.rb'
26
- t.rspec_opts = args.to_a.join(' ')
27
- end
28
-
29
- RSpec::Core::RakeTask.new(:opentracer) do |t, args|
30
- t.pattern = 'spec/ddtrace/opentracer/**/*_spec.rb'
31
- t.rspec_opts = args.to_a.join(' ')
32
- end
33
-
34
- RSpec::Core::RakeTask.new(:opentelemetry) do |t, args|
35
- t.pattern = 'spec/ddtrace/opentelemetry/**/*_spec.rb'
36
- t.rspec_opts = args.to_a.join(' ')
37
- end
38
-
39
- RSpec::Core::RakeTask.new(:rails) do |t, args|
40
- t.pattern = 'spec/ddtrace/contrib/rails/**/*_spec.rb'
41
- t.exclude_pattern = 'spec/ddtrace/contrib/rails/**/*{active_job,disable_env,redis_cache}*_spec.rb'
42
- t.rspec_opts = args.to_a.join(' ')
43
- end
44
-
45
- RSpec::Core::RakeTask.new(:railsredis) do |t, args|
46
- t.pattern = 'spec/ddtrace/contrib/rails/**/*redis*_spec.rb'
47
- t.rspec_opts = args.to_a.join(' ')
48
- end
49
-
50
- RSpec::Core::RakeTask.new(:railsactivejob) do |t, args|
51
- t.pattern = 'spec/ddtrace/contrib/rails/**/*active_job*_spec.rb'
52
- t.rspec_opts = args.to_a.join(' ')
53
- end
54
-
55
- RSpec::Core::RakeTask.new(:railsdisableenv) do |t, args|
56
- t.pattern = 'spec/ddtrace/contrib/rails/**/*disable_env*_spec.rb'
57
- t.rspec_opts = args.to_a.join(' ')
58
- end
59
-
60
- RSpec::Core::RakeTask.new(:contrib) do |t, args|
61
- contrib_paths = [
62
- 'analytics',
63
- 'configurable',
64
- 'configuration/*',
65
- 'configuration/resolvers/*',
66
- 'extensions',
67
- 'integration',
68
- 'patchable',
69
- 'patcher',
70
- 'registerable',
71
- 'registry',
72
- 'registry/*'
73
- ].join(',')
74
-
75
- t.pattern = "spec/**/contrib/{#{contrib_paths}}_spec.rb"
76
- t.rspec_opts = args.to_a.join(' ')
77
- end
78
-
79
- [
80
- :action_cable,
81
- :action_pack,
82
- :action_view,
83
- :active_model_serializers,
84
- :active_record,
85
- :active_support,
86
- :aws,
87
- :concurrent_ruby,
88
- :dalli,
89
- :delayed_job,
90
- :elasticsearch,
91
- :ethon,
92
- :excon,
93
- :faraday,
94
- :grape,
95
- :graphql,
96
- :grpc,
97
- :http,
98
- :httprb,
99
- :kafka,
100
- :mongodb,
101
- :mysql2,
102
- :presto,
103
- :que,
104
- :racecar,
105
- :rack,
106
- :rake,
107
- :redis,
108
- :resque,
109
- :rest_client,
110
- :sequel,
111
- :shoryuken,
112
- :sidekiq,
113
- :sinatra,
114
- :sneakers,
115
- :sucker_punch,
116
- :suite
117
- ].each do |contrib|
118
- RSpec::Core::RakeTask.new(contrib) do |t, args|
119
- t.pattern = "spec/ddtrace/contrib/#{contrib}/**/*_spec.rb"
120
- t.rspec_opts = args.to_a.join(' ')
121
- end
122
- end
123
- end
124
-
125
- namespace :test do
126
- task all: [:main,
127
- :rails,
128
- :monkey]
129
-
130
- Rake::TestTask.new(:main) do |t|
131
- t.libs << %w[test lib]
132
- t.test_files = FileList['test/**/*_test.rb'].reject do |path|
133
- path.include?('contrib') ||
134
- path.include?('benchmark') ||
135
- path.include?('redis') ||
136
- path.include?('monkey_test.rb')
137
- end
138
- end
139
-
140
- Rake::TestTask.new(:rails) do |t|
141
- t.libs << %w[test lib]
142
- t.test_files = FileList['test/contrib/rails/**/*_test.rb']
143
- end
144
-
145
- [
146
- ].each do |contrib|
147
- Rake::TestTask.new(contrib) do |t|
148
- t.libs << %w[test lib]
149
- t.test_files = FileList["test/contrib/#{contrib}/*_test.rb"]
150
- end
151
- end
152
-
153
- Rake::TestTask.new(:monkey) do |t|
154
- t.libs << %w[test lib]
155
- t.test_files = FileList['test/monkey_test.rb']
156
- end
157
- end
158
-
159
- Rake::TestTask.new(:benchmark) do |t|
160
- t.libs << %w[test lib]
161
- t.test_files = FileList['test/benchmark_test.rb']
162
- end
163
-
164
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
165
- RuboCop::RakeTask.new(:rubocop) do |t|
166
- t.options << ['-D', '--force-exclusion']
167
- t.patterns = ['lib/**/*.rb', 'test/**/*.rb', 'spec/**/*.rb', 'Gemfile', 'Rakefile']
168
- end
169
- end
170
-
171
- YARD::Rake::YardocTask.new(:docs) do |t|
172
- t.options += ['--title', "ddtrace #{Datadog::VERSION::STRING} documentation"]
173
- t.options += ['--markup', 'markdown']
174
- t.options += ['--markup-provider', 'redcarpet']
175
- end
176
-
177
- # Deploy tasks
178
- S3_BUCKET = 'gems.datadoghq.com'.freeze
179
- S3_DIR = ENV['S3_DIR']
180
-
181
- desc 'release the docs website'
182
- task :'release:docs' => :docs do
183
- raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
184
- sh "aws s3 cp --recursive doc/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
185
- end
186
-
187
- # Declare a command for execution.
188
- # Jobs are parallelized if running in CI.
189
- def declare(*args)
190
- total_executors = ENV.key?('CIRCLE_NODE_TOTAL') ? ENV['CIRCLE_NODE_TOTAL'].to_i : nil
191
- current_executor = ENV.key?('CIRCLE_NODE_INDEX') ? ENV['CIRCLE_NODE_INDEX'].to_i : nil
192
-
193
- if total_executors && current_executor && total_executors > 1
194
- @execution_count ||= 0
195
- @execution_count += 1
196
- sh(*args) if @execution_count % total_executors == current_executor
197
- else
198
- sh(*args)
199
- end
200
- end
201
-
202
- desc 'CI task; it runs all tests for current version of Ruby'
203
- task :ci do
204
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(Datadog::VERSION::MINIMUM_RUBY_VERSION)
205
- raise NotImplementedError, "Ruby versions < #{Datadog::VERSION::MINIMUM_RUBY_VERSION} are not supported!"
206
- elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
207
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
208
- # Main library
209
- declare 'bundle exec rake test:main'
210
- declare 'bundle exec rake spec:main'
211
- declare 'bundle exec rake spec:contrib'
212
-
213
- if RUBY_PLATFORM != 'java'
214
- # Contrib minitests
215
- declare 'bundle exec appraisal contrib-old rake test:monkey'
216
- # Contrib specs
217
- declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
218
- declare 'bundle exec appraisal contrib-old rake spec:active_record'
219
- declare 'bundle exec appraisal contrib-old rake spec:active_support'
220
- declare 'bundle exec appraisal contrib-old rake spec:aws'
221
- declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
222
- declare 'bundle exec appraisal contrib-old rake spec:dalli'
223
- declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
224
- declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
225
- declare 'bundle exec appraisal contrib-old rake spec:ethon'
226
- declare 'bundle exec appraisal contrib-old rake spec:excon'
227
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
228
- declare 'bundle exec appraisal contrib-old rake spec:http'
229
- declare 'bundle exec appraisal contrib-old rake spec:httprb'
230
- declare 'bundle exec appraisal contrib-old rake spec:mongodb'
231
- declare 'bundle exec appraisal contrib-old rake spec:mysql2'
232
- declare 'bundle exec appraisal contrib-old rake spec:rack'
233
- declare 'bundle exec appraisal contrib-old rake spec:rake'
234
- declare 'bundle exec appraisal contrib-old rake spec:redis'
235
- declare 'bundle exec appraisal contrib-old rake spec:resque'
236
- declare 'bundle exec appraisal contrib-old rake spec:rest_client'
237
- declare 'bundle exec appraisal contrib-old rake spec:sequel'
238
- declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
239
- declare 'bundle exec appraisal contrib-old rake spec:sinatra'
240
- declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
241
- declare 'bundle exec appraisal contrib-old rake spec:suite'
242
- # Rails minitests
243
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
244
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
245
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
246
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
247
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
248
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
249
- # Rails specs
250
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
251
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
252
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
253
- # Rails suite specs
254
- declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
255
- declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
256
- declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
257
- declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
258
- end
259
- elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
260
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
261
- # Main library
262
- declare 'bundle exec rake test:main'
263
- declare 'bundle exec rake spec:main'
264
- declare 'bundle exec rake spec:contrib'
265
- declare 'bundle exec rake spec:opentracer'
266
-
267
- if RUBY_PLATFORM != 'java'
268
- # Contrib minitests
269
- declare 'bundle exec appraisal contrib-old rake test:monkey'
270
- # Contrib specs
271
- declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
272
- declare 'bundle exec appraisal contrib-old rake spec:active_record'
273
- declare 'bundle exec appraisal contrib-old rake spec:active_support'
274
- declare 'bundle exec appraisal contrib-old rake spec:aws'
275
- declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
276
- declare 'bundle exec appraisal contrib-old rake spec:dalli'
277
- declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
278
- declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
279
- declare 'bundle exec appraisal contrib-old rake spec:ethon'
280
- declare 'bundle exec appraisal contrib-old rake spec:excon'
281
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
282
- declare 'bundle exec appraisal contrib-old rake spec:http'
283
- declare 'bundle exec appraisal contrib-old rake spec:httprb'
284
- declare 'bundle exec appraisal contrib-old rake spec:mongodb'
285
- declare 'bundle exec appraisal contrib-old rake spec:mysql2'
286
- declare 'bundle exec appraisal contrib-old rake spec:presto'
287
- declare 'bundle exec appraisal contrib-old rake spec:rack'
288
- declare 'bundle exec appraisal contrib-old rake spec:rake'
289
- declare 'bundle exec appraisal contrib-old rake spec:redis'
290
- declare 'bundle exec appraisal contrib-old rake spec:resque'
291
- declare 'bundle exec appraisal contrib-old rake spec:rest_client'
292
- declare 'bundle exec appraisal contrib-old rake spec:sequel'
293
- declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
294
- declare 'bundle exec appraisal contrib-old rake spec:sinatra'
295
- declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
296
- declare 'bundle exec appraisal contrib-old rake spec:suite'
297
- # Rails minitests
298
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
299
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
300
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
301
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
302
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
303
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
304
- declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
305
- declare 'bundle exec appraisal rails4-postgres rake test:rails'
306
- declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
307
- declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
308
- # Rails specs
309
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
310
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
311
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
312
- declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
313
- declare 'bundle exec appraisal rails4-postgres rake spec:rails'
314
- # Rails suite specs
315
- declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
316
- declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
317
- declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
318
- declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
319
- end
320
- elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION)\
321
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
322
- # Main library
323
- declare 'bundle exec rake test:main'
324
- declare 'bundle exec rake spec:main'
325
- declare 'bundle exec rake spec:contrib'
326
- declare 'bundle exec rake spec:opentracer'
327
-
328
- if RUBY_PLATFORM != 'java'
329
- # Contrib minitests
330
- # Contrib specs
331
- declare 'bundle exec appraisal contrib rake spec:action_pack'
332
- declare 'bundle exec appraisal contrib rake spec:action_view'
333
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
334
- declare 'bundle exec appraisal contrib rake spec:active_record'
335
- declare 'bundle exec appraisal contrib rake spec:active_support'
336
- declare 'bundle exec appraisal contrib rake spec:aws'
337
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
338
- declare 'bundle exec appraisal contrib rake spec:dalli'
339
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
340
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
341
- declare 'bundle exec appraisal contrib rake spec:ethon'
342
- declare 'bundle exec appraisal contrib rake spec:excon'
343
- declare 'bundle exec appraisal contrib rake spec:faraday'
344
- declare 'bundle exec appraisal contrib rake spec:grape'
345
- declare 'bundle exec appraisal contrib rake spec:graphql'
346
- declare 'bundle exec appraisal contrib rake spec:grpc'
347
- declare 'bundle exec appraisal contrib rake spec:http'
348
- declare 'bundle exec appraisal contrib rake spec:httprb'
349
- declare 'bundle exec appraisal contrib rake spec:mongodb'
350
- declare 'bundle exec appraisal contrib rake spec:mysql2'
351
- declare 'bundle exec appraisal contrib rake spec:presto'
352
- declare 'bundle exec appraisal contrib rake spec:que'
353
- declare 'bundle exec appraisal contrib rake spec:racecar'
354
- declare 'bundle exec appraisal contrib rake spec:rack'
355
- declare 'bundle exec appraisal contrib rake spec:rake'
356
- declare 'bundle exec appraisal contrib rake spec:redis'
357
- declare 'bundle exec appraisal contrib rake spec:resque'
358
- declare 'bundle exec appraisal contrib rake spec:rest_client'
359
- declare 'bundle exec appraisal contrib rake spec:sequel'
360
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
361
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
362
- declare 'bundle exec appraisal contrib rake spec:sinatra'
363
- declare 'bundle exec appraisal contrib rake spec:sneakers'
364
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
365
- declare 'bundle exec appraisal contrib rake spec:suite'
366
- # Rails minitests
367
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
368
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
369
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
370
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
371
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
372
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
373
- declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
374
- declare 'bundle exec appraisal rails4-postgres rake test:rails'
375
- declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
376
- declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
377
- declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
378
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
379
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
380
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
381
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
382
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
383
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
384
- # Rails specs
385
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
386
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
387
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
388
- declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
389
- declare 'bundle exec appraisal rails4-postgres rake spec:rails'
390
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
391
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
392
- end
393
- elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
394
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
395
- # Main library
396
- declare 'bundle exec rake test:main'
397
- declare 'bundle exec rake spec:main'
398
- declare 'bundle exec rake spec:contrib'
399
- declare 'bundle exec rake spec:opentracer'
400
-
401
- if RUBY_PLATFORM != 'java'
402
- # Contrib minitests
403
- # Contrib specs
404
- declare 'bundle exec appraisal contrib rake spec:action_pack'
405
- declare 'bundle exec appraisal contrib rake spec:action_view'
406
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
407
- declare 'bundle exec appraisal contrib rake spec:active_record'
408
- declare 'bundle exec appraisal contrib rake spec:active_support'
409
- declare 'bundle exec appraisal contrib rake spec:aws'
410
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
411
- declare 'bundle exec appraisal contrib rake spec:dalli'
412
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
413
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
414
- declare 'bundle exec appraisal contrib rake spec:ethon'
415
- declare 'bundle exec appraisal contrib rake spec:excon'
416
- declare 'bundle exec appraisal contrib rake spec:faraday'
417
- declare 'bundle exec appraisal contrib rake spec:grape'
418
- declare 'bundle exec appraisal contrib rake spec:graphql'
419
- declare 'bundle exec appraisal contrib rake spec:grpc'
420
- declare 'bundle exec appraisal contrib rake spec:http'
421
- declare 'bundle exec appraisal contrib rake spec:httprb'
422
- declare 'bundle exec appraisal contrib rake spec:mongodb'
423
- declare 'bundle exec appraisal contrib rake spec:mysql2'
424
- declare 'bundle exec appraisal contrib rake spec:presto'
425
- declare 'bundle exec appraisal contrib rake spec:que'
426
- declare 'bundle exec appraisal contrib rake spec:racecar'
427
- declare 'bundle exec appraisal contrib rake spec:rack'
428
- declare 'bundle exec appraisal contrib rake spec:rake'
429
- declare 'bundle exec appraisal contrib rake spec:redis'
430
- declare 'bundle exec appraisal contrib rake spec:resque'
431
- declare 'bundle exec appraisal contrib rake spec:rest_client'
432
- declare 'bundle exec appraisal contrib rake spec:sequel'
433
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
434
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
435
- declare 'bundle exec appraisal contrib rake spec:sinatra'
436
- declare 'bundle exec appraisal contrib rake spec:sneakers'
437
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
438
- declare 'bundle exec appraisal contrib rake spec:suite'
439
- # Contrib specs with old gem versions
440
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
441
- # Rails minitests
442
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
443
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
444
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
445
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
446
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
447
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
448
- declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
449
- declare 'bundle exec appraisal rails4-postgres rake test:rails'
450
- declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
451
- declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
452
- declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
453
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
454
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
455
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
456
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
457
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
458
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
459
- # Rails specs
460
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
461
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
462
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
463
- declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
464
- declare 'bundle exec appraisal rails4-postgres rake spec:rails'
465
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
466
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
467
-
468
- # explicitly test resque-2x compatability
469
- declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
470
- declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
471
- end
472
- elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
473
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
474
- # Main library
475
- declare 'bundle exec rake test:main'
476
- declare 'bundle exec rake spec:main'
477
- declare 'bundle exec rake spec:contrib'
478
- declare 'bundle exec rake spec:opentracer'
479
- declare 'bundle exec rake spec:opentelemetry'
480
-
481
- if RUBY_PLATFORM != 'java'
482
- # Contrib minitests
483
- # Contrib specs
484
- declare 'bundle exec appraisal contrib rake spec:action_pack'
485
- declare 'bundle exec appraisal contrib rake spec:action_view'
486
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
487
- declare 'bundle exec appraisal contrib rake spec:active_record'
488
- declare 'bundle exec appraisal contrib rake spec:active_support'
489
- declare 'bundle exec appraisal contrib rake spec:aws'
490
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
491
- declare 'bundle exec appraisal contrib rake spec:dalli'
492
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
493
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
494
- declare 'bundle exec appraisal contrib rake spec:ethon'
495
- declare 'bundle exec appraisal contrib rake spec:excon'
496
- declare 'bundle exec appraisal contrib rake spec:faraday'
497
- declare 'bundle exec appraisal contrib rake spec:grape'
498
- declare 'bundle exec appraisal contrib rake spec:graphql'
499
- declare 'bundle exec appraisal contrib rake spec:grpc'
500
- declare 'bundle exec appraisal contrib rake spec:http'
501
- declare 'bundle exec appraisal contrib rake spec:httprb'
502
- declare 'bundle exec appraisal contrib rake spec:mongodb'
503
- declare 'bundle exec appraisal contrib rake spec:mysql2'
504
- declare 'bundle exec appraisal contrib rake spec:presto'
505
- declare 'bundle exec appraisal contrib rake spec:que'
506
- declare 'bundle exec appraisal contrib rake spec:racecar'
507
- declare 'bundle exec appraisal contrib rake spec:rack'
508
- declare 'bundle exec appraisal contrib rake spec:rake'
509
- declare 'bundle exec appraisal contrib rake spec:redis'
510
- declare 'bundle exec appraisal contrib rake spec:resque'
511
- declare 'bundle exec appraisal contrib rake spec:rest_client'
512
- declare 'bundle exec appraisal contrib rake spec:sequel'
513
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
514
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
515
- declare 'bundle exec appraisal contrib rake spec:sinatra'
516
- declare 'bundle exec appraisal contrib rake spec:sneakers'
517
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
518
- declare 'bundle exec appraisal contrib rake spec:suite'
519
- # Contrib specs with old gem versions
520
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
521
- # Rails minitests
522
- # We only test Rails 5+ because older versions require Bundler < 2.0
523
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
524
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
525
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
526
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
527
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
528
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
529
- # Rails specs
530
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
531
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
532
-
533
- # explicitly test resque-2x compatability
534
- declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
535
- declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
536
- end
537
- elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
538
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
539
- # Main library
540
- declare 'bundle exec rake test:main'
541
- declare 'bundle exec rake spec:main'
542
- declare 'bundle exec rake spec:contrib'
543
- declare 'bundle exec rake spec:opentracer'
544
- declare 'bundle exec rake spec:opentelemetry'
545
- # Contrib minitests
546
- # Contrib specs
547
- declare 'bundle exec appraisal contrib rake spec:action_pack'
548
- declare 'bundle exec appraisal contrib rake spec:action_view'
549
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
550
- declare 'bundle exec appraisal contrib rake spec:active_record'
551
- declare 'bundle exec appraisal contrib rake spec:active_support'
552
- declare 'bundle exec appraisal contrib rake spec:aws'
553
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
554
- declare 'bundle exec appraisal contrib rake spec:dalli'
555
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
556
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
557
- declare 'bundle exec appraisal contrib rake spec:ethon'
558
- declare 'bundle exec appraisal contrib rake spec:excon'
559
- declare 'bundle exec appraisal contrib rake spec:faraday'
560
- declare 'bundle exec appraisal contrib rake spec:grape'
561
- declare 'bundle exec appraisal contrib rake spec:graphql'
562
- declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
563
- declare 'bundle exec appraisal contrib rake spec:http'
564
- declare 'bundle exec appraisal contrib rake spec:httprb'
565
- declare 'bundle exec appraisal contrib rake spec:mongodb'
566
- declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
567
- declare 'bundle exec appraisal contrib rake spec:presto'
568
- declare 'bundle exec appraisal contrib rake spec:que'
569
- declare 'bundle exec appraisal contrib rake spec:racecar'
570
- declare 'bundle exec appraisal contrib rake spec:rack'
571
- declare 'bundle exec appraisal contrib rake spec:rake'
572
- declare 'bundle exec appraisal contrib rake spec:redis'
573
- declare 'bundle exec appraisal contrib rake spec:resque'
574
- declare 'bundle exec appraisal contrib rake spec:rest_client'
575
- declare 'bundle exec appraisal contrib rake spec:sequel'
576
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
577
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
578
- declare 'bundle exec appraisal contrib rake spec:sinatra'
579
- declare 'bundle exec appraisal contrib rake spec:sneakers'
580
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
581
- declare 'bundle exec appraisal contrib rake spec:suite'
582
- # Contrib specs with old gem versions
583
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
584
- # Rails minitests
585
- # We only test Rails 5+ because older versions require Bundler < 2.0
586
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
587
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
588
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
589
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
590
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
591
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
592
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
593
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
594
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
595
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
596
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
597
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
598
- # Rails specs
599
- declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
600
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
601
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
602
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
603
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
604
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
605
-
606
- # explicitly test resque-2x compatability
607
- declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
608
- declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
609
- elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
610
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
611
- # Main library
612
- declare 'bundle exec rake test:main'
613
- declare 'bundle exec rake spec:main'
614
- declare 'bundle exec rake spec:contrib'
615
- declare 'bundle exec rake spec:opentracer'
616
- declare 'bundle exec rake spec:opentelemetry'
617
-
618
- if RUBY_PLATFORM != 'java'
619
- # Contrib minitests
620
- # Contrib specs
621
- declare 'bundle exec appraisal contrib rake spec:action_pack'
622
- declare 'bundle exec appraisal contrib rake spec:action_view'
623
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
624
- declare 'bundle exec appraisal contrib rake spec:active_record'
625
- declare 'bundle exec appraisal contrib rake spec:active_support'
626
- declare 'bundle exec appraisal contrib rake spec:aws'
627
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
628
- declare 'bundle exec appraisal contrib rake spec:dalli'
629
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
630
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
631
- declare 'bundle exec appraisal contrib rake spec:ethon'
632
- declare 'bundle exec appraisal contrib rake spec:excon'
633
- declare 'bundle exec appraisal contrib rake spec:faraday'
634
- declare 'bundle exec appraisal contrib rake spec:grape'
635
- declare 'bundle exec appraisal contrib rake spec:graphql'
636
- declare 'bundle exec appraisal contrib rake spec:grpc'
637
- declare 'bundle exec appraisal contrib rake spec:http'
638
- declare 'bundle exec appraisal contrib rake spec:httprb'
639
- declare 'bundle exec appraisal contrib rake spec:mongodb'
640
- declare 'bundle exec appraisal contrib rake spec:mysql2'
641
- declare 'bundle exec appraisal contrib rake spec:presto'
642
- declare 'bundle exec appraisal contrib rake spec:que'
643
- declare 'bundle exec appraisal contrib rake spec:racecar'
644
- declare 'bundle exec appraisal contrib rake spec:rack'
645
- declare 'bundle exec appraisal contrib rake spec:rake'
646
- declare 'bundle exec appraisal contrib rake spec:redis'
647
- declare 'bundle exec appraisal contrib rake spec:resque'
648
- declare 'bundle exec appraisal contrib rake spec:rest_client'
649
- declare 'bundle exec appraisal contrib rake spec:sequel'
650
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
651
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
652
- declare 'bundle exec appraisal contrib rake spec:sinatra'
653
- declare 'bundle exec appraisal contrib rake spec:sneakers'
654
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
655
- declare 'bundle exec appraisal contrib rake spec:suite'
656
- # Contrib specs with old gem versions
657
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
658
- # Rails minitests
659
- # We only test Rails 5+ because older versions require Bundler < 2.0
660
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
661
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
662
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
663
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
664
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
665
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
666
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
667
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
668
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
669
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
670
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
671
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
672
- # Rails specs
673
- declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
674
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
675
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
676
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
677
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
678
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
679
-
680
- # explicitly test resque-2x compatability
681
- declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
682
- declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
683
- end
684
- elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
685
- # Main library
686
- declare 'bundle exec rake test:main'
687
- declare 'bundle exec rake spec:main'
688
- declare 'bundle exec rake spec:contrib'
689
- declare 'bundle exec rake spec:opentracer'
690
- declare 'bundle exec rake spec:opentelemetry'
691
-
692
- if RUBY_PLATFORM != 'java'
693
- # Contrib minitests
694
- # Contrib specs
695
- declare 'bundle exec appraisal contrib rake spec:action_pack'
696
- declare 'bundle exec appraisal contrib rake spec:action_view'
697
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
698
- declare 'bundle exec appraisal contrib rake spec:active_record'
699
- declare 'bundle exec appraisal contrib rake spec:active_support'
700
- declare 'bundle exec appraisal contrib rake spec:aws'
701
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
702
- declare 'bundle exec appraisal contrib rake spec:dalli'
703
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
704
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
705
- declare 'bundle exec appraisal contrib rake spec:ethon'
706
- declare 'bundle exec appraisal contrib rake spec:excon'
707
- declare 'bundle exec appraisal contrib rake spec:faraday'
708
- declare 'bundle exec appraisal contrib rake spec:grape'
709
- declare 'bundle exec appraisal contrib rake spec:graphql'
710
- declare 'bundle exec appraisal contrib rake spec:grpc'
711
- declare 'bundle exec appraisal contrib rake spec:http'
712
- declare 'bundle exec appraisal contrib rake spec:httprb'
713
- declare 'bundle exec appraisal contrib rake spec:mongodb'
714
- declare 'bundle exec appraisal contrib rake spec:mysql2'
715
- declare 'bundle exec appraisal contrib rake spec:presto'
716
- declare 'bundle exec appraisal contrib rake spec:que'
717
- declare 'bundle exec appraisal contrib rake spec:racecar'
718
- declare 'bundle exec appraisal contrib rake spec:rack'
719
- declare 'bundle exec appraisal contrib rake spec:rake'
720
- declare 'bundle exec appraisal contrib rake spec:redis'
721
- declare 'bundle exec appraisal contrib rake spec:resque'
722
- declare 'bundle exec appraisal contrib rake spec:rest_client'
723
- declare 'bundle exec appraisal contrib rake spec:sequel'
724
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
725
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
726
- declare 'bundle exec appraisal contrib rake spec:sinatra'
727
- declare 'bundle exec appraisal contrib rake spec:sneakers'
728
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
729
- declare 'bundle exec appraisal contrib rake spec:suite'
730
- # Contrib specs with old gem versions
731
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
732
- # Rails minitests
733
- # We only test Rails 5+ because older versions require Bundler < 2.0
734
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
735
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
736
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
737
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
738
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
739
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
740
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
741
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
742
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
743
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
744
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
745
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
746
- # Rails specs
747
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
748
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
749
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
750
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
751
-
752
- # explicitly test resque-2x compatability
753
- declare 'bundle exec appraisal resque2-redis3 rake spec:resque'
754
- declare 'bundle exec appraisal resque2-redis4 rake spec:resque'
755
- end
756
- end
757
- end
758
-
759
- namespace :coverage do
760
- # Generates one global report for all tracer tests
761
- task :report do
762
- require 'simplecov'
763
-
764
- resultset_files = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/.resultset.json"] +
765
- Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/**/.resultset.json"]
766
-
767
- SimpleCov.collate resultset_files do
768
- coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
769
- formatter SimpleCov::Formatter::HTMLFormatter
770
- end
771
- end
772
-
773
- # Generates one report for each Ruby version
774
- task :report_per_ruby_version do
775
- require 'simplecov'
776
-
777
- versions = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/*"].map { |f| File.basename(f) }
778
- versions.map do |version|
779
- puts "Generating report for: #{version}"
780
- SimpleCov.collate Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/#{version}/**/.resultset.json"] do
781
- coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report/versions/#{version}"
782
- formatter SimpleCov::Formatter::HTMLFormatter
783
- end
784
- end
785
- end
786
- end
787
-
788
- task default: :test