ddtrace 0.48.0 → 0.49.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 (421) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +209 -2
  3. data/.dockerignore +0 -1
  4. data/.gitignore +2 -1
  5. data/.rubocop.yml +13 -1
  6. data/Appraisals +10 -0
  7. data/CHANGELOG.md +32 -0
  8. data/Rakefile +10 -0
  9. data/benchmarks/profiler_sample_loop.rb +69 -0
  10. data/ddtrace.gemspec +1 -1
  11. data/docker-compose.yml +0 -24
  12. data/docs/GettingStarted.md +1 -1
  13. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +79 -0
  14. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +1518 -0
  15. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +35 -0
  16. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +157 -0
  17. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +34 -0
  18. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +153 -0
  19. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +35 -0
  20. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +174 -0
  21. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +35 -0
  22. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +206 -0
  23. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +35 -0
  24. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +206 -0
  25. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +40 -0
  26. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +271 -0
  27. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +40 -0
  28. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +271 -0
  29. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +41 -0
  30. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +273 -0
  31. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +41 -0
  32. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +273 -0
  33. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +42 -0
  34. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +279 -0
  35. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +40 -0
  36. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +290 -0
  37. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +40 -0
  38. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +290 -0
  39. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +41 -0
  40. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +292 -0
  41. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +41 -0
  42. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +297 -0
  43. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +40 -0
  44. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +287 -0
  45. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +40 -0
  46. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +287 -0
  47. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +41 -0
  48. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +289 -0
  49. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +41 -0
  50. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +289 -0
  51. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +42 -0
  52. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +295 -0
  53. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +36 -0
  54. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +180 -0
  55. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +36 -0
  56. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +180 -0
  57. data/gemfiles/jruby_9.2.11.1_contrib.gemfile +79 -0
  58. data/gemfiles/jruby_9.2.11.1_contrib.gemfile.lock +1518 -0
  59. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile +35 -0
  60. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile.lock +157 -0
  61. data/gemfiles/jruby_9.2.11.1_core_old.gemfile +34 -0
  62. data/gemfiles/jruby_9.2.11.1_core_old.gemfile.lock +153 -0
  63. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile +35 -0
  64. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile.lock +174 -0
  65. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile +35 -0
  66. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile.lock +206 -0
  67. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile +35 -0
  68. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile.lock +206 -0
  69. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile +40 -0
  70. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile.lock +271 -0
  71. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile +40 -0
  72. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile.lock +271 -0
  73. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile +41 -0
  74. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile.lock +273 -0
  75. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile +41 -0
  76. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile.lock +273 -0
  77. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile +42 -0
  78. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile.lock +279 -0
  79. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile +40 -0
  80. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile.lock +290 -0
  81. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile +40 -0
  82. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile.lock +290 -0
  83. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile +41 -0
  84. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile.lock +292 -0
  85. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile +41 -0
  86. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile.lock +297 -0
  87. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile +40 -0
  88. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile.lock +287 -0
  89. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile +40 -0
  90. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile.lock +287 -0
  91. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile +41 -0
  92. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile.lock +289 -0
  93. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile +41 -0
  94. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile.lock +289 -0
  95. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile +42 -0
  96. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile.lock +295 -0
  97. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile +36 -0
  98. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile.lock +180 -0
  99. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile +36 -0
  100. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile.lock +180 -0
  101. data/gemfiles/ruby_2.0.0_contrib_old.gemfile +64 -0
  102. data/gemfiles/ruby_2.0.0_contrib_old.gemfile.lock +290 -0
  103. data/gemfiles/ruby_2.0.0_core_old.gemfile +33 -0
  104. data/gemfiles/ruby_2.0.0_core_old.gemfile.lock +118 -0
  105. data/gemfiles/ruby_2.0.0_rails30_postgres.gemfile +39 -0
  106. data/gemfiles/ruby_2.0.0_rails30_postgres.gemfile.lock +196 -0
  107. data/gemfiles/ruby_2.0.0_rails30_postgres_sidekiq.gemfile +40 -0
  108. data/gemfiles/ruby_2.0.0_rails30_postgres_sidekiq.gemfile.lock +205 -0
  109. data/gemfiles/ruby_2.0.0_rails32_mysql2.gemfile +43 -0
  110. data/gemfiles/ruby_2.0.0_rails32_mysql2.gemfile.lock +217 -0
  111. data/gemfiles/ruby_2.0.0_rails32_postgres.gemfile +39 -0
  112. data/gemfiles/ruby_2.0.0_rails32_postgres.gemfile.lock +204 -0
  113. data/gemfiles/ruby_2.0.0_rails32_postgres_redis.gemfile +41 -0
  114. data/gemfiles/ruby_2.0.0_rails32_postgres_redis.gemfile.lock +223 -0
  115. data/gemfiles/ruby_2.0.0_rails32_postgres_sidekiq.gemfile +40 -0
  116. data/gemfiles/ruby_2.0.0_rails32_postgres_sidekiq.gemfile.lock +213 -0
  117. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +66 -0
  118. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +305 -0
  119. data/gemfiles/ruby_2.1.10_core_old.gemfile +33 -0
  120. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +118 -0
  121. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +39 -0
  122. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +196 -0
  123. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +40 -0
  124. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +205 -0
  125. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +42 -0
  126. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +215 -0
  127. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +39 -0
  128. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +204 -0
  129. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +41 -0
  130. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +223 -0
  131. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +40 -0
  132. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +213 -0
  133. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +38 -0
  134. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +218 -0
  135. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +38 -0
  136. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +218 -0
  137. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +40 -0
  138. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +237 -0
  139. data/gemfiles/ruby_2.2.10_contrib.gemfile +73 -0
  140. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +1450 -0
  141. data/gemfiles/ruby_2.2.10_core_old.gemfile +33 -0
  142. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +118 -0
  143. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +39 -0
  144. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +196 -0
  145. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +40 -0
  146. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +205 -0
  147. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +41 -0
  148. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +212 -0
  149. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +39 -0
  150. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +204 -0
  151. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +41 -0
  152. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +223 -0
  153. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +40 -0
  154. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +213 -0
  155. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +38 -0
  156. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +218 -0
  157. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +38 -0
  158. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +218 -0
  159. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +40 -0
  160. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +237 -0
  161. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +40 -0
  162. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +229 -0
  163. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +38 -0
  164. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +234 -0
  165. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +38 -0
  166. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +234 -0
  167. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +39 -0
  168. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +236 -0
  169. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +39 -0
  170. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +236 -0
  171. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +40 -0
  172. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +245 -0
  173. data/gemfiles/ruby_2.3.8_contrib.gemfile +73 -0
  174. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +1459 -0
  175. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +34 -0
  176. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +127 -0
  177. data/gemfiles/ruby_2.3.8_core_old.gemfile +33 -0
  178. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +123 -0
  179. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +34 -0
  180. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +144 -0
  181. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +34 -0
  182. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +174 -0
  183. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +39 -0
  184. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +201 -0
  185. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +40 -0
  186. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +210 -0
  187. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +41 -0
  188. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +217 -0
  189. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +39 -0
  190. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +209 -0
  191. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +41 -0
  192. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +228 -0
  193. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +40 -0
  194. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +218 -0
  195. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +38 -0
  196. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +223 -0
  197. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +38 -0
  198. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +223 -0
  199. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +40 -0
  200. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +242 -0
  201. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +40 -0
  202. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +234 -0
  203. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +37 -0
  204. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +234 -0
  205. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +37 -0
  206. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +234 -0
  207. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +38 -0
  208. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +236 -0
  209. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +38 -0
  210. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +236 -0
  211. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +39 -0
  212. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +245 -0
  213. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +35 -0
  214. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +150 -0
  215. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +35 -0
  216. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +150 -0
  217. data/gemfiles/ruby_2.4.6_contrib.gemfile +78 -0
  218. data/gemfiles/ruby_2.4.6_contrib.gemfile.lock +1513 -0
  219. data/gemfiles/ruby_2.4.6_contrib_old.gemfile +38 -0
  220. data/gemfiles/ruby_2.4.6_contrib_old.gemfile.lock +155 -0
  221. data/gemfiles/ruby_2.4.6_core_old.gemfile +37 -0
  222. data/gemfiles/ruby_2.4.6_core_old.gemfile.lock +151 -0
  223. data/gemfiles/ruby_2.4.6_cucumber3.gemfile +38 -0
  224. data/gemfiles/ruby_2.4.6_cucumber3.gemfile.lock +172 -0
  225. data/gemfiles/ruby_2.4.6_cucumber4.gemfile +38 -0
  226. data/gemfiles/ruby_2.4.6_cucumber4.gemfile.lock +202 -0
  227. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile +41 -0
  228. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile.lock +262 -0
  229. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile +41 -0
  230. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile.lock +262 -0
  231. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile +42 -0
  232. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile.lock +264 -0
  233. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile +42 -0
  234. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile.lock +264 -0
  235. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile +43 -0
  236. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile.lock +273 -0
  237. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile +39 -0
  238. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile.lock +178 -0
  239. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile +39 -0
  240. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile.lock +178 -0
  241. data/gemfiles/ruby_2.5.6_contrib.gemfile +83 -0
  242. data/gemfiles/ruby_2.5.6_contrib.gemfile.lock +1526 -0
  243. data/gemfiles/ruby_2.5.6_contrib_old.gemfile +39 -0
  244. data/gemfiles/ruby_2.5.6_contrib_old.gemfile.lock +165 -0
  245. data/gemfiles/ruby_2.5.6_core_old.gemfile +38 -0
  246. data/gemfiles/ruby_2.5.6_core_old.gemfile.lock +161 -0
  247. data/gemfiles/ruby_2.5.6_cucumber3.gemfile +39 -0
  248. data/gemfiles/ruby_2.5.6_cucumber3.gemfile.lock +182 -0
  249. data/gemfiles/ruby_2.5.6_cucumber4.gemfile +39 -0
  250. data/gemfiles/ruby_2.5.6_cucumber4.gemfile.lock +214 -0
  251. data/gemfiles/ruby_2.5.6_cucumber5.gemfile +39 -0
  252. data/gemfiles/ruby_2.5.6_cucumber5.gemfile.lock +214 -0
  253. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile +44 -0
  254. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile.lock +276 -0
  255. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile +44 -0
  256. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile.lock +276 -0
  257. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile +45 -0
  258. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile.lock +278 -0
  259. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile +45 -0
  260. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile.lock +278 -0
  261. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile +46 -0
  262. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile.lock +284 -0
  263. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile +44 -0
  264. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile.lock +295 -0
  265. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile +44 -0
  266. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile.lock +295 -0
  267. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile +45 -0
  268. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile.lock +297 -0
  269. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile +45 -0
  270. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile.lock +302 -0
  271. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile +44 -0
  272. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile.lock +292 -0
  273. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile +44 -0
  274. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile.lock +292 -0
  275. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile +45 -0
  276. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile.lock +294 -0
  277. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile +45 -0
  278. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile.lock +294 -0
  279. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile +46 -0
  280. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile.lock +300 -0
  281. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile +40 -0
  282. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile.lock +188 -0
  283. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile +40 -0
  284. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile.lock +188 -0
  285. data/gemfiles/ruby_2.6.4_contrib.gemfile +79 -0
  286. data/gemfiles/ruby_2.6.4_contrib.gemfile.lock +1524 -0
  287. data/gemfiles/ruby_2.6.4_contrib_old.gemfile +39 -0
  288. data/gemfiles/ruby_2.6.4_contrib_old.gemfile.lock +167 -0
  289. data/gemfiles/ruby_2.6.4_core_old.gemfile +38 -0
  290. data/gemfiles/ruby_2.6.4_core_old.gemfile.lock +163 -0
  291. data/gemfiles/ruby_2.6.4_cucumber3.gemfile +39 -0
  292. data/gemfiles/ruby_2.6.4_cucumber3.gemfile.lock +184 -0
  293. data/gemfiles/ruby_2.6.4_cucumber4.gemfile +39 -0
  294. data/gemfiles/ruby_2.6.4_cucumber4.gemfile.lock +216 -0
  295. data/gemfiles/ruby_2.6.4_cucumber5.gemfile +39 -0
  296. data/gemfiles/ruby_2.6.4_cucumber5.gemfile.lock +216 -0
  297. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile +42 -0
  298. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile.lock +276 -0
  299. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile +42 -0
  300. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile.lock +276 -0
  301. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile +43 -0
  302. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile.lock +278 -0
  303. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile +43 -0
  304. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile.lock +278 -0
  305. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile +44 -0
  306. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile.lock +284 -0
  307. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile +42 -0
  308. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile.lock +295 -0
  309. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile +42 -0
  310. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile.lock +295 -0
  311. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile +43 -0
  312. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile.lock +297 -0
  313. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile +43 -0
  314. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile.lock +302 -0
  315. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile +42 -0
  316. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile.lock +292 -0
  317. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile +42 -0
  318. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile.lock +292 -0
  319. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile +43 -0
  320. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile.lock +294 -0
  321. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile +43 -0
  322. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile.lock +294 -0
  323. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile +44 -0
  324. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile.lock +300 -0
  325. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile +40 -0
  326. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile.lock +190 -0
  327. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile +40 -0
  328. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile.lock +190 -0
  329. data/gemfiles/ruby_2.7.0_contrib.gemfile +78 -0
  330. data/gemfiles/ruby_2.7.0_contrib.gemfile.lock +1523 -0
  331. data/gemfiles/ruby_2.7.0_contrib_old.gemfile +39 -0
  332. data/gemfiles/ruby_2.7.0_contrib_old.gemfile.lock +167 -0
  333. data/gemfiles/ruby_2.7.0_core_old.gemfile +38 -0
  334. data/gemfiles/ruby_2.7.0_core_old.gemfile.lock +163 -0
  335. data/gemfiles/ruby_2.7.0_cucumber3.gemfile +39 -0
  336. data/gemfiles/ruby_2.7.0_cucumber3.gemfile.lock +184 -0
  337. data/gemfiles/ruby_2.7.0_cucumber4.gemfile +39 -0
  338. data/gemfiles/ruby_2.7.0_cucumber4.gemfile.lock +216 -0
  339. data/gemfiles/ruby_2.7.0_cucumber5.gemfile +39 -0
  340. data/gemfiles/ruby_2.7.0_cucumber5.gemfile.lock +216 -0
  341. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile +42 -0
  342. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +276 -0
  343. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +42 -0
  344. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +276 -0
  345. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile +44 -0
  346. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile.lock +295 -0
  347. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile +44 -0
  348. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile.lock +295 -0
  349. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile +44 -0
  350. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile.lock +284 -0
  351. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile +42 -0
  352. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +295 -0
  353. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile +42 -0
  354. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +295 -0
  355. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile +43 -0
  356. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +297 -0
  357. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile +43 -0
  358. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile.lock +302 -0
  359. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile +42 -0
  360. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +292 -0
  361. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +42 -0
  362. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +292 -0
  363. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile +44 -0
  364. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile.lock +311 -0
  365. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile +44 -0
  366. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile.lock +311 -0
  367. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile +44 -0
  368. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile.lock +300 -0
  369. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile +40 -0
  370. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +190 -0
  371. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile +40 -0
  372. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +190 -0
  373. data/gemfiles/ruby_3.0.0_contrib.gemfile +77 -0
  374. data/gemfiles/ruby_3.0.0_contrib.gemfile.lock +1534 -0
  375. data/gemfiles/ruby_3.0.0_core_old.gemfile +39 -0
  376. data/gemfiles/ruby_3.0.0_core_old.gemfile.lock +165 -0
  377. data/gemfiles/ruby_3.0.0_cucumber3.gemfile +40 -0
  378. data/gemfiles/ruby_3.0.0_cucumber3.gemfile.lock +186 -0
  379. data/gemfiles/ruby_3.0.0_cucumber4.gemfile +40 -0
  380. data/gemfiles/ruby_3.0.0_cucumber4.gemfile.lock +218 -0
  381. data/gemfiles/ruby_3.0.0_cucumber5.gemfile +40 -0
  382. data/gemfiles/ruby_3.0.0_cucumber5.gemfile.lock +218 -0
  383. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile +43 -0
  384. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile.lock +295 -0
  385. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile +43 -0
  386. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile.lock +295 -0
  387. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile +44 -0
  388. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile.lock +297 -0
  389. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile +44 -0
  390. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile.lock +302 -0
  391. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile +41 -0
  392. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile.lock +192 -0
  393. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile +41 -0
  394. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile.lock +192 -0
  395. data/lib/ddtrace/configuration/agent_settings_resolver.rb +241 -0
  396. data/lib/ddtrace/configuration/components.rb +22 -29
  397. data/lib/ddtrace/configuration/settings.rb +16 -6
  398. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -1
  399. data/lib/ddtrace/contrib/action_pack/utils.rb +1 -1
  400. data/lib/ddtrace/contrib/auto_instrument.rb +0 -1
  401. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +4 -0
  402. data/lib/ddtrace/error.rb +85 -9
  403. data/lib/ddtrace/ext/profiling.rb +1 -0
  404. data/lib/ddtrace/ext/transport.rb +1 -0
  405. data/lib/ddtrace/profiling.rb +73 -22
  406. data/lib/ddtrace/profiling/collectors/stack.rb +12 -6
  407. data/lib/ddtrace/profiling/ext/cpu.rb +0 -2
  408. data/lib/ddtrace/profiling/ext/cthread.rb +54 -31
  409. data/lib/ddtrace/profiling/profiler.rb +2 -0
  410. data/lib/ddtrace/profiling/recorder.rb +8 -0
  411. data/lib/ddtrace/profiling/scheduler.rb +32 -11
  412. data/lib/ddtrace/profiling/transport/http.rb +51 -55
  413. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +1 -0
  414. data/lib/ddtrace/runtime/container.rb +16 -8
  415. data/lib/ddtrace/tracer.rb +7 -28
  416. data/lib/ddtrace/transport/http.rb +36 -33
  417. data/lib/ddtrace/version.rb +13 -1
  418. data/lib/ddtrace/workers/loop.rb +13 -1
  419. data/lib/ddtrace/workers/trace_writer.rb +2 -5
  420. data/lib/ddtrace/writer.rb +4 -1
  421. metadata +393 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9418700e29312fa4efc67e04b7ff901950a5ee0d942cc7fe06a49adbf694f08a
4
- data.tar.gz: 348acc764a300c51c3e99b02001b0dc238775c6afd7b07fd3ee4c31758e1e906
3
+ metadata.gz: 0e85a4cb4edf7f4d545f54faf32eb97183a88e66c6726317239bd9e1f152005d
4
+ data.tar.gz: b76468765ea5ba2202e5650d14f320cd6ca16456eed4c5b301bcec81018e70ce
5
5
  SHA512:
6
- metadata.gz: f1cdbcdef68b68901a5737c3bfae8797709448a6db0b92ee2f1a7e59c64c6610bf327b1d847bd2cd0d18e651807d9c6cead347516f258f7f62169ca71315d7e1
7
- data.tar.gz: 4c9e69ff9418143fff7734c2fd7ae2973d230a58e5173e8a1a6e128733a5bdb3fda11874f63b87840fc7e60098c94c746dce7d527726166345e4ca1e4a4b95a2
6
+ metadata.gz: b3731205a2a8bbac1c1489154f3d48a1d120177f6e45f57cc0636b55c27c09552c0d9fc66b8220be648bb5ae4775e34515c0831c551cff13f9d4f7d5db6c648f
7
+ data.tar.gz: cbc68cfece89a9728770cd227a1184543c494c58669ba589c80523d497c57ecc3cf0ba1129b8699d5f7527483cf7d55764272f37b60277f4837e2be29a1c8c10
data/.circleci/config.yml CHANGED
@@ -25,6 +25,10 @@ test_containers:
25
25
  description: Resource class to use
26
26
  type: string
27
27
  default: medium
28
+ edge:
29
+ description: Use latest version of dependencies during testing
30
+ type: boolean
31
+ default: false
28
32
  - &container_base_environment
29
33
  BUNDLE_GEMFILE: /app/Gemfile
30
34
  JRUBY_OPTS: --dev # Faster JVM startup: https://github.com/jruby/jruby/wiki/Improving-startup-time#use-the---dev-flag
@@ -97,8 +101,27 @@ step_appraisal_install: &step_appraisal_install
97
101
  run:
98
102
  name: Install Appraisal gems
99
103
  command: |
100
- bundle exec appraisal clean # Ensure we fetch the latest version of dependencies
101
104
  bundle exec appraisal install
105
+ step_appraisal_update: &step_appraisal_update
106
+ run:
107
+ name: Update Appraisal gems
108
+ command: | # Remove all generated gemfiles and lockfiles, resolve, and install dependencies again
109
+ bundle exec appraisal update
110
+ ensure_lockfile_committed: &ensure_lockfile_committed
111
+ run:
112
+ name: Ensure Gem lock files are commited
113
+ command: |
114
+ CHANGED_FILES=$(git status gemfiles/ --porcelain)
115
+ if [[ $CHANGED_FILES ]]
116
+ then
117
+ >&2 echo "Gem lock files were modified or new lock files were created during"
118
+ >&2 echo "'bundle install' and 'bundle appraisal install' installation in CI."
119
+ >&2 echo "You need to check in those changes in your branch."
120
+ >&2 echo "Affected files:"
121
+ >&2 echo $CHANGED_FILES
122
+ >&2 GIT_PAGER=cat git diff HEAD
123
+ exit 1
124
+ fi
102
125
  step_compute_bundle_checksum: &step_compute_bundle_checksum
103
126
  run:
104
127
  name: Compute bundle checksum
@@ -154,7 +177,18 @@ orbs:
154
177
  keys:
155
178
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
156
179
  - *step_bundle_install
157
- - *step_appraisal_install
180
+ - when:
181
+ condition:
182
+ equal: [ << parameters.edge >>, true ]
183
+ steps:
184
+ - *step_appraisal_update # Run on latest version of all gems we integrate with
185
+ - when:
186
+ condition:
187
+ not:
188
+ equal: [ << parameters.edge >>, true ]
189
+ steps:
190
+ - *step_appraisal_install # Run on a stable set of gems we integrate with
191
+ - *ensure_lockfile_committed
158
192
  - *step_compute_bundle_checksum
159
193
  - save_cache:
160
194
  key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
@@ -685,3 +719,176 @@ workflows:
685
719
  - test-jruby-9.2.0.0
686
720
  - test-jruby-9.2-latest
687
721
  # soon™️ - test-truffleruby-21.0.0
722
+ # This workflow runs the same `build` and `test` jobs as above on a schedule.
723
+ # Tasks related to housekeeping (e.g. prerelease) are not relevant
724
+ # to this daily check, as they are not expected to be impacted here.
725
+ edge:
726
+ triggers:
727
+ - schedule:
728
+ cron: "0 0 * * 1-5" # Every weekday
729
+ filters:
730
+ branches:
731
+ only:
732
+ - master
733
+ jobs:
734
+ # Integration
735
+ - orb/build_and_test_integration:
736
+ name: build_and_test_integration-2.0
737
+ integration_apps: 'ruby rack'
738
+ ruby_version: '2.0'
739
+ <<: *filters_all_branches_and_tags
740
+ - orb/build_and_test_integration:
741
+ name: build_and_test_integration-2.1
742
+ integration_apps: 'ruby rack'
743
+ ruby_version: '2.1'
744
+ <<: *filters_all_branches_and_tags
745
+ - orb/build_and_test_integration:
746
+ name: build_and_test_integration-2.2
747
+ integration_apps: 'ruby rack'
748
+ ruby_version: '2.2'
749
+ <<: *filters_all_branches_and_tags
750
+ - orb/build_and_test_integration:
751
+ name: build_and_test_integration-2.3
752
+ integration_apps: 'ruby rack rails-five'
753
+ ruby_version: '2.3'
754
+ <<: *filters_all_branches_and_tags
755
+ - orb/build_and_test_integration:
756
+ name: build_and_test_integration-2.4
757
+ integration_apps: 'ruby rack rails-five'
758
+ ruby_version: '2.4'
759
+ <<: *filters_all_branches_and_tags
760
+ - orb/build_and_test_integration:
761
+ name: build_and_test_integration-2.5
762
+ integration_apps: 'ruby rack rails-five'
763
+ ruby_version: '2.5'
764
+ <<: *filters_all_branches_and_tags
765
+ - orb/build_and_test_integration:
766
+ name: build_and_test_integration-2.6
767
+ integration_apps: 'ruby rack rails-five'
768
+ ruby_version: '2.6'
769
+ <<: *filters_all_branches_and_tags
770
+ - orb/build_and_test_integration:
771
+ name: build_and_test_integration-2.7
772
+ integration_apps: 'ruby rack rails-five'
773
+ ruby_version: '2.7'
774
+ <<: *filters_all_branches_and_tags
775
+ - orb/build_and_test_integration:
776
+ name: build_and_test_integration-3.0
777
+ # TODO: Get Rack & Rails apps working with Ruby 3.0
778
+ integration_apps: 'ruby'
779
+ ruby_version: '3.0'
780
+ <<: *filters_all_branches_and_tags
781
+ # MRI
782
+ - orb/build:
783
+ <<: *config-2_0
784
+ name: build-2.0
785
+ edge: true
786
+ - orb/test:
787
+ <<: *config-2_0
788
+ name: test-2.0
789
+ requires:
790
+ - build-2.0
791
+ - orb/build:
792
+ <<: *config-2_1
793
+ name: build-2.1
794
+ - orb/test:
795
+ <<: *config-2_1
796
+ name: test-2.1
797
+ requires:
798
+ - build-2.1
799
+ - orb/build:
800
+ <<: *config-2_2
801
+ name: build-2.2
802
+ - orb/test:
803
+ <<: *config-2_2
804
+ name: test-2.2
805
+ requires:
806
+ - build-2.2
807
+ - orb/build:
808
+ <<: *config-2_3
809
+ name: build-2.3
810
+ - orb/test:
811
+ <<: *config-2_3
812
+ name: test-2.3
813
+ requires:
814
+ - build-2.3
815
+ - orb/benchmark:
816
+ <<: *config-2_3
817
+ name: benchmark-2.3
818
+ requires:
819
+ - build-2.3
820
+ - orb/build:
821
+ <<: *config-2_4
822
+ name: build-2.4
823
+ - orb/test:
824
+ <<: *config-2_4
825
+ name: test-2.4
826
+ requires:
827
+ - build-2.4
828
+ - orb/build:
829
+ <<: *config-2_5
830
+ name: build-2.5
831
+ - orb/test:
832
+ <<: *config-2_5
833
+ name: test-2.5
834
+ requires:
835
+ - build-2.5
836
+ - orb/build:
837
+ <<: *config-2_6
838
+ name: build-2.6
839
+ - orb/test:
840
+ <<: *config-2_6
841
+ name: test-2.6
842
+ requires:
843
+ - build-2.6
844
+ - orb/build:
845
+ <<: *config-2_7
846
+ name: build-2.7
847
+ - orb/test:
848
+ <<: *config-2_7
849
+ name: test-2.7
850
+ requires:
851
+ - build-2.7
852
+ - orb/build:
853
+ <<: *config-3_0
854
+ name: build-3.0
855
+ - orb/test:
856
+ <<: *config-3_0
857
+ name: test-3.0
858
+ requires:
859
+ - build-3.0
860
+ - orb/build:
861
+ <<: *config-3_0-jit
862
+ name: build-3.0-jit
863
+ - orb/test:
864
+ <<: *config-3_0-jit
865
+ name: test-3.0-jit
866
+ requires:
867
+ - build-3.0-jit
868
+ # JRuby
869
+ - orb/build:
870
+ <<: *config-jruby-9_2_0_0
871
+ name: build-jruby-9.2.0.0
872
+ - orb/test:
873
+ <<: *config-jruby-9_2_0_0
874
+ name: test-jruby-9.2.0.0
875
+ requires:
876
+ - build-jruby-9.2.0.0
877
+ - orb/build:
878
+ <<: *config-jruby-9_2-latest
879
+ name: build-jruby-9.2-latest
880
+ - orb/test:
881
+ <<: *config-jruby-9_2-latest
882
+ name: test-jruby-9.2-latest
883
+ requires:
884
+ - build-jruby-9.2-latest
885
+ # TruffleRuby
886
+ # soon™️
887
+ # - orb/build:
888
+ # <<: *config-truffleruby-21_0_0
889
+ # name: build-truffleruby-21.0.0
890
+ # - orb/test:
891
+ # <<: *config-truffleruby-21_0_0
892
+ # name: test-truffleruby-21.0.0
893
+ # requires:
894
+ # - build-truffleruby-21.0.0
data/.dockerignore CHANGED
@@ -1 +0,0 @@
1
- gemfiles/*
data/.gitignore CHANGED
@@ -55,7 +55,8 @@ build-iPhoneSimulator/
55
55
 
56
56
  # lock files
57
57
  Gemfile.lock
58
- gemfiles/*
59
58
 
60
59
  # bundle config
61
60
  gemfiles/.bundle
61
+ # Appraisal artifact file, always empty
62
+ gemfiles/_.gemfile.lock
data/.rubocop.yml CHANGED
@@ -5,7 +5,7 @@ require:
5
5
  - rubocop-rspec
6
6
 
7
7
  AllCops:
8
- TargetRubyVersion: 2.4 # Lowest version supported currently
8
+ TargetRubyVersion: 2.5 # Lowest version supported as of Rubocop 0.13.0
9
9
  Include:
10
10
  - 'lib/**/*.rb'
11
11
  - 'test/**/*.rb'
@@ -206,6 +206,14 @@ Style/CollectionCompact:
206
206
  Performance/RegexpMatch:
207
207
  Enabled: false
208
208
 
209
+ # Requires Ruby 2.5
210
+ Style/RedundantBegin:
211
+ Enabled: false
212
+
213
+ # Requires Ruby 2.5
214
+ Style/HashTransformKeys:
215
+ Enabled: false
216
+
209
217
  # Enforces negative/positive branching order,
210
218
  # which can hurt readability.
211
219
  Style/NegatedIfElseCondition:
@@ -231,6 +239,10 @@ RSpec/LeadingSubject:
231
239
  RSpec/ImplicitSubject:
232
240
  Enabled: false
233
241
 
242
+ # Enforces empty line after hook declaration.
243
+ RSpec/EmptyLineAfterHook:
244
+ Enabled: false
245
+
234
246
  # Enforces empty line after subject declaration.
235
247
  RSpec/EmptyLineAfterSubject:
236
248
  Enabled: false
data/Appraisals CHANGED
@@ -1417,3 +1417,13 @@ elsif Gem::Version.new('3.0.0') <= Gem::Version.new(RUBY_VERSION)
1417
1417
  gem 'dogstatsd-ruby', '~> 4'
1418
1418
  end
1419
1419
  end
1420
+
1421
+ ruby_runtime = if defined?(RUBY_ENGINE_VERSION)
1422
+ "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}"
1423
+ else
1424
+ "#{RUBY_ENGINE}-#{RUBY_VERSION}" # For Ruby < 2.3
1425
+ end
1426
+
1427
+ appraisals.each do |appraisal|
1428
+ appraisal.name.prepend("#{ruby_runtime}-")
1429
+ end
data/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.49.0] - 2021-05-12
6
+
7
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.49.0
8
+
9
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.48.0...v0.49.0
10
+
11
+ ### Added
12
+
13
+ - Add cause to error stack trace ([#1472][])
14
+
15
+ ### Changed
16
+
17
+ ### Fixed
18
+
19
+ - Prevent double initialization when auto instrumenting non-Rails applications ([#1497][])
20
+ - Support kwargs in Ruby 3.0 for sucker_punch ([#1495][]) ([@lloeki][])
21
+ - Fargate fixes and Container parsing for CGroups ([#1487][][#1480][][#1475][])
22
+ - Fix ActionPack instrumentation `#starts_with?` error([#1489][])
23
+ - Doc fixes ([#1473][]) ([@kexoth][])
24
+
25
+ ### Refactored
26
+
5
27
  ## [0.48.0] - 2021-04-19
6
28
 
7
29
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.48.0
@@ -2343,6 +2365,14 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2343
2365
  [#1456]: https://github.com/DataDog/dd-trace-rb/issues/1456
2344
2366
  [#1457]: https://github.com/DataDog/dd-trace-rb/issues/1457
2345
2367
  [#1461]: https://github.com/DataDog/dd-trace-rb/issues/1461
2368
+ [#1472]: https://github.com/DataDog/dd-trace-rb/issues/1472
2369
+ [#1473]: https://github.com/DataDog/dd-trace-rb/issues/1473
2370
+ [#1475]: https://github.com/DataDog/dd-trace-rb/issues/1475
2371
+ [#1480]: https://github.com/DataDog/dd-trace-rb/issues/1480
2372
+ [#1487]: https://github.com/DataDog/dd-trace-rb/issues/1487
2373
+ [#1489]: https://github.com/DataDog/dd-trace-rb/issues/1489
2374
+ [#1495]: https://github.com/DataDog/dd-trace-rb/issues/1495
2375
+ [#1497]: https://github.com/DataDog/dd-trace-rb/issues/1497
2346
2376
  [@AdrianLC]: https://github.com/AdrianLC
2347
2377
  [@Azure7111]: https://github.com/Azure7111
2348
2378
  [@BabyGroot]: https://github.com/BabyGroot
@@ -2411,10 +2441,12 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2411
2441
  [@jpaulgs]: https://github.com/jpaulgs
2412
2442
  [@jvalanen]: https://github.com/jvalanen
2413
2443
  [@kelvin-acosta]: https://github.com/kelvin-acosta
2444
+ [@kexoth]: https://github.com/kexoth
2414
2445
  [@kissrobber]: https://github.com/kissrobber
2415
2446
  [@kitop]: https://github.com/kitop
2416
2447
  [@letiesperon]: https://github.com/letiesperon
2417
2448
  [@link04]: https://github.com/link04
2449
+ [@lloeki]: https://github.com/lloeki
2418
2450
  [@mantrala]: https://github.com/mantrala
2419
2451
  [@matchbookmac]: https://github.com/matchbookmac
2420
2452
  [@mberlanda]: https://github.com/mberlanda
data/Rakefile CHANGED
@@ -19,6 +19,8 @@ namespace :spec do
19
19
  t.pattern = 'spec/**/*_spec.rb'
20
20
  t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,opentelemetry,auto_instrument}/**/*_spec.rb,'\
21
21
  ' spec/**/auto_instrument_spec.rb'
22
+ # Profiler is Ruby 2.1+ only
23
+ t.exclude_pattern += ',spec/**/profiling/**/*_spec.rb' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.1.0')
22
24
  t.rspec_opts = args.to_a.join(' ')
23
25
  end
24
26
 
@@ -191,6 +193,14 @@ def declare(*args)
191
193
  total_executors = ENV.key?('CIRCLE_NODE_TOTAL') ? ENV['CIRCLE_NODE_TOTAL'].to_i : nil
192
194
  current_executor = ENV.key?('CIRCLE_NODE_INDEX') ? ENV['CIRCLE_NODE_INDEX'].to_i : nil
193
195
 
196
+ ruby_runtime = if defined?(RUBY_ENGINE_VERSION)
197
+ "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}"
198
+ else
199
+ "#{RUBY_ENGINE}-#{RUBY_VERSION}" # For Ruby < 2.3
200
+ end
201
+
202
+ args[0].sub!(/^bundle exec appraisal /, "bundle exec appraisal #{ruby_runtime}-")
203
+
194
204
  if total_executors && current_executor && total_executors > 1
195
205
  @execution_count ||= 0
196
206
  @execution_count += 1
@@ -0,0 +1,69 @@
1
+ require 'benchmark/ips'
2
+ require 'ddtrace'
3
+ require 'pry'
4
+
5
+ # This benchmark measures the performance of the main stack sampling loop of the profiler
6
+
7
+ class ProfilerSampleLoopBenchmark
8
+ def create_profiler
9
+ Datadog.configure do |c|
10
+ # c.diagnostics.debug = true
11
+ c.profiling.enabled = true
12
+ c.tracer.transport_options = proc { |t| t.adapter :test }
13
+ end
14
+
15
+ # Stop background threads
16
+ Datadog.profiler.shutdown!
17
+
18
+ # Call collection directly
19
+ @stack_collector = Datadog.profiler.collectors.first
20
+ @recorder = @stack_collector.recorder
21
+ end
22
+
23
+ def thread_with_very_deep_stack(depth: 500)
24
+ deep_stack = proc do |n|
25
+ if n > 0
26
+ deep_stack.call(n - 1)
27
+ else
28
+ sleep
29
+ end
30
+ end
31
+
32
+ Thread.new { deep_stack.call(depth) }.tap { |t| t.name = "Deep stack #{depth}" }
33
+ end
34
+
35
+ def run_benchmark
36
+ Benchmark.ips do |x|
37
+ x.config(time: 10, warmup: 2)
38
+
39
+ x.report("stack collector #{ENV['CONFIG']}") do
40
+ @stack_collector.collect_and_wait
41
+ end
42
+
43
+ x.save! 'profiler-sample-loop-results'
44
+ x.compare!
45
+ end
46
+
47
+ @recorder.flush
48
+ end
49
+
50
+ def run_forever
51
+ while true
52
+ 1000.times { @stack_collector.collect_and_wait }
53
+ @recorder.flush
54
+ print '.'
55
+ end
56
+ end
57
+ end
58
+
59
+ puts "Current pid is #{Process.pid}"
60
+
61
+ ProfilerSampleLoopBenchmark.new.instance_exec do
62
+ create_profiler
63
+ 4.times { thread_with_very_deep_stack }
64
+ if ARGV.include?('--forever')
65
+ run_forever
66
+ else
67
+ run_benchmark
68
+ end
69
+ end