ddtrace 0.48.0 → 0.49.0

Sign up to get free protection for your applications and to get access to all the features.
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