ddtrace 0.42.0 → 0.54.2

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 (602) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.gitignore +7 -1
  4. data/CHANGELOG.md +1645 -370
  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 +21 -39
  10. data/docs/DevelopmentGuide.md +46 -8
  11. data/docs/GettingStarted.md +439 -92
  12. data/docs/ProfilingDevelopment.md +107 -0
  13. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +86 -0
  14. data/ext/ddtrace_profiling_native_extension/clock_id.h +4 -0
  15. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +52 -0
  16. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +14 -0
  17. data/ext/ddtrace_profiling_native_extension/extconf.rb +197 -0
  18. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +35 -0
  19. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +3 -0
  20. data/ext/ddtrace_profiling_native_extension/profiling.c +22 -0
  21. data/lib/datadog/ci/configuration/components.rb +31 -0
  22. data/lib/datadog/ci/configuration/settings.rb +37 -0
  23. data/lib/datadog/ci/context_flush.rb +29 -0
  24. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +31 -0
  25. data/lib/datadog/ci/contrib/cucumber/ext.rb +20 -0
  26. data/lib/datadog/ci/contrib/cucumber/formatter.rb +99 -0
  27. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +27 -0
  28. data/lib/datadog/ci/contrib/cucumber/integration.rb +48 -0
  29. data/lib/datadog/ci/contrib/cucumber/patcher.rb +26 -0
  30. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +31 -0
  31. data/lib/datadog/ci/contrib/rspec/example.rb +75 -0
  32. data/lib/datadog/ci/contrib/rspec/ext.rb +19 -0
  33. data/lib/datadog/ci/contrib/rspec/integration.rb +49 -0
  34. data/lib/datadog/ci/contrib/rspec/patcher.rb +26 -0
  35. data/lib/datadog/ci/ext/app_types.rb +10 -0
  36. data/lib/datadog/ci/ext/environment.rb +485 -0
  37. data/lib/datadog/ci/ext/settings.rb +11 -0
  38. data/lib/datadog/ci/ext/test.rb +36 -0
  39. data/lib/datadog/ci/extensions.rb +18 -0
  40. data/lib/datadog/ci/test.rb +81 -0
  41. data/lib/datadog/ci.rb +17 -0
  42. data/lib/datadog/contrib.rb +71 -0
  43. data/lib/datadog/core/environment/cgroup.rb +52 -0
  44. data/lib/datadog/core/environment/class_count.rb +20 -0
  45. data/lib/datadog/core/environment/container.rb +91 -0
  46. data/lib/datadog/core/environment/ext.rb +27 -0
  47. data/lib/datadog/core/environment/gc.rb +19 -0
  48. data/lib/datadog/core/environment/identity.rb +51 -0
  49. data/lib/datadog/core/environment/socket.rb +17 -0
  50. data/lib/datadog/core/environment/thread_count.rb +19 -0
  51. data/lib/datadog/core/environment/variable_helpers.rb +42 -0
  52. data/lib/datadog/core/environment/vm_cache.rb +46 -0
  53. data/lib/ddtrace/analytics.rb +3 -0
  54. data/lib/ddtrace/auto_instrument.rb +5 -0
  55. data/lib/ddtrace/auto_instrument_base.rb +7 -0
  56. data/lib/ddtrace/buffer.rb +38 -24
  57. data/lib/ddtrace/chunker.rb +1 -0
  58. data/lib/ddtrace/configuration/agent_settings_resolver.rb +309 -0
  59. data/lib/ddtrace/configuration/base.rb +9 -11
  60. data/lib/ddtrace/configuration/components.rb +167 -26
  61. data/lib/ddtrace/configuration/dependency_resolver.rb +1 -0
  62. data/lib/ddtrace/configuration/option.rb +1 -0
  63. data/lib/ddtrace/configuration/option_definition.rb +2 -3
  64. data/lib/ddtrace/configuration/option_definition_set.rb +1 -0
  65. data/lib/ddtrace/configuration/option_set.rb +1 -0
  66. data/lib/ddtrace/configuration/options.rb +7 -9
  67. data/lib/ddtrace/configuration/pin_setup.rb +1 -0
  68. data/lib/ddtrace/configuration/settings.rb +142 -12
  69. data/lib/ddtrace/configuration.rb +132 -24
  70. data/lib/ddtrace/context.rb +51 -22
  71. data/lib/ddtrace/context_flush.rb +15 -2
  72. data/lib/ddtrace/context_provider.rb +13 -2
  73. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +1 -0
  74. data/lib/ddtrace/contrib/action_cable/event.rb +6 -4
  75. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +1 -0
  76. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +1 -0
  77. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +1 -0
  78. data/lib/ddtrace/contrib/action_cable/events.rb +1 -0
  79. data/lib/ddtrace/contrib/action_cable/ext.rb +1 -0
  80. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +47 -0
  81. data/lib/ddtrace/contrib/action_cable/integration.rb +8 -0
  82. data/lib/ddtrace/contrib/action_cable/patcher.rb +2 -0
  83. data/lib/ddtrace/contrib/action_mailer/configuration/settings.rb +32 -0
  84. data/lib/ddtrace/contrib/action_mailer/event.rb +50 -0
  85. data/lib/ddtrace/contrib/action_mailer/events/deliver.rb +54 -0
  86. data/lib/ddtrace/contrib/action_mailer/events/process.rb +41 -0
  87. data/lib/ddtrace/contrib/action_mailer/events.rb +31 -0
  88. data/lib/ddtrace/contrib/action_mailer/ext.rb +32 -0
  89. data/lib/ddtrace/contrib/action_mailer/integration.rb +45 -0
  90. data/lib/ddtrace/contrib/action_mailer/patcher.rb +27 -0
  91. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +22 -13
  92. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +2 -1
  93. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +1 -0
  94. data/lib/ddtrace/contrib/action_pack/ext.rb +1 -0
  95. data/lib/ddtrace/contrib/action_pack/integration.rb +8 -0
  96. data/lib/ddtrace/contrib/action_pack/patcher.rb +1 -0
  97. data/lib/ddtrace/contrib/action_pack/utils.rb +2 -1
  98. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +1 -0
  99. data/lib/ddtrace/contrib/action_view/event.rb +4 -7
  100. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +2 -0
  101. data/lib/ddtrace/contrib/action_view/events/render_template.rb +2 -0
  102. data/lib/ddtrace/contrib/action_view/events.rb +1 -0
  103. data/lib/ddtrace/contrib/action_view/ext.rb +1 -0
  104. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -0
  105. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +1 -0
  106. data/lib/ddtrace/contrib/action_view/integration.rb +8 -0
  107. data/lib/ddtrace/contrib/action_view/patcher.rb +5 -4
  108. data/lib/ddtrace/contrib/action_view/utils.rb +2 -1
  109. data/lib/ddtrace/contrib/active_job/configuration/settings.rb +33 -0
  110. data/lib/ddtrace/contrib/active_job/event.rb +54 -0
  111. data/lib/ddtrace/contrib/active_job/events/discard.rb +46 -0
  112. data/lib/ddtrace/contrib/active_job/events/enqueue.rb +45 -0
  113. data/lib/ddtrace/contrib/active_job/events/enqueue_at.rb +45 -0
  114. data/lib/ddtrace/contrib/active_job/events/enqueue_retry.rb +47 -0
  115. data/lib/ddtrace/contrib/active_job/events/perform.rb +45 -0
  116. data/lib/ddtrace/contrib/active_job/events/retry_stopped.rb +46 -0
  117. data/lib/ddtrace/contrib/active_job/events.rb +39 -0
  118. data/lib/ddtrace/contrib/active_job/ext.rb +32 -0
  119. data/lib/ddtrace/contrib/active_job/integration.rb +46 -0
  120. data/lib/ddtrace/contrib/active_job/log_injection.rb +21 -0
  121. data/lib/ddtrace/contrib/active_job/patcher.rb +33 -0
  122. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +1 -0
  123. data/lib/ddtrace/contrib/active_model_serializers/event.rb +3 -2
  124. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +1 -0
  125. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +1 -0
  126. data/lib/ddtrace/contrib/active_model_serializers/events.rb +1 -0
  127. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +1 -0
  128. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +1 -0
  129. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +1 -0
  130. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +31 -0
  131. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +108 -18
  132. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +1 -0
  133. data/lib/ddtrace/contrib/active_record/event.rb +3 -2
  134. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -0
  135. data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -0
  136. data/lib/ddtrace/contrib/active_record/events.rb +1 -0
  137. data/lib/ddtrace/contrib/active_record/ext.rb +1 -0
  138. data/lib/ddtrace/contrib/active_record/integration.rb +8 -0
  139. data/lib/ddtrace/contrib/active_record/patcher.rb +1 -0
  140. data/lib/ddtrace/contrib/active_record/utils.rb +69 -21
  141. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +105 -3
  142. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +26 -4
  143. data/lib/ddtrace/contrib/active_support/cache/redis.rb +2 -5
  144. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +1 -0
  145. data/lib/ddtrace/contrib/active_support/ext.rb +4 -0
  146. data/lib/ddtrace/contrib/active_support/integration.rb +8 -1
  147. data/lib/ddtrace/contrib/active_support/notifications/event.rb +15 -3
  148. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +3 -1
  149. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +10 -5
  150. data/lib/ddtrace/contrib/active_support/patcher.rb +1 -0
  151. data/lib/ddtrace/contrib/analytics.rb +1 -0
  152. data/lib/ddtrace/contrib/auto_instrument.rb +48 -0
  153. data/lib/ddtrace/contrib/aws/configuration/settings.rb +1 -0
  154. data/lib/ddtrace/contrib/aws/ext.rb +1 -0
  155. data/lib/ddtrace/contrib/aws/instrumentation.rb +32 -1
  156. data/lib/ddtrace/contrib/aws/integration.rb +1 -0
  157. data/lib/ddtrace/contrib/aws/parsed_context.rb +1 -0
  158. data/lib/ddtrace/contrib/aws/patcher.rb +6 -1
  159. data/lib/ddtrace/contrib/aws/services.rb +4 -0
  160. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +1 -0
  161. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -0
  162. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
  163. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +1 -0
  164. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +1 -0
  165. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +3 -1
  166. data/lib/ddtrace/contrib/configurable.rb +65 -38
  167. data/lib/ddtrace/contrib/configuration/resolver.rb +71 -5
  168. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +21 -20
  169. data/lib/ddtrace/contrib/configuration/settings.rb +8 -6
  170. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +1 -0
  171. data/lib/ddtrace/contrib/dalli/ext.rb +1 -0
  172. data/lib/ddtrace/contrib/dalli/instrumentation.rb +2 -1
  173. data/lib/ddtrace/contrib/dalli/integration.rb +1 -0
  174. data/lib/ddtrace/contrib/dalli/patcher.rb +2 -39
  175. data/lib/ddtrace/contrib/dalli/quantize.rb +1 -0
  176. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +2 -0
  177. data/lib/ddtrace/contrib/delayed_job/ext.rb +1 -0
  178. data/lib/ddtrace/contrib/delayed_job/integration.rb +1 -0
  179. data/lib/ddtrace/contrib/delayed_job/patcher.rb +1 -0
  180. data/lib/ddtrace/contrib/delayed_job/plugin.rb +5 -3
  181. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +1 -0
  182. data/lib/ddtrace/contrib/elasticsearch/ext.rb +1 -0
  183. data/lib/ddtrace/contrib/elasticsearch/integration.rb +1 -0
  184. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +2 -0
  185. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +6 -2
  186. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +1 -0
  187. data/lib/ddtrace/contrib/ethon/easy_patch.rb +13 -11
  188. data/lib/ddtrace/contrib/ethon/ext.rb +2 -0
  189. data/lib/ddtrace/contrib/ethon/integration.rb +1 -0
  190. data/lib/ddtrace/contrib/ethon/multi_patch.rb +2 -1
  191. data/lib/ddtrace/contrib/ethon/patcher.rb +4 -2
  192. data/lib/ddtrace/contrib/excon/configuration/settings.rb +1 -0
  193. data/lib/ddtrace/contrib/excon/ext.rb +1 -0
  194. data/lib/ddtrace/contrib/excon/integration.rb +1 -0
  195. data/lib/ddtrace/contrib/excon/middleware.rb +10 -7
  196. data/lib/ddtrace/contrib/excon/patcher.rb +1 -0
  197. data/lib/ddtrace/contrib/extensions.rb +90 -14
  198. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +1 -0
  199. data/lib/ddtrace/contrib/faraday/connection.rb +1 -0
  200. data/lib/ddtrace/contrib/faraday/ext.rb +1 -0
  201. data/lib/ddtrace/contrib/faraday/integration.rb +1 -0
  202. data/lib/ddtrace/contrib/faraday/middleware.rb +2 -3
  203. data/lib/ddtrace/contrib/faraday/patcher.rb +3 -38
  204. data/lib/ddtrace/contrib/faraday/rack_builder.rb +1 -0
  205. data/lib/ddtrace/contrib/grape/configuration/settings.rb +8 -0
  206. data/lib/ddtrace/contrib/grape/endpoint.rb +68 -32
  207. data/lib/ddtrace/contrib/grape/ext.rb +2 -0
  208. data/lib/ddtrace/contrib/grape/instrumentation.rb +4 -3
  209. data/lib/ddtrace/contrib/grape/integration.rb +1 -0
  210. data/lib/ddtrace/contrib/grape/patcher.rb +2 -43
  211. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +1 -0
  212. data/lib/ddtrace/contrib/graphql/ext.rb +1 -0
  213. data/lib/ddtrace/contrib/graphql/integration.rb +1 -0
  214. data/lib/ddtrace/contrib/graphql/patcher.rb +1 -0
  215. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +2 -0
  216. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -0
  217. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +4 -4
  218. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +13 -8
  219. data/lib/ddtrace/contrib/grpc/ext.rb +1 -0
  220. data/lib/ddtrace/contrib/grpc/integration.rb +1 -0
  221. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +1 -0
  222. data/lib/ddtrace/contrib/grpc/patcher.rb +3 -37
  223. data/lib/ddtrace/contrib/http/circuit_breaker.rb +2 -3
  224. data/lib/ddtrace/contrib/http/configuration/settings.rb +1 -0
  225. data/lib/ddtrace/contrib/http/ext.rb +1 -0
  226. data/lib/ddtrace/contrib/http/instrumentation.rb +9 -8
  227. data/lib/ddtrace/contrib/http/integration.rb +1 -0
  228. data/lib/ddtrace/contrib/http/patcher.rb +2 -1
  229. data/lib/ddtrace/contrib/http_annotation_helper.rb +1 -0
  230. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +33 -0
  231. data/lib/ddtrace/contrib/httpclient/ext.rb +18 -0
  232. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +148 -0
  233. data/lib/ddtrace/contrib/httpclient/integration.rb +44 -0
  234. data/lib/ddtrace/contrib/httpclient/patcher.rb +39 -0
  235. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +1 -0
  236. data/lib/ddtrace/contrib/httprb/ext.rb +1 -0
  237. data/lib/ddtrace/contrib/httprb/instrumentation.rb +17 -22
  238. data/lib/ddtrace/contrib/httprb/integration.rb +1 -0
  239. data/lib/ddtrace/contrib/httprb/patcher.rb +8 -4
  240. data/lib/ddtrace/contrib/integration.rb +4 -3
  241. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +1 -0
  242. data/lib/ddtrace/contrib/kafka/consumer_event.rb +1 -0
  243. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +1 -0
  244. data/lib/ddtrace/contrib/kafka/event.rb +4 -3
  245. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +1 -0
  246. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +1 -0
  247. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +1 -0
  248. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +1 -0
  249. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +1 -0
  250. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +1 -0
  251. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +1 -0
  252. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +1 -0
  253. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +1 -0
  254. data/lib/ddtrace/contrib/kafka/events.rb +1 -0
  255. data/lib/ddtrace/contrib/kafka/ext.rb +1 -0
  256. data/lib/ddtrace/contrib/kafka/integration.rb +1 -0
  257. data/lib/ddtrace/contrib/kafka/patcher.rb +1 -0
  258. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +19 -0
  259. data/lib/ddtrace/contrib/lograge/ext.rb +11 -0
  260. data/lib/ddtrace/contrib/lograge/instrumentation.rb +39 -0
  261. data/lib/ddtrace/contrib/lograge/integration.rb +46 -0
  262. data/lib/ddtrace/contrib/lograge/patcher.rb +26 -0
  263. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +1 -0
  264. data/lib/ddtrace/contrib/mongodb/ext.rb +1 -0
  265. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +6 -3
  266. data/lib/ddtrace/contrib/mongodb/integration.rb +6 -0
  267. data/lib/ddtrace/contrib/mongodb/parsers.rb +1 -0
  268. data/lib/ddtrace/contrib/mongodb/patcher.rb +3 -2
  269. data/lib/ddtrace/contrib/mongodb/subscribers.rb +3 -3
  270. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +1 -0
  271. data/lib/ddtrace/contrib/mysql2/ext.rb +1 -0
  272. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +2 -1
  273. data/lib/ddtrace/contrib/mysql2/integration.rb +1 -0
  274. data/lib/ddtrace/contrib/mysql2/patcher.rb +2 -1
  275. data/lib/ddtrace/contrib/patchable.rb +21 -9
  276. data/lib/ddtrace/contrib/patcher.rb +12 -8
  277. data/lib/ddtrace/contrib/presto/configuration/settings.rb +1 -0
  278. data/lib/ddtrace/contrib/presto/ext.rb +1 -0
  279. data/lib/ddtrace/contrib/presto/instrumentation.rb +2 -1
  280. data/lib/ddtrace/contrib/presto/integration.rb +1 -0
  281. data/lib/ddtrace/contrib/presto/patcher.rb +7 -3
  282. data/lib/ddtrace/contrib/qless/configuration/settings.rb +36 -0
  283. data/lib/ddtrace/contrib/qless/ext.rb +21 -0
  284. data/lib/ddtrace/contrib/qless/integration.rb +39 -0
  285. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  286. data/lib/ddtrace/contrib/qless/qless_job.rb +74 -0
  287. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +34 -0
  288. data/lib/ddtrace/contrib/que/configuration/settings.rb +2 -0
  289. data/lib/ddtrace/contrib/que/ext.rb +20 -19
  290. data/lib/ddtrace/contrib/que/integration.rb +1 -0
  291. data/lib/ddtrace/contrib/que/patcher.rb +1 -0
  292. data/lib/ddtrace/contrib/que/tracer.rb +4 -2
  293. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +1 -0
  294. data/lib/ddtrace/contrib/racecar/event.rb +4 -2
  295. data/lib/ddtrace/contrib/racecar/events/batch.rb +1 -0
  296. data/lib/ddtrace/contrib/racecar/events/consume.rb +1 -0
  297. data/lib/ddtrace/contrib/racecar/events/message.rb +1 -0
  298. data/lib/ddtrace/contrib/racecar/events.rb +1 -0
  299. data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
  300. data/lib/ddtrace/contrib/racecar/integration.rb +1 -0
  301. data/lib/ddtrace/contrib/racecar/patcher.rb +1 -0
  302. data/lib/ddtrace/contrib/rack/configuration/settings.rb +4 -3
  303. data/lib/ddtrace/contrib/rack/ext.rb +1 -0
  304. data/lib/ddtrace/contrib/rack/integration.rb +8 -0
  305. data/lib/ddtrace/contrib/rack/middlewares.rb +8 -12
  306. data/lib/ddtrace/contrib/rack/patcher.rb +2 -3
  307. data/lib/ddtrace/contrib/rack/request_queue.rb +7 -1
  308. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  309. data/lib/ddtrace/contrib/rails/configuration/settings.rb +8 -0
  310. data/lib/ddtrace/contrib/rails/ext.rb +1 -0
  311. data/lib/ddtrace/contrib/rails/framework.rb +50 -2
  312. data/lib/ddtrace/contrib/rails/integration.rb +1 -0
  313. data/lib/ddtrace/contrib/rails/log_injection.rb +1 -40
  314. data/lib/ddtrace/contrib/rails/middlewares.rb +1 -0
  315. data/lib/ddtrace/contrib/rails/patcher.rb +40 -21
  316. data/lib/ddtrace/contrib/rails/railtie.rb +1 -0
  317. data/lib/ddtrace/contrib/rails/utils.rb +5 -0
  318. data/lib/ddtrace/contrib/rake/configuration/settings.rb +1 -0
  319. data/lib/ddtrace/contrib/rake/ext.rb +1 -0
  320. data/lib/ddtrace/contrib/rake/instrumentation.rb +6 -3
  321. data/lib/ddtrace/contrib/rake/integration.rb +2 -1
  322. data/lib/ddtrace/contrib/rake/patcher.rb +2 -1
  323. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +15 -5
  324. data/lib/ddtrace/contrib/redis/configuration/settings.rb +6 -0
  325. data/lib/ddtrace/contrib/redis/ext.rb +2 -0
  326. data/lib/ddtrace/contrib/redis/instrumentation.rb +90 -0
  327. data/lib/ddtrace/contrib/redis/integration.rb +1 -0
  328. data/lib/ddtrace/contrib/redis/patcher.rb +3 -67
  329. data/lib/ddtrace/contrib/redis/quantize.rb +29 -0
  330. data/lib/ddtrace/contrib/redis/tags.rb +6 -1
  331. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  332. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +7 -7
  333. data/lib/ddtrace/contrib/registerable.rb +4 -4
  334. data/lib/ddtrace/contrib/registry.rb +3 -2
  335. data/lib/ddtrace/contrib/resque/configuration/settings.rb +19 -1
  336. data/lib/ddtrace/contrib/resque/ext.rb +1 -0
  337. data/lib/ddtrace/contrib/resque/integration.rb +2 -5
  338. data/lib/ddtrace/contrib/resque/patcher.rb +5 -4
  339. data/lib/ddtrace/contrib/resque/resque_job.rb +26 -2
  340. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +1 -0
  341. data/lib/ddtrace/contrib/rest_client/ext.rb +1 -0
  342. data/lib/ddtrace/contrib/rest_client/integration.rb +1 -0
  343. data/lib/ddtrace/contrib/rest_client/patcher.rb +3 -1
  344. data/lib/ddtrace/contrib/rest_client/request_patch.rb +3 -4
  345. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +19 -0
  346. data/lib/ddtrace/contrib/semantic_logger/ext.rb +11 -0
  347. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +43 -0
  348. data/lib/ddtrace/contrib/semantic_logger/integration.rb +48 -0
  349. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +26 -0
  350. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +1 -0
  351. data/lib/ddtrace/contrib/sequel/database.rb +2 -1
  352. data/lib/ddtrace/contrib/sequel/dataset.rb +2 -1
  353. data/lib/ddtrace/contrib/sequel/ext.rb +1 -0
  354. data/lib/ddtrace/contrib/sequel/integration.rb +1 -0
  355. data/lib/ddtrace/contrib/sequel/patcher.rb +3 -2
  356. data/lib/ddtrace/contrib/sequel/utils.rb +6 -6
  357. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +3 -0
  358. data/lib/ddtrace/contrib/shoryuken/ext.rb +1 -0
  359. data/lib/ddtrace/contrib/shoryuken/integration.rb +1 -0
  360. data/lib/ddtrace/contrib/shoryuken/patcher.rb +1 -0
  361. data/lib/ddtrace/contrib/shoryuken/tracer.rb +9 -2
  362. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +1 -0
  363. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +2 -0
  364. data/lib/ddtrace/contrib/sidekiq/ext.rb +4 -0
  365. data/lib/ddtrace/contrib/sidekiq/integration.rb +11 -0
  366. data/lib/ddtrace/contrib/sidekiq/patcher.rb +27 -0
  367. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/heartbeat.rb +30 -0
  368. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/job_fetch.rb +30 -0
  369. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +29 -0
  370. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +6 -7
  371. data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -1
  372. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +1 -0
  373. data/lib/ddtrace/contrib/sinatra/env.rb +4 -4
  374. data/lib/ddtrace/contrib/sinatra/ext.rb +1 -0
  375. data/lib/ddtrace/contrib/sinatra/headers.rb +2 -3
  376. data/lib/ddtrace/contrib/sinatra/integration.rb +1 -0
  377. data/lib/ddtrace/contrib/sinatra/patcher.rb +3 -1
  378. data/lib/ddtrace/contrib/sinatra/tracer.rb +28 -7
  379. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +13 -6
  380. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +2 -0
  381. data/lib/ddtrace/contrib/sneakers/ext.rb +12 -11
  382. data/lib/ddtrace/contrib/sneakers/integration.rb +1 -0
  383. data/lib/ddtrace/contrib/sneakers/patcher.rb +1 -0
  384. data/lib/ddtrace/contrib/sneakers/tracer.rb +17 -21
  385. data/lib/ddtrace/contrib/status_code_matcher.rb +70 -0
  386. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +1 -0
  387. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +5 -6
  388. data/lib/ddtrace/contrib/sucker_punch/ext.rb +1 -0
  389. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +5 -0
  390. data/lib/ddtrace/contrib/sucker_punch/integration.rb +1 -0
  391. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +2 -0
  392. data/lib/ddtrace/correlation.rb +3 -1
  393. data/lib/ddtrace/diagnostics/environment_logger.rb +9 -7
  394. data/lib/ddtrace/diagnostics/health.rb +1 -0
  395. data/lib/ddtrace/distributed_tracing/headers/b3.rb +1 -0
  396. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +1 -0
  397. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -0
  398. data/lib/ddtrace/distributed_tracing/headers/headers.rb +2 -0
  399. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +2 -3
  400. data/lib/ddtrace/encoding.rb +3 -0
  401. data/lib/ddtrace/error.rb +78 -8
  402. data/lib/ddtrace/event.rb +1 -0
  403. data/lib/ddtrace/ext/analytics.rb +1 -0
  404. data/lib/ddtrace/ext/app_types.rb +1 -0
  405. data/lib/ddtrace/ext/correlation.rb +1 -0
  406. data/lib/ddtrace/ext/diagnostics.rb +1 -0
  407. data/lib/ddtrace/ext/distributed.rb +9 -2
  408. data/lib/ddtrace/ext/environment.rb +8 -0
  409. data/lib/ddtrace/ext/errors.rb +1 -0
  410. data/lib/ddtrace/ext/forced_tracing.rb +1 -0
  411. data/lib/ddtrace/ext/git.rb +32 -0
  412. data/lib/ddtrace/ext/http.rb +2 -1
  413. data/lib/ddtrace/ext/integration.rb +1 -0
  414. data/lib/ddtrace/ext/manual_tracing.rb +1 -0
  415. data/lib/ddtrace/ext/metrics.rb +1 -0
  416. data/lib/ddtrace/ext/net.rb +1 -0
  417. data/lib/ddtrace/ext/priority.rb +7 -4
  418. data/lib/ddtrace/ext/profiling.rb +53 -0
  419. data/lib/ddtrace/ext/runtime.rb +5 -7
  420. data/lib/ddtrace/ext/sampling.rb +1 -0
  421. data/lib/ddtrace/ext/sql.rb +1 -0
  422. data/lib/ddtrace/ext/test.rb +9 -0
  423. data/lib/ddtrace/ext/transport.rb +14 -0
  424. data/lib/ddtrace/forced_tracing.rb +3 -0
  425. data/lib/ddtrace/logger.rb +2 -1
  426. data/lib/ddtrace/metrics.rb +84 -24
  427. data/lib/ddtrace/opentelemetry/extensions.rb +2 -1
  428. data/lib/ddtrace/opentelemetry/span.rb +1 -0
  429. data/lib/ddtrace/opentracer/binary_propagator.rb +1 -0
  430. data/lib/ddtrace/opentracer/carrier.rb +1 -0
  431. data/lib/ddtrace/opentracer/distributed_headers.rb +4 -0
  432. data/lib/ddtrace/opentracer/global_tracer.rb +1 -0
  433. data/lib/ddtrace/opentracer/propagator.rb +1 -0
  434. data/lib/ddtrace/opentracer/rack_propagator.rb +1 -0
  435. data/lib/ddtrace/opentracer/scope.rb +1 -0
  436. data/lib/ddtrace/opentracer/scope_manager.rb +1 -0
  437. data/lib/ddtrace/opentracer/span.rb +3 -6
  438. data/lib/ddtrace/opentracer/span_context.rb +1 -0
  439. data/lib/ddtrace/opentracer/span_context_factory.rb +1 -0
  440. data/lib/ddtrace/opentracer/text_map_propagator.rb +1 -0
  441. data/lib/ddtrace/opentracer/thread_local_scope.rb +2 -0
  442. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +1 -0
  443. data/lib/ddtrace/opentracer/tracer.rb +1 -0
  444. data/lib/ddtrace/opentracer.rb +21 -39
  445. data/lib/ddtrace/patcher.rb +28 -6
  446. data/lib/ddtrace/pin.rb +9 -61
  447. data/lib/ddtrace/pipeline/span_filter.rb +2 -1
  448. data/lib/ddtrace/pipeline/span_processor.rb +1 -0
  449. data/lib/ddtrace/pipeline.rb +1 -0
  450. data/lib/ddtrace/profiling/backtrace_location.rb +33 -0
  451. data/lib/ddtrace/profiling/buffer.rb +42 -0
  452. data/lib/ddtrace/profiling/collectors/stack.rb +297 -0
  453. data/lib/ddtrace/profiling/encoding/profile.rb +46 -0
  454. data/lib/ddtrace/profiling/event.rb +14 -0
  455. data/lib/ddtrace/profiling/events/stack.rb +81 -0
  456. data/lib/ddtrace/profiling/exporter.rb +24 -0
  457. data/lib/ddtrace/profiling/ext/forking.rb +98 -0
  458. data/lib/ddtrace/profiling/flush.rb +44 -0
  459. data/lib/ddtrace/profiling/native_extension.rb +40 -0
  460. data/lib/ddtrace/profiling/pprof/builder.rb +126 -0
  461. data/lib/ddtrace/profiling/pprof/converter.rb +103 -0
  462. data/lib/ddtrace/profiling/pprof/message_set.rb +15 -0
  463. data/lib/ddtrace/profiling/pprof/payload.rb +19 -0
  464. data/lib/ddtrace/profiling/pprof/pprof.proto +212 -0
  465. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +82 -0
  466. data/lib/ddtrace/profiling/pprof/stack_sample.rb +140 -0
  467. data/lib/ddtrace/profiling/pprof/string_table.rb +11 -0
  468. data/lib/ddtrace/profiling/pprof/template.rb +119 -0
  469. data/lib/ddtrace/profiling/preload.rb +4 -0
  470. data/lib/ddtrace/profiling/profiler.rb +31 -0
  471. data/lib/ddtrace/profiling/recorder.rb +96 -0
  472. data/lib/ddtrace/profiling/scheduler.rb +150 -0
  473. data/lib/ddtrace/profiling/tasks/setup.rb +90 -0
  474. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +42 -0
  475. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +46 -0
  476. data/lib/ddtrace/profiling/transport/client.rb +15 -0
  477. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +94 -0
  478. data/lib/ddtrace/profiling/transport/http/api/instance.rb +37 -0
  479. data/lib/ddtrace/profiling/transport/http/api/spec.rb +41 -0
  480. data/lib/ddtrace/profiling/transport/http/api.rb +44 -0
  481. data/lib/ddtrace/profiling/transport/http/builder.rb +29 -0
  482. data/lib/ddtrace/profiling/transport/http/client.rb +34 -0
  483. data/lib/ddtrace/profiling/transport/http/response.rb +22 -0
  484. data/lib/ddtrace/profiling/transport/http.rb +111 -0
  485. data/lib/ddtrace/profiling/transport/io/client.rb +28 -0
  486. data/lib/ddtrace/profiling/transport/io/response.rb +17 -0
  487. data/lib/ddtrace/profiling/transport/io.rb +31 -0
  488. data/lib/ddtrace/profiling/transport/parcel.rb +18 -0
  489. data/lib/ddtrace/profiling/transport/request.rb +16 -0
  490. data/lib/ddtrace/profiling/transport/response.rb +9 -0
  491. data/lib/ddtrace/profiling.rb +149 -0
  492. data/lib/ddtrace/propagation/grpc_propagator.rb +2 -0
  493. data/lib/ddtrace/propagation/http_propagator.rb +18 -2
  494. data/lib/ddtrace/quantization/hash.rb +1 -0
  495. data/lib/ddtrace/quantization/http.rb +4 -0
  496. data/lib/ddtrace/runtime/metrics.rb +35 -14
  497. data/lib/ddtrace/sampler.rb +20 -9
  498. data/lib/ddtrace/sampling/matcher.rb +1 -0
  499. data/lib/ddtrace/sampling/rate_limiter.rb +66 -16
  500. data/lib/ddtrace/sampling/rule.rb +2 -1
  501. data/lib/ddtrace/sampling/rule_sampler.rb +19 -11
  502. data/lib/ddtrace/sampling.rb +1 -0
  503. data/lib/ddtrace/span.rb +27 -14
  504. data/lib/ddtrace/sync_writer.rb +17 -15
  505. data/lib/ddtrace/tasks/exec.rb +47 -0
  506. data/lib/ddtrace/tasks/help.rb +15 -0
  507. data/lib/ddtrace/tracer.rb +61 -50
  508. data/lib/ddtrace/transport/http/adapters/net.rb +41 -11
  509. data/lib/ddtrace/transport/http/adapters/registry.rb +2 -0
  510. data/lib/ddtrace/transport/http/adapters/test.rb +5 -2
  511. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +26 -16
  512. data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
  513. data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
  514. data/lib/ddtrace/transport/http/api/instance.rb +1 -0
  515. data/lib/ddtrace/transport/http/api/map.rb +1 -0
  516. data/lib/ddtrace/transport/http/api/spec.rb +1 -0
  517. data/lib/ddtrace/transport/http/api.rb +1 -0
  518. data/lib/ddtrace/transport/http/builder.rb +21 -7
  519. data/lib/ddtrace/transport/http/client.rb +3 -1
  520. data/lib/ddtrace/transport/http/env.rb +9 -0
  521. data/lib/ddtrace/transport/http/response.rb +1 -0
  522. data/lib/ddtrace/transport/http/statistics.rb +3 -2
  523. data/lib/ddtrace/transport/http/traces.rb +6 -6
  524. data/lib/ddtrace/transport/http.rb +48 -41
  525. data/lib/ddtrace/transport/io/client.rb +17 -9
  526. data/lib/ddtrace/transport/io/response.rb +2 -3
  527. data/lib/ddtrace/transport/io/traces.rb +10 -1
  528. data/lib/ddtrace/transport/io.rb +2 -1
  529. data/lib/ddtrace/transport/parcel.rb +7 -0
  530. data/lib/ddtrace/transport/request.rb +1 -0
  531. data/lib/ddtrace/transport/response.rb +1 -0
  532. data/lib/ddtrace/transport/statistics.rb +1 -0
  533. data/lib/ddtrace/transport/traces.rb +21 -3
  534. data/lib/ddtrace/utils/compression.rb +28 -0
  535. data/lib/ddtrace/utils/database.rb +1 -0
  536. data/lib/ddtrace/utils/forking.rb +53 -0
  537. data/lib/ddtrace/utils/object_set.rb +40 -0
  538. data/lib/ddtrace/utils/only_once.rb +41 -0
  539. data/lib/ddtrace/utils/sequence.rb +18 -0
  540. data/lib/ddtrace/utils/string_table.rb +46 -0
  541. data/lib/ddtrace/utils/time.rb +40 -3
  542. data/lib/ddtrace/utils.rb +23 -12
  543. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  544. data/lib/ddtrace/vendor/active_record/connection_specification.rb +1 -0
  545. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  546. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +117 -0
  547. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +58 -0
  548. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +136 -0
  549. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +10 -0
  550. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +9 -0
  551. data/lib/ddtrace/vendor/multipart-post/multipart.rb +13 -0
  552. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +33 -0
  553. data/lib/ddtrace/version.rb +16 -3
  554. data/lib/ddtrace/worker.rb +1 -0
  555. data/lib/ddtrace/workers/async.rb +15 -5
  556. data/lib/ddtrace/workers/{loop.rb → interval_loop.rb} +23 -12
  557. data/lib/ddtrace/workers/polling.rb +14 -6
  558. data/lib/ddtrace/workers/queue.rb +3 -1
  559. data/lib/ddtrace/workers/runtime_metrics.rb +22 -4
  560. data/lib/ddtrace/workers/trace_writer.rb +14 -16
  561. data/lib/ddtrace/workers.rb +8 -2
  562. data/lib/ddtrace/writer.rb +33 -8
  563. data/lib/ddtrace.rb +22 -48
  564. metadata +182 -405
  565. data/.circleci/config.yml +0 -548
  566. data/.circleci/images/primary/Dockerfile-2.0.0 +0 -73
  567. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -73
  568. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -73
  569. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -75
  570. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -73
  571. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -73
  572. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -73
  573. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -73
  574. data/.circleci/images/primary/Dockerfile-jruby-9.2 +0 -77
  575. data/.dockerignore +0 -1
  576. data/.env +0 -26
  577. data/.github/CODEOWNERS +0 -1
  578. data/.gitlab-ci.yml +0 -27
  579. data/.rspec +0 -1
  580. data/.rubocop.yml +0 -85
  581. data/.simplecov +0 -38
  582. data/Appraisals +0 -1121
  583. data/Gemfile +0 -7
  584. data/Rakefile +0 -788
  585. data/benchmarks/postgres_database.yml +0 -9
  586. data/benchmarks/sidekiq_test.rb +0 -154
  587. data/docker-compose.yml +0 -370
  588. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  589. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  590. data/lib/ddtrace/augmentation/shim.rb +0 -102
  591. data/lib/ddtrace/augmentation.rb +0 -13
  592. data/lib/ddtrace/environment.rb +0 -41
  593. data/lib/ddtrace/monkey.rb +0 -58
  594. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  595. data/lib/ddtrace/runtime/class_count.rb +0 -17
  596. data/lib/ddtrace/runtime/container.rb +0 -73
  597. data/lib/ddtrace/runtime/gc.rb +0 -16
  598. data/lib/ddtrace/runtime/identity.rb +0 -41
  599. data/lib/ddtrace/runtime/object_space.rb +0 -19
  600. data/lib/ddtrace/runtime/socket.rb +0 -14
  601. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  602. data/tasks/release_gem.rake +0 -28
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