ddtrace 0.46.0 → 0.51.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,9 @@
1
+ module Datadog
2
+ module Vendor
3
+ module Multipart
4
+ module Post
5
+ VERSION = "2.1.1"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,32 @@
1
+ #--
2
+ # Copyright (c) 2007-2012 Nick Sieger.
3
+ # See the file README.txt included with the distribution for
4
+ # software license details.
5
+ #++
6
+
7
+ require 'net/http'
8
+ require 'stringio'
9
+ require 'cgi'
10
+ require 'ddtrace/vendor/multipart-post/multipart/post/parts'
11
+ require 'ddtrace/vendor/multipart-post/multipart/post/composite_read_io'
12
+ require 'ddtrace/vendor/multipart-post/multipart/post/multipartable'
13
+
14
+ module Datadog
15
+ module Vendor
16
+ module Net
17
+ class HTTP
18
+ class Put
19
+ class Multipart < ::Net::HTTP::Put
20
+ include ::Datadog::Vendor::Multipart::Post::Multipartable
21
+ end
22
+ end
23
+
24
+ class Post
25
+ class Multipart < ::Net::HTTP::Post
26
+ include ::Datadog::Vendor::Multipart::Post::Multipartable
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,12 +1,24 @@
1
1
  module Datadog
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 46
4
+ MINOR = 51
5
5
  PATCH = 0
6
6
  PRE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
9
9
 
10
- MINIMUM_RUBY_VERSION = '2.0.0'.freeze
10
+ MINIMUM_RUBY_VERSION = '2.1.0'.freeze
11
+
12
+ # Ruby 3.2 is not supported: Ruby 3.x support as implemented using *args
13
+ # needs ruby2_keywords to continue working, yet the scheduled removal of
14
+ # ruby2_keywords when Ruby 2.6 is EOL'd (i.e on Ruby 3.2 release) would
15
+ # leave the code with no option, other than to move to *args, **kwargs.
16
+ #
17
+ # See https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
18
+ #
19
+ # This constraint can only be removed when the dependency on ruby2_keywords is
20
+ # dropped. An allowance is nonetheless made to test prerelease versions.
21
+ # The version constraint may be bumped if the removal is postponed.
22
+ MAXIMUM_RUBY_VERSION = '3.2'.freeze
11
23
  end
12
24
  end
@@ -69,7 +69,7 @@ module Datadog
69
69
  return if @run
70
70
 
71
71
  @run = true
72
- Datadog.logger.debug("Starting thread in the process: #{Process.pid}")
72
+ Datadog.logger.debug { "Starting thread for: #{self}" }
73
73
  @worker = Thread.new { perform }
74
74
  @worker.name = self.class.name unless Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3')
75
75
 
@@ -12,13 +12,13 @@ module Datadog
12
12
  SHUTDOWN_TIMEOUT = 1
13
13
 
14
14
  def self.included(base)
15
- base.send(:prepend, PrependedMethods)
15
+ base.prepend(PrependedMethods)
16
16
  end
17
17
 
18
18
  # Methods that must be prepended
19
19
  module PrependedMethods
20
20
  def perform(*args)
21
- start { self.result = super(*args) } unless started?
21
+ start_async { self.result = super(*args) } unless started?
22
22
  end
23
23
  end
24
24
 
@@ -39,6 +39,7 @@ module Datadog
39
39
  return false unless running?
40
40
 
41
41
  @run_async = false
42
+ Datadog.logger.debug { "Forcibly terminating worker thread for: #{self}" }
42
43
  worker.terminate
43
44
  true
44
45
  end
@@ -105,7 +106,7 @@ module Datadog
105
106
  @worker ||= nil
106
107
  end
107
108
 
108
- def start(&block)
109
+ def start_async(&block)
109
110
  mutex.synchronize do
110
111
  return if running?
111
112
 
@@ -126,7 +127,7 @@ module Datadog
126
127
  @run_async = true
127
128
  @pid = Process.pid
128
129
  @error = nil
129
- Datadog.logger.debug("Starting thread in the process: #{Process.pid}")
130
+ Datadog.logger.debug { "Starting thread for: #{self}" }
130
131
 
131
132
  @worker = ::Thread.new do
132
133
  begin
@@ -8,7 +8,7 @@ module Datadog
8
8
  BASE_INTERVAL = 1
9
9
 
10
10
  def self.included(base)
11
- base.send(:prepend, PrependedMethods)
11
+ base.prepend(PrependedMethods)
12
12
  end
13
13
 
14
14
  # Methods that must be prepended
@@ -55,12 +55,29 @@ module Datadog
55
55
  @loop_wait_time ||= loop_base_interval
56
56
  end
57
57
 
58
+ def loop_wait_time=(value)
59
+ @loop_wait_time = value
60
+ end
61
+
62
+ def reset_loop_wait_time
63
+ self.loop_wait_time = loop_base_interval
64
+ end
65
+
66
+ # Should the loop "back off" when there's no work?
58
67
  def loop_back_off?
59
68
  false
60
69
  end
61
70
 
62
- def loop_back_off!(amount = nil)
63
- @loop_wait_time = amount || [loop_wait_time * BACK_OFF_RATIO, BACK_OFF_MAX].min
71
+ def loop_back_off!
72
+ self.loop_wait_time = [loop_wait_time * BACK_OFF_RATIO, BACK_OFF_MAX].min
73
+ end
74
+
75
+ # Should perform_loop just straight into work, or start by waiting?
76
+ #
77
+ # The use case is if we want to report some information (like profiles) from time to time, we may not want to
78
+ # report empty/zero/some residual value immediately when the worker starts.
79
+ def loop_wait_before_first_iteration?
80
+ false
64
81
  end
65
82
 
66
83
  protected
@@ -77,16 +94,22 @@ module Datadog
77
94
  private
78
95
 
79
96
  def perform_loop
80
- @run_loop = true
97
+ mutex.synchronize do
98
+ @run_loop = true
99
+
100
+ shutdown.wait(mutex, loop_wait_time) if loop_wait_before_first_iteration?
101
+ end
81
102
 
82
103
  loop do
83
104
  if work_pending?
105
+ # There's work to do...
84
106
  # Run the task
85
107
  yield
86
108
 
87
109
  # Reset the wait interval
88
- loop_back_off!(loop_base_interval)
110
+ reset_loop_wait_time if loop_back_off?
89
111
  elsif loop_back_off?
112
+ # There's no work to do...
90
113
  # Back off the wait interval a bit
91
114
  loop_back_off!
92
115
  end
@@ -8,9 +8,9 @@ module Datadog
8
8
  SHUTDOWN_TIMEOUT = 1
9
9
 
10
10
  def self.included(base)
11
- base.send(:include, Workers::IntervalLoop)
12
- base.send(:include, Workers::Async::Thread)
13
- base.send(:prepend, PrependedMethods)
11
+ base.include(Workers::IntervalLoop)
12
+ base.include(Workers::Async::Thread)
13
+ base.prepend(PrependedMethods)
14
14
  end
15
15
 
16
16
  # Methods that must be prepended
@@ -26,8 +26,14 @@ module Datadog
26
26
  stop_loop
27
27
  graceful = join(timeout)
28
28
 
29
- # If timeout and force stop...
30
- !graceful && force_stop ? terminate : graceful
29
+ if !graceful && force_stop
30
+ Datadog.logger.debug do
31
+ "Timeout while waiting for worker to finish gracefully, forcing termination for: #{self}"
32
+ end
33
+ terminate
34
+ else
35
+ graceful
36
+ end
31
37
  else
32
38
  false
33
39
  end
@@ -4,7 +4,7 @@ module Datadog
4
4
  # to which items can be queued then dequeued.
5
5
  module Queue
6
6
  def self.included(base)
7
- base.send(:prepend, PrependedMethods)
7
+ base.prepend(PrependedMethods)
8
8
  end
9
9
 
10
10
  # Methods that must be prepended
@@ -26,6 +26,7 @@ module Datadog
26
26
  buffer.shift
27
27
  end
28
28
 
29
+ # Are there more items to be processed next?
29
30
  def work_pending?
30
31
  !buffer.empty?
31
32
  end
@@ -20,7 +20,7 @@ module Datadog
20
20
  :metrics
21
21
 
22
22
  def initialize(options = {})
23
- @metrics = options.fetch(:metrics, Runtime::Metrics.new)
23
+ @metrics = options.fetch(:metrics) { Runtime::Metrics.new }
24
24
 
25
25
  # Workers::Async::Thread settings
26
26
  self.fork_policy = options.fetch(:fork_policy, Workers::Async::Thread::FORK_POLICY_STOP)
@@ -43,6 +43,19 @@ module Datadog
43
43
  metrics.associate_with_span(*args).tap { perform }
44
44
  end
45
45
 
46
+ # TODO: `close_metrics` is only needed because
47
+ # Datadog::Components directly manipulates the lifecycle of
48
+ # Runtime::Metrics.statsd instances.
49
+ # This should be avoided, as it prevents this class from
50
+ # ensuring correct resource decommission of its internal
51
+ # dependencies.
52
+ def stop(*args, close_metrics: true)
53
+ self.enabled = false
54
+ result = super(*args)
55
+ @metrics.close if close_metrics
56
+ result
57
+ end
58
+
46
59
  def_delegators \
47
60
  :metrics,
48
61
  :register_service
@@ -16,13 +16,10 @@ module Datadog
16
16
  def initialize(options = {})
17
17
  transport_options = options.fetch(:transport_options, {})
18
18
 
19
- transport_options = { on_build: transport_options } if transport_options.is_a?(Proc)
20
-
21
- transport_options[:hostname] = options[:hostname] if options.key?(:hostname)
22
- transport_options[:port] = options[:port] if options.key?(:port)
19
+ transport_options[:agent_settings] = options[:agent_settings] if options.key?(:agent_settings)
23
20
 
24
21
  @transport = options.fetch(:transport) do
25
- Transport::HTTP.default(transport_options)
22
+ Transport::HTTP.default(**transport_options)
26
23
  end
27
24
  end
28
25
 
@@ -63,7 +60,7 @@ module Datadog
63
60
  traces.each do |trace|
64
61
  next if trace.first.nil?
65
62
 
66
- hostname = Datadog::Runtime::Socket.hostname
63
+ hostname = Datadog::Core::Environment::Socket.hostname
67
64
  trace.first.set_tag(Ext::NET::TAG_HOSTNAME, hostname) unless hostname.nil? || hostname.empty?
68
65
  end
69
66
  end
@@ -145,6 +142,7 @@ module Datadog
145
142
  [buffer.pop]
146
143
  end
147
144
 
145
+ # Are there more traces to be processed next?
148
146
  def work_pending?
149
147
  !buffer.empty?
150
148
  end
@@ -1,17 +1,21 @@
1
1
  require 'json'
2
2
 
3
3
  require 'ddtrace/ext/net'
4
- require 'ddtrace/runtime/socket'
4
+ require 'datadog/core/environment/socket'
5
5
 
6
+ require 'ddtrace/configuration/agent_settings_resolver'
6
7
  require 'ddtrace/transport/http'
7
8
  require 'ddtrace/transport/io'
8
9
  require 'ddtrace/encoding'
9
10
  require 'ddtrace/workers'
10
11
  require 'ddtrace/diagnostics/environment_logger'
12
+ require 'ddtrace/utils/only_once'
11
13
 
12
14
  module Datadog
13
15
  # Processor that sends traces and metadata to the agent
14
16
  class Writer
17
+ DEPRECATION_WARN_ONLY_ONCE = Datadog::Utils::OnlyOnce.new
18
+
15
19
  attr_reader \
16
20
  :priority_sampler,
17
21
  :transport,
@@ -23,6 +27,8 @@ module Datadog
23
27
  @flush_interval = options.fetch(:flush_interval, Workers::AsyncTransport::DEFAULT_FLUSH_INTERVAL)
24
28
  transport_options = options.fetch(:transport_options, {})
25
29
 
30
+ transport_options[:agent_settings] = options[:agent_settings] if options.key?(:agent_settings)
31
+
26
32
  # priority sampling
27
33
  if options[:priority_sampler]
28
34
  @priority_sampler = options[:priority_sampler]
@@ -31,7 +37,7 @@ module Datadog
31
37
 
32
38
  # transport and buffers
33
39
  @transport = options.fetch(:transport) do
34
- Transport::HTTP.default(transport_options)
40
+ Transport::HTTP.default(**transport_options)
35
41
  end
36
42
 
37
43
  # handles the thread creation after an eventual fork
@@ -127,7 +133,7 @@ module Datadog
127
133
  # enqueue the trace for submission to the API
128
134
  def write(trace, services = nil)
129
135
  unless services.nil?
130
- Datadog::Patcher.do_once('Writer#write') do
136
+ DEPRECATION_WARN_ONLY_ONCE.run do
131
137
  Datadog.logger.warn(%(
132
138
  write: Writing services has been deprecated and no longer need to be provided.
133
139
  write(traces, services) can be updated to write(traces)
@@ -175,7 +181,7 @@ module Datadog
175
181
  traces.each do |trace|
176
182
  next if trace.first.nil?
177
183
 
178
- hostname = Datadog::Runtime::Socket.hostname
184
+ hostname = Datadog::Core::Environment::Socket.hostname
179
185
  trace.first.set_tag(Ext::NET::TAG_HOSTNAME, hostname) unless hostname.nil? || hostname.empty?
180
186
  end
181
187
  end
@@ -0,0 +1,36 @@
1
+ TRACER_VERSIONS = %w[
2
+ 2.1
3
+ 2.2
4
+ 2.3
5
+ 2.4
6
+ 2.5
7
+ 2.6
8
+ 2.7
9
+ 3.0
10
+ jruby-9.2.0.0
11
+ jruby-9.2-latest
12
+ ].freeze
13
+
14
+ desc 'Installs gems based on Appraisals and Gemfile changes, ' \
15
+ 'accepts list of tracer versions as task argument, defaults to all versions.'
16
+ task :install_appraisal_gemfiles do |_task, args|
17
+ tracer_version_arg = args.to_a
18
+ versions = tracer_version_arg.empty? ? TRACER_VERSIONS : tracer_version_arg
19
+
20
+ versions.each do |version|
21
+ sh "docker-compose run --rm tracer-#{version} /bin/bash -c " \
22
+ "'rm -f Gemfile.lock && bundle install && bundle exec appraisal install'"
23
+ end
24
+ end
25
+
26
+ desc 'Update ALL gems based on Appraisals and Gemfile changes, ' \
27
+ 'accepts list of tracer versions as task argument, defaults to all versions.'
28
+ task :update_appraisal_gemfiles do |_task, args|
29
+ tracer_version_arg = args.to_a
30
+ versions = tracer_version_arg.empty? ? TRACER_VERSIONS : tracer_version_arg
31
+
32
+ versions.each do |version|
33
+ sh "docker-compose run --rm tracer-#{version} /bin/bash -c " \
34
+ "'rm -f Gemfile.lock && bundle install && bundle exec appraisal update'"
35
+ end
36
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.46.0
4
+ version: 0.51.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
- autorequire:
9
- bindir: exe
8
+ autorequire:
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-03 00:00:00.000000000 Z
11
+ date: 2021-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -24,32 +24,51 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: ffi
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
27
41
  description: |
28
42
  ddtrace is Datadog’s tracing client for Ruby. It is used to trace requests
29
43
  as they flow across web servers, databases and microservices so that developers
30
44
  have great visiblity into bottlenecks and troublesome requests.
31
45
  email:
32
46
  - dev@datadoghq.com
33
- executables: []
47
+ executables:
48
+ - ddtracerb
34
49
  extensions: []
35
50
  extra_rdoc_files: []
36
51
  files:
37
52
  - ".circleci/config.yml"
38
- - ".circleci/images/primary/Dockerfile-2.0.0"
39
53
  - ".circleci/images/primary/Dockerfile-2.1.10"
40
54
  - ".circleci/images/primary/Dockerfile-2.2.10"
41
55
  - ".circleci/images/primary/Dockerfile-2.3.8"
42
- - ".circleci/images/primary/Dockerfile-2.4.6"
43
- - ".circleci/images/primary/Dockerfile-2.5.6"
44
- - ".circleci/images/primary/Dockerfile-2.6.4"
45
- - ".circleci/images/primary/Dockerfile-2.7.0"
46
- - ".circleci/images/primary/Dockerfile-3.0.0"
47
- - ".circleci/images/primary/Dockerfile-jruby-9.2"
56
+ - ".circleci/images/primary/Dockerfile-2.4.10"
57
+ - ".circleci/images/primary/Dockerfile-2.5.9"
58
+ - ".circleci/images/primary/Dockerfile-2.6.7"
59
+ - ".circleci/images/primary/Dockerfile-2.7.3"
60
+ - ".circleci/images/primary/Dockerfile-3.0.1"
61
+ - ".circleci/images/primary/Dockerfile-jruby-9.2-latest"
62
+ - ".circleci/images/primary/Dockerfile-jruby-9.2.0.0"
63
+ - ".circleci/images/primary/Dockerfile-truffleruby-21.1.0"
64
+ - ".dd-ci/ci-app-spec.json"
48
65
  - ".dockerignore"
49
66
  - ".env"
67
+ - ".gitattributes"
50
68
  - ".github/CODEOWNERS"
51
69
  - ".github/workflows/add-milestone-to-pull-requests.yml"
52
70
  - ".github/workflows/create-next-milestone.yml"
71
+ - ".github/workflows/test-head.yaml"
53
72
  - ".gitignore"
54
73
  - ".gitlab-ci.yml"
55
74
  - ".rspec"
@@ -62,17 +81,433 @@ files:
62
81
  - CONTRIBUTING.md
63
82
  - Gemfile
64
83
  - LICENSE
84
+ - LICENSE-3rdparty.csv
65
85
  - LICENSE.Apache
66
86
  - LICENSE.BSD3
67
87
  - NOTICE
68
88
  - README.md
69
89
  - Rakefile
90
+ - benchmarks/data/profiler-submission-marshal.gz
70
91
  - benchmarks/postgres_database.yml
92
+ - benchmarks/profiler_sample_loop.rb
93
+ - benchmarks/profiler_submission.rb
71
94
  - benchmarks/sidekiq_test.rb
95
+ - bin/ddtracerb
72
96
  - ddtrace.gemspec
73
97
  - docker-compose.yml
74
98
  - docs/DevelopmentGuide.md
75
99
  - docs/GettingStarted.md
100
+ - docs/ProfilingDevelopment.md
101
+ - gemfiles/jruby_9.2.0.0_contrib.gemfile
102
+ - gemfiles/jruby_9.2.0.0_contrib.gemfile.lock
103
+ - gemfiles/jruby_9.2.0.0_contrib_old.gemfile
104
+ - gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock
105
+ - gemfiles/jruby_9.2.0.0_core_old.gemfile
106
+ - gemfiles/jruby_9.2.0.0_core_old.gemfile.lock
107
+ - gemfiles/jruby_9.2.0.0_cucumber3.gemfile
108
+ - gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock
109
+ - gemfiles/jruby_9.2.0.0_cucumber4.gemfile
110
+ - gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock
111
+ - gemfiles/jruby_9.2.0.0_cucumber5.gemfile
112
+ - gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock
113
+ - gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile
114
+ - gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock
115
+ - gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile
116
+ - gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock
117
+ - gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile
118
+ - gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock
119
+ - gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile
120
+ - gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock
121
+ - gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile
122
+ - gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock
123
+ - gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile
124
+ - gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile.lock
125
+ - gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile
126
+ - gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock
127
+ - gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile
128
+ - gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock
129
+ - gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile
130
+ - gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock
131
+ - gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile
132
+ - gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock
133
+ - gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile
134
+ - gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile.lock
135
+ - gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile
136
+ - gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock
137
+ - gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile
138
+ - gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock
139
+ - gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile
140
+ - gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock
141
+ - gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile
142
+ - gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock
143
+ - gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile
144
+ - gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock
145
+ - gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile
146
+ - gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile.lock
147
+ - gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile
148
+ - gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock
149
+ - gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile
150
+ - gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock
151
+ - gemfiles/jruby_9.2.18.0_contrib.gemfile
152
+ - gemfiles/jruby_9.2.18.0_contrib.gemfile.lock
153
+ - gemfiles/jruby_9.2.18.0_contrib_old.gemfile
154
+ - gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock
155
+ - gemfiles/jruby_9.2.18.0_core_old.gemfile
156
+ - gemfiles/jruby_9.2.18.0_core_old.gemfile.lock
157
+ - gemfiles/jruby_9.2.18.0_cucumber3.gemfile
158
+ - gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock
159
+ - gemfiles/jruby_9.2.18.0_cucumber4.gemfile
160
+ - gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock
161
+ - gemfiles/jruby_9.2.18.0_cucumber5.gemfile
162
+ - gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock
163
+ - gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile
164
+ - gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock
165
+ - gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile
166
+ - gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock
167
+ - gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile
168
+ - gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock
169
+ - gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile
170
+ - gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock
171
+ - gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile
172
+ - gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock
173
+ - gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile
174
+ - gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock
175
+ - gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile
176
+ - gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock
177
+ - gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile
178
+ - gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock
179
+ - gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile
180
+ - gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock
181
+ - gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile
182
+ - gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock
183
+ - gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile
184
+ - gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock
185
+ - gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile
186
+ - gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock
187
+ - gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile
188
+ - gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock
189
+ - gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile
190
+ - gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock
191
+ - gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile
192
+ - gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock
193
+ - gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile
194
+ - gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock
195
+ - gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile
196
+ - gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock
197
+ - gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile
198
+ - gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock
199
+ - gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile
200
+ - gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock
201
+ - gemfiles/ruby_2.1.10_contrib_old.gemfile
202
+ - gemfiles/ruby_2.1.10_contrib_old.gemfile.lock
203
+ - gemfiles/ruby_2.1.10_core_old.gemfile
204
+ - gemfiles/ruby_2.1.10_core_old.gemfile.lock
205
+ - gemfiles/ruby_2.1.10_rails30_postgres.gemfile
206
+ - gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock
207
+ - gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile
208
+ - gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock
209
+ - gemfiles/ruby_2.1.10_rails32_mysql2.gemfile
210
+ - gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock
211
+ - gemfiles/ruby_2.1.10_rails32_postgres.gemfile
212
+ - gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock
213
+ - gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile
214
+ - gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock
215
+ - gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile
216
+ - gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock
217
+ - gemfiles/ruby_2.1.10_rails4_mysql2.gemfile
218
+ - gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock
219
+ - gemfiles/ruby_2.1.10_rails4_postgres.gemfile
220
+ - gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock
221
+ - gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile
222
+ - gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock
223
+ - gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile
224
+ - gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock
225
+ - gemfiles/ruby_2.2.10_contrib.gemfile
226
+ - gemfiles/ruby_2.2.10_contrib.gemfile.lock
227
+ - gemfiles/ruby_2.2.10_core_old.gemfile
228
+ - gemfiles/ruby_2.2.10_core_old.gemfile.lock
229
+ - gemfiles/ruby_2.2.10_rails30_postgres.gemfile
230
+ - gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock
231
+ - gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile
232
+ - gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock
233
+ - gemfiles/ruby_2.2.10_rails32_mysql2.gemfile
234
+ - gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock
235
+ - gemfiles/ruby_2.2.10_rails32_postgres.gemfile
236
+ - gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock
237
+ - gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile
238
+ - gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock
239
+ - gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile
240
+ - gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock
241
+ - gemfiles/ruby_2.2.10_rails4_mysql2.gemfile
242
+ - gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock
243
+ - gemfiles/ruby_2.2.10_rails4_postgres.gemfile
244
+ - gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock
245
+ - gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile
246
+ - gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock
247
+ - gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile
248
+ - gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock
249
+ - gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile
250
+ - gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock
251
+ - gemfiles/ruby_2.2.10_rails5_mysql2.gemfile
252
+ - gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock
253
+ - gemfiles/ruby_2.2.10_rails5_postgres.gemfile
254
+ - gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock
255
+ - gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile
256
+ - gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock
257
+ - gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile
258
+ - gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock
259
+ - gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile
260
+ - gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock
261
+ - gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile
262
+ - gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock
263
+ - gemfiles/ruby_2.3.8_contrib.gemfile
264
+ - gemfiles/ruby_2.3.8_contrib.gemfile.lock
265
+ - gemfiles/ruby_2.3.8_contrib_old.gemfile
266
+ - gemfiles/ruby_2.3.8_contrib_old.gemfile.lock
267
+ - gemfiles/ruby_2.3.8_core_old.gemfile
268
+ - gemfiles/ruby_2.3.8_core_old.gemfile.lock
269
+ - gemfiles/ruby_2.3.8_cucumber3.gemfile
270
+ - gemfiles/ruby_2.3.8_cucumber3.gemfile.lock
271
+ - gemfiles/ruby_2.3.8_cucumber4.gemfile
272
+ - gemfiles/ruby_2.3.8_cucumber4.gemfile.lock
273
+ - gemfiles/ruby_2.3.8_rails30_postgres.gemfile
274
+ - gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock
275
+ - gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile
276
+ - gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock
277
+ - gemfiles/ruby_2.3.8_rails32_mysql2.gemfile
278
+ - gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock
279
+ - gemfiles/ruby_2.3.8_rails32_postgres.gemfile
280
+ - gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock
281
+ - gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile
282
+ - gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock
283
+ - gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile
284
+ - gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock
285
+ - gemfiles/ruby_2.3.8_rails4_mysql2.gemfile
286
+ - gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock
287
+ - gemfiles/ruby_2.3.8_rails4_postgres.gemfile
288
+ - gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock
289
+ - gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile
290
+ - gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock
291
+ - gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile
292
+ - gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock
293
+ - gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile
294
+ - gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock
295
+ - gemfiles/ruby_2.3.8_rails5_mysql2.gemfile
296
+ - gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock
297
+ - gemfiles/ruby_2.3.8_rails5_postgres.gemfile
298
+ - gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock
299
+ - gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile
300
+ - gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock
301
+ - gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile
302
+ - gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock
303
+ - gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile
304
+ - gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock
305
+ - gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile
306
+ - gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock
307
+ - gemfiles/ruby_2.3.8_resque2_redis3.gemfile
308
+ - gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock
309
+ - gemfiles/ruby_2.3.8_resque2_redis4.gemfile
310
+ - gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock
311
+ - gemfiles/ruby_2.4.10_contrib.gemfile
312
+ - gemfiles/ruby_2.4.10_contrib.gemfile.lock
313
+ - gemfiles/ruby_2.4.10_contrib_old.gemfile
314
+ - gemfiles/ruby_2.4.10_contrib_old.gemfile.lock
315
+ - gemfiles/ruby_2.4.10_core_old.gemfile
316
+ - gemfiles/ruby_2.4.10_core_old.gemfile.lock
317
+ - gemfiles/ruby_2.4.10_cucumber3.gemfile
318
+ - gemfiles/ruby_2.4.10_cucumber3.gemfile.lock
319
+ - gemfiles/ruby_2.4.10_cucumber4.gemfile
320
+ - gemfiles/ruby_2.4.10_cucumber4.gemfile.lock
321
+ - gemfiles/ruby_2.4.10_rails5_mysql2.gemfile
322
+ - gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock
323
+ - gemfiles/ruby_2.4.10_rails5_postgres.gemfile
324
+ - gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock
325
+ - gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile
326
+ - gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock
327
+ - gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile
328
+ - gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock
329
+ - gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile
330
+ - gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock
331
+ - gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile
332
+ - gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock
333
+ - gemfiles/ruby_2.4.10_resque2_redis3.gemfile
334
+ - gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock
335
+ - gemfiles/ruby_2.4.10_resque2_redis4.gemfile
336
+ - gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock
337
+ - gemfiles/ruby_2.5.9_contrib.gemfile
338
+ - gemfiles/ruby_2.5.9_contrib.gemfile.lock
339
+ - gemfiles/ruby_2.5.9_contrib_old.gemfile
340
+ - gemfiles/ruby_2.5.9_contrib_old.gemfile.lock
341
+ - gemfiles/ruby_2.5.9_core_old.gemfile
342
+ - gemfiles/ruby_2.5.9_core_old.gemfile.lock
343
+ - gemfiles/ruby_2.5.9_cucumber3.gemfile
344
+ - gemfiles/ruby_2.5.9_cucumber3.gemfile.lock
345
+ - gemfiles/ruby_2.5.9_cucumber4.gemfile
346
+ - gemfiles/ruby_2.5.9_cucumber4.gemfile.lock
347
+ - gemfiles/ruby_2.5.9_cucumber5.gemfile
348
+ - gemfiles/ruby_2.5.9_cucumber5.gemfile.lock
349
+ - gemfiles/ruby_2.5.9_rails5_mysql2.gemfile
350
+ - gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock
351
+ - gemfiles/ruby_2.5.9_rails5_postgres.gemfile
352
+ - gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock
353
+ - gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile
354
+ - gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock
355
+ - gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile
356
+ - gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock
357
+ - gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile
358
+ - gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock
359
+ - gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile
360
+ - gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock
361
+ - gemfiles/ruby_2.5.9_rails61_mysql2.gemfile
362
+ - gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock
363
+ - gemfiles/ruby_2.5.9_rails61_postgres.gemfile
364
+ - gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock
365
+ - gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile
366
+ - gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock
367
+ - gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile
368
+ - gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock
369
+ - gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile
370
+ - gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock
371
+ - gemfiles/ruby_2.5.9_rails6_mysql2.gemfile
372
+ - gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock
373
+ - gemfiles/ruby_2.5.9_rails6_postgres.gemfile
374
+ - gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock
375
+ - gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile
376
+ - gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock
377
+ - gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile
378
+ - gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock
379
+ - gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile
380
+ - gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock
381
+ - gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile
382
+ - gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock
383
+ - gemfiles/ruby_2.5.9_resque2_redis3.gemfile
384
+ - gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock
385
+ - gemfiles/ruby_2.5.9_resque2_redis4.gemfile
386
+ - gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock
387
+ - gemfiles/ruby_2.6.7_contrib.gemfile
388
+ - gemfiles/ruby_2.6.7_contrib.gemfile.lock
389
+ - gemfiles/ruby_2.6.7_contrib_old.gemfile
390
+ - gemfiles/ruby_2.6.7_contrib_old.gemfile.lock
391
+ - gemfiles/ruby_2.6.7_core_old.gemfile
392
+ - gemfiles/ruby_2.6.7_core_old.gemfile.lock
393
+ - gemfiles/ruby_2.6.7_cucumber3.gemfile
394
+ - gemfiles/ruby_2.6.7_cucumber3.gemfile.lock
395
+ - gemfiles/ruby_2.6.7_cucumber4.gemfile
396
+ - gemfiles/ruby_2.6.7_cucumber4.gemfile.lock
397
+ - gemfiles/ruby_2.6.7_cucumber5.gemfile
398
+ - gemfiles/ruby_2.6.7_cucumber5.gemfile.lock
399
+ - gemfiles/ruby_2.6.7_rails5_mysql2.gemfile
400
+ - gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock
401
+ - gemfiles/ruby_2.6.7_rails5_postgres.gemfile
402
+ - gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock
403
+ - gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile
404
+ - gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock
405
+ - gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile
406
+ - gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock
407
+ - gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile
408
+ - gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock
409
+ - gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile
410
+ - gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock
411
+ - gemfiles/ruby_2.6.7_rails61_mysql2.gemfile
412
+ - gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock
413
+ - gemfiles/ruby_2.6.7_rails61_postgres.gemfile
414
+ - gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock
415
+ - gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile
416
+ - gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock
417
+ - gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile
418
+ - gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock
419
+ - gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile
420
+ - gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock
421
+ - gemfiles/ruby_2.6.7_rails6_mysql2.gemfile
422
+ - gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock
423
+ - gemfiles/ruby_2.6.7_rails6_postgres.gemfile
424
+ - gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock
425
+ - gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile
426
+ - gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock
427
+ - gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile
428
+ - gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock
429
+ - gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile
430
+ - gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock
431
+ - gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile
432
+ - gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock
433
+ - gemfiles/ruby_2.6.7_resque2_redis3.gemfile
434
+ - gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock
435
+ - gemfiles/ruby_2.6.7_resque2_redis4.gemfile
436
+ - gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock
437
+ - gemfiles/ruby_2.7.3_contrib.gemfile
438
+ - gemfiles/ruby_2.7.3_contrib.gemfile.lock
439
+ - gemfiles/ruby_2.7.3_contrib_old.gemfile
440
+ - gemfiles/ruby_2.7.3_contrib_old.gemfile.lock
441
+ - gemfiles/ruby_2.7.3_core_old.gemfile
442
+ - gemfiles/ruby_2.7.3_core_old.gemfile.lock
443
+ - gemfiles/ruby_2.7.3_cucumber3.gemfile
444
+ - gemfiles/ruby_2.7.3_cucumber3.gemfile.lock
445
+ - gemfiles/ruby_2.7.3_cucumber4.gemfile
446
+ - gemfiles/ruby_2.7.3_cucumber4.gemfile.lock
447
+ - gemfiles/ruby_2.7.3_cucumber5.gemfile
448
+ - gemfiles/ruby_2.7.3_cucumber5.gemfile.lock
449
+ - gemfiles/ruby_2.7.3_rails5_mysql2.gemfile
450
+ - gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock
451
+ - gemfiles/ruby_2.7.3_rails5_postgres.gemfile
452
+ - gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock
453
+ - gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile
454
+ - gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock
455
+ - gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile
456
+ - gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock
457
+ - gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile
458
+ - gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock
459
+ - gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile
460
+ - gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock
461
+ - gemfiles/ruby_2.7.3_rails61_mysql2.gemfile
462
+ - gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock
463
+ - gemfiles/ruby_2.7.3_rails61_postgres.gemfile
464
+ - gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock
465
+ - gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile
466
+ - gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock
467
+ - gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile
468
+ - gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock
469
+ - gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile
470
+ - gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock
471
+ - gemfiles/ruby_2.7.3_rails6_mysql2.gemfile
472
+ - gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock
473
+ - gemfiles/ruby_2.7.3_rails6_postgres.gemfile
474
+ - gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock
475
+ - gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile
476
+ - gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock
477
+ - gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile
478
+ - gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock
479
+ - gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile
480
+ - gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock
481
+ - gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile
482
+ - gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock
483
+ - gemfiles/ruby_2.7.3_resque2_redis3.gemfile
484
+ - gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock
485
+ - gemfiles/ruby_2.7.3_resque2_redis4.gemfile
486
+ - gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock
487
+ - gemfiles/ruby_3.0.1_contrib.gemfile
488
+ - gemfiles/ruby_3.0.1_contrib.gemfile.lock
489
+ - gemfiles/ruby_3.0.1_core_old.gemfile
490
+ - gemfiles/ruby_3.0.1_core_old.gemfile.lock
491
+ - gemfiles/ruby_3.0.1_cucumber3.gemfile
492
+ - gemfiles/ruby_3.0.1_cucumber3.gemfile.lock
493
+ - gemfiles/ruby_3.0.1_cucumber4.gemfile
494
+ - gemfiles/ruby_3.0.1_cucumber4.gemfile.lock
495
+ - gemfiles/ruby_3.0.1_cucumber5.gemfile
496
+ - gemfiles/ruby_3.0.1_cucumber5.gemfile.lock
497
+ - gemfiles/ruby_3.0.1_rails61_mysql2.gemfile
498
+ - gemfiles/ruby_3.0.1_rails61_mysql2.gemfile.lock
499
+ - gemfiles/ruby_3.0.1_rails61_postgres.gemfile
500
+ - gemfiles/ruby_3.0.1_rails61_postgres.gemfile.lock
501
+ - gemfiles/ruby_3.0.1_rails61_postgres_redis.gemfile
502
+ - gemfiles/ruby_3.0.1_rails61_postgres_redis.gemfile.lock
503
+ - gemfiles/ruby_3.0.1_rails61_postgres_sidekiq.gemfile
504
+ - gemfiles/ruby_3.0.1_rails61_postgres_sidekiq.gemfile.lock
505
+ - gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile
506
+ - gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile.lock
507
+ - gemfiles/ruby_3.0.1_resque2_redis3.gemfile
508
+ - gemfiles/ruby_3.0.1_resque2_redis3.gemfile.lock
509
+ - gemfiles/ruby_3.0.1_resque2_redis4.gemfile
510
+ - gemfiles/ruby_3.0.1_resque2_redis4.gemfile.lock
76
511
  - integration/README.md
77
512
  - integration/apps/rack/.dockerignore
78
513
  - integration/apps/rack/.envrc.sample
@@ -165,6 +600,27 @@ files:
165
600
  - integration/apps/rails-five/storage/.keep
166
601
  - integration/apps/rails-five/tmp/.keep
167
602
  - integration/apps/rails-five/vendor/.keep
603
+ - integration/apps/rspec/.dockerignore
604
+ - integration/apps/rspec/.envrc.sample
605
+ - integration/apps/rspec/.gitignore
606
+ - integration/apps/rspec/.rspec
607
+ - integration/apps/rspec/Dockerfile
608
+ - integration/apps/rspec/Dockerfile-ci
609
+ - integration/apps/rspec/Gemfile
610
+ - integration/apps/rspec/README.md
611
+ - integration/apps/rspec/agent.yaml
612
+ - integration/apps/rspec/app/datadog.rb
613
+ - integration/apps/rspec/app/fibonacci.rb
614
+ - integration/apps/rspec/bin/run
615
+ - integration/apps/rspec/bin/setup
616
+ - integration/apps/rspec/bin/test
617
+ - integration/apps/rspec/docker-compose.ci.yml
618
+ - integration/apps/rspec/docker-compose.yml
619
+ - integration/apps/rspec/script/build-images
620
+ - integration/apps/rspec/script/ci
621
+ - integration/apps/rspec/spec/fibonacci_spec.rb
622
+ - integration/apps/rspec/spec/rspec_spec.rb
623
+ - integration/apps/rspec/spec/spec_helper.rb
168
624
  - integration/apps/ruby/.dockerignore
169
625
  - integration/apps/ruby/.envrc.sample
170
626
  - integration/apps/ruby/.gitignore
@@ -187,7 +643,6 @@ files:
187
643
  - integration/images/include/datadog/analyzer.rb
188
644
  - integration/images/include/datadog/demo_env.rb
189
645
  - integration/images/include/http-health-check
190
- - integration/images/ruby/2.0/Dockerfile
191
646
  - integration/images/ruby/2.1/Dockerfile
192
647
  - integration/images/ruby/2.2/Dockerfile
193
648
  - integration/images/ruby/2.3/Dockerfile
@@ -201,6 +656,37 @@ files:
201
656
  - integration/images/wrk/scripts/scenarios/basic/default.lua
202
657
  - integration/images/wrk/scripts/scenarios/basic/fibonacci.lua
203
658
  - integration/script/build-images
659
+ - lib/datadog/ci.rb
660
+ - lib/datadog/ci/configuration/components.rb
661
+ - lib/datadog/ci/configuration/settings.rb
662
+ - lib/datadog/ci/context_flush.rb
663
+ - lib/datadog/ci/contrib/cucumber/configuration/settings.rb
664
+ - lib/datadog/ci/contrib/cucumber/ext.rb
665
+ - lib/datadog/ci/contrib/cucumber/formatter.rb
666
+ - lib/datadog/ci/contrib/cucumber/instrumentation.rb
667
+ - lib/datadog/ci/contrib/cucumber/integration.rb
668
+ - lib/datadog/ci/contrib/cucumber/patcher.rb
669
+ - lib/datadog/ci/contrib/rspec/configuration/settings.rb
670
+ - lib/datadog/ci/contrib/rspec/example.rb
671
+ - lib/datadog/ci/contrib/rspec/ext.rb
672
+ - lib/datadog/ci/contrib/rspec/integration.rb
673
+ - lib/datadog/ci/contrib/rspec/patcher.rb
674
+ - lib/datadog/ci/ext/app_types.rb
675
+ - lib/datadog/ci/ext/environment.rb
676
+ - lib/datadog/ci/ext/settings.rb
677
+ - lib/datadog/ci/ext/test.rb
678
+ - lib/datadog/ci/extensions.rb
679
+ - lib/datadog/ci/test.rb
680
+ - lib/datadog/core/environment/cgroup.rb
681
+ - lib/datadog/core/environment/class_count.rb
682
+ - lib/datadog/core/environment/container.rb
683
+ - lib/datadog/core/environment/ext.rb
684
+ - lib/datadog/core/environment/gc.rb
685
+ - lib/datadog/core/environment/identity.rb
686
+ - lib/datadog/core/environment/object_space.rb
687
+ - lib/datadog/core/environment/socket.rb
688
+ - lib/datadog/core/environment/thread_count.rb
689
+ - lib/datadog/core/environment/variable_helpers.rb
204
690
  - lib/ddtrace.rb
205
691
  - lib/ddtrace/analytics.rb
206
692
  - lib/ddtrace/auto_instrument.rb
@@ -208,6 +694,7 @@ files:
208
694
  - lib/ddtrace/buffer.rb
209
695
  - lib/ddtrace/chunker.rb
210
696
  - lib/ddtrace/configuration.rb
697
+ - lib/ddtrace/configuration/agent_settings_resolver.rb
211
698
  - lib/ddtrace/configuration/base.rb
212
699
  - lib/ddtrace/configuration/components.rb
213
700
  - lib/ddtrace/configuration/dependency_resolver.rb
@@ -257,6 +744,7 @@ files:
257
744
  - lib/ddtrace/contrib/active_model_serializers/ext.rb
258
745
  - lib/ddtrace/contrib/active_model_serializers/integration.rb
259
746
  - lib/ddtrace/contrib/active_model_serializers/patcher.rb
747
+ - lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb
260
748
  - lib/ddtrace/contrib/active_record/configuration/resolver.rb
261
749
  - lib/ddtrace/contrib/active_record/configuration/settings.rb
262
750
  - lib/ddtrace/contrib/active_record/event.rb
@@ -296,12 +784,6 @@ files:
296
784
  - lib/ddtrace/contrib/configuration/resolver.rb
297
785
  - lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
298
786
  - lib/ddtrace/contrib/configuration/settings.rb
299
- - lib/ddtrace/contrib/cucumber/configuration/settings.rb
300
- - lib/ddtrace/contrib/cucumber/ext.rb
301
- - lib/ddtrace/contrib/cucumber/formatter.rb
302
- - lib/ddtrace/contrib/cucumber/instrumentation.rb
303
- - lib/ddtrace/contrib/cucumber/integration.rb
304
- - lib/ddtrace/contrib/cucumber/patcher.rb
305
787
  - lib/ddtrace/contrib/dalli/configuration/settings.rb
306
788
  - lib/ddtrace/contrib/dalli/ext.rb
307
789
  - lib/ddtrace/contrib/dalli/instrumentation.rb
@@ -390,6 +872,11 @@ files:
390
872
  - lib/ddtrace/contrib/kafka/ext.rb
391
873
  - lib/ddtrace/contrib/kafka/integration.rb
392
874
  - lib/ddtrace/contrib/kafka/patcher.rb
875
+ - lib/ddtrace/contrib/lograge/configuration/settings.rb
876
+ - lib/ddtrace/contrib/lograge/ext.rb
877
+ - lib/ddtrace/contrib/lograge/instrumentation.rb
878
+ - lib/ddtrace/contrib/lograge/integration.rb
879
+ - lib/ddtrace/contrib/lograge/patcher.rb
393
880
  - lib/ddtrace/contrib/mongodb/configuration/settings.rb
394
881
  - lib/ddtrace/contrib/mongodb/ext.rb
395
882
  - lib/ddtrace/contrib/mongodb/instrumentation.rb
@@ -471,11 +958,11 @@ files:
471
958
  - lib/ddtrace/contrib/rest_client/integration.rb
472
959
  - lib/ddtrace/contrib/rest_client/patcher.rb
473
960
  - lib/ddtrace/contrib/rest_client/request_patch.rb
474
- - lib/ddtrace/contrib/rspec/configuration/settings.rb
475
- - lib/ddtrace/contrib/rspec/example.rb
476
- - lib/ddtrace/contrib/rspec/ext.rb
477
- - lib/ddtrace/contrib/rspec/integration.rb
478
- - lib/ddtrace/contrib/rspec/patcher.rb
961
+ - lib/ddtrace/contrib/semantic_logger/configuration/settings.rb
962
+ - lib/ddtrace/contrib/semantic_logger/ext.rb
963
+ - lib/ddtrace/contrib/semantic_logger/instrumentation.rb
964
+ - lib/ddtrace/contrib/semantic_logger/integration.rb
965
+ - lib/ddtrace/contrib/semantic_logger/patcher.rb
479
966
  - lib/ddtrace/contrib/sequel/configuration/settings.rb
480
967
  - lib/ddtrace/contrib/sequel/database.rb
481
968
  - lib/ddtrace/contrib/sequel/dataset.rb
@@ -524,12 +1011,10 @@ files:
524
1011
  - lib/ddtrace/distributed_tracing/headers/headers.rb
525
1012
  - lib/ddtrace/distributed_tracing/headers/helpers.rb
526
1013
  - lib/ddtrace/encoding.rb
527
- - lib/ddtrace/environment.rb
528
1014
  - lib/ddtrace/error.rb
529
1015
  - lib/ddtrace/event.rb
530
1016
  - lib/ddtrace/ext/analytics.rb
531
1017
  - lib/ddtrace/ext/app_types.rb
532
- - lib/ddtrace/ext/ci.rb
533
1018
  - lib/ddtrace/ext/correlation.rb
534
1019
  - lib/ddtrace/ext/diagnostics.rb
535
1020
  - lib/ddtrace/ext/distributed.rb
@@ -543,6 +1028,7 @@ files:
543
1028
  - lib/ddtrace/ext/metrics.rb
544
1029
  - lib/ddtrace/ext/net.rb
545
1030
  - lib/ddtrace/ext/priority.rb
1031
+ - lib/ddtrace/ext/profiling.rb
546
1032
  - lib/ddtrace/ext/runtime.rb
547
1033
  - lib/ddtrace/ext/sampling.rb
548
1034
  - lib/ddtrace/ext/sql.rb
@@ -574,19 +1060,52 @@ files:
574
1060
  - lib/ddtrace/pipeline.rb
575
1061
  - lib/ddtrace/pipeline/span_filter.rb
576
1062
  - lib/ddtrace/pipeline/span_processor.rb
1063
+ - lib/ddtrace/profiling.rb
1064
+ - lib/ddtrace/profiling/backtrace_location.rb
1065
+ - lib/ddtrace/profiling/buffer.rb
1066
+ - lib/ddtrace/profiling/collectors/stack.rb
1067
+ - lib/ddtrace/profiling/encoding/profile.rb
1068
+ - lib/ddtrace/profiling/event.rb
1069
+ - lib/ddtrace/profiling/events/stack.rb
1070
+ - lib/ddtrace/profiling/exporter.rb
1071
+ - lib/ddtrace/profiling/ext/cpu.rb
1072
+ - lib/ddtrace/profiling/ext/cthread.rb
1073
+ - lib/ddtrace/profiling/ext/forking.rb
1074
+ - lib/ddtrace/profiling/flush.rb
1075
+ - lib/ddtrace/profiling/pprof/builder.rb
1076
+ - lib/ddtrace/profiling/pprof/converter.rb
1077
+ - lib/ddtrace/profiling/pprof/message_set.rb
1078
+ - lib/ddtrace/profiling/pprof/payload.rb
1079
+ - lib/ddtrace/profiling/pprof/pprof.proto
1080
+ - lib/ddtrace/profiling/pprof/pprof_pb.rb
1081
+ - lib/ddtrace/profiling/pprof/stack_sample.rb
1082
+ - lib/ddtrace/profiling/pprof/string_table.rb
1083
+ - lib/ddtrace/profiling/pprof/template.rb
1084
+ - lib/ddtrace/profiling/preload.rb
1085
+ - lib/ddtrace/profiling/profiler.rb
1086
+ - lib/ddtrace/profiling/recorder.rb
1087
+ - lib/ddtrace/profiling/scheduler.rb
1088
+ - lib/ddtrace/profiling/tasks/setup.rb
1089
+ - lib/ddtrace/profiling/transport/client.rb
1090
+ - lib/ddtrace/profiling/transport/http.rb
1091
+ - lib/ddtrace/profiling/transport/http/api.rb
1092
+ - lib/ddtrace/profiling/transport/http/api/endpoint.rb
1093
+ - lib/ddtrace/profiling/transport/http/api/instance.rb
1094
+ - lib/ddtrace/profiling/transport/http/api/spec.rb
1095
+ - lib/ddtrace/profiling/transport/http/builder.rb
1096
+ - lib/ddtrace/profiling/transport/http/client.rb
1097
+ - lib/ddtrace/profiling/transport/http/response.rb
1098
+ - lib/ddtrace/profiling/transport/io.rb
1099
+ - lib/ddtrace/profiling/transport/io/client.rb
1100
+ - lib/ddtrace/profiling/transport/io/response.rb
1101
+ - lib/ddtrace/profiling/transport/parcel.rb
1102
+ - lib/ddtrace/profiling/transport/request.rb
1103
+ - lib/ddtrace/profiling/transport/response.rb
577
1104
  - lib/ddtrace/propagation/grpc_propagator.rb
578
1105
  - lib/ddtrace/propagation/http_propagator.rb
579
1106
  - lib/ddtrace/quantization/hash.rb
580
1107
  - lib/ddtrace/quantization/http.rb
581
- - lib/ddtrace/runtime/cgroup.rb
582
- - lib/ddtrace/runtime/class_count.rb
583
- - lib/ddtrace/runtime/container.rb
584
- - lib/ddtrace/runtime/gc.rb
585
- - lib/ddtrace/runtime/identity.rb
586
1108
  - lib/ddtrace/runtime/metrics.rb
587
- - lib/ddtrace/runtime/object_space.rb
588
- - lib/ddtrace/runtime/socket.rb
589
- - lib/ddtrace/runtime/thread_count.rb
590
1109
  - lib/ddtrace/sampler.rb
591
1110
  - lib/ddtrace/sampling.rb
592
1111
  - lib/ddtrace/sampling/matcher.rb
@@ -595,6 +1114,8 @@ files:
595
1114
  - lib/ddtrace/sampling/rule_sampler.rb
596
1115
  - lib/ddtrace/span.rb
597
1116
  - lib/ddtrace/sync_writer.rb
1117
+ - lib/ddtrace/tasks/exec.rb
1118
+ - lib/ddtrace/tasks/help.rb
598
1119
  - lib/ddtrace/tracer.rb
599
1120
  - lib/ddtrace/transport/http.rb
600
1121
  - lib/ddtrace/transport/http/adapters/net.rb
@@ -623,11 +1144,24 @@ files:
623
1144
  - lib/ddtrace/transport/statistics.rb
624
1145
  - lib/ddtrace/transport/traces.rb
625
1146
  - lib/ddtrace/utils.rb
1147
+ - lib/ddtrace/utils/compression.rb
626
1148
  - lib/ddtrace/utils/database.rb
627
1149
  - lib/ddtrace/utils/forking.rb
1150
+ - lib/ddtrace/utils/object_set.rb
1151
+ - lib/ddtrace/utils/only_once.rb
1152
+ - lib/ddtrace/utils/sequence.rb
1153
+ - lib/ddtrace/utils/string_table.rb
628
1154
  - lib/ddtrace/utils/time.rb
629
1155
  - lib/ddtrace/vendor/active_record/MIT-LICENSE
630
1156
  - lib/ddtrace/vendor/active_record/connection_specification.rb
1157
+ - lib/ddtrace/vendor/multipart-post/LICENSE
1158
+ - lib/ddtrace/vendor/multipart-post/multipart.rb
1159
+ - lib/ddtrace/vendor/multipart-post/multipart/post.rb
1160
+ - lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb
1161
+ - lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb
1162
+ - lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb
1163
+ - lib/ddtrace/vendor/multipart-post/multipart/post/version.rb
1164
+ - lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb
631
1165
  - lib/ddtrace/version.rb
632
1166
  - lib/ddtrace/worker.rb
633
1167
  - lib/ddtrace/workers.rb
@@ -639,12 +1173,13 @@ files:
639
1173
  - lib/ddtrace/workers/trace_writer.rb
640
1174
  - lib/ddtrace/writer.rb
641
1175
  - tasks/release_gem.rake
1176
+ - tasks/update_appraisal_gemfiles.rake
642
1177
  homepage: https://github.com/DataDog/dd-trace-rb
643
1178
  licenses:
644
1179
  - BSD-3-Clause
645
1180
  metadata:
646
1181
  allowed_push_host: https://rubygems.org
647
- post_install_message:
1182
+ post_install_message:
648
1183
  rdoc_options: []
649
1184
  require_paths:
650
1185
  - lib
@@ -652,15 +1187,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
652
1187
  requirements:
653
1188
  - - ">="
654
1189
  - !ruby/object:Gem::Version
655
- version: 2.0.0
1190
+ version: 2.1.0
1191
+ - - "<"
1192
+ - !ruby/object:Gem::Version
1193
+ version: '3.2'
656
1194
  required_rubygems_version: !ruby/object:Gem::Requirement
657
1195
  requirements:
658
1196
  - - ">="
659
1197
  - !ruby/object:Gem::Version
660
1198
  version: 2.0.0
661
1199
  requirements: []
662
- rubygems_version: 3.1.2
663
- signing_key:
1200
+ rubygems_version: 3.1.6
1201
+ signing_key:
664
1202
  specification_version: 4
665
1203
  summary: Datadog tracing code for your Ruby applications
666
1204
  test_files: []