ddtrace 0.40.0 → 0.54.1

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 +1667 -350
  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 +21 -37
  10. data/docs/DevelopmentGuide.md +56 -8
  11. data/docs/GettingStarted.md +438 -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 +166 -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 +278 -57
  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 +10 -10
  67. data/lib/ddtrace/configuration/pin_setup.rb +1 -0
  68. data/lib/ddtrace/configuration/settings.rb +147 -13
  69. data/lib/ddtrace/configuration.rb +133 -22
  70. data/lib/ddtrace/context.rb +51 -22
  71. data/lib/ddtrace/context_flush.rb +15 -2
  72. data/lib/ddtrace/context_provider.rb +17 -5
  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 +5 -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 +12 -7
  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 +36 -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 +6 -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 +3 -0
  177. data/lib/ddtrace/contrib/delayed_job/ext.rb +3 -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 +40 -16
  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 +6 -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 +15 -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 +6 -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 +14 -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 +6 -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 +73 -35
  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 +6 -1
  217. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +5 -1
  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 +13 -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 +20 -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 +7 -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 +6 -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 +5 -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 +8 -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 +47 -17
  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 +10 -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 +7 -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 +5 -2
  352. data/lib/ddtrace/contrib/sequel/dataset.rb +5 -3
  353. data/lib/ddtrace/contrib/sequel/ext.rb +2 -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 +16 -5
  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 +9 -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 +57 -0
  419. data/lib/ddtrace/ext/runtime.rb +5 -6
  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 +5 -1
  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 +301 -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 +134 -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 +101 -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 +20 -6
  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 +40 -15
  497. data/lib/ddtrace/sampler.rb +22 -11
  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 +174 -36
  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 +72 -62
  508. data/lib/ddtrace/transport/http/adapters/net.rb +48 -12
  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 +17 -3
  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 +28 -5
  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 +29 -14
  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 +32 -5
  557. data/lib/ddtrace/workers/polling.rb +13 -5
  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 +180 -374
  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 -1071
  583. data/Gemfile +0 -7
  584. data/Rakefile +0 -791
  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,791 +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
- # Benchmarks
213
- declare 'bundle exec rake spec:benchmark'
214
-
215
- if RUBY_PLATFORM != 'java'
216
- # Contrib minitests
217
- declare 'bundle exec appraisal contrib-old rake test:monkey'
218
- # Contrib specs
219
- declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
220
- declare 'bundle exec appraisal contrib-old rake spec:active_record'
221
- declare 'bundle exec appraisal contrib-old rake spec:active_support'
222
- declare 'bundle exec appraisal contrib-old rake spec:aws'
223
- declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
224
- declare 'bundle exec appraisal contrib-old rake spec:dalli'
225
- declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
226
- declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
227
- declare 'bundle exec appraisal contrib-old rake spec:ethon'
228
- declare 'bundle exec appraisal contrib-old rake spec:excon'
229
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
230
- declare 'bundle exec appraisal contrib-old rake spec:http'
231
- declare 'bundle exec appraisal contrib-old rake spec:httprb'
232
- declare 'bundle exec appraisal contrib-old rake spec:mongodb'
233
- declare 'bundle exec appraisal contrib-old rake spec:mysql2'
234
- declare 'bundle exec appraisal contrib-old rake spec:rack'
235
- declare 'bundle exec appraisal contrib-old rake spec:rake'
236
- declare 'bundle exec appraisal contrib-old rake spec:redis'
237
- declare 'bundle exec appraisal contrib-old rake spec:resque'
238
- declare 'bundle exec appraisal contrib-old rake spec:rest_client'
239
- declare 'bundle exec appraisal contrib-old rake spec:sequel'
240
- declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
241
- declare 'bundle exec appraisal contrib-old rake spec:sinatra'
242
- declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
243
- declare 'bundle exec appraisal contrib-old rake spec:suite'
244
- # Rails minitests
245
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
246
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
247
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
248
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
249
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
250
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
251
- # Rails specs
252
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
253
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
254
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
255
- # Rails suite specs
256
- declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
257
- declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
258
- declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
259
- declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
260
- end
261
- elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
262
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.0')
263
- # Main library
264
- declare 'bundle exec rake test:main'
265
- declare 'bundle exec rake spec:main'
266
- declare 'bundle exec rake spec:contrib'
267
- declare 'bundle exec rake spec:opentracer'
268
- # Benchmarks
269
- declare 'bundle exec rake spec:benchmark'
270
-
271
- if RUBY_PLATFORM != 'java'
272
- # Contrib minitests
273
- declare 'bundle exec appraisal contrib-old rake test:monkey'
274
- # Contrib specs
275
- declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
276
- declare 'bundle exec appraisal contrib-old rake spec:active_record'
277
- declare 'bundle exec appraisal contrib-old rake spec:active_support'
278
- declare 'bundle exec appraisal contrib-old rake spec:aws'
279
- declare 'bundle exec appraisal contrib-old rake spec:concurrent_ruby'
280
- declare 'bundle exec appraisal contrib-old rake spec:dalli'
281
- declare 'bundle exec appraisal contrib-old rake spec:delayed_job'
282
- declare 'bundle exec appraisal contrib-old rake spec:elasticsearch'
283
- declare 'bundle exec appraisal contrib-old rake spec:ethon'
284
- declare 'bundle exec appraisal contrib-old rake spec:excon'
285
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
286
- declare 'bundle exec appraisal contrib-old rake spec:http'
287
- declare 'bundle exec appraisal contrib-old rake spec:httprb'
288
- declare 'bundle exec appraisal contrib-old rake spec:mongodb'
289
- declare 'bundle exec appraisal contrib-old rake spec:mysql2'
290
- declare 'bundle exec appraisal contrib-old rake spec:presto'
291
- declare 'bundle exec appraisal contrib-old rake spec:rack'
292
- declare 'bundle exec appraisal contrib-old rake spec:rake'
293
- declare 'bundle exec appraisal contrib-old rake spec:redis'
294
- declare 'bundle exec appraisal contrib-old rake spec:resque'
295
- declare 'bundle exec appraisal contrib-old rake spec:rest_client'
296
- declare 'bundle exec appraisal contrib-old rake spec:sequel'
297
- declare 'bundle exec appraisal contrib-old rake spec:sidekiq'
298
- declare 'bundle exec appraisal contrib-old rake spec:sinatra'
299
- declare 'bundle exec appraisal contrib-old rake spec:sucker_punch'
300
- declare 'bundle exec appraisal contrib-old rake spec:suite'
301
- # Rails minitests
302
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
303
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
304
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
305
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
306
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
307
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
308
- declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
309
- declare 'bundle exec appraisal rails4-postgres rake test:rails'
310
- declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
311
- declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
312
- # Rails specs
313
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
314
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
315
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
316
- declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
317
- declare 'bundle exec appraisal rails4-postgres rake spec:rails'
318
- # Rails suite specs
319
- declare 'bundle exec appraisal rails32-postgres rake spec:action_pack'
320
- declare 'bundle exec appraisal rails32-postgres rake spec:action_view'
321
- declare 'bundle exec appraisal rails32-mysql2 rake spec:active_record'
322
- declare 'bundle exec appraisal rails32-postgres rake spec:active_support'
323
- end
324
- elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION)\
325
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0')
326
- # Main library
327
- declare 'bundle exec rake test:main'
328
- declare 'bundle exec rake spec:main'
329
- declare 'bundle exec rake spec:contrib'
330
- declare 'bundle exec rake spec:opentracer'
331
- # Benchmarks
332
- declare 'bundle exec rake spec:benchmark'
333
-
334
- if RUBY_PLATFORM != 'java'
335
- # Contrib minitests
336
- # Contrib specs
337
- declare 'bundle exec appraisal contrib rake spec:action_pack'
338
- declare 'bundle exec appraisal contrib rake spec:action_view'
339
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
340
- declare 'bundle exec appraisal contrib rake spec:active_record'
341
- declare 'bundle exec appraisal contrib rake spec:active_support'
342
- declare 'bundle exec appraisal contrib rake spec:aws'
343
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
344
- declare 'bundle exec appraisal contrib rake spec:dalli'
345
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
346
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
347
- declare 'bundle exec appraisal contrib rake spec:ethon'
348
- declare 'bundle exec appraisal contrib rake spec:excon'
349
- declare 'bundle exec appraisal contrib rake spec:faraday'
350
- declare 'bundle exec appraisal contrib rake spec:grape'
351
- declare 'bundle exec appraisal contrib rake spec:graphql'
352
- declare 'bundle exec appraisal contrib rake spec:grpc'
353
- declare 'bundle exec appraisal contrib rake spec:http'
354
- declare 'bundle exec appraisal contrib rake spec:httprb'
355
- declare 'bundle exec appraisal contrib rake spec:mongodb'
356
- declare 'bundle exec appraisal contrib rake spec:mysql2'
357
- declare 'bundle exec appraisal contrib rake spec:presto'
358
- declare 'bundle exec appraisal contrib rake spec:que'
359
- declare 'bundle exec appraisal contrib rake spec:racecar'
360
- declare 'bundle exec appraisal contrib rake spec:rack'
361
- declare 'bundle exec appraisal contrib rake spec:rake'
362
- declare 'bundle exec appraisal contrib rake spec:redis'
363
- declare 'bundle exec appraisal contrib rake spec:resque'
364
- declare 'bundle exec appraisal contrib rake spec:rest_client'
365
- declare 'bundle exec appraisal contrib rake spec:sequel'
366
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
367
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
368
- declare 'bundle exec appraisal contrib rake spec:sinatra'
369
- declare 'bundle exec appraisal contrib rake spec:sneakers'
370
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
371
- declare 'bundle exec appraisal contrib rake spec:suite'
372
- # Rails minitests
373
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
374
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
375
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
376
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
377
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
378
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
379
- declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
380
- declare 'bundle exec appraisal rails4-postgres rake test:rails'
381
- declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
382
- declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
383
- declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
384
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
385
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
386
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
387
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
388
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
389
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
390
- # Rails specs
391
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
392
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
393
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
394
- declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
395
- declare 'bundle exec appraisal rails4-postgres rake spec:rails'
396
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
397
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
398
- end
399
- elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
400
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4.0')
401
- # Main library
402
- declare 'bundle exec rake test:main'
403
- declare 'bundle exec rake spec:main'
404
- declare 'bundle exec rake spec:contrib'
405
- declare 'bundle exec rake spec:opentracer'
406
- # Benchmarks
407
- declare 'bundle exec rake spec:benchmark'
408
-
409
- if RUBY_PLATFORM != 'java'
410
- # Contrib minitests
411
- # Contrib specs
412
- declare 'bundle exec appraisal contrib rake spec:action_pack'
413
- declare 'bundle exec appraisal contrib rake spec:action_view'
414
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
415
- declare 'bundle exec appraisal contrib rake spec:active_record'
416
- declare 'bundle exec appraisal contrib rake spec:active_support'
417
- declare 'bundle exec appraisal contrib rake spec:aws'
418
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
419
- declare 'bundle exec appraisal contrib rake spec:dalli'
420
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
421
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
422
- declare 'bundle exec appraisal contrib rake spec:ethon'
423
- declare 'bundle exec appraisal contrib rake spec:excon'
424
- declare 'bundle exec appraisal contrib rake spec:faraday'
425
- declare 'bundle exec appraisal contrib rake spec:grape'
426
- declare 'bundle exec appraisal contrib rake spec:graphql'
427
- declare 'bundle exec appraisal contrib rake spec:grpc'
428
- declare 'bundle exec appraisal contrib rake spec:http'
429
- declare 'bundle exec appraisal contrib rake spec:httprb'
430
- declare 'bundle exec appraisal contrib rake spec:mongodb'
431
- declare 'bundle exec appraisal contrib rake spec:mysql2'
432
- declare 'bundle exec appraisal contrib rake spec:presto'
433
- declare 'bundle exec appraisal contrib rake spec:que'
434
- declare 'bundle exec appraisal contrib rake spec:racecar'
435
- declare 'bundle exec appraisal contrib rake spec:rack'
436
- declare 'bundle exec appraisal contrib rake spec:rake'
437
- declare 'bundle exec appraisal contrib rake spec:redis'
438
- declare 'bundle exec appraisal contrib rake spec:resque'
439
- declare 'bundle exec appraisal contrib rake spec:rest_client'
440
- declare 'bundle exec appraisal contrib rake spec:sequel'
441
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
442
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
443
- declare 'bundle exec appraisal contrib rake spec:sinatra'
444
- declare 'bundle exec appraisal contrib rake spec:sneakers'
445
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
446
- declare 'bundle exec appraisal contrib rake spec:suite'
447
- # Contrib specs with old gem versions
448
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
449
- # Rails minitests
450
- declare 'bundle exec appraisal rails30-postgres rake test:rails'
451
- declare 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
452
- declare 'bundle exec appraisal rails32-mysql2 rake test:rails'
453
- declare 'bundle exec appraisal rails32-postgres rake test:rails'
454
- declare 'bundle exec appraisal rails32-postgres-redis rake spec:railsredis'
455
- declare 'bundle exec appraisal rails32-postgres rake spec:railsdisableenv'
456
- declare 'bundle exec appraisal rails4-mysql2 rake test:rails'
457
- declare 'bundle exec appraisal rails4-postgres rake test:rails'
458
- declare 'bundle exec appraisal rails4-postgres-redis rake spec:railsredis'
459
- declare 'bundle exec appraisal rails4-postgres rake spec:railsdisableenv'
460
- declare 'bundle exec appraisal rails4-postgres-sidekiq rake spec:railsactivejob'
461
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
462
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
463
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
464
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
465
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
466
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
467
- # Rails specs
468
- declare 'bundle exec appraisal rails30-postgres rake spec:rails'
469
- declare 'bundle exec appraisal rails32-mysql2 rake spec:rails'
470
- declare 'bundle exec appraisal rails32-postgres rake spec:rails'
471
- declare 'bundle exec appraisal rails4-mysql2 rake spec:rails'
472
- declare 'bundle exec appraisal rails4-postgres rake spec:rails'
473
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
474
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
475
- end
476
- elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
477
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.5.0')
478
- # Main library
479
- declare 'bundle exec rake test:main'
480
- declare 'bundle exec rake spec:main'
481
- declare 'bundle exec rake spec:contrib'
482
- declare 'bundle exec rake spec:opentracer'
483
- declare 'bundle exec rake spec:opentelemetry'
484
- # Benchmarks
485
- declare 'bundle exec rake spec:benchmark'
486
-
487
- if RUBY_PLATFORM != 'java'
488
- # Benchmarks
489
- declare 'bundle exec rake benchmark'
490
- # Contrib minitests
491
- # Contrib specs
492
- declare 'bundle exec appraisal contrib rake spec:action_pack'
493
- declare 'bundle exec appraisal contrib rake spec:action_view'
494
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
495
- declare 'bundle exec appraisal contrib rake spec:active_record'
496
- declare 'bundle exec appraisal contrib rake spec:active_support'
497
- declare 'bundle exec appraisal contrib rake spec:aws'
498
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
499
- declare 'bundle exec appraisal contrib rake spec:dalli'
500
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
501
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
502
- declare 'bundle exec appraisal contrib rake spec:ethon'
503
- declare 'bundle exec appraisal contrib rake spec:excon'
504
- declare 'bundle exec appraisal contrib rake spec:faraday'
505
- declare 'bundle exec appraisal contrib rake spec:grape'
506
- declare 'bundle exec appraisal contrib rake spec:graphql'
507
- declare 'bundle exec appraisal contrib rake spec:grpc'
508
- declare 'bundle exec appraisal contrib rake spec:http'
509
- declare 'bundle exec appraisal contrib rake spec:httprb'
510
- declare 'bundle exec appraisal contrib rake spec:mongodb'
511
- declare 'bundle exec appraisal contrib rake spec:mysql2'
512
- declare 'bundle exec appraisal contrib rake spec:presto'
513
- declare 'bundle exec appraisal contrib rake spec:que'
514
- declare 'bundle exec appraisal contrib rake spec:racecar'
515
- declare 'bundle exec appraisal contrib rake spec:rack'
516
- declare 'bundle exec appraisal contrib rake spec:rake'
517
- declare 'bundle exec appraisal contrib rake spec:redis'
518
- declare 'bundle exec appraisal contrib rake spec:resque'
519
- declare 'bundle exec appraisal contrib rake spec:rest_client'
520
- declare 'bundle exec appraisal contrib rake spec:sequel'
521
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
522
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
523
- declare 'bundle exec appraisal contrib rake spec:sinatra'
524
- declare 'bundle exec appraisal contrib rake spec:sneakers'
525
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
526
- declare 'bundle exec appraisal contrib rake spec:suite'
527
- # Contrib specs with old gem versions
528
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
529
- # Rails minitests
530
- # We only test Rails 5+ because older versions require Bundler < 2.0
531
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
532
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
533
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
534
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
535
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
536
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
537
- # Rails specs
538
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
539
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
540
- end
541
- elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
542
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.6.0')
543
- # Main library
544
- declare 'bundle exec rake test:main'
545
- declare 'bundle exec rake spec:main'
546
- declare 'bundle exec rake spec:contrib'
547
- declare 'bundle exec rake spec:opentracer'
548
- declare 'bundle exec rake spec:opentelemetry'
549
- # Benchmarks
550
- declare 'bundle exec rake spec:benchmark' if RUBY_PLATFORM != 'java' # Too slow due to repeated JVM instantiation
551
- declare 'bundle exec rake benchmark'
552
- # Contrib minitests
553
- # Contrib specs
554
- declare 'bundle exec appraisal contrib rake spec:action_pack'
555
- declare 'bundle exec appraisal contrib rake spec:action_view'
556
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
557
- declare 'bundle exec appraisal contrib rake spec:active_record'
558
- declare 'bundle exec appraisal contrib rake spec:active_support'
559
- declare 'bundle exec appraisal contrib rake spec:aws'
560
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
561
- declare 'bundle exec appraisal contrib rake spec:dalli'
562
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
563
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
564
- declare 'bundle exec appraisal contrib rake spec:ethon'
565
- declare 'bundle exec appraisal contrib rake spec:excon'
566
- declare 'bundle exec appraisal contrib rake spec:faraday'
567
- declare 'bundle exec appraisal contrib rake spec:grape'
568
- declare 'bundle exec appraisal contrib rake spec:graphql'
569
- declare 'bundle exec appraisal contrib rake spec:grpc' if RUBY_PLATFORM != 'java' # protobuf not supported
570
- declare 'bundle exec appraisal contrib rake spec:http'
571
- declare 'bundle exec appraisal contrib rake spec:httprb'
572
- declare 'bundle exec appraisal contrib rake spec:mongodb'
573
- declare 'bundle exec appraisal contrib rake spec:mysql2' if RUBY_PLATFORM != 'java' # built-in jdbc is used instead
574
- declare 'bundle exec appraisal contrib rake spec:presto'
575
- declare 'bundle exec appraisal contrib rake spec:que'
576
- declare 'bundle exec appraisal contrib rake spec:racecar'
577
- declare 'bundle exec appraisal contrib rake spec:rack'
578
- declare 'bundle exec appraisal contrib rake spec:rake'
579
- declare 'bundle exec appraisal contrib rake spec:redis'
580
- declare 'bundle exec appraisal contrib rake spec:resque'
581
- declare 'bundle exec appraisal contrib rake spec:rest_client'
582
- declare 'bundle exec appraisal contrib rake spec:sequel'
583
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
584
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
585
- declare 'bundle exec appraisal contrib rake spec:sinatra'
586
- declare 'bundle exec appraisal contrib rake spec:sneakers'
587
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
588
- declare 'bundle exec appraisal contrib rake spec:suite'
589
- # Contrib specs with old gem versions
590
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
591
- # Rails minitests
592
- # We only test Rails 5+ because older versions require Bundler < 2.0
593
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
594
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
595
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
596
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
597
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
598
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
599
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
600
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
601
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
602
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
603
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
604
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
605
- # Rails specs
606
- declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
607
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
608
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
609
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
610
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
611
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
612
- elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
613
- && Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.7.0')
614
- # Main library
615
- declare 'bundle exec rake test:main'
616
- declare 'bundle exec rake spec:main'
617
- declare 'bundle exec rake spec:contrib'
618
- declare 'bundle exec rake spec:opentracer'
619
- declare 'bundle exec rake spec:opentelemetry'
620
- # Benchmarks
621
- declare 'bundle exec rake spec:benchmark'
622
-
623
- if RUBY_PLATFORM != 'java'
624
- # Benchmarks
625
- declare 'bundle exec rake benchmark'
626
- # Contrib minitests
627
- # Contrib specs
628
- declare 'bundle exec appraisal contrib rake spec:action_pack'
629
- declare 'bundle exec appraisal contrib rake spec:action_view'
630
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
631
- declare 'bundle exec appraisal contrib rake spec:active_record'
632
- declare 'bundle exec appraisal contrib rake spec:active_support'
633
- declare 'bundle exec appraisal contrib rake spec:aws'
634
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
635
- declare 'bundle exec appraisal contrib rake spec:dalli'
636
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
637
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
638
- declare 'bundle exec appraisal contrib rake spec:ethon'
639
- declare 'bundle exec appraisal contrib rake spec:excon'
640
- declare 'bundle exec appraisal contrib rake spec:faraday'
641
- declare 'bundle exec appraisal contrib rake spec:grape'
642
- declare 'bundle exec appraisal contrib rake spec:graphql'
643
- declare 'bundle exec appraisal contrib rake spec:grpc'
644
- declare 'bundle exec appraisal contrib rake spec:http'
645
- declare 'bundle exec appraisal contrib rake spec:httprb'
646
- declare 'bundle exec appraisal contrib rake spec:mongodb'
647
- declare 'bundle exec appraisal contrib rake spec:mysql2'
648
- declare 'bundle exec appraisal contrib rake spec:presto'
649
- declare 'bundle exec appraisal contrib rake spec:que'
650
- declare 'bundle exec appraisal contrib rake spec:racecar'
651
- declare 'bundle exec appraisal contrib rake spec:rack'
652
- declare 'bundle exec appraisal contrib rake spec:rake'
653
- declare 'bundle exec appraisal contrib rake spec:redis'
654
- declare 'bundle exec appraisal contrib rake spec:resque'
655
- declare 'bundle exec appraisal contrib rake spec:rest_client'
656
- declare 'bundle exec appraisal contrib rake spec:sequel'
657
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
658
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
659
- declare 'bundle exec appraisal contrib rake spec:sinatra'
660
- declare 'bundle exec appraisal contrib rake spec:sneakers'
661
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
662
- declare 'bundle exec appraisal contrib rake spec:suite'
663
- # Contrib specs with old gem versions
664
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
665
- # Rails minitests
666
- # We only test Rails 5+ because older versions require Bundler < 2.0
667
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
668
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
669
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
670
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
671
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
672
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
673
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
674
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
675
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
676
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
677
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
678
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
679
- # Rails specs
680
- declare 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
681
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
682
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
683
- # declare 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
684
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
685
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
686
- end
687
- elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
688
- # Main library
689
- declare 'bundle exec rake test:main'
690
- declare 'bundle exec rake spec:main'
691
- declare 'bundle exec rake spec:contrib'
692
- declare 'bundle exec rake spec:opentracer'
693
- declare 'bundle exec rake spec:opentelemetry'
694
- # Benchmarks
695
- declare 'bundle exec rake spec:benchmark'
696
-
697
- if RUBY_PLATFORM != 'java'
698
- # Benchmarks
699
- declare 'bundle exec rake benchmark'
700
- # Contrib minitests
701
- # Contrib specs
702
- declare 'bundle exec appraisal contrib rake spec:action_pack'
703
- declare 'bundle exec appraisal contrib rake spec:action_view'
704
- declare 'bundle exec appraisal contrib rake spec:active_model_serializers'
705
- declare 'bundle exec appraisal contrib rake spec:active_record'
706
- declare 'bundle exec appraisal contrib rake spec:active_support'
707
- declare 'bundle exec appraisal contrib rake spec:aws'
708
- declare 'bundle exec appraisal contrib rake spec:concurrent_ruby'
709
- declare 'bundle exec appraisal contrib rake spec:dalli'
710
- declare 'bundle exec appraisal contrib rake spec:delayed_job'
711
- declare 'bundle exec appraisal contrib rake spec:elasticsearch'
712
- declare 'bundle exec appraisal contrib rake spec:ethon'
713
- declare 'bundle exec appraisal contrib rake spec:excon'
714
- declare 'bundle exec appraisal contrib rake spec:faraday'
715
- declare 'bundle exec appraisal contrib rake spec:grape'
716
- declare 'bundle exec appraisal contrib rake spec:graphql'
717
- declare 'bundle exec appraisal contrib rake spec:grpc'
718
- declare 'bundle exec appraisal contrib rake spec:http'
719
- declare 'bundle exec appraisal contrib rake spec:httprb'
720
- declare 'bundle exec appraisal contrib rake spec:mongodb'
721
- declare 'bundle exec appraisal contrib rake spec:mysql2'
722
- declare 'bundle exec appraisal contrib rake spec:presto'
723
- declare 'bundle exec appraisal contrib rake spec:que'
724
- declare 'bundle exec appraisal contrib rake spec:racecar'
725
- declare 'bundle exec appraisal contrib rake spec:rack'
726
- declare 'bundle exec appraisal contrib rake spec:rake'
727
- declare 'bundle exec appraisal contrib rake spec:redis'
728
- declare 'bundle exec appraisal contrib rake spec:resque'
729
- declare 'bundle exec appraisal contrib rake spec:rest_client'
730
- declare 'bundle exec appraisal contrib rake spec:sequel'
731
- declare 'bundle exec appraisal contrib rake spec:shoryuken'
732
- declare 'bundle exec appraisal contrib rake spec:sidekiq'
733
- declare 'bundle exec appraisal contrib rake spec:sinatra'
734
- declare 'bundle exec appraisal contrib rake spec:sneakers'
735
- declare 'bundle exec appraisal contrib rake spec:sucker_punch'
736
- declare 'bundle exec appraisal contrib rake spec:suite'
737
- # Contrib specs with old gem versions
738
- declare 'bundle exec appraisal contrib-old rake spec:faraday'
739
- # Rails minitests
740
- # We only test Rails 5+ because older versions require Bundler < 2.0
741
- declare 'bundle exec appraisal rails5-mysql2 rake test:rails'
742
- declare 'bundle exec appraisal rails5-postgres rake test:rails'
743
- declare 'bundle exec appraisal rails5-postgres-redis rake spec:railsredis'
744
- declare 'bundle exec appraisal rails5-postgres-redis-activesupport rake spec:railsredis'
745
- declare 'bundle exec appraisal rails5-postgres-sidekiq rake spec:railsactivejob'
746
- declare 'bundle exec appraisal rails5-postgres rake spec:railsdisableenv'
747
- declare 'bundle exec appraisal rails6-mysql2 rake test:rails'
748
- declare 'bundle exec appraisal rails6-postgres rake test:rails'
749
- declare 'bundle exec appraisal rails6-postgres-redis rake spec:railsredis'
750
- declare 'bundle exec appraisal rails6-postgres-redis-activesupport rake spec:railsredis'
751
- declare 'bundle exec appraisal rails6-postgres-sidekiq rake spec:railsactivejob'
752
- declare 'bundle exec appraisal rails6-postgres rake spec:railsdisableenv'
753
- # Rails specs
754
- declare 'bundle exec appraisal rails5-mysql2 rake spec:rails'
755
- declare 'bundle exec appraisal rails5-postgres rake spec:rails'
756
- declare 'bundle exec appraisal rails6-mysql2 rake spec:rails'
757
- declare 'bundle exec appraisal rails6-postgres rake spec:rails'
758
- end
759
- end
760
- end
761
-
762
- namespace :coverage do
763
- # Generates one global report for all tracer tests
764
- task :report do
765
- require 'simplecov'
766
-
767
- resultset_files = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/.resultset.json"] +
768
- Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/**/.resultset.json"]
769
-
770
- SimpleCov.collate resultset_files do
771
- coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report"
772
- formatter SimpleCov::Formatter::HTMLFormatter
773
- end
774
- end
775
-
776
- # Generates one report for each Ruby version
777
- task :report_per_ruby_version do
778
- require 'simplecov'
779
-
780
- versions = Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/*"].map { |f| File.basename(f) }
781
- versions.map do |version|
782
- puts "Generating report for: #{version}"
783
- SimpleCov.collate Dir["#{ENV.fetch('COVERAGE_DIR', 'coverage')}/versions/#{version}/**/.resultset.json"] do
784
- coverage_dir "#{ENV.fetch('COVERAGE_DIR', 'coverage')}/report/versions/#{version}"
785
- formatter SimpleCov::Formatter::HTMLFormatter
786
- end
787
- end
788
- end
789
- end
790
-
791
- task default: :test