ddtrace 0.41.0 → 0.52.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 (572) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.gitignore +7 -1
  4. data/CHANGELOG.md +1496 -354
  5. data/CONTRIBUTING.md +3 -7
  6. data/LICENSE-3rdparty.csv +2 -0
  7. data/README.md +1 -0
  8. data/bin/ddtracerb +15 -0
  9. data/ddtrace.gemspec +18 -38
  10. data/docs/DevelopmentGuide.md +55 -2
  11. data/docs/GettingStarted.md +338 -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 +233 -135
  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 +17 -5
  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 +3 -0
  150. data/lib/ddtrace/contrib/delayed_job/ext.rb +3 -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 +39 -15
  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 +2 -1
  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 +29 -8
  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 +3 -2
  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 +18 -4
  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 +68 -57
  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 -388
  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 -1071
  553. data/Gemfile +0 -7
  554. data/Rakefile +0 -768
  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,768 +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
- end
468
- elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
469
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
470
- # Main library
471
- declare 'bundle exec rake test:main'
472
- declare 'bundle exec rake spec:main'
473
- declare 'bundle exec rake spec:contrib'
474
- declare 'bundle exec rake spec:opentracer'
475
- declare 'bundle exec rake spec:opentelemetry'
476
-
477
- if RUBY_PLATFORM != 'java'
478
- # Contrib minitests
479
- # Contrib specs
480
- declare 'bundle exec appraisal contrib rake spec:action_pack'
481
- declare 'bundle exec appraisal contrib rake spec:action_view'
482
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
483
- declare 'bundle exec appraisal contrib rake spec:active_record'
484
- declare 'bundle exec appraisal contrib rake spec:active_support'
485
- declare 'bundle exec appraisal contrib rake spec:aws'
486
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
487
- declare 'bundle exec appraisal contrib rake spec:dalli'
488
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
489
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
490
- declare 'bundle exec appraisal contrib rake spec:ethon'
491
- declare 'bundle exec appraisal contrib rake spec:excon'
492
- declare 'bundle exec appraisal contrib rake spec:faraday'
493
- declare 'bundle exec appraisal contrib rake spec:grape'
494
- declare 'bundle exec appraisal contrib rake spec:graphql'
495
- declare 'bundle exec appraisal contrib rake spec:grpc'
496
- declare 'bundle exec appraisal contrib rake spec:http'
497
- declare 'bundle exec appraisal contrib rake spec:httprb'
498
- declare 'bundle exec appraisal contrib rake spec:mongodb'
499
- declare 'bundle exec appraisal contrib rake spec:mysql2'
500
- declare 'bundle exec appraisal contrib rake spec:presto'
501
- declare 'bundle exec appraisal contrib rake spec:que'
502
- declare 'bundle exec appraisal contrib rake spec:racecar'
503
- declare 'bundle exec appraisal contrib rake spec:rack'
504
- declare 'bundle exec appraisal contrib rake spec:rake'
505
- declare 'bundle exec appraisal contrib rake spec:redis'
506
- declare 'bundle exec appraisal contrib rake spec:resque'
507
- declare 'bundle exec appraisal contrib rake spec:rest_client'
508
- declare 'bundle exec appraisal contrib rake spec:sequel'
509
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
510
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
511
- declare 'bundle exec appraisal contrib rake spec:sinatra'
512
- declare 'bundle exec appraisal contrib rake spec:sneakers'
513
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
514
- declare 'bundle exec appraisal contrib rake spec:suite'
515
- # Contrib specs with old gem versions
516
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
517
- # Rails minitests
518
- # We only test Rails 5+ because older versions require Bundler < 2.0
519
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
520
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
521
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
522
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
523
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
524
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
525
- # Rails specs
526
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
527
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
528
- end
529
- elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
530
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
531
- # Main library
532
- declare 'bundle exec rake test:main'
533
- declare 'bundle exec rake spec:main'
534
- declare 'bundle exec rake spec:contrib'
535
- declare 'bundle exec rake spec:opentracer'
536
- declare 'bundle exec rake spec:opentelemetry'
537
- # Contrib minitests
538
- # Contrib specs
539
- declare 'bundle exec appraisal contrib rake spec:action_pack'
540
- declare 'bundle exec appraisal contrib rake spec:action_view'
541
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
542
- declare 'bundle exec appraisal contrib rake spec:active_record'
543
- declare 'bundle exec appraisal contrib rake spec:active_support'
544
- declare 'bundle exec appraisal contrib rake spec:aws'
545
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
546
- declare 'bundle exec appraisal contrib rake spec:dalli'
547
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
548
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
549
- declare 'bundle exec appraisal contrib rake spec:ethon'
550
- declare 'bundle exec appraisal contrib rake spec:excon'
551
- declare 'bundle exec appraisal contrib rake spec:faraday'
552
- declare 'bundle exec appraisal contrib rake spec:grape'
553
- declare 'bundle exec appraisal contrib rake spec:graphql'
554
- declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
555
- declare 'bundle exec appraisal contrib rake spec:http'
556
- declare 'bundle exec appraisal contrib rake spec:httprb'
557
- declare 'bundle exec appraisal contrib rake spec:mongodb'
558
- declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
559
- declare 'bundle exec appraisal contrib rake spec:presto'
560
- declare 'bundle exec appraisal contrib rake spec:que'
561
- declare 'bundle exec appraisal contrib rake spec:racecar'
562
- declare 'bundle exec appraisal contrib rake spec:rack'
563
- declare 'bundle exec appraisal contrib rake spec:rake'
564
- declare 'bundle exec appraisal contrib rake spec:redis'
565
- declare 'bundle exec appraisal contrib rake spec:resque'
566
- declare 'bundle exec appraisal contrib rake spec:rest_client'
567
- declare 'bundle exec appraisal contrib rake spec:sequel'
568
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
569
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
570
- declare 'bundle exec appraisal contrib rake spec:sinatra'
571
- declare 'bundle exec appraisal contrib rake spec:sneakers'
572
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
573
- declare 'bundle exec appraisal contrib rake spec:suite'
574
- # Contrib specs with old gem versions
575
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
576
- # Rails minitests
577
- # We only test Rails 5+ because older versions require Bundler < 2.0
578
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
579
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
580
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
581
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
582
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
583
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
584
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
585
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
586
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
587
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
588
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
589
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
590
- # Rails specs
591
- declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
592
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
593
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
594
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
595
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
596
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
597
- elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
598
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
599
- # Main library
600
- declare 'bundle exec rake test:main'
601
- declare 'bundle exec rake spec:main'
602
- declare 'bundle exec rake spec:contrib'
603
- declare 'bundle exec rake spec:opentracer'
604
- declare 'bundle exec rake spec:opentelemetry'
605
-
606
- if RUBY_PLATFORM != 'java'
607
- # Contrib minitests
608
- # Contrib specs
609
- declare 'bundle exec appraisal contrib rake spec:action_pack'
610
- declare 'bundle exec appraisal contrib rake spec:action_view'
611
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
612
- declare 'bundle exec appraisal contrib rake spec:active_record'
613
- declare 'bundle exec appraisal contrib rake spec:active_support'
614
- declare 'bundle exec appraisal contrib rake spec:aws'
615
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
616
- declare 'bundle exec appraisal contrib rake spec:dalli'
617
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
618
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
619
- declare 'bundle exec appraisal contrib rake spec:ethon'
620
- declare 'bundle exec appraisal contrib rake spec:excon'
621
- declare 'bundle exec appraisal contrib rake spec:faraday'
622
- declare 'bundle exec appraisal contrib rake spec:grape'
623
- declare 'bundle exec appraisal contrib rake spec:graphql'
624
- declare 'bundle exec appraisal contrib rake spec:grpc'
625
- declare 'bundle exec appraisal contrib rake spec:http'
626
- declare 'bundle exec appraisal contrib rake spec:httprb'
627
- declare 'bundle exec appraisal contrib rake spec:mongodb'
628
- declare 'bundle exec appraisal contrib rake spec:mysql2'
629
- declare 'bundle exec appraisal contrib rake spec:presto'
630
- declare 'bundle exec appraisal contrib rake spec:que'
631
- declare 'bundle exec appraisal contrib rake spec:racecar'
632
- declare 'bundle exec appraisal contrib rake spec:rack'
633
- declare 'bundle exec appraisal contrib rake spec:rake'
634
- declare 'bundle exec appraisal contrib rake spec:redis'
635
- declare 'bundle exec appraisal contrib rake spec:resque'
636
- declare 'bundle exec appraisal contrib rake spec:rest_client'
637
- declare 'bundle exec appraisal contrib rake spec:sequel'
638
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
639
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
640
- declare 'bundle exec appraisal contrib rake spec:sinatra'
641
- declare 'bundle exec appraisal contrib rake spec:sneakers'
642
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
643
- declare 'bundle exec appraisal contrib rake spec:suite'
644
- # Contrib specs with old gem versions
645
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
646
- # Rails minitests
647
- # We only test Rails 5+ because older versions require Bundler < 2.0
648
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
649
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
650
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
651
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
652
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
653
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
654
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
655
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
656
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
657
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
658
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
659
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
660
- # Rails specs
661
- declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
662
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
663
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
664
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
665
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
666
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
667
- end
668
- elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
669
- # Main library
670
- declare 'bundle exec rake test:main'
671
- declare 'bundle exec rake spec:main'
672
- declare 'bundle exec rake spec:contrib'
673
- declare 'bundle exec rake spec:opentracer'
674
- declare 'bundle exec rake spec:opentelemetry'
675
-
676
- if RUBY_PLATFORM != 'java'
677
- # Contrib minitests
678
- # Contrib specs
679
- declare 'bundle exec appraisal contrib rake spec:action_pack'
680
- declare 'bundle exec appraisal contrib rake spec:action_view'
681
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
682
- declare 'bundle exec appraisal contrib rake spec:active_record'
683
- declare 'bundle exec appraisal contrib rake spec:active_support'
684
- declare 'bundle exec appraisal contrib rake spec:aws'
685
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
686
- declare 'bundle exec appraisal contrib rake spec:dalli'
687
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
688
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
689
- declare 'bundle exec appraisal contrib rake spec:ethon'
690
- declare 'bundle exec appraisal contrib rake spec:excon'
691
- declare 'bundle exec appraisal contrib rake spec:faraday'
692
- declare 'bundle exec appraisal contrib rake spec:grape'
693
- declare 'bundle exec appraisal contrib rake spec:graphql'
694
- declare 'bundle exec appraisal contrib rake spec:grpc'
695
- declare 'bundle exec appraisal contrib rake spec:http'
696
- declare 'bundle exec appraisal contrib rake spec:httprb'
697
- declare 'bundle exec appraisal contrib rake spec:mongodb'
698
- declare 'bundle exec appraisal contrib rake spec:mysql2'
699
- declare 'bundle exec appraisal contrib rake spec:presto'
700
- declare 'bundle exec appraisal contrib rake spec:que'
701
- declare 'bundle exec appraisal contrib rake spec:racecar'
702
- declare 'bundle exec appraisal contrib rake spec:rack'
703
- declare 'bundle exec appraisal contrib rake spec:rake'
704
- declare 'bundle exec appraisal contrib rake spec:redis'
705
- declare 'bundle exec appraisal contrib rake spec:resque'
706
- declare 'bundle exec appraisal contrib rake spec:rest_client'
707
- declare 'bundle exec appraisal contrib rake spec:sequel'
708
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
709
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
710
- declare 'bundle exec appraisal contrib rake spec:sinatra'
711
- declare 'bundle exec appraisal contrib rake spec:sneakers'
712
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
713
- declare 'bundle exec appraisal contrib rake spec:suite'
714
- # Contrib specs with old gem versions
715
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
716
- # Rails minitests
717
- # We only test Rails 5+ because older versions require Bundler < 2.0
718
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
719
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
720
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
721
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
722
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
723
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
724
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
725
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
726
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
727
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
728
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
729
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
730
- # Rails specs
731
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
732
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
733
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
734
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
735
- end
736
- end
737
- end
738
-
739
- namespace :coverage do
740
- # Generates one global report for all tracer tests
741
- task :report do
742
- require 'simplecov'
743
-
744
- resultset_files = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/.resultset.json"] +
745
- Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/**/.resultset.json"]
746
-
747
- SimpleCov.collate resultset_files do
748
- coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
749
- formatter SimpleCov::Formatter::HTMLFormatter
750
- end
751
- end
752
-
753
- # Generates one report for each Ruby version
754
- task :report_per_ruby_version do
755
- require 'simplecov'
756
-
757
- versions = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/*"].map { |f| File.basename(f) }
758
- versions.map do |version|
759
- puts "Generating report for: #{version}"
760
- SimpleCov.collate Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/#{version}/**/.resultset.json"] do
761
- coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report/versions/#{version}"
762
- formatter SimpleCov::Formatter::HTMLFormatter
763
- end
764
- end
765
- end
766
- end
767
-
768
- task default: :test