ddtrace 0.46.0 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +303 -79
  3. data/.circleci/images/primary/Dockerfile-2.1.10 +12 -2
  4. data/.circleci/images/primary/Dockerfile-2.2.10 +12 -2
  5. data/.circleci/images/primary/Dockerfile-2.3.8 +14 -2
  6. data/.circleci/images/primary/Dockerfile-2.4.10 +85 -0
  7. data/.circleci/images/primary/{Dockerfile-2.5.6 → Dockerfile-2.5.9} +13 -3
  8. data/.circleci/images/primary/{Dockerfile-2.6.4 → Dockerfile-2.6.7} +13 -3
  9. data/.circleci/images/primary/{Dockerfile-2.7.0 → Dockerfile-2.7.3} +13 -3
  10. data/.circleci/images/primary/{Dockerfile-3.0.0 → Dockerfile-3.0.1} +3 -3
  11. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +88 -0
  12. data/.circleci/images/primary/{Dockerfile-jruby-9.2 → Dockerfile-jruby-9.2.0.0} +2 -6
  13. data/.circleci/images/primary/{Dockerfile-2.4.6 → Dockerfile-truffleruby-21.1.0} +4 -4
  14. data/.dd-ci/ci-app-spec.json +31 -0
  15. data/.dockerignore +0 -1
  16. data/.gitattributes +1 -0
  17. data/.github/workflows/create-next-milestone.yml +2 -2
  18. data/.github/workflows/test-head.yaml +34 -0
  19. data/.gitignore +0 -1
  20. data/.gitlab-ci.yml +18 -18
  21. data/.rubocop.yml +32 -9
  22. data/.rubocop_todo.yml +53 -12
  23. data/.simplecov +6 -0
  24. data/Appraisals +254 -176
  25. data/CHANGELOG.md +271 -1
  26. data/Gemfile +35 -7
  27. data/LICENSE-3rdparty.csv +2 -0
  28. data/Rakefile +339 -332
  29. data/benchmarks/data/profiler-submission-marshal.gz +0 -0
  30. data/benchmarks/profiler_sample_loop.rb +69 -0
  31. data/benchmarks/profiler_submission.rb +93 -0
  32. data/bin/ddtracerb +15 -0
  33. data/ddtrace.gemspec +6 -4
  34. data/docker-compose.yml +68 -54
  35. data/docs/GettingStarted.md +149 -67
  36. data/docs/ProfilingDevelopment.md +88 -0
  37. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +82 -0
  38. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +1571 -0
  39. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +36 -0
  40. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +159 -0
  41. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +35 -0
  42. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +155 -0
  43. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +36 -0
  44. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +176 -0
  45. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +36 -0
  46. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +208 -0
  47. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +36 -0
  48. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +208 -0
  49. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +41 -0
  50. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +273 -0
  51. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +41 -0
  52. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +273 -0
  53. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +42 -0
  54. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +275 -0
  55. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +42 -0
  56. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +275 -0
  57. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +43 -0
  58. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +281 -0
  59. data/gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile +41 -0
  60. data/gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile.lock +272 -0
  61. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +41 -0
  62. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +292 -0
  63. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +41 -0
  64. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +292 -0
  65. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +42 -0
  66. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +294 -0
  67. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +42 -0
  68. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +299 -0
  69. data/gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile +41 -0
  70. data/gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile.lock +291 -0
  71. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +41 -0
  72. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +289 -0
  73. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +41 -0
  74. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +289 -0
  75. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +42 -0
  76. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +291 -0
  77. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +42 -0
  78. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +291 -0
  79. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +43 -0
  80. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +297 -0
  81. data/gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile +41 -0
  82. data/gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile.lock +288 -0
  83. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +37 -0
  84. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +182 -0
  85. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +37 -0
  86. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +182 -0
  87. data/gemfiles/jruby_9.2.18.0_contrib.gemfile +82 -0
  88. data/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock +1571 -0
  89. data/gemfiles/jruby_9.2.18.0_contrib_old.gemfile +36 -0
  90. data/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock +159 -0
  91. data/gemfiles/jruby_9.2.18.0_core_old.gemfile +35 -0
  92. data/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock +155 -0
  93. data/gemfiles/jruby_9.2.18.0_cucumber3.gemfile +36 -0
  94. data/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock +176 -0
  95. data/gemfiles/jruby_9.2.18.0_cucumber4.gemfile +36 -0
  96. data/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock +208 -0
  97. data/gemfiles/jruby_9.2.18.0_cucumber5.gemfile +36 -0
  98. data/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock +208 -0
  99. data/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile +41 -0
  100. data/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock +273 -0
  101. data/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile +41 -0
  102. data/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock +273 -0
  103. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile +42 -0
  104. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock +275 -0
  105. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile +42 -0
  106. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock +275 -0
  107. data/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile +43 -0
  108. data/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock +281 -0
  109. data/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile +41 -0
  110. data/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock +272 -0
  111. data/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile +41 -0
  112. data/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock +292 -0
  113. data/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile +41 -0
  114. data/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock +292 -0
  115. data/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile +42 -0
  116. data/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock +294 -0
  117. data/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile +42 -0
  118. data/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock +299 -0
  119. data/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile +41 -0
  120. data/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock +291 -0
  121. data/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile +41 -0
  122. data/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock +289 -0
  123. data/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile +41 -0
  124. data/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock +289 -0
  125. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile +42 -0
  126. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock +291 -0
  127. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile +42 -0
  128. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock +291 -0
  129. data/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile +43 -0
  130. data/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock +297 -0
  131. data/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile +41 -0
  132. data/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock +288 -0
  133. data/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile +37 -0
  134. data/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock +182 -0
  135. data/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile +37 -0
  136. data/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock +182 -0
  137. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +68 -0
  138. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +310 -0
  139. data/gemfiles/ruby_2.1.10_core_old.gemfile +34 -0
  140. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +120 -0
  141. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +39 -0
  142. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +193 -0
  143. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +40 -0
  144. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +202 -0
  145. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +42 -0
  146. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +212 -0
  147. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +39 -0
  148. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +201 -0
  149. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +41 -0
  150. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +220 -0
  151. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +40 -0
  152. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +210 -0
  153. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +39 -0
  154. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +220 -0
  155. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +39 -0
  156. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +220 -0
  157. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +41 -0
  158. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +239 -0
  159. data/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile +39 -0
  160. data/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock +218 -0
  161. data/gemfiles/ruby_2.2.10_contrib.gemfile +76 -0
  162. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +1499 -0
  163. data/gemfiles/ruby_2.2.10_core_old.gemfile +34 -0
  164. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +120 -0
  165. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +39 -0
  166. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +193 -0
  167. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +40 -0
  168. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +202 -0
  169. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +41 -0
  170. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +209 -0
  171. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +39 -0
  172. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +201 -0
  173. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +41 -0
  174. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +220 -0
  175. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +40 -0
  176. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +210 -0
  177. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +39 -0
  178. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +220 -0
  179. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +39 -0
  180. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +220 -0
  181. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +41 -0
  182. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +239 -0
  183. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +41 -0
  184. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +231 -0
  185. data/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile +39 -0
  186. data/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock +218 -0
  187. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +39 -0
  188. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +236 -0
  189. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +39 -0
  190. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +236 -0
  191. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +40 -0
  192. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +238 -0
  193. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +40 -0
  194. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +238 -0
  195. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +41 -0
  196. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +247 -0
  197. data/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile +39 -0
  198. data/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock +234 -0
  199. data/gemfiles/ruby_2.3.8_contrib.gemfile +75 -0
  200. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +1508 -0
  201. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +34 -0
  202. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +123 -0
  203. data/gemfiles/ruby_2.3.8_core_old.gemfile +33 -0
  204. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +119 -0
  205. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +34 -0
  206. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +140 -0
  207. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +34 -0
  208. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +170 -0
  209. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +38 -0
  210. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +192 -0
  211. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +39 -0
  212. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +201 -0
  213. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +40 -0
  214. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +208 -0
  215. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +38 -0
  216. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +200 -0
  217. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +40 -0
  218. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +219 -0
  219. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +39 -0
  220. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +209 -0
  221. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +38 -0
  222. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +219 -0
  223. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +38 -0
  224. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +219 -0
  225. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +40 -0
  226. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +238 -0
  227. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +40 -0
  228. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +230 -0
  229. data/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile +38 -0
  230. data/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock +218 -0
  231. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +37 -0
  232. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +230 -0
  233. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +37 -0
  234. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +230 -0
  235. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +38 -0
  236. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +232 -0
  237. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +38 -0
  238. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +232 -0
  239. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +39 -0
  240. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +241 -0
  241. data/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile +37 -0
  242. data/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock +229 -0
  243. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +35 -0
  244. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +146 -0
  245. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +35 -0
  246. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +146 -0
  247. data/gemfiles/ruby_2.4.10_contrib.gemfile +81 -0
  248. data/gemfiles/ruby_2.4.10_contrib.gemfile.lock +1596 -0
  249. data/gemfiles/ruby_2.4.10_contrib_old.gemfile +39 -0
  250. data/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock +157 -0
  251. data/gemfiles/ruby_2.4.10_core_old.gemfile +38 -0
  252. data/gemfiles/ruby_2.4.10_core_old.gemfile.lock +153 -0
  253. data/gemfiles/ruby_2.4.10_cucumber3.gemfile +39 -0
  254. data/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock +174 -0
  255. data/gemfiles/ruby_2.4.10_cucumber4.gemfile +39 -0
  256. data/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock +204 -0
  257. data/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile +42 -0
  258. data/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock +264 -0
  259. data/gemfiles/ruby_2.4.10_rails5_postgres.gemfile +42 -0
  260. data/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock +264 -0
  261. data/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile +43 -0
  262. data/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock +266 -0
  263. data/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile +43 -0
  264. data/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock +266 -0
  265. data/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile +44 -0
  266. data/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock +275 -0
  267. data/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile +42 -0
  268. data/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock +263 -0
  269. data/gemfiles/ruby_2.4.10_resque2_redis3.gemfile +40 -0
  270. data/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock +180 -0
  271. data/gemfiles/ruby_2.4.10_resque2_redis4.gemfile +40 -0
  272. data/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock +180 -0
  273. data/gemfiles/ruby_2.5.9_contrib.gemfile +86 -0
  274. data/gemfiles/ruby_2.5.9_contrib.gemfile.lock +1608 -0
  275. data/gemfiles/ruby_2.5.9_contrib_old.gemfile +40 -0
  276. data/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock +167 -0
  277. data/gemfiles/ruby_2.5.9_core_old.gemfile +39 -0
  278. data/gemfiles/ruby_2.5.9_core_old.gemfile.lock +163 -0
  279. data/gemfiles/ruby_2.5.9_cucumber3.gemfile +40 -0
  280. data/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock +184 -0
  281. data/gemfiles/ruby_2.5.9_cucumber4.gemfile +40 -0
  282. data/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock +216 -0
  283. data/gemfiles/ruby_2.5.9_cucumber5.gemfile +40 -0
  284. data/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock +216 -0
  285. data/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile +45 -0
  286. data/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock +276 -0
  287. data/gemfiles/ruby_2.5.9_rails5_postgres.gemfile +45 -0
  288. data/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock +276 -0
  289. data/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile +46 -0
  290. data/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock +278 -0
  291. data/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile +46 -0
  292. data/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock +278 -0
  293. data/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile +47 -0
  294. data/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock +284 -0
  295. data/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile +45 -0
  296. data/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock +275 -0
  297. data/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile +45 -0
  298. data/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock +295 -0
  299. data/gemfiles/ruby_2.5.9_rails61_postgres.gemfile +45 -0
  300. data/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock +295 -0
  301. data/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile +46 -0
  302. data/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock +297 -0
  303. data/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile +46 -0
  304. data/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock +302 -0
  305. data/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile +45 -0
  306. data/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock +294 -0
  307. data/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile +45 -0
  308. data/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock +292 -0
  309. data/gemfiles/ruby_2.5.9_rails6_postgres.gemfile +45 -0
  310. data/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock +292 -0
  311. data/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile +46 -0
  312. data/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock +294 -0
  313. data/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile +46 -0
  314. data/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock +294 -0
  315. data/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile +47 -0
  316. data/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock +300 -0
  317. data/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile +45 -0
  318. data/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock +291 -0
  319. data/gemfiles/ruby_2.5.9_resque2_redis3.gemfile +41 -0
  320. data/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock +190 -0
  321. data/gemfiles/ruby_2.5.9_resque2_redis4.gemfile +41 -0
  322. data/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock +190 -0
  323. data/gemfiles/ruby_2.6.7_contrib.gemfile +82 -0
  324. data/gemfiles/ruby_2.6.7_contrib.gemfile.lock +1606 -0
  325. data/gemfiles/ruby_2.6.7_contrib_old.gemfile +40 -0
  326. data/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock +169 -0
  327. data/gemfiles/ruby_2.6.7_core_old.gemfile +39 -0
  328. data/gemfiles/ruby_2.6.7_core_old.gemfile.lock +165 -0
  329. data/gemfiles/ruby_2.6.7_cucumber3.gemfile +40 -0
  330. data/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock +186 -0
  331. data/gemfiles/ruby_2.6.7_cucumber4.gemfile +40 -0
  332. data/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock +218 -0
  333. data/gemfiles/ruby_2.6.7_cucumber5.gemfile +40 -0
  334. data/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock +218 -0
  335. data/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile +43 -0
  336. data/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock +276 -0
  337. data/gemfiles/ruby_2.6.7_rails5_postgres.gemfile +43 -0
  338. data/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock +276 -0
  339. data/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile +44 -0
  340. data/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock +278 -0
  341. data/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile +44 -0
  342. data/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock +278 -0
  343. data/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile +45 -0
  344. data/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock +284 -0
  345. data/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile +43 -0
  346. data/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock +275 -0
  347. data/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile +43 -0
  348. data/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock +295 -0
  349. data/gemfiles/ruby_2.6.7_rails61_postgres.gemfile +43 -0
  350. data/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock +295 -0
  351. data/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile +44 -0
  352. data/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock +297 -0
  353. data/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile +44 -0
  354. data/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock +302 -0
  355. data/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile +43 -0
  356. data/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock +294 -0
  357. data/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile +43 -0
  358. data/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock +292 -0
  359. data/gemfiles/ruby_2.6.7_rails6_postgres.gemfile +43 -0
  360. data/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock +292 -0
  361. data/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile +44 -0
  362. data/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock +294 -0
  363. data/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile +44 -0
  364. data/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock +294 -0
  365. data/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile +45 -0
  366. data/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock +300 -0
  367. data/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile +43 -0
  368. data/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock +291 -0
  369. data/gemfiles/ruby_2.6.7_resque2_redis3.gemfile +41 -0
  370. data/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock +192 -0
  371. data/gemfiles/ruby_2.6.7_resque2_redis4.gemfile +41 -0
  372. data/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock +192 -0
  373. data/gemfiles/ruby_2.7.3_contrib.gemfile +81 -0
  374. data/gemfiles/ruby_2.7.3_contrib.gemfile.lock +1580 -0
  375. data/gemfiles/ruby_2.7.3_contrib_old.gemfile +40 -0
  376. data/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock +169 -0
  377. data/gemfiles/ruby_2.7.3_core_old.gemfile +39 -0
  378. data/gemfiles/ruby_2.7.3_core_old.gemfile.lock +165 -0
  379. data/gemfiles/ruby_2.7.3_cucumber3.gemfile +40 -0
  380. data/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock +186 -0
  381. data/gemfiles/ruby_2.7.3_cucumber4.gemfile +40 -0
  382. data/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock +218 -0
  383. data/gemfiles/ruby_2.7.3_cucumber5.gemfile +40 -0
  384. data/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock +218 -0
  385. data/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile +43 -0
  386. data/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock +278 -0
  387. data/gemfiles/ruby_2.7.3_rails5_postgres.gemfile +43 -0
  388. data/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock +278 -0
  389. data/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile +45 -0
  390. data/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock +297 -0
  391. data/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile +45 -0
  392. data/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock +297 -0
  393. data/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile +45 -0
  394. data/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock +286 -0
  395. data/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile +43 -0
  396. data/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock +277 -0
  397. data/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile +43 -0
  398. data/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock +297 -0
  399. data/gemfiles/ruby_2.7.3_rails61_postgres.gemfile +43 -0
  400. data/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock +297 -0
  401. data/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile +44 -0
  402. data/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock +299 -0
  403. data/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile +44 -0
  404. data/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock +304 -0
  405. data/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile +43 -0
  406. data/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock +296 -0
  407. data/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile +43 -0
  408. data/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock +294 -0
  409. data/gemfiles/ruby_2.7.3_rails6_postgres.gemfile +43 -0
  410. data/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock +294 -0
  411. data/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile +45 -0
  412. data/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock +313 -0
  413. data/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile +45 -0
  414. data/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock +313 -0
  415. data/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile +45 -0
  416. data/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock +302 -0
  417. data/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile +43 -0
  418. data/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock +293 -0
  419. data/gemfiles/ruby_2.7.3_resque2_redis3.gemfile +41 -0
  420. data/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock +192 -0
  421. data/gemfiles/ruby_2.7.3_resque2_redis4.gemfile +41 -0
  422. data/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock +192 -0
  423. data/gemfiles/ruby_3.0.1_contrib.gemfile +80 -0
  424. data/gemfiles/ruby_3.0.1_contrib.gemfile.lock +1583 -0
  425. data/gemfiles/ruby_3.0.1_core_old.gemfile +40 -0
  426. data/gemfiles/ruby_3.0.1_core_old.gemfile.lock +167 -0
  427. data/gemfiles/ruby_3.0.1_cucumber3.gemfile +41 -0
  428. data/gemfiles/ruby_3.0.1_cucumber3.gemfile.lock +188 -0
  429. data/gemfiles/ruby_3.0.1_cucumber4.gemfile +41 -0
  430. data/gemfiles/ruby_3.0.1_cucumber4.gemfile.lock +220 -0
  431. data/gemfiles/ruby_3.0.1_cucumber5.gemfile +41 -0
  432. data/gemfiles/ruby_3.0.1_cucumber5.gemfile.lock +220 -0
  433. data/gemfiles/ruby_3.0.1_rails61_mysql2.gemfile +44 -0
  434. data/gemfiles/ruby_3.0.1_rails61_mysql2.gemfile.lock +297 -0
  435. data/gemfiles/ruby_3.0.1_rails61_postgres.gemfile +44 -0
  436. data/gemfiles/ruby_3.0.1_rails61_postgres.gemfile.lock +297 -0
  437. data/gemfiles/ruby_3.0.1_rails61_postgres_redis.gemfile +45 -0
  438. data/gemfiles/ruby_3.0.1_rails61_postgres_redis.gemfile.lock +299 -0
  439. data/gemfiles/ruby_3.0.1_rails61_postgres_sidekiq.gemfile +46 -0
  440. data/gemfiles/ruby_3.0.1_rails61_postgres_sidekiq.gemfile.lock +311 -0
  441. data/gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile +44 -0
  442. data/gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile.lock +296 -0
  443. data/gemfiles/ruby_3.0.1_resque2_redis3.gemfile +42 -0
  444. data/gemfiles/ruby_3.0.1_resque2_redis3.gemfile.lock +194 -0
  445. data/gemfiles/ruby_3.0.1_resque2_redis4.gemfile +42 -0
  446. data/gemfiles/ruby_3.0.1_resque2_redis4.gemfile.lock +194 -0
  447. data/integration/README.md +1 -2
  448. data/integration/apps/rack/Dockerfile +3 -0
  449. data/integration/apps/rack/README.md +2 -2
  450. data/integration/apps/rack/script/build-images +1 -1
  451. data/integration/apps/rack/script/ci +3 -2
  452. data/integration/apps/rails-five/README.md +2 -2
  453. data/integration/apps/rails-five/script/build-images +1 -1
  454. data/integration/apps/rails-five/script/ci +3 -2
  455. data/integration/apps/rspec/.dockerignore +1 -0
  456. data/integration/apps/rspec/.envrc.sample +1 -0
  457. data/integration/apps/rspec/.gitignore +2 -0
  458. data/integration/apps/rspec/.rspec +1 -0
  459. data/integration/apps/rspec/Dockerfile +25 -0
  460. data/integration/apps/rspec/Dockerfile-ci +11 -0
  461. data/integration/apps/rspec/Gemfile +14 -0
  462. data/integration/apps/rspec/README.md +70 -0
  463. data/integration/apps/rspec/agent.yaml +3 -0
  464. data/integration/apps/rspec/app/datadog.rb +13 -0
  465. data/integration/apps/rspec/app/fibonacci.rb +30 -0
  466. data/integration/apps/rspec/bin/run +20 -0
  467. data/integration/apps/rspec/bin/setup +23 -0
  468. data/integration/apps/rspec/bin/test +21 -0
  469. data/integration/apps/rspec/docker-compose.ci.yml +51 -0
  470. data/integration/apps/rspec/docker-compose.yml +64 -0
  471. data/integration/apps/rspec/script/build-images +37 -0
  472. data/integration/apps/rspec/script/ci +53 -0
  473. data/integration/apps/rspec/spec/fibonacci_spec.rb +16 -0
  474. data/integration/apps/rspec/spec/rspec_spec.rb +58 -0
  475. data/integration/apps/rspec/spec/spec_helper.rb +24 -0
  476. data/integration/apps/ruby/README.md +2 -2
  477. data/integration/apps/ruby/script/build-images +1 -1
  478. data/integration/apps/ruby/script/ci +3 -2
  479. data/integration/images/include/datadog/demo_env.rb +15 -14
  480. data/integration/images/include/http-health-check +1 -1
  481. data/integration/images/wrk/scripts/entrypoint.sh +1 -1
  482. data/integration/script/build-images +1 -1
  483. data/lib/datadog/ci.rb +16 -0
  484. data/lib/datadog/ci/configuration/components.rb +30 -0
  485. data/lib/datadog/ci/configuration/settings.rb +36 -0
  486. data/lib/datadog/ci/context_flush.rb +28 -0
  487. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +30 -0
  488. data/lib/datadog/ci/contrib/cucumber/ext.rb +19 -0
  489. data/lib/datadog/ci/contrib/cucumber/formatter.rb +97 -0
  490. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +26 -0
  491. data/lib/datadog/ci/contrib/cucumber/integration.rb +47 -0
  492. data/lib/datadog/ci/contrib/cucumber/patcher.rb +25 -0
  493. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +30 -0
  494. data/lib/datadog/ci/contrib/rspec/example.rb +73 -0
  495. data/lib/datadog/ci/contrib/rspec/ext.rb +18 -0
  496. data/lib/datadog/ci/contrib/rspec/integration.rb +48 -0
  497. data/lib/datadog/ci/contrib/rspec/patcher.rb +25 -0
  498. data/lib/datadog/ci/ext/app_types.rb +9 -0
  499. data/lib/datadog/ci/ext/environment.rb +438 -0
  500. data/lib/datadog/ci/ext/settings.rb +10 -0
  501. data/lib/datadog/ci/ext/test.rb +34 -0
  502. data/lib/datadog/ci/extensions.rb +17 -0
  503. data/lib/datadog/ci/test.rb +76 -0
  504. data/lib/datadog/core/environment/cgroup.rb +49 -0
  505. data/lib/datadog/core/environment/class_count.rb +19 -0
  506. data/lib/datadog/core/environment/container.rb +88 -0
  507. data/lib/datadog/core/environment/ext.rb +26 -0
  508. data/lib/datadog/core/environment/gc.rb +18 -0
  509. data/lib/datadog/core/environment/identity.rb +50 -0
  510. data/lib/datadog/core/environment/object_space.rb +22 -0
  511. data/lib/datadog/core/environment/socket.rb +16 -0
  512. data/lib/datadog/core/environment/thread_count.rb +18 -0
  513. data/lib/datadog/core/environment/variable_helpers.rb +39 -0
  514. data/lib/ddtrace.rb +3 -2
  515. data/lib/ddtrace/auto_instrument.rb +1 -0
  516. data/lib/ddtrace/buffer.rb +2 -2
  517. data/lib/ddtrace/configuration.rb +98 -25
  518. data/lib/ddtrace/configuration/agent_settings_resolver.rb +230 -0
  519. data/lib/ddtrace/configuration/base.rb +7 -10
  520. data/lib/ddtrace/configuration/components.rb +150 -23
  521. data/lib/ddtrace/configuration/options.rb +4 -6
  522. data/lib/ddtrace/configuration/settings.rb +104 -7
  523. data/lib/ddtrace/context.rb +17 -14
  524. data/lib/ddtrace/context_flush.rb +14 -2
  525. data/lib/ddtrace/context_provider.rb +0 -2
  526. data/lib/ddtrace/contrib/action_cable/event.rb +4 -4
  527. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -1
  528. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +1 -1
  529. data/lib/ddtrace/contrib/action_pack/utils.rb +1 -1
  530. data/lib/ddtrace/contrib/action_view/event.rb +2 -2
  531. data/lib/ddtrace/contrib/action_view/patcher.rb +4 -4
  532. data/lib/ddtrace/contrib/active_model_serializers/event.rb +2 -2
  533. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +30 -0
  534. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +103 -26
  535. data/lib/ddtrace/contrib/active_record/event.rb +2 -2
  536. data/lib/ddtrace/contrib/active_record/utils.rb +2 -2
  537. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +7 -7
  538. data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -5
  539. data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -2
  540. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -1
  541. data/lib/ddtrace/contrib/auto_instrument.rb +1 -2
  542. data/lib/ddtrace/contrib/aws/instrumentation.rb +29 -0
  543. data/lib/ddtrace/contrib/aws/patcher.rb +4 -0
  544. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  545. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +1 -1
  546. data/lib/ddtrace/contrib/configurable.rb +64 -40
  547. data/lib/ddtrace/contrib/configuration/resolver.rb +70 -5
  548. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +19 -17
  549. data/lib/ddtrace/contrib/configuration/settings.rb +7 -6
  550. data/lib/ddtrace/contrib/dalli/instrumentation.rb +1 -1
  551. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -1
  552. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  553. data/lib/ddtrace/contrib/ethon/easy_patch.rb +1 -1
  554. data/lib/ddtrace/contrib/ethon/multi_patch.rb +1 -1
  555. data/lib/ddtrace/contrib/ethon/patcher.rb +2 -2
  556. data/lib/ddtrace/contrib/extensions.rb +29 -6
  557. data/lib/ddtrace/contrib/faraday/patcher.rb +2 -2
  558. data/lib/ddtrace/contrib/grape/instrumentation.rb +2 -2
  559. data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
  560. data/lib/ddtrace/contrib/grpc/patcher.rb +1 -1
  561. data/lib/ddtrace/contrib/http/instrumentation.rb +1 -1
  562. data/lib/ddtrace/contrib/http/patcher.rb +1 -1
  563. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +13 -17
  564. data/lib/ddtrace/contrib/httpclient/patcher.rb +6 -3
  565. data/lib/ddtrace/contrib/httprb/instrumentation.rb +13 -18
  566. data/lib/ddtrace/contrib/httprb/patcher.rb +6 -3
  567. data/lib/ddtrace/contrib/integration.rb +3 -3
  568. data/lib/ddtrace/contrib/kafka/event.rb +2 -2
  569. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +18 -0
  570. data/lib/ddtrace/contrib/lograge/ext.rb +10 -0
  571. data/lib/ddtrace/contrib/lograge/instrumentation.rb +38 -0
  572. data/lib/ddtrace/contrib/lograge/integration.rb +45 -0
  573. data/lib/ddtrace/contrib/{rspec → lograge}/patcher.rb +6 -4
  574. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -2
  575. data/lib/ddtrace/contrib/mongodb/patcher.rb +2 -2
  576. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -1
  577. data/lib/ddtrace/contrib/mysql2/patcher.rb +1 -1
  578. data/lib/ddtrace/contrib/patchable.rb +2 -2
  579. data/lib/ddtrace/contrib/patcher.rb +10 -7
  580. data/lib/ddtrace/contrib/presto/instrumentation.rb +1 -1
  581. data/lib/ddtrace/contrib/presto/patcher.rb +6 -3
  582. data/lib/ddtrace/contrib/qless/patcher.rb +3 -5
  583. data/lib/ddtrace/contrib/racecar/event.rb +2 -2
  584. data/lib/ddtrace/contrib/rack/middlewares.rb +1 -1
  585. data/lib/ddtrace/contrib/rails/framework.rb +25 -1
  586. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -40
  587. data/lib/ddtrace/contrib/rails/patcher.rb +17 -11
  588. data/lib/ddtrace/contrib/rake/instrumentation.rb +1 -1
  589. data/lib/ddtrace/contrib/rake/patcher.rb +1 -1
  590. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +11 -4
  591. data/lib/ddtrace/contrib/registerable.rb +2 -2
  592. data/lib/ddtrace/contrib/resque/configuration/settings.rb +17 -1
  593. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  594. data/lib/ddtrace/contrib/resque/patcher.rb +4 -4
  595. data/lib/ddtrace/contrib/resque/resque_job.rb +22 -1
  596. data/lib/ddtrace/contrib/rest_client/patcher.rb +1 -1
  597. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -1
  598. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +18 -0
  599. data/lib/ddtrace/contrib/semantic_logger/ext.rb +10 -0
  600. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +42 -0
  601. data/lib/ddtrace/contrib/semantic_logger/integration.rb +47 -0
  602. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +25 -0
  603. data/lib/ddtrace/contrib/sequel/database.rb +1 -1
  604. data/lib/ddtrace/contrib/sequel/dataset.rb +1 -1
  605. data/lib/ddtrace/contrib/sequel/patcher.rb +2 -2
  606. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  607. data/lib/ddtrace/contrib/shoryuken/tracer.rb +7 -3
  608. data/lib/ddtrace/contrib/sinatra/patcher.rb +1 -1
  609. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +4 -6
  610. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +4 -0
  611. data/lib/ddtrace/correlation.rb +1 -1
  612. data/lib/ddtrace/diagnostics/environment_logger.rb +5 -5
  613. data/lib/ddtrace/error.rb +77 -8
  614. data/lib/ddtrace/ext/app_types.rb +0 -1
  615. data/lib/ddtrace/ext/environment.rb +7 -0
  616. data/lib/ddtrace/ext/git.rb +9 -1
  617. data/lib/ddtrace/ext/profiling.rb +53 -0
  618. data/lib/ddtrace/ext/runtime.rb +0 -7
  619. data/lib/ddtrace/ext/test.rb +2 -18
  620. data/lib/ddtrace/ext/transport.rb +2 -0
  621. data/lib/ddtrace/metrics.rb +68 -13
  622. data/lib/ddtrace/opentelemetry/extensions.rb +1 -1
  623. data/lib/ddtrace/opentracer.rb +20 -39
  624. data/lib/ddtrace/patcher.rb +25 -3
  625. data/lib/ddtrace/pin.rb +5 -9
  626. data/lib/ddtrace/profiling.rb +107 -0
  627. data/lib/ddtrace/profiling/backtrace_location.rb +32 -0
  628. data/lib/ddtrace/profiling/buffer.rb +41 -0
  629. data/lib/ddtrace/profiling/collectors/stack.rb +262 -0
  630. data/lib/ddtrace/profiling/encoding/profile.rb +37 -0
  631. data/lib/ddtrace/profiling/event.rb +13 -0
  632. data/lib/ddtrace/profiling/events/stack.rb +102 -0
  633. data/lib/ddtrace/profiling/exporter.rb +23 -0
  634. data/lib/ddtrace/profiling/ext/cpu.rb +67 -0
  635. data/lib/ddtrace/profiling/ext/cthread.rb +155 -0
  636. data/lib/ddtrace/profiling/ext/forking.rb +97 -0
  637. data/lib/ddtrace/profiling/flush.rb +43 -0
  638. data/lib/ddtrace/profiling/pprof/builder.rb +119 -0
  639. data/lib/ddtrace/profiling/pprof/converter.rb +89 -0
  640. data/lib/ddtrace/profiling/pprof/message_set.rb +12 -0
  641. data/lib/ddtrace/profiling/pprof/payload.rb +18 -0
  642. data/lib/ddtrace/profiling/pprof/pprof.proto +212 -0
  643. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +81 -0
  644. data/lib/ddtrace/profiling/pprof/stack_sample.rb +106 -0
  645. data/lib/ddtrace/profiling/pprof/string_table.rb +10 -0
  646. data/lib/ddtrace/profiling/pprof/template.rb +118 -0
  647. data/lib/ddtrace/profiling/preload.rb +3 -0
  648. data/lib/ddtrace/profiling/profiler.rb +30 -0
  649. data/lib/ddtrace/profiling/recorder.rb +95 -0
  650. data/lib/ddtrace/profiling/scheduler.rb +116 -0
  651. data/lib/ddtrace/profiling/tasks/setup.rb +77 -0
  652. data/lib/ddtrace/profiling/transport/client.rb +12 -0
  653. data/lib/ddtrace/profiling/transport/http.rb +118 -0
  654. data/lib/ddtrace/profiling/transport/http/api.rb +43 -0
  655. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +100 -0
  656. data/lib/ddtrace/profiling/transport/http/api/instance.rb +36 -0
  657. data/lib/ddtrace/profiling/transport/http/api/spec.rb +40 -0
  658. data/lib/ddtrace/profiling/transport/http/builder.rb +28 -0
  659. data/lib/ddtrace/profiling/transport/http/client.rb +33 -0
  660. data/lib/ddtrace/profiling/transport/http/response.rb +21 -0
  661. data/lib/ddtrace/profiling/transport/io.rb +30 -0
  662. data/lib/ddtrace/profiling/transport/io/client.rb +27 -0
  663. data/lib/ddtrace/profiling/transport/io/response.rb +16 -0
  664. data/lib/ddtrace/profiling/transport/parcel.rb +17 -0
  665. data/lib/ddtrace/profiling/transport/request.rb +15 -0
  666. data/lib/ddtrace/profiling/transport/response.rb +8 -0
  667. data/lib/ddtrace/runtime/metrics.rb +20 -14
  668. data/lib/ddtrace/sampling/rule_sampler.rb +3 -9
  669. data/lib/ddtrace/span.rb +17 -6
  670. data/lib/ddtrace/sync_writer.rb +9 -5
  671. data/lib/ddtrace/tasks/exec.rb +48 -0
  672. data/lib/ddtrace/tasks/help.rb +14 -0
  673. data/lib/ddtrace/tracer.rb +46 -48
  674. data/lib/ddtrace/transport/http.rb +47 -35
  675. data/lib/ddtrace/transport/http/adapters/net.rb +18 -4
  676. data/lib/ddtrace/transport/http/builder.rb +5 -1
  677. data/lib/ddtrace/transport/http/env.rb +8 -0
  678. data/lib/ddtrace/transport/http/statistics.rb +2 -2
  679. data/lib/ddtrace/transport/http/traces.rb +3 -3
  680. data/lib/ddtrace/transport/io/client.rb +15 -8
  681. data/lib/ddtrace/transport/io/response.rb +1 -3
  682. data/lib/ddtrace/transport/io/traces.rb +7 -1
  683. data/lib/ddtrace/transport/parcel.rb +4 -0
  684. data/lib/ddtrace/transport/traces.rb +15 -1
  685. data/lib/ddtrace/utils/compression.rb +27 -0
  686. data/lib/ddtrace/utils/forking.rb +1 -1
  687. data/lib/ddtrace/utils/object_set.rb +39 -0
  688. data/lib/ddtrace/utils/only_once.rb +40 -0
  689. data/lib/ddtrace/utils/sequence.rb +17 -0
  690. data/lib/ddtrace/utils/string_table.rb +45 -0
  691. data/lib/ddtrace/utils/time.rb +8 -3
  692. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  693. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  694. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  695. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  696. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  697. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  698. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  699. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  700. data/lib/ddtrace/version.rb +14 -2
  701. data/lib/ddtrace/workers.rb +1 -1
  702. data/lib/ddtrace/workers/async.rb +5 -4
  703. data/lib/ddtrace/workers/loop.rb +28 -5
  704. data/lib/ddtrace/workers/polling.rb +11 -5
  705. data/lib/ddtrace/workers/queue.rb +2 -1
  706. data/lib/ddtrace/workers/runtime_metrics.rb +14 -1
  707. data/lib/ddtrace/workers/trace_writer.rb +4 -6
  708. data/lib/ddtrace/writer.rb +10 -4
  709. data/tasks/update_appraisal_gemfiles.rake +36 -0
  710. metadata +576 -38
  711. data/.circleci/images/primary/Dockerfile-2.0.0 +0 -73
  712. data/integration/images/ruby/2.0/Dockerfile +0 -54
  713. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -28
  714. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -17
  715. data/lib/ddtrace/contrib/cucumber/formatter.rb +0 -98
  716. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +0 -24
  717. data/lib/ddtrace/contrib/cucumber/integration.rb +0 -45
  718. data/lib/ddtrace/contrib/cucumber/patcher.rb +0 -23
  719. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -28
  720. data/lib/ddtrace/contrib/rspec/example.rb +0 -75
  721. data/lib/ddtrace/contrib/rspec/ext.rb +0 -16
  722. data/lib/ddtrace/contrib/rspec/integration.rb +0 -46
  723. data/lib/ddtrace/environment.rb +0 -41
  724. data/lib/ddtrace/ext/ci.rb +0 -297
  725. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  726. data/lib/ddtrace/runtime/class_count.rb +0 -17
  727. data/lib/ddtrace/runtime/container.rb +0 -73
  728. data/lib/ddtrace/runtime/gc.rb +0 -16
  729. data/lib/ddtrace/runtime/identity.rb +0 -40
  730. data/lib/ddtrace/runtime/object_space.rb +0 -19
  731. data/lib/ddtrace/runtime/socket.rb +0 -14
  732. data/lib/ddtrace/runtime/thread_count.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 765c02ea39ee5565a83c8b818f27c7dae9c4bc1a0f0dfeed188484e726b80d8a
4
- data.tar.gz: 64abc2a7449f61b4f6b121a8ca3f9e4fc2a3a515842ed737d57b5441ab631300
3
+ metadata.gz: fce3db0a7021902cfad28b09efb4781e6a1462c90735532b844366ed5a1dcb95
4
+ data.tar.gz: 202ddf5a16aa72777ec7c5cd70affa62229e11e733feb7d79a3cace17cb21ced
5
5
  SHA512:
6
- metadata.gz: 3b4b88acb48e5a1cf9b6f52280d06ecc8d1ab0b1ba3e09c1649d4b5e42a2d2fac9056be0d4c339c4fac3bc944401b2e142a6f4f99f01e16d6c3f9f52cce6b305
7
- data.tar.gz: 5564b83b67f0b0ae9df7b93f038b4e25fe53de21aea237695b0522e6af06eb22cd957444ab8d05c7d9b4a597676ece5fa6da7cb9a5080a0f372056b6927d1596
6
+ metadata.gz: 822cd2d9cbc80bd26964fe284ddc59600cc1fea8b36414a9654d595146a97035a8f929d66305046c10222cb749da63c0a9bf9aae09fa601bc727752a86d99941
7
+ data.tar.gz: 3cd593083e32fb0ae0e794cd043e49a80eb22e167833824632a1e809bcf78a014e5d35466e5342232c9a903e43cf0a2a9f38d134ed5148d6d6b8693c5ddbd062
data/.circleci/config.yml CHANGED
@@ -21,6 +21,15 @@ test_containers:
21
21
  description: Jit enabled?
22
22
  type: boolean
23
23
  default: false
24
+ resource_class_to_use:
25
+ description: Resource class to use
26
+ type: string
27
+ default: medium
28
+ edge:
29
+ description: Use latest version of dependencies during testing
30
+ type: boolean
31
+ default: false
32
+ resource_class: <<parameters.resource_class_to_use>>
24
33
  - &container_base_environment
25
34
  BUNDLE_GEMFILE: /app/Gemfile
26
35
  JRUBY_OPTS: --dev # Faster JVM startup: https://github.com/jruby/jruby/wiki/Improving-startup-time#use-the---dev-flag
@@ -46,7 +55,8 @@ test_containers:
46
55
  - POSTGRES_DB=postgres
47
56
  - &postgres_port 5432
48
57
  - &container_presto
49
- image: prestosql/presto
58
+ # Move to trinodb/trino after https://github.com/treasure-data/presto-client-ruby/issues/64 is resolved.
59
+ image: starburstdata/presto:332-e.9
50
60
  - &presto_port 8080
51
61
  - &container_mysql
52
62
  image: mysql:5.6
@@ -75,15 +85,39 @@ test_containers:
75
85
  - DD_API_KEY=invalid_key_but_this_is_fine
76
86
  - &agent_port 8126
77
87
 
78
- step_init_bundle_checksum: &step_init_bundle_checksum
88
+ check_exact_bundle_cache_hit: &check_exact_bundle_cache_hit
89
+ run:
90
+ name: Check if we restored an exact cache of gems that this job requires
91
+ # CircleCI doesn't tell us if we had a perfect cache match or partial match.
92
+ # To accomplish such check, we save `bundle_checksum` alongside the cached
93
+ # gems. After gems are restored, we compare the restored `bundle_checksum`'s
94
+ # content with the current commit's `bundle_checksum`.
95
+ #
96
+ # Because we are using a "soft" approach to our gemset lock files, we allow
97
+ # for partial matches to lock files until a new release goes out.
98
+ # This means that we might install slightly out of date gems, instead of the
99
+ # very latest versions from RubyGems until the next gemset update commit.
100
+ command: |
101
+ ! cmp -s .circleci/bundle_checksum /usr/local/bundle/bundle_checksum
102
+ echo "export CI_BUNDLE_CACHE_HIT=$?" >> $BASH_ENV
103
+ save_bundle_checksum: &save_bundle_checksum
79
104
  run:
80
- name: Initialize bundle cache key
105
+ name: Save current bundle checksum alongside cached gems
81
106
  command: |
82
- touch .circleci/bundle_checksum
107
+ if [ "$CI_BUNDLE_CACHE_HIT" != 1 ]; then
108
+ # Recompute gemfiles/*.lock checksum, as it might have changed.
109
+ cat Gemfile Appraisals gemfiles/*.gemfile.lock | md5sum > .circleci/bundle_checksum
110
+ fi
111
+ cp .circleci/bundle_checksum /usr/local/bundle/bundle_checksum
83
112
  step_bundle_install: &step_bundle_install
84
113
  run:
85
114
  name: Install gem dependencies
86
- command: bundle install
115
+ command: |
116
+ if [ "$CI_BUNDLE_CACHE_HIT" != 1 ]; then
117
+ bundle install
118
+ else
119
+ echo "All required gems were found in cache."
120
+ fi
87
121
  step_rubocop: &step_rubocop
88
122
  run:
89
123
  name: Delint with Rubocop
@@ -92,16 +126,25 @@ step_appraisal_install: &step_appraisal_install
92
126
  run:
93
127
  name: Install Appraisal gems
94
128
  command: |
95
- bundle exec appraisal clean # Ensure we fetch the latest version of dependencies
96
- bundle exec appraisal install
129
+ if [ "$CI_BUNDLE_CACHE_HIT" != 1 ]; then
130
+ bundle exec appraisal install
131
+ else
132
+ echo "All required gems were found in cache."
133
+ fi
134
+ step_appraisal_update: &step_appraisal_update
135
+ run:
136
+ name: Update Appraisal gems
137
+ command: | # Remove all generated gemfiles and lockfiles, resolve, and install dependencies again
138
+ bundle exec appraisal update
97
139
  step_compute_bundle_checksum: &step_compute_bundle_checksum
98
140
  run:
99
141
  name: Compute bundle checksum
142
+ # This checksum leaves some leeway for changes to Gemfile.lock, as
143
+ # we have a "soft" approach to committing gemset changes until release, given
144
+ # updating the gemset lock files produces extremely large commits.
100
145
  command: |
101
- # JRuby: Ensure files exist when Appraisal generates no output
102
- mkdir gemfiles
103
- touch gemfiles/_.gemfile.lock
104
- cat Gemfile.lock gemfiles/*.gemfile.lock > .circleci/bundle_checksum
146
+ bundle lock # Create Gemfile.lock
147
+ cat Gemfile Appraisals gemfiles/*.gemfile.lock | md5sum > .circleci/bundle_checksum
105
148
  step_run_all_tests: &step_run_all_tests
106
149
  run:
107
150
  name: Run tests
@@ -133,33 +176,38 @@ orbs:
133
176
  jobs:
134
177
  build:
135
178
  <<: *test_job_default
179
+ resource_class: <<parameters.resource_class_to_use>>
136
180
  steps:
137
181
  - checkout
138
182
  - restore_cache:
139
183
  keys:
140
184
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
185
+ - *step_compute_bundle_checksum
141
186
  - restore_cache:
142
187
  keys:
143
- - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum "Gemfile" }}-{{ checksum "Appraisals" }}-{{ checksum "ddtrace.gemspec" }}
188
+ - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum ".circleci/bundle_checksum" }}
144
189
  - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-
145
190
  - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}
146
- - *step_init_bundle_checksum
147
- - restore_cache:
148
- keys:
149
- - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
191
+ - *check_exact_bundle_cache_hit
150
192
  - *step_bundle_install
151
- - *step_appraisal_install
152
- - *step_compute_bundle_checksum
193
+ - when:
194
+ condition:
195
+ equal: [ << parameters.edge >>, true ]
196
+ steps:
197
+ - *step_appraisal_update # Run on latest version of all gems we integrate with
198
+ - when:
199
+ condition:
200
+ not:
201
+ equal: [ << parameters.edge >>, true ]
202
+ steps:
203
+ - *step_appraisal_install # Run on a stable set of gems we integrate with
204
+ - *save_bundle_checksum
153
205
  - save_cache:
154
206
  key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
155
207
  paths:
156
208
  - /app
157
209
  - save_cache:
158
- key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
159
- paths:
160
- - /usr/local/bundle
161
- - save_cache:
162
- key: bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum "Gemfile" }}-{{ checksum "Appraisals" }}-{{ checksum "ddtrace.gemspec" }}-{{ checksum ".circleci/bundle_checksum" }}'
210
+ key: bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum ".circleci/bundle_checksum" }}
163
211
  paths:
164
212
  - /usr/local/bundle
165
213
  build_and_test_integration:
@@ -209,7 +257,7 @@ orbs:
209
257
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
210
258
  - restore_cache:
211
259
  keys:
212
- - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
260
+ - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum ".circleci/bundle_checksum" }}
213
261
  - run:
214
262
  name: Set coverage report directory
215
263
  command: |
@@ -252,7 +300,7 @@ orbs:
252
300
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
253
301
  - restore_cache:
254
302
  keys:
255
- - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
303
+ - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum ".circleci/bundle_checksum" }}
256
304
  - run:
257
305
  name: Run Benchmark
258
306
  command: bundle exec appraisal rails5-postgres-sidekiq ruby benchmarks/sidekiq_test.rb 2>&1 1> /dev/null | tee benchmark_results.csv
@@ -267,7 +315,7 @@ orbs:
267
315
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
268
316
  - restore_cache:
269
317
  keys:
270
- - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
318
+ - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum ".circleci/bundle_checksum" }}
271
319
  - *step_rubocop
272
320
  coverage:
273
321
  <<: *test_job_default
@@ -277,7 +325,7 @@ orbs:
277
325
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
278
326
  - restore_cache:
279
327
  keys:
280
- - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
328
+ - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum ".circleci/bundle_checksum" }}
281
329
  - attach_workspace:
282
330
  at: /tmp/workspace
283
331
  - run:
@@ -300,7 +348,7 @@ orbs:
300
348
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
301
349
  - restore_cache:
302
350
  keys:
303
- - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
351
+ - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum ".circleci/bundle_checksum" }}
304
352
  - attach_workspace:
305
353
  at: /tmp/workspace
306
354
  - run:
@@ -338,7 +386,7 @@ jobs:
338
386
  docker:
339
387
  - environment:
340
388
  *container_base_environment
341
- image: marcotc/docker-library:ddtrace_rb_2_5_6
389
+ image: ivoanjo/docker-library:ddtrace_rb_2_5_9
342
390
  steps:
343
391
  - checkout
344
392
  - run:
@@ -359,7 +407,7 @@ jobs:
359
407
  docker:
360
408
  - environment:
361
409
  *container_base_environment
362
- image: marcotc/docker-library:ddtrace_rb_2_5_6
410
+ image: ivoanjo/docker-library:ddtrace_rb_2_5_9
363
411
  steps:
364
412
  - run:
365
413
  name: Check if this commit author has publishing credentials
@@ -384,60 +432,69 @@ jobs:
384
432
  echo PRE=$PRE
385
433
  sed lib/ddtrace/version.rb -i -e "s/^\([\t ]*PRE\) *=*/\1 = \'${PRE}\' #/g"
386
434
  - run:
387
- name: Upload prereleas Gem and rebuild index
388
- command: S3_DIR=prerelease bundle exec rake release:gem
435
+ name: Upload prerelease Gem and rebuild index
436
+ # This was bumped from prerelease to prerelease-v2 to avoid the issue documented in
437
+ # https://github.com/DataDog/dd-trace-rb/pull/1358
438
+ command: S3_DIR=prerelease-v2 bundle exec rake release:gem
389
439
  - store_artifacts:
390
440
  path: pkg/
391
441
  destination: gem
392
442
 
393
443
  job_configuration:
394
444
  # MRI
395
- - &config-2_0
396
- <<: *filters_all_branches_and_tags
397
- ruby_version: '2.0'
398
- image: palazzem/docker-library:ddtrace_rb_2_0_0
399
445
  - &config-2_1
400
446
  <<: *filters_all_branches_and_tags
401
447
  ruby_version: '2.1'
402
- image: palazzem/docker-library:ddtrace_rb_2_1_10
448
+ image: ivoanjo/docker-library:ddtrace_rb_2_1_10
403
449
  - &config-2_2
404
450
  <<: *filters_all_branches_and_tags
405
451
  ruby_version: '2.2'
406
- image: palazzem/docker-library:ddtrace_rb_2_2_10
452
+ image: ivoanjo/docker-library:ddtrace_rb_2_2_10
407
453
  - &config-2_3
408
454
  <<: *filters_all_branches_and_tags
409
455
  ruby_version: '2.3'
410
- image: palazzem/docker-library:ddtrace_rb_2_3_8
456
+ image: ivoanjo/docker-library:ddtrace_rb_2_3_8
411
457
  - &config-2_4
412
458
  <<: *filters_all_branches_and_tags
413
459
  ruby_version: '2.4'
414
- image: palazzem/docker-library:ddtrace_rb_2_4_6
460
+ image: ivoanjo/docker-library:ddtrace_rb_2_4_10
415
461
  - &config-2_5
416
462
  <<: *filters_all_branches_and_tags
417
463
  ruby_version: '2.5'
418
- image: marcotc/docker-library:ddtrace_rb_2_5_6
464
+ image: ivoanjo/docker-library:ddtrace_rb_2_5_9
419
465
  - &config-2_6
420
466
  <<: *filters_all_branches_and_tags
421
467
  ruby_version: '2.6'
422
- image: marcotc/docker-library:ddtrace_rb_2_6_4
468
+ image: ivoanjo/docker-library:ddtrace_rb_2_6_7
423
469
  - &config-2_7
424
470
  <<: *filters_all_branches_and_tags
425
471
  ruby_version: '2.7'
426
- image: marcotc/docker-library:ddtrace_rb_2_7_0
472
+ image: ivoanjo/docker-library:ddtrace_rb_2_7_3
427
473
  - &config-3_0
428
474
  <<: *filters_all_branches_and_tags
429
475
  ruby_version: '3.0'
430
- image: marcotc/docker-library:ddtrace_rb_3.0.0
476
+ image: ivoanjo/docker-library:ddtrace_rb_3_0_1
431
477
  - &config-3_0-jit
432
478
  <<: *filters_all_branches_and_tags
433
479
  ruby_version: '3.0'
434
- image: marcotc/docker-library:ddtrace_rb_3.0.0
480
+ image: ivoanjo/docker-library:ddtrace_rb_3_0_1
435
481
  jit: true
436
482
  # JRuby
437
- - &config-jruby-9_2
483
+ - &config-jruby-9_2_0_0 # Oldest supported version
438
484
  <<: *filters_all_branches_and_tags
439
- ruby_version: 'jruby-9.2'
440
- image: marcotc/docker-library:ddtrace_rb_jruby_9_2
485
+ ruby_version: 'jruby-9.2.0.0'
486
+ image: ivoanjo/docker-library:ddtrace_rb_jruby_9_2_0_0
487
+ resource_class_to_use: medium+
488
+ - &config-jruby-9_2-latest # More recent release of 9.2
489
+ <<: *filters_all_branches_and_tags
490
+ ruby_version: 'jruby-9.2-latest'
491
+ image: ivoanjo/docker-library:ddtrace_rb_jruby_9_2_18_0
492
+ # TruffleRuby
493
+ - &config-truffleruby-21_0_0
494
+ <<: *filters_all_branches_and_tags
495
+ ruby_version: 'truffleruby-21.0.0'
496
+ image: ivoanjo/docker-library:ddtrace_rb_truffleruby_21_0_0
497
+ resource_class_to_use: medium+
441
498
 
442
499
  workflows:
443
500
  version: 2
@@ -452,7 +509,6 @@ workflows:
452
509
  <<: *config-2_7
453
510
  name: coverage
454
511
  requires:
455
- - test-2.0
456
512
  - test-2.1
457
513
  - test-2.2
458
514
  - test-2.3
@@ -461,7 +517,9 @@ workflows:
461
517
  - test-2.6
462
518
  - test-2.7
463
519
  - test-3.0
464
- - test-jruby-9.2
520
+ - test-jruby-9.2.0.0
521
+ - test-jruby-9.2-latest
522
+ # soon™️ - test-truffleruby-21.0.0
465
523
  - orb/changelog:
466
524
  <<: *config-2_7
467
525
  name: changelog
@@ -471,44 +529,39 @@ workflows:
471
529
  branches:
472
530
  only: /bump_to_version_.*/
473
531
  # Integration
474
- - orb/build_and_test_integration:
475
- name: build_and_test_integration-2.0
476
- integration_apps: 'ruby rack'
477
- ruby_version: '2.0'
478
- <<: *filters_all_branches_and_tags
479
532
  - orb/build_and_test_integration:
480
533
  name: build_and_test_integration-2.1
481
- integration_apps: 'ruby rack'
534
+ integration_apps: 'ruby rack rspec'
482
535
  ruby_version: '2.1'
483
536
  <<: *filters_all_branches_and_tags
484
537
  - orb/build_and_test_integration:
485
538
  name: build_and_test_integration-2.2
486
- integration_apps: 'ruby rack'
539
+ integration_apps: 'ruby rack rspec'
487
540
  ruby_version: '2.2'
488
541
  <<: *filters_all_branches_and_tags
489
542
  - orb/build_and_test_integration:
490
543
  name: build_and_test_integration-2.3
491
- integration_apps: 'ruby rack rails-five'
544
+ integration_apps: 'ruby rack rails-five rspec'
492
545
  ruby_version: '2.3'
493
546
  <<: *filters_all_branches_and_tags
494
547
  - orb/build_and_test_integration:
495
548
  name: build_and_test_integration-2.4
496
- integration_apps: 'ruby rack rails-five'
549
+ integration_apps: 'ruby rack rails-five rspec'
497
550
  ruby_version: '2.4'
498
551
  <<: *filters_all_branches_and_tags
499
552
  - orb/build_and_test_integration:
500
553
  name: build_and_test_integration-2.5
501
- integration_apps: 'ruby rack rails-five'
554
+ integration_apps: 'ruby rack rails-five rspec'
502
555
  ruby_version: '2.5'
503
556
  <<: *filters_all_branches_and_tags
504
557
  - orb/build_and_test_integration:
505
558
  name: build_and_test_integration-2.6
506
- integration_apps: 'ruby rack rails-five'
559
+ integration_apps: 'ruby rack rails-five rspec'
507
560
  ruby_version: '2.6'
508
561
  <<: *filters_all_branches_and_tags
509
562
  - orb/build_and_test_integration:
510
563
  name: build_and_test_integration-2.7
511
- integration_apps: 'ruby rack rails-five'
564
+ integration_apps: 'ruby rack rails-five rspec'
512
565
  ruby_version: '2.7'
513
566
  <<: *filters_all_branches_and_tags
514
567
  - orb/build_and_test_integration:
@@ -518,14 +571,6 @@ workflows:
518
571
  ruby_version: '3.0'
519
572
  <<: *filters_all_branches_and_tags
520
573
  # MRI
521
- - orb/build:
522
- <<: *config-2_0
523
- name: build-2.0
524
- - orb/test:
525
- <<: *config-2_0
526
- name: test-2.0
527
- requires:
528
- - build-2.0
529
574
  - orb/build:
530
575
  <<: *config-2_1
531
576
  name: build-2.1
@@ -605,19 +650,36 @@ workflows:
605
650
  - build-3.0-jit
606
651
  # JRuby
607
652
  - orb/build:
608
- <<: *config-jruby-9_2
609
- name: build-jruby-9.2
653
+ <<: *config-jruby-9_2_0_0
654
+ name: build-jruby-9.2.0.0
610
655
  - orb/test:
611
- <<: *config-jruby-9_2
612
- name: test-jruby-9.2
656
+ <<: *config-jruby-9_2_0_0
657
+ name: test-jruby-9.2.0.0
613
658
  requires:
614
- - build-jruby-9.2
659
+ - build-jruby-9.2.0.0
660
+ - orb/build:
661
+ <<: *config-jruby-9_2-latest
662
+ name: build-jruby-9.2-latest
663
+ - orb/test:
664
+ <<: *config-jruby-9_2-latest
665
+ name: test-jruby-9.2-latest
666
+ requires:
667
+ - build-jruby-9.2-latest
668
+ # TruffleRuby
669
+ # soon™️
670
+ # - orb/build:
671
+ # <<: *config-truffleruby-21_0_0
672
+ # name: build-truffleruby-21.0.0
673
+ # - orb/test:
674
+ # <<: *config-truffleruby-21_0_0
675
+ # name: test-truffleruby-21.0.0
676
+ # requires:
677
+ # - build-truffleruby-21.0.0
615
678
  # Release jobs
616
679
  - "deploy prerelease Gem":
617
680
  <<: *filters_all_branches_and_tags
618
681
  requires:
619
682
  - lint
620
- - test-2.0
621
683
  - test-2.1
622
684
  - test-2.2
623
685
  - test-2.3
@@ -627,12 +689,13 @@ workflows:
627
689
  - test-2.7
628
690
  - test-3.0
629
691
  - test-3.0-jit
630
- - test-jruby-9.2
692
+ - test-jruby-9.2.0.0
693
+ - test-jruby-9.2-latest
694
+ # soon™️ - test-truffleruby-21.0.0
631
695
  - "deploy release":
632
696
  <<: *filters_only_release_tags
633
697
  requires:
634
698
  - lint
635
- - test-2.0
636
699
  - test-2.1
637
700
  - test-2.2
638
701
  - test-2.3
@@ -642,4 +705,165 @@ workflows:
642
705
  - test-2.7
643
706
  - test-3.0
644
707
  - test-3.0-jit
645
- - test-jruby-9.2
708
+ - test-jruby-9.2.0.0
709
+ - test-jruby-9.2-latest
710
+ # soon™️ - test-truffleruby-21.0.0
711
+ # This workflow runs the same `build` and `test` jobs as above on a schedule.
712
+ # Tasks related to housekeeping (e.g. prerelease) are not relevant
713
+ # to this daily check, as they are not expected to be impacted here.
714
+ edge:
715
+ triggers:
716
+ - schedule:
717
+ cron: "0 0 * * 1-5" # Every weekday
718
+ filters:
719
+ branches:
720
+ only:
721
+ - master
722
+ jobs:
723
+ # Integration
724
+ - orb/build_and_test_integration:
725
+ name: build_and_test_integration-2.1
726
+ integration_apps: 'ruby rack rspec'
727
+ ruby_version: '2.1'
728
+ <<: *filters_all_branches_and_tags
729
+ - orb/build_and_test_integration:
730
+ name: build_and_test_integration-2.2
731
+ integration_apps: 'ruby rack rspec'
732
+ ruby_version: '2.2'
733
+ <<: *filters_all_branches_and_tags
734
+ - orb/build_and_test_integration:
735
+ name: build_and_test_integration-2.3
736
+ integration_apps: 'ruby rack rails-five rspec'
737
+ ruby_version: '2.3'
738
+ <<: *filters_all_branches_and_tags
739
+ - orb/build_and_test_integration:
740
+ name: build_and_test_integration-2.4
741
+ integration_apps: 'ruby rack rails-five rspec'
742
+ ruby_version: '2.4'
743
+ <<: *filters_all_branches_and_tags
744
+ - orb/build_and_test_integration:
745
+ name: build_and_test_integration-2.5
746
+ integration_apps: 'ruby rack rails-five rspec'
747
+ ruby_version: '2.5'
748
+ <<: *filters_all_branches_and_tags
749
+ - orb/build_and_test_integration:
750
+ name: build_and_test_integration-2.6
751
+ integration_apps: 'ruby rack rails-five rspec'
752
+ ruby_version: '2.6'
753
+ <<: *filters_all_branches_and_tags
754
+ - orb/build_and_test_integration:
755
+ name: build_and_test_integration-2.7
756
+ integration_apps: 'ruby rack rails-five rspec'
757
+ ruby_version: '2.7'
758
+ <<: *filters_all_branches_and_tags
759
+ - orb/build_and_test_integration:
760
+ name: build_and_test_integration-3.0
761
+ # TODO: Get Rack & Rails apps working with Ruby 3.0
762
+ integration_apps: 'ruby'
763
+ ruby_version: '3.0'
764
+ <<: *filters_all_branches_and_tags
765
+ # MRI
766
+ - orb/build:
767
+ <<: *config-2_1
768
+ name: build-2.1
769
+ - orb/test:
770
+ <<: *config-2_1
771
+ name: test-2.1
772
+ requires:
773
+ - build-2.1
774
+ - orb/build:
775
+ <<: *config-2_2
776
+ name: build-2.2
777
+ - orb/test:
778
+ <<: *config-2_2
779
+ name: test-2.2
780
+ requires:
781
+ - build-2.2
782
+ - orb/build:
783
+ <<: *config-2_3
784
+ name: build-2.3
785
+ - orb/test:
786
+ <<: *config-2_3
787
+ name: test-2.3
788
+ requires:
789
+ - build-2.3
790
+ - orb/benchmark:
791
+ <<: *config-2_3
792
+ name: benchmark-2.3
793
+ requires:
794
+ - build-2.3
795
+ - orb/build:
796
+ <<: *config-2_4
797
+ name: build-2.4
798
+ - orb/test:
799
+ <<: *config-2_4
800
+ name: test-2.4
801
+ requires:
802
+ - build-2.4
803
+ - orb/build:
804
+ <<: *config-2_5
805
+ name: build-2.5
806
+ - orb/test:
807
+ <<: *config-2_5
808
+ name: test-2.5
809
+ requires:
810
+ - build-2.5
811
+ - orb/build:
812
+ <<: *config-2_6
813
+ name: build-2.6
814
+ - orb/test:
815
+ <<: *config-2_6
816
+ name: test-2.6
817
+ requires:
818
+ - build-2.6
819
+ - orb/build:
820
+ <<: *config-2_7
821
+ name: build-2.7
822
+ - orb/test:
823
+ <<: *config-2_7
824
+ name: test-2.7
825
+ requires:
826
+ - build-2.7
827
+ - orb/build:
828
+ <<: *config-3_0
829
+ name: build-3.0
830
+ - orb/test:
831
+ <<: *config-3_0
832
+ name: test-3.0
833
+ requires:
834
+ - build-3.0
835
+ - orb/build:
836
+ <<: *config-3_0-jit
837
+ name: build-3.0-jit
838
+ - orb/test:
839
+ <<: *config-3_0-jit
840
+ name: test-3.0-jit
841
+ requires:
842
+ - build-3.0-jit
843
+ # JRuby
844
+ - orb/build:
845
+ <<: *config-jruby-9_2_0_0
846
+ name: build-jruby-9.2.0.0
847
+ - orb/test:
848
+ <<: *config-jruby-9_2_0_0
849
+ name: test-jruby-9.2.0.0
850
+ requires:
851
+ - build-jruby-9.2.0.0
852
+ - orb/build:
853
+ <<: *config-jruby-9_2-latest
854
+ name: build-jruby-9.2-latest
855
+ - orb/test:
856
+ <<: *config-jruby-9_2-latest
857
+ name: test-jruby-9.2-latest
858
+ requires:
859
+ - build-jruby-9.2-latest
860
+ # TruffleRuby
861
+ # soon™️
862
+ # - orb/build:
863
+ # <<: *config-truffleruby-21_0_0
864
+ # name: build-truffleruby-21.0.0
865
+ # - orb/test:
866
+ # <<: *config-truffleruby-21_0_0
867
+ # name: test-truffleruby-21.0.0
868
+ # requires:
869
+ # - build-truffleruby-21.0.0