ddtrace 0.48.0 → 0.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +250 -68
  3. data/.circleci/images/primary/Dockerfile-2.1.10 +1 -1
  4. data/.circleci/images/primary/Dockerfile-2.2.10 +1 -1
  5. data/.circleci/images/primary/Dockerfile-2.3.8 +4 -2
  6. data/.circleci/images/primary/{Dockerfile-2.6.4 → Dockerfile-2.4.10} +5 -3
  7. data/.circleci/images/primary/{Dockerfile-2.4.6 → Dockerfile-2.5.9} +3 -3
  8. data/.circleci/images/primary/{Dockerfile-2.5.6 → Dockerfile-2.6.7} +3 -3
  9. data/.circleci/images/primary/{Dockerfile-2.7.0 → Dockerfile-2.7.3} +3 -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 +3 -3
  12. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +1 -1
  13. data/.circleci/images/primary/{Dockerfile-truffleruby-21.0.0 → Dockerfile-truffleruby-21.1.0} +2 -2
  14. data/.dd-ci/ci-app-spec.json +31 -0
  15. data/.dockerignore +0 -1
  16. data/.gitattributes +1 -0
  17. data/.github/workflows/test-head.yaml +34 -0
  18. data/.gitignore +0 -1
  19. data/.rubocop.yml +13 -9
  20. data/.rubocop_todo.yml +7 -8
  21. data/Appraisals +206 -182
  22. data/CHANGELOG.md +154 -0
  23. data/Gemfile +6 -3
  24. data/Rakefile +331 -333
  25. data/benchmarks/data/profiler-submission-marshal.gz +0 -0
  26. data/benchmarks/profiler_sample_loop.rb +69 -0
  27. data/benchmarks/profiler_submission.rb +93 -0
  28. data/ddtrace.gemspec +2 -2
  29. data/docker-compose.yml +14 -68
  30. data/docs/GettingStarted.md +59 -13
  31. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +82 -0
  32. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +1571 -0
  33. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +36 -0
  34. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +159 -0
  35. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +35 -0
  36. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +155 -0
  37. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +36 -0
  38. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +176 -0
  39. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +36 -0
  40. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +208 -0
  41. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +36 -0
  42. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +208 -0
  43. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +41 -0
  44. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +273 -0
  45. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +41 -0
  46. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +273 -0
  47. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +42 -0
  48. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +275 -0
  49. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +42 -0
  50. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +275 -0
  51. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +43 -0
  52. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +281 -0
  53. data/gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile +41 -0
  54. data/gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile.lock +272 -0
  55. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +41 -0
  56. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +292 -0
  57. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +41 -0
  58. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +292 -0
  59. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +42 -0
  60. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +294 -0
  61. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +42 -0
  62. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +299 -0
  63. data/gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile +41 -0
  64. data/gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile.lock +291 -0
  65. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +41 -0
  66. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +289 -0
  67. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +41 -0
  68. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +289 -0
  69. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +42 -0
  70. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +291 -0
  71. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +42 -0
  72. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +291 -0
  73. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +43 -0
  74. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +297 -0
  75. data/gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile +41 -0
  76. data/gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile.lock +288 -0
  77. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +37 -0
  78. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +182 -0
  79. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +37 -0
  80. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +182 -0
  81. data/gemfiles/jruby_9.2.18.0_contrib.gemfile +82 -0
  82. data/gemfiles/jruby_9.2.18.0_contrib.gemfile.lock +1571 -0
  83. data/gemfiles/jruby_9.2.18.0_contrib_old.gemfile +36 -0
  84. data/gemfiles/jruby_9.2.18.0_contrib_old.gemfile.lock +159 -0
  85. data/gemfiles/jruby_9.2.18.0_core_old.gemfile +35 -0
  86. data/gemfiles/jruby_9.2.18.0_core_old.gemfile.lock +155 -0
  87. data/gemfiles/jruby_9.2.18.0_cucumber3.gemfile +36 -0
  88. data/gemfiles/jruby_9.2.18.0_cucumber3.gemfile.lock +176 -0
  89. data/gemfiles/jruby_9.2.18.0_cucumber4.gemfile +36 -0
  90. data/gemfiles/jruby_9.2.18.0_cucumber4.gemfile.lock +208 -0
  91. data/gemfiles/jruby_9.2.18.0_cucumber5.gemfile +36 -0
  92. data/gemfiles/jruby_9.2.18.0_cucumber5.gemfile.lock +208 -0
  93. data/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile +41 -0
  94. data/gemfiles/jruby_9.2.18.0_rails5_mysql2.gemfile.lock +273 -0
  95. data/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile +41 -0
  96. data/gemfiles/jruby_9.2.18.0_rails5_postgres.gemfile.lock +273 -0
  97. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile +42 -0
  98. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock +275 -0
  99. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile +42 -0
  100. data/gemfiles/jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock +275 -0
  101. data/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile +43 -0
  102. data/gemfiles/jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock +281 -0
  103. data/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile +41 -0
  104. data/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock +272 -0
  105. data/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile +41 -0
  106. data/gemfiles/jruby_9.2.18.0_rails61_mysql2.gemfile.lock +292 -0
  107. data/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile +41 -0
  108. data/gemfiles/jruby_9.2.18.0_rails61_postgres.gemfile.lock +292 -0
  109. data/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile +42 -0
  110. data/gemfiles/jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock +294 -0
  111. data/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile +42 -0
  112. data/gemfiles/jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock +299 -0
  113. data/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile +41 -0
  114. data/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock +291 -0
  115. data/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile +41 -0
  116. data/gemfiles/jruby_9.2.18.0_rails6_mysql2.gemfile.lock +289 -0
  117. data/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile +41 -0
  118. data/gemfiles/jruby_9.2.18.0_rails6_postgres.gemfile.lock +289 -0
  119. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile +42 -0
  120. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock +291 -0
  121. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile +42 -0
  122. data/gemfiles/jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock +291 -0
  123. data/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile +43 -0
  124. data/gemfiles/jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock +297 -0
  125. data/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile +41 -0
  126. data/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock +288 -0
  127. data/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile +37 -0
  128. data/gemfiles/jruby_9.2.18.0_resque2_redis3.gemfile.lock +182 -0
  129. data/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile +37 -0
  130. data/gemfiles/jruby_9.2.18.0_resque2_redis4.gemfile.lock +182 -0
  131. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +68 -0
  132. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +310 -0
  133. data/gemfiles/ruby_2.1.10_core_old.gemfile +34 -0
  134. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +120 -0
  135. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +39 -0
  136. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +193 -0
  137. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +40 -0
  138. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +202 -0
  139. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +42 -0
  140. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +212 -0
  141. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +39 -0
  142. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +201 -0
  143. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +41 -0
  144. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +220 -0
  145. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +40 -0
  146. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +210 -0
  147. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +39 -0
  148. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +220 -0
  149. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +39 -0
  150. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +220 -0
  151. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +41 -0
  152. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +239 -0
  153. data/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile +39 -0
  154. data/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock +218 -0
  155. data/gemfiles/ruby_2.2.10_contrib.gemfile +76 -0
  156. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +1499 -0
  157. data/gemfiles/ruby_2.2.10_core_old.gemfile +34 -0
  158. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +120 -0
  159. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +39 -0
  160. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +193 -0
  161. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +40 -0
  162. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +202 -0
  163. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +41 -0
  164. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +209 -0
  165. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +39 -0
  166. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +201 -0
  167. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +41 -0
  168. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +220 -0
  169. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +40 -0
  170. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +210 -0
  171. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +39 -0
  172. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +220 -0
  173. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +39 -0
  174. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +220 -0
  175. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +41 -0
  176. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +239 -0
  177. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +41 -0
  178. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +231 -0
  179. data/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile +39 -0
  180. data/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock +218 -0
  181. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +39 -0
  182. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +236 -0
  183. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +39 -0
  184. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +236 -0
  185. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +40 -0
  186. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +238 -0
  187. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +40 -0
  188. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +238 -0
  189. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +41 -0
  190. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +247 -0
  191. data/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile +39 -0
  192. data/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock +234 -0
  193. data/gemfiles/ruby_2.3.8_contrib.gemfile +75 -0
  194. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +1508 -0
  195. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +34 -0
  196. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +123 -0
  197. data/gemfiles/ruby_2.3.8_core_old.gemfile +33 -0
  198. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +119 -0
  199. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +34 -0
  200. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +140 -0
  201. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +34 -0
  202. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +170 -0
  203. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +38 -0
  204. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +192 -0
  205. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +39 -0
  206. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +201 -0
  207. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +40 -0
  208. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +208 -0
  209. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +38 -0
  210. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +200 -0
  211. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +40 -0
  212. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +219 -0
  213. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +39 -0
  214. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +209 -0
  215. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +38 -0
  216. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +219 -0
  217. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +38 -0
  218. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +219 -0
  219. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +40 -0
  220. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +238 -0
  221. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +40 -0
  222. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +230 -0
  223. data/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile +38 -0
  224. data/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock +218 -0
  225. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +37 -0
  226. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +230 -0
  227. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +37 -0
  228. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +230 -0
  229. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +38 -0
  230. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +232 -0
  231. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +38 -0
  232. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +232 -0
  233. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +39 -0
  234. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +241 -0
  235. data/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile +37 -0
  236. data/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock +229 -0
  237. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +35 -0
  238. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +146 -0
  239. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +35 -0
  240. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +146 -0
  241. data/gemfiles/ruby_2.4.10_contrib.gemfile +81 -0
  242. data/gemfiles/ruby_2.4.10_contrib.gemfile.lock +1596 -0
  243. data/gemfiles/ruby_2.4.10_contrib_old.gemfile +39 -0
  244. data/gemfiles/ruby_2.4.10_contrib_old.gemfile.lock +157 -0
  245. data/gemfiles/ruby_2.4.10_core_old.gemfile +38 -0
  246. data/gemfiles/ruby_2.4.10_core_old.gemfile.lock +153 -0
  247. data/gemfiles/ruby_2.4.10_cucumber3.gemfile +39 -0
  248. data/gemfiles/ruby_2.4.10_cucumber3.gemfile.lock +174 -0
  249. data/gemfiles/ruby_2.4.10_cucumber4.gemfile +39 -0
  250. data/gemfiles/ruby_2.4.10_cucumber4.gemfile.lock +204 -0
  251. data/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile +42 -0
  252. data/gemfiles/ruby_2.4.10_rails5_mysql2.gemfile.lock +264 -0
  253. data/gemfiles/ruby_2.4.10_rails5_postgres.gemfile +42 -0
  254. data/gemfiles/ruby_2.4.10_rails5_postgres.gemfile.lock +264 -0
  255. data/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile +43 -0
  256. data/gemfiles/ruby_2.4.10_rails5_postgres_redis.gemfile.lock +266 -0
  257. data/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile +43 -0
  258. data/gemfiles/ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock +266 -0
  259. data/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile +44 -0
  260. data/gemfiles/ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock +275 -0
  261. data/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile +42 -0
  262. data/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock +263 -0
  263. data/gemfiles/ruby_2.4.10_resque2_redis3.gemfile +40 -0
  264. data/gemfiles/ruby_2.4.10_resque2_redis3.gemfile.lock +180 -0
  265. data/gemfiles/ruby_2.4.10_resque2_redis4.gemfile +40 -0
  266. data/gemfiles/ruby_2.4.10_resque2_redis4.gemfile.lock +180 -0
  267. data/gemfiles/ruby_2.5.9_contrib.gemfile +86 -0
  268. data/gemfiles/ruby_2.5.9_contrib.gemfile.lock +1608 -0
  269. data/gemfiles/ruby_2.5.9_contrib_old.gemfile +40 -0
  270. data/gemfiles/ruby_2.5.9_contrib_old.gemfile.lock +167 -0
  271. data/gemfiles/ruby_2.5.9_core_old.gemfile +39 -0
  272. data/gemfiles/ruby_2.5.9_core_old.gemfile.lock +163 -0
  273. data/gemfiles/ruby_2.5.9_cucumber3.gemfile +40 -0
  274. data/gemfiles/ruby_2.5.9_cucumber3.gemfile.lock +184 -0
  275. data/gemfiles/ruby_2.5.9_cucumber4.gemfile +40 -0
  276. data/gemfiles/ruby_2.5.9_cucumber4.gemfile.lock +216 -0
  277. data/gemfiles/ruby_2.5.9_cucumber5.gemfile +40 -0
  278. data/gemfiles/ruby_2.5.9_cucumber5.gemfile.lock +216 -0
  279. data/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile +45 -0
  280. data/gemfiles/ruby_2.5.9_rails5_mysql2.gemfile.lock +276 -0
  281. data/gemfiles/ruby_2.5.9_rails5_postgres.gemfile +45 -0
  282. data/gemfiles/ruby_2.5.9_rails5_postgres.gemfile.lock +276 -0
  283. data/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile +46 -0
  284. data/gemfiles/ruby_2.5.9_rails5_postgres_redis.gemfile.lock +278 -0
  285. data/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile +46 -0
  286. data/gemfiles/ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock +278 -0
  287. data/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile +47 -0
  288. data/gemfiles/ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock +284 -0
  289. data/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile +45 -0
  290. data/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock +275 -0
  291. data/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile +45 -0
  292. data/gemfiles/ruby_2.5.9_rails61_mysql2.gemfile.lock +295 -0
  293. data/gemfiles/ruby_2.5.9_rails61_postgres.gemfile +45 -0
  294. data/gemfiles/ruby_2.5.9_rails61_postgres.gemfile.lock +295 -0
  295. data/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile +46 -0
  296. data/gemfiles/ruby_2.5.9_rails61_postgres_redis.gemfile.lock +297 -0
  297. data/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile +46 -0
  298. data/gemfiles/ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock +302 -0
  299. data/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile +45 -0
  300. data/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock +294 -0
  301. data/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile +45 -0
  302. data/gemfiles/ruby_2.5.9_rails6_mysql2.gemfile.lock +292 -0
  303. data/gemfiles/ruby_2.5.9_rails6_postgres.gemfile +45 -0
  304. data/gemfiles/ruby_2.5.9_rails6_postgres.gemfile.lock +292 -0
  305. data/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile +46 -0
  306. data/gemfiles/ruby_2.5.9_rails6_postgres_redis.gemfile.lock +294 -0
  307. data/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile +46 -0
  308. data/gemfiles/ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock +294 -0
  309. data/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile +47 -0
  310. data/gemfiles/ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock +300 -0
  311. data/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile +45 -0
  312. data/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock +291 -0
  313. data/gemfiles/ruby_2.5.9_resque2_redis3.gemfile +41 -0
  314. data/gemfiles/ruby_2.5.9_resque2_redis3.gemfile.lock +190 -0
  315. data/gemfiles/ruby_2.5.9_resque2_redis4.gemfile +41 -0
  316. data/gemfiles/ruby_2.5.9_resque2_redis4.gemfile.lock +190 -0
  317. data/gemfiles/ruby_2.6.7_contrib.gemfile +82 -0
  318. data/gemfiles/ruby_2.6.7_contrib.gemfile.lock +1606 -0
  319. data/gemfiles/ruby_2.6.7_contrib_old.gemfile +40 -0
  320. data/gemfiles/ruby_2.6.7_contrib_old.gemfile.lock +169 -0
  321. data/gemfiles/ruby_2.6.7_core_old.gemfile +39 -0
  322. data/gemfiles/ruby_2.6.7_core_old.gemfile.lock +165 -0
  323. data/gemfiles/ruby_2.6.7_cucumber3.gemfile +40 -0
  324. data/gemfiles/ruby_2.6.7_cucumber3.gemfile.lock +186 -0
  325. data/gemfiles/ruby_2.6.7_cucumber4.gemfile +40 -0
  326. data/gemfiles/ruby_2.6.7_cucumber4.gemfile.lock +218 -0
  327. data/gemfiles/ruby_2.6.7_cucumber5.gemfile +40 -0
  328. data/gemfiles/ruby_2.6.7_cucumber5.gemfile.lock +218 -0
  329. data/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile +43 -0
  330. data/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock +276 -0
  331. data/gemfiles/ruby_2.6.7_rails5_postgres.gemfile +43 -0
  332. data/gemfiles/ruby_2.6.7_rails5_postgres.gemfile.lock +276 -0
  333. data/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile +44 -0
  334. data/gemfiles/ruby_2.6.7_rails5_postgres_redis.gemfile.lock +278 -0
  335. data/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile +44 -0
  336. data/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock +278 -0
  337. data/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile +45 -0
  338. data/gemfiles/ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock +284 -0
  339. data/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile +43 -0
  340. data/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock +275 -0
  341. data/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile +43 -0
  342. data/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock +295 -0
  343. data/gemfiles/ruby_2.6.7_rails61_postgres.gemfile +43 -0
  344. data/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock +295 -0
  345. data/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile +44 -0
  346. data/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock +297 -0
  347. data/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile +44 -0
  348. data/gemfiles/ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock +302 -0
  349. data/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile +43 -0
  350. data/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock +294 -0
  351. data/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile +43 -0
  352. data/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock +292 -0
  353. data/gemfiles/ruby_2.6.7_rails6_postgres.gemfile +43 -0
  354. data/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock +292 -0
  355. data/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile +44 -0
  356. data/gemfiles/ruby_2.6.7_rails6_postgres_redis.gemfile.lock +294 -0
  357. data/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile +44 -0
  358. data/gemfiles/ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock +294 -0
  359. data/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile +45 -0
  360. data/gemfiles/ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock +300 -0
  361. data/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile +43 -0
  362. data/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock +291 -0
  363. data/gemfiles/ruby_2.6.7_resque2_redis3.gemfile +41 -0
  364. data/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock +192 -0
  365. data/gemfiles/ruby_2.6.7_resque2_redis4.gemfile +41 -0
  366. data/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock +192 -0
  367. data/gemfiles/ruby_2.7.3_contrib.gemfile +81 -0
  368. data/gemfiles/ruby_2.7.3_contrib.gemfile.lock +1580 -0
  369. data/gemfiles/ruby_2.7.3_contrib_old.gemfile +40 -0
  370. data/gemfiles/ruby_2.7.3_contrib_old.gemfile.lock +169 -0
  371. data/gemfiles/ruby_2.7.3_core_old.gemfile +39 -0
  372. data/gemfiles/ruby_2.7.3_core_old.gemfile.lock +165 -0
  373. data/gemfiles/ruby_2.7.3_cucumber3.gemfile +40 -0
  374. data/gemfiles/ruby_2.7.3_cucumber3.gemfile.lock +186 -0
  375. data/gemfiles/ruby_2.7.3_cucumber4.gemfile +40 -0
  376. data/gemfiles/ruby_2.7.3_cucumber4.gemfile.lock +218 -0
  377. data/gemfiles/ruby_2.7.3_cucumber5.gemfile +40 -0
  378. data/gemfiles/ruby_2.7.3_cucumber5.gemfile.lock +218 -0
  379. data/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile +43 -0
  380. data/gemfiles/ruby_2.7.3_rails5_mysql2.gemfile.lock +278 -0
  381. data/gemfiles/ruby_2.7.3_rails5_postgres.gemfile +43 -0
  382. data/gemfiles/ruby_2.7.3_rails5_postgres.gemfile.lock +278 -0
  383. data/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile +45 -0
  384. data/gemfiles/ruby_2.7.3_rails5_postgres_redis.gemfile.lock +297 -0
  385. data/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile +45 -0
  386. data/gemfiles/ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock +297 -0
  387. data/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile +45 -0
  388. data/gemfiles/ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock +286 -0
  389. data/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile +43 -0
  390. data/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock +277 -0
  391. data/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile +43 -0
  392. data/gemfiles/ruby_2.7.3_rails61_mysql2.gemfile.lock +297 -0
  393. data/gemfiles/ruby_2.7.3_rails61_postgres.gemfile +43 -0
  394. data/gemfiles/ruby_2.7.3_rails61_postgres.gemfile.lock +297 -0
  395. data/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile +44 -0
  396. data/gemfiles/ruby_2.7.3_rails61_postgres_redis.gemfile.lock +299 -0
  397. data/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile +44 -0
  398. data/gemfiles/ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock +304 -0
  399. data/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile +43 -0
  400. data/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock +296 -0
  401. data/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile +43 -0
  402. data/gemfiles/ruby_2.7.3_rails6_mysql2.gemfile.lock +294 -0
  403. data/gemfiles/ruby_2.7.3_rails6_postgres.gemfile +43 -0
  404. data/gemfiles/ruby_2.7.3_rails6_postgres.gemfile.lock +294 -0
  405. data/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile +45 -0
  406. data/gemfiles/ruby_2.7.3_rails6_postgres_redis.gemfile.lock +313 -0
  407. data/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile +45 -0
  408. data/gemfiles/ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock +313 -0
  409. data/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile +45 -0
  410. data/gemfiles/ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock +302 -0
  411. data/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile +43 -0
  412. data/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock +293 -0
  413. data/gemfiles/ruby_2.7.3_resque2_redis3.gemfile +41 -0
  414. data/gemfiles/ruby_2.7.3_resque2_redis3.gemfile.lock +192 -0
  415. data/gemfiles/ruby_2.7.3_resque2_redis4.gemfile +41 -0
  416. data/gemfiles/ruby_2.7.3_resque2_redis4.gemfile.lock +192 -0
  417. data/gemfiles/ruby_3.0.1_contrib.gemfile +80 -0
  418. data/gemfiles/ruby_3.0.1_contrib.gemfile.lock +1583 -0
  419. data/gemfiles/ruby_3.0.1_core_old.gemfile +40 -0
  420. data/gemfiles/ruby_3.0.1_core_old.gemfile.lock +167 -0
  421. data/gemfiles/ruby_3.0.1_cucumber3.gemfile +41 -0
  422. data/gemfiles/ruby_3.0.1_cucumber3.gemfile.lock +188 -0
  423. data/gemfiles/ruby_3.0.1_cucumber4.gemfile +41 -0
  424. data/gemfiles/ruby_3.0.1_cucumber4.gemfile.lock +220 -0
  425. data/gemfiles/ruby_3.0.1_cucumber5.gemfile +41 -0
  426. data/gemfiles/ruby_3.0.1_cucumber5.gemfile.lock +220 -0
  427. data/gemfiles/ruby_3.0.1_rails61_mysql2.gemfile +44 -0
  428. data/gemfiles/ruby_3.0.1_rails61_mysql2.gemfile.lock +297 -0
  429. data/gemfiles/ruby_3.0.1_rails61_postgres.gemfile +44 -0
  430. data/gemfiles/ruby_3.0.1_rails61_postgres.gemfile.lock +297 -0
  431. data/gemfiles/ruby_3.0.1_rails61_postgres_redis.gemfile +45 -0
  432. data/gemfiles/ruby_3.0.1_rails61_postgres_redis.gemfile.lock +299 -0
  433. data/gemfiles/ruby_3.0.1_rails61_postgres_sidekiq.gemfile +46 -0
  434. data/gemfiles/ruby_3.0.1_rails61_postgres_sidekiq.gemfile.lock +311 -0
  435. data/gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile +44 -0
  436. data/gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile.lock +296 -0
  437. data/gemfiles/ruby_3.0.1_resque2_redis3.gemfile +42 -0
  438. data/gemfiles/ruby_3.0.1_resque2_redis3.gemfile.lock +194 -0
  439. data/gemfiles/ruby_3.0.1_resque2_redis4.gemfile +42 -0
  440. data/gemfiles/ruby_3.0.1_resque2_redis4.gemfile.lock +194 -0
  441. data/integration/apps/rack/README.md +2 -2
  442. data/integration/apps/rack/script/ci +2 -1
  443. data/integration/apps/rails-five/README.md +2 -2
  444. data/integration/apps/rails-five/script/ci +2 -1
  445. data/integration/apps/rspec/.dockerignore +1 -0
  446. data/integration/apps/rspec/.envrc.sample +1 -0
  447. data/integration/apps/rspec/.gitignore +2 -0
  448. data/integration/apps/rspec/.rspec +1 -0
  449. data/integration/apps/rspec/Dockerfile +25 -0
  450. data/integration/apps/rspec/Dockerfile-ci +11 -0
  451. data/integration/apps/rspec/Gemfile +14 -0
  452. data/integration/apps/rspec/README.md +70 -0
  453. data/integration/apps/rspec/agent.yaml +3 -0
  454. data/integration/apps/rspec/app/datadog.rb +13 -0
  455. data/integration/apps/rspec/app/fibonacci.rb +30 -0
  456. data/integration/apps/rspec/bin/run +20 -0
  457. data/integration/apps/rspec/bin/setup +23 -0
  458. data/integration/apps/rspec/bin/test +21 -0
  459. data/integration/apps/rspec/docker-compose.ci.yml +51 -0
  460. data/integration/apps/rspec/docker-compose.yml +64 -0
  461. data/integration/apps/rspec/script/build-images +37 -0
  462. data/integration/apps/rspec/script/ci +53 -0
  463. data/integration/apps/rspec/spec/fibonacci_spec.rb +16 -0
  464. data/integration/apps/rspec/spec/rspec_spec.rb +58 -0
  465. data/integration/apps/rspec/spec/spec_helper.rb +24 -0
  466. data/integration/apps/ruby/README.md +2 -2
  467. data/integration/apps/ruby/script/ci +2 -1
  468. data/integration/images/include/datadog/demo_env.rb +15 -14
  469. data/lib/datadog/ci.rb +16 -0
  470. data/lib/datadog/ci/configuration/components.rb +30 -0
  471. data/lib/datadog/ci/configuration/settings.rb +36 -0
  472. data/lib/datadog/ci/context_flush.rb +28 -0
  473. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +30 -0
  474. data/lib/datadog/ci/contrib/cucumber/ext.rb +19 -0
  475. data/lib/datadog/ci/contrib/cucumber/formatter.rb +97 -0
  476. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +26 -0
  477. data/lib/datadog/ci/contrib/cucumber/integration.rb +47 -0
  478. data/lib/datadog/ci/contrib/cucumber/patcher.rb +25 -0
  479. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +30 -0
  480. data/lib/datadog/ci/contrib/rspec/example.rb +73 -0
  481. data/lib/datadog/ci/contrib/rspec/ext.rb +18 -0
  482. data/lib/datadog/ci/contrib/rspec/integration.rb +48 -0
  483. data/lib/datadog/ci/contrib/rspec/patcher.rb +25 -0
  484. data/lib/datadog/ci/ext/app_types.rb +9 -0
  485. data/lib/datadog/ci/ext/environment.rb +438 -0
  486. data/lib/datadog/ci/ext/settings.rb +10 -0
  487. data/lib/datadog/ci/ext/test.rb +34 -0
  488. data/lib/datadog/ci/extensions.rb +17 -0
  489. data/lib/datadog/ci/test.rb +76 -0
  490. data/lib/datadog/core/environment/cgroup.rb +49 -0
  491. data/lib/datadog/core/environment/class_count.rb +19 -0
  492. data/lib/datadog/core/environment/container.rb +88 -0
  493. data/lib/datadog/core/environment/ext.rb +26 -0
  494. data/lib/datadog/core/environment/gc.rb +18 -0
  495. data/lib/datadog/core/environment/identity.rb +50 -0
  496. data/lib/datadog/core/environment/object_space.rb +22 -0
  497. data/lib/datadog/core/environment/socket.rb +16 -0
  498. data/lib/datadog/core/environment/thread_count.rb +18 -0
  499. data/lib/datadog/core/environment/variable_helpers.rb +39 -0
  500. data/lib/ddtrace.rb +2 -2
  501. data/lib/ddtrace/auto_instrument.rb +1 -0
  502. data/lib/ddtrace/buffer.rb +2 -2
  503. data/lib/ddtrace/configuration.rb +1 -23
  504. data/lib/ddtrace/configuration/agent_settings_resolver.rb +230 -0
  505. data/lib/ddtrace/configuration/base.rb +7 -10
  506. data/lib/ddtrace/configuration/components.rb +88 -43
  507. data/lib/ddtrace/configuration/options.rb +2 -2
  508. data/lib/ddtrace/configuration/settings.rb +76 -10
  509. data/lib/ddtrace/context.rb +17 -14
  510. data/lib/ddtrace/context_flush.rb +14 -2
  511. data/lib/ddtrace/contrib/action_cable/event.rb +4 -4
  512. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -1
  513. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +1 -1
  514. data/lib/ddtrace/contrib/action_pack/utils.rb +1 -1
  515. data/lib/ddtrace/contrib/action_view/event.rb +2 -2
  516. data/lib/ddtrace/contrib/action_view/patcher.rb +4 -4
  517. data/lib/ddtrace/contrib/active_model_serializers/event.rb +2 -2
  518. data/lib/ddtrace/contrib/active_record/event.rb +2 -2
  519. data/lib/ddtrace/contrib/active_record/utils.rb +2 -2
  520. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +7 -7
  521. data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -5
  522. data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -2
  523. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -1
  524. data/lib/ddtrace/contrib/auto_instrument.rb +1 -2
  525. data/lib/ddtrace/contrib/aws/instrumentation.rb +29 -0
  526. data/lib/ddtrace/contrib/aws/patcher.rb +4 -0
  527. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +1 -1
  528. data/lib/ddtrace/contrib/configurable.rb +1 -1
  529. data/lib/ddtrace/contrib/dalli/instrumentation.rb +1 -1
  530. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -1
  531. data/lib/ddtrace/contrib/ethon/easy_patch.rb +1 -1
  532. data/lib/ddtrace/contrib/ethon/multi_patch.rb +1 -1
  533. data/lib/ddtrace/contrib/ethon/patcher.rb +2 -2
  534. data/lib/ddtrace/contrib/extensions.rb +3 -3
  535. data/lib/ddtrace/contrib/faraday/patcher.rb +2 -2
  536. data/lib/ddtrace/contrib/grape/instrumentation.rb +2 -2
  537. data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
  538. data/lib/ddtrace/contrib/grpc/patcher.rb +1 -1
  539. data/lib/ddtrace/contrib/http/instrumentation.rb +1 -1
  540. data/lib/ddtrace/contrib/http/patcher.rb +1 -1
  541. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +1 -1
  542. data/lib/ddtrace/contrib/httpclient/patcher.rb +1 -1
  543. data/lib/ddtrace/contrib/httprb/instrumentation.rb +1 -1
  544. data/lib/ddtrace/contrib/httprb/patcher.rb +1 -1
  545. data/lib/ddtrace/contrib/integration.rb +3 -3
  546. data/lib/ddtrace/contrib/kafka/event.rb +2 -2
  547. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +18 -0
  548. data/lib/ddtrace/contrib/lograge/ext.rb +10 -0
  549. data/lib/ddtrace/contrib/lograge/instrumentation.rb +38 -0
  550. data/lib/ddtrace/contrib/lograge/integration.rb +45 -0
  551. data/lib/ddtrace/contrib/{rspec → lograge}/patcher.rb +6 -4
  552. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -2
  553. data/lib/ddtrace/contrib/mongodb/patcher.rb +2 -2
  554. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -1
  555. data/lib/ddtrace/contrib/mysql2/patcher.rb +1 -1
  556. data/lib/ddtrace/contrib/patchable.rb +2 -2
  557. data/lib/ddtrace/contrib/patcher.rb +2 -2
  558. data/lib/ddtrace/contrib/presto/instrumentation.rb +1 -1
  559. data/lib/ddtrace/contrib/presto/patcher.rb +1 -1
  560. data/lib/ddtrace/contrib/qless/patcher.rb +3 -5
  561. data/lib/ddtrace/contrib/racecar/event.rb +2 -2
  562. data/lib/ddtrace/contrib/rack/middlewares.rb +1 -1
  563. data/lib/ddtrace/contrib/rails/framework.rb +25 -1
  564. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -40
  565. data/lib/ddtrace/contrib/rails/patcher.rb +11 -9
  566. data/lib/ddtrace/contrib/rake/instrumentation.rb +1 -1
  567. data/lib/ddtrace/contrib/rake/patcher.rb +1 -1
  568. data/lib/ddtrace/contrib/registerable.rb +2 -2
  569. data/lib/ddtrace/contrib/resque/patcher.rb +1 -1
  570. data/lib/ddtrace/contrib/rest_client/patcher.rb +1 -1
  571. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -1
  572. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +18 -0
  573. data/lib/ddtrace/contrib/semantic_logger/ext.rb +10 -0
  574. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +42 -0
  575. data/lib/ddtrace/contrib/semantic_logger/integration.rb +47 -0
  576. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +25 -0
  577. data/lib/ddtrace/contrib/sequel/database.rb +1 -1
  578. data/lib/ddtrace/contrib/sequel/dataset.rb +1 -1
  579. data/lib/ddtrace/contrib/sequel/patcher.rb +2 -2
  580. data/lib/ddtrace/contrib/sinatra/patcher.rb +1 -1
  581. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +4 -6
  582. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +4 -0
  583. data/lib/ddtrace/correlation.rb +1 -1
  584. data/lib/ddtrace/diagnostics/environment_logger.rb +4 -4
  585. data/lib/ddtrace/error.rb +76 -9
  586. data/lib/ddtrace/ext/app_types.rb +0 -1
  587. data/lib/ddtrace/ext/environment.rb +7 -0
  588. data/lib/ddtrace/ext/git.rb +9 -1
  589. data/lib/ddtrace/ext/profiling.rb +1 -0
  590. data/lib/ddtrace/ext/runtime.rb +0 -9
  591. data/lib/ddtrace/ext/test.rb +2 -18
  592. data/lib/ddtrace/ext/transport.rb +1 -0
  593. data/lib/ddtrace/metrics.rb +64 -13
  594. data/lib/ddtrace/opentelemetry/extensions.rb +1 -1
  595. data/lib/ddtrace/opentracer.rb +20 -39
  596. data/lib/ddtrace/patcher.rb +2 -2
  597. data/lib/ddtrace/profiling.rb +75 -22
  598. data/lib/ddtrace/profiling/collectors/stack.rb +17 -8
  599. data/lib/ddtrace/profiling/encoding/profile.rb +6 -0
  600. data/lib/ddtrace/profiling/ext/cpu.rb +18 -5
  601. data/lib/ddtrace/profiling/ext/cthread.rb +56 -35
  602. data/lib/ddtrace/profiling/ext/forking.rb +7 -7
  603. data/lib/ddtrace/profiling/flush.rb +12 -10
  604. data/lib/ddtrace/profiling/pprof/builder.rb +26 -28
  605. data/lib/ddtrace/profiling/pprof/converter.rb +4 -0
  606. data/lib/ddtrace/profiling/pprof/stack_sample.rb +17 -1
  607. data/lib/ddtrace/profiling/pprof/template.rb +4 -0
  608. data/lib/ddtrace/profiling/profiler.rb +2 -0
  609. data/lib/ddtrace/profiling/recorder.rb +8 -0
  610. data/lib/ddtrace/profiling/scheduler.rb +44 -12
  611. data/lib/ddtrace/profiling/tasks/setup.rb +13 -13
  612. data/lib/ddtrace/profiling/transport/http.rb +58 -62
  613. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +12 -2
  614. data/lib/ddtrace/runtime/metrics.rb +20 -14
  615. data/lib/ddtrace/span.rb +17 -6
  616. data/lib/ddtrace/sync_writer.rb +4 -3
  617. data/lib/ddtrace/tracer.rb +19 -44
  618. data/lib/ddtrace/transport/http.rb +43 -40
  619. data/lib/ddtrace/transport/http/statistics.rb +2 -2
  620. data/lib/ddtrace/transport/http/traces.rb +3 -3
  621. data/lib/ddtrace/transport/io/traces.rb +1 -1
  622. data/lib/ddtrace/utils/forking.rb +1 -1
  623. data/lib/ddtrace/utils/object_set.rb +3 -5
  624. data/lib/ddtrace/utils/time.rb +1 -3
  625. data/lib/ddtrace/version.rb +15 -5
  626. data/lib/ddtrace/workers.rb +1 -1
  627. data/lib/ddtrace/workers/async.rb +3 -2
  628. data/lib/ddtrace/workers/loop.rb +14 -2
  629. data/lib/ddtrace/workers/polling.rb +11 -5
  630. data/lib/ddtrace/workers/queue.rb +1 -1
  631. data/lib/ddtrace/workers/trace_writer.rb +3 -6
  632. data/lib/ddtrace/writer.rb +6 -3
  633. data/tasks/update_appraisal_gemfiles.rake +36 -0
  634. metadata +493 -33
  635. data/.circleci/images/primary/Dockerfile-2.0.0 +0 -83
  636. data/integration/images/ruby/2.0/Dockerfile +0 -54
  637. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -28
  638. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -17
  639. data/lib/ddtrace/contrib/cucumber/formatter.rb +0 -98
  640. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +0 -24
  641. data/lib/ddtrace/contrib/cucumber/integration.rb +0 -45
  642. data/lib/ddtrace/contrib/cucumber/patcher.rb +0 -23
  643. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -28
  644. data/lib/ddtrace/contrib/rspec/example.rb +0 -75
  645. data/lib/ddtrace/contrib/rspec/ext.rb +0 -16
  646. data/lib/ddtrace/contrib/rspec/integration.rb +0 -46
  647. data/lib/ddtrace/environment.rb +0 -41
  648. data/lib/ddtrace/ext/ci.rb +0 -297
  649. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  650. data/lib/ddtrace/runtime/class_count.rb +0 -17
  651. data/lib/ddtrace/runtime/container.rb +0 -79
  652. data/lib/ddtrace/runtime/gc.rb +0 -16
  653. data/lib/ddtrace/runtime/identity.rb +0 -48
  654. data/lib/ddtrace/runtime/object_space.rb +0 -19
  655. data/lib/ddtrace/runtime/socket.rb +0 -14
  656. data/lib/ddtrace/runtime/thread_count.rb +0 -16
@@ -9,7 +9,7 @@ module Datadog
9
9
  # Creates subscriptions that are wrapped with tracing.
10
10
  module Subscriber
11
11
  def self.included(base)
12
- base.send(:extend, ClassMethods)
12
+ base.extend(ClassMethods)
13
13
  end
14
14
 
15
15
  # Class methods that are implemented in the inheriting class.
@@ -6,7 +6,7 @@ module Datadog
6
6
  # AutoInstrumentation enables all integration
7
7
  module AutoInstrument
8
8
  def self.extended(base)
9
- base.send(:extend, Patch)
9
+ base.extend(Patch)
10
10
  end
11
11
 
12
12
  # Patch adds method for invoking auto_instrumentation
@@ -19,7 +19,6 @@ module Datadog
19
19
  else
20
20
  AutoInstrument.patch_all
21
21
  end
22
- AutoInstrument.patch_all
23
22
  end
24
23
  end
25
24
 
@@ -56,6 +56,35 @@ module Datadog
56
56
  Datadog.configuration[:aws]
57
57
  end
58
58
  end
59
+
60
+ # Removes API request instrumentation from S3 Presign URL creation.
61
+ #
62
+ # This is necessary because the S3 SDK invokes the same handler
63
+ # stack for presigning as it does for sending a real requests.
64
+ # But presigning does not perform a network request.
65
+ # There's not information available for our Handler plugin to differentiate
66
+ # these two types of requests.
67
+ #
68
+ # DEV: Since aws-sdk-s3 1.94.1, we only need to check if
69
+ # `context[:presigned_url] == true` in Datadog::Contrib::Aws::Handler#call
70
+ # and skip the request if that condition is true. Since there's
71
+ # no strong reason for us not to support older versions of `aws-sdk-s3`,
72
+ # this {S3Presigner} monkey-patching is still required.
73
+ module S3Presigner
74
+ # Exclude our Handler from the current request's handler stack.
75
+ #
76
+ # This is the same approach that the AWS SDK takes to prevent
77
+ # some of its plugins form interfering with the presigning process:
78
+ # https://github.com/aws/aws-sdk-ruby/blob/a82c8981c95a8296ffb6269c3c06a4f551d87f7d/gems/aws-sdk-s3/lib/aws-sdk-s3/presigner.rb#L194-L196
79
+ def sign_but_dont_send(*args, &block)
80
+ if (request = args[0]).is_a?(::Seahorse::Client::Request)
81
+ request.handlers.remove(Handler)
82
+ end
83
+
84
+ super(*args, &block)
85
+ end
86
+ ruby2_keywords :sign_but_dont_send if respond_to?(:ruby2_keywords, true)
87
+ end
59
88
  end
60
89
  end
61
90
  end
@@ -20,6 +20,10 @@ module Datadog
20
20
  require 'ddtrace/contrib/aws/services'
21
21
 
22
22
  add_plugin(Seahorse::Client::Base, *loaded_constants)
23
+
24
+ # Special handling for S3 URL Presigning.
25
+ # @see {Datadog::Contrib::Aws::S3Presigner}
26
+ ::Aws::S3::Presigner.prepend(S3Presigner) if defined?(::Aws::S3::Presigner)
23
27
  end
24
28
 
25
29
  def add_plugin(*targets)
@@ -20,7 +20,7 @@ module Datadog
20
20
 
21
21
  # Propagate tracing context in Concurrent::Future
22
22
  def patch_future
23
- ::Concurrent::Future.send(:include, FuturePatch)
23
+ ::Concurrent::Future.include(FuturePatch)
24
24
  end
25
25
  end
26
26
  end
@@ -10,7 +10,7 @@ module Datadog
10
10
  # fallback.
11
11
  module Configurable
12
12
  def self.included(base)
13
- base.send(:include, InstanceMethods)
13
+ base.include(InstanceMethods)
14
14
  end
15
15
 
16
16
  # Configurable instance behavior for integrations
@@ -10,7 +10,7 @@ module Datadog
10
10
  # Instruments every interaction with the memcached server
11
11
  module Instrumentation
12
12
  def self.included(base)
13
- base.send(:prepend, InstanceMethods)
13
+ base.prepend(InstanceMethods)
14
14
  end
15
15
 
16
16
  # InstanceMethods - implementing instrumentation
@@ -17,7 +17,7 @@ module Datadog
17
17
  end
18
18
 
19
19
  def patch
20
- ::Dalli::Server.send(:include, Instrumentation)
20
+ ::Dalli::Server.include(Instrumentation)
21
21
  end
22
22
  end
23
23
  end
@@ -11,7 +11,7 @@ module Datadog
11
11
  # Ethon EasyPatch
12
12
  module EasyPatch
13
13
  def self.included(base)
14
- base.send(:prepend, InstanceMethods)
14
+ base.prepend(InstanceMethods)
15
15
  end
16
16
 
17
17
  # InstanceMethods - implementing instrumentation
@@ -11,7 +11,7 @@ module Datadog
11
11
  module MultiPatch
12
12
  def self.included(base)
13
13
  # No need to prepend here since add method is included into Multi class
14
- base.send(:include, InstanceMethods)
14
+ base.include(InstanceMethods)
15
15
  end
16
16
 
17
17
  # InstanceMethods - implementing instrumentation
@@ -16,8 +16,8 @@ module Datadog
16
16
  require 'ddtrace/contrib/ethon/easy_patch'
17
17
  require 'ddtrace/contrib/ethon/multi_patch'
18
18
 
19
- ::Ethon::Easy.send(:include, EasyPatch)
20
- ::Ethon::Multi.send(:include, MultiPatch)
19
+ ::Ethon::Easy.include(EasyPatch)
20
+ ::Ethon::Multi.include(MultiPatch)
21
21
  end
22
22
  end
23
23
  end
@@ -7,9 +7,9 @@ module Datadog
7
7
  # Adds registry, configuration access for integrations.
8
8
  module Extensions
9
9
  def self.extended(base)
10
- Datadog.send(:extend, Helpers)
11
- Datadog.send(:extend, Configuration)
12
- Datadog::Configuration::Settings.send(:include, Configuration::Settings)
10
+ Datadog.extend(Helpers)
11
+ Datadog.extend(Configuration)
12
+ Datadog::Configuration::Settings.include(Configuration::Settings)
13
13
  end
14
14
 
15
15
  # Helper methods for Datadog module.
@@ -34,7 +34,7 @@ module Datadog
34
34
  ::Faraday.default_connection.use(:ddtrace)
35
35
 
36
36
  # Patch new connection instances (e.g. +Faraday.new+)
37
- ::Faraday::Connection.send(:prepend, Connection)
37
+ ::Faraday::Connection.prepend(Connection)
38
38
  else
39
39
  # Patch the default connection (e.g. +Faraday.get+)
40
40
  #
@@ -44,7 +44,7 @@ module Datadog
44
44
  ::Faraday.default_connection.builder.insert(idx, Middleware)
45
45
 
46
46
  # Patch new connection instances (e.g. +Faraday.new+)
47
- ::Faraday::RackBuilder.send(:prepend, RackBuilder)
47
+ ::Faraday::RackBuilder.prepend(RackBuilder)
48
48
  end
49
49
  end
50
50
  end
@@ -4,8 +4,8 @@ module Datadog
4
4
  # Instrumentation for Grape::Endpoint
5
5
  module Instrumentation
6
6
  def self.included(base)
7
- base.singleton_class.send(:prepend, ClassMethods)
8
- base.send(:prepend, InstanceMethods)
7
+ base.singleton_class.prepend(ClassMethods)
8
+ base.prepend(InstanceMethods)
9
9
  end
10
10
 
11
11
  # ClassMethods - implementing instrumentation
@@ -20,7 +20,7 @@ module Datadog
20
20
 
21
21
  def patch
22
22
  # Patch endpoints
23
- ::Grape::Endpoint.send(:include, Instrumentation)
23
+ ::Grape::Endpoint.include(Instrumentation)
24
24
 
25
25
  # Subscribe to ActiveSupport events
26
26
  Datadog::Contrib::Grape::Endpoint.subscribe
@@ -24,7 +24,7 @@ module Datadog
24
24
 
25
25
  def prepend_interceptor
26
26
  ::GRPC::InterceptionContext
27
- .send(:prepend, Datadog::Contrib::GRPC::InterceptWithDatadog)
27
+ .prepend(Datadog::Contrib::GRPC::InterceptWithDatadog)
28
28
  end
29
29
  end
30
30
  end
@@ -14,7 +14,7 @@ module Datadog
14
14
  # Instrumentation for Net::HTTP
15
15
  module Instrumentation
16
16
  def self.included(base)
17
- base.send(:prepend, InstanceMethods)
17
+ base.prepend(InstanceMethods)
18
18
  end
19
19
 
20
20
  # Span hook invoked after request is completed.
@@ -18,7 +18,7 @@ module Datadog
18
18
 
19
19
  # patch applies our patch if needed
20
20
  def patch
21
- ::Net::HTTP.send(:include, Instrumentation)
21
+ ::Net::HTTP.include(Instrumentation)
22
22
  end
23
23
  end
24
24
  end
@@ -12,7 +12,7 @@ module Datadog
12
12
  # Instrumentation for Httpclient
13
13
  module Instrumentation
14
14
  def self.included(base)
15
- base.send(:prepend, InstanceMethods)
15
+ base.prepend(InstanceMethods)
16
16
  end
17
17
 
18
18
  # Instance methods for configuration
@@ -26,7 +26,7 @@ module Datadog
26
26
  def patch
27
27
  PATCH_ONLY_ONCE.run do
28
28
  begin
29
- ::HTTPClient.send(:include, Instrumentation)
29
+ ::HTTPClient.include(Instrumentation)
30
30
  rescue StandardError => e
31
31
  Datadog::Logger.error("Unable to apply httpclient integration: #{e}")
32
32
  end
@@ -12,7 +12,7 @@ module Datadog
12
12
  # Instrumentation for Httprb
13
13
  module Instrumentation
14
14
  def self.included(base)
15
- base.send(:prepend, InstanceMethods)
15
+ base.prepend(InstanceMethods)
16
16
  end
17
17
 
18
18
  # Instance methods for configuration
@@ -26,7 +26,7 @@ module Datadog
26
26
  def patch
27
27
  PATCH_ONLY_ONCE.run do
28
28
  begin
29
- ::HTTP::Client.send(:include, Instrumentation)
29
+ ::HTTP::Client.include(Instrumentation)
30
30
  rescue StandardError => e
31
31
  Datadog::Logger.error("Unable to apply httprb integration: #{e}")
32
32
  end
@@ -7,9 +7,9 @@ module Datadog
7
7
  # Base provides features that are shared across all integrations
8
8
  module Integration
9
9
  def self.included(base)
10
- base.send(:include, Configurable)
11
- base.send(:include, Patchable)
12
- base.send(:include, Registerable)
10
+ base.include(Configurable)
11
+ base.include(Patchable)
12
+ base.include(Registerable)
13
13
  end
14
14
  end
15
15
  end
@@ -8,8 +8,8 @@ module Datadog
8
8
  # Defines basic behaviors for an ActiveSupport event.
9
9
  module Event
10
10
  def self.included(base)
11
- base.send(:include, ActiveSupport::Notifications::Event)
12
- base.send(:extend, ClassMethods)
11
+ base.include(ActiveSupport::Notifications::Event)
12
+ base.extend(ClassMethods)
13
13
  end
14
14
 
15
15
  # Class methods for Kafka events.
@@ -0,0 +1,18 @@
1
+ require 'ddtrace/contrib/configuration/settings'
2
+ require 'ddtrace/contrib/lograge/ext'
3
+
4
+ module Datadog
5
+ module Contrib
6
+ module Lograge
7
+ module Configuration
8
+ # Custom settings for the Lograge integration
9
+ class Settings < Contrib::Configuration::Settings
10
+ option :enabled do |o|
11
+ o.default { env_to_bool(Ext::ENV_ENABLED, true) }
12
+ o.lazy
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,10 @@
1
+ module Datadog
2
+ module Contrib
3
+ module Lograge
4
+ # Lograge integration constants
5
+ module Ext
6
+ ENV_ENABLED = 'DD_TRACE_LOGRAGE_ENABLED'.freeze
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,38 @@
1
+ module Datadog
2
+ module Contrib
3
+ module Lograge
4
+ # Instrumentation for Lograge
5
+ module Instrumentation
6
+ def self.included(base)
7
+ base.prepend(InstanceMethods)
8
+ end
9
+
10
+ # Instance methods for configuration
11
+ module InstanceMethods
12
+ def custom_options(event)
13
+ original_custom_options = super(event)
14
+
15
+ # Retrieves trace information for current thread
16
+ correlation = Datadog.tracer.active_correlation
17
+ # merge original lambda with datadog context
18
+
19
+ datadog_trace_log_hash = {
20
+ # Adds IDs as tags to log output
21
+ dd: {
22
+ # To preserve precision during JSON serialization, use strings for large numbers
23
+ trace_id: correlation.trace_id.to_s,
24
+ span_id: correlation.span_id.to_s,
25
+ env: correlation.env.to_s,
26
+ service: correlation.service.to_s,
27
+ version: correlation.version.to_s
28
+ },
29
+ ddsource: ['ruby']
30
+ }
31
+
32
+ datadog_trace_log_hash.merge(original_custom_options)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,45 @@
1
+ require 'ddtrace/contrib/integration'
2
+ require 'ddtrace/contrib/lograge/configuration/settings'
3
+ require 'ddtrace/contrib/lograge/patcher'
4
+
5
+ module Datadog
6
+ module Contrib
7
+ module Lograge
8
+ # Description of Lograge integration
9
+ class Integration
10
+ include Contrib::Integration
11
+
12
+ MINIMUM_VERSION = Gem::Version.new('0.11.0')
13
+
14
+ register_as :lograge
15
+
16
+ def self.version
17
+ Gem.loaded_specs['lograge'] && Gem.loaded_specs['lograge'].version
18
+ end
19
+
20
+ def self.loaded?
21
+ !defined?(::Lograge::LogSubscribers::Base).nil?
22
+ end
23
+
24
+ def self.compatible?
25
+ super && version >= MINIMUM_VERSION
26
+ end
27
+
28
+ # enabled by rails integration and has a hard dependancy on rails
29
+ # so can safely say this shouldn't ever be part of auto instrumentation
30
+ # https://github.com/roidrage/lograge/blob/1729eab7956bb95c5992e4adab251e4f93ff9280/lograge.gemspec#L18-L20
31
+ def auto_instrument?
32
+ false
33
+ end
34
+
35
+ def default_configuration
36
+ Configuration::Settings.new
37
+ end
38
+
39
+ def patcher
40
+ Patcher
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -1,10 +1,11 @@
1
1
  require 'ddtrace/contrib/patcher'
2
- require 'ddtrace/contrib/rspec/example'
2
+ require 'ddtrace/contrib/lograge/instrumentation'
3
3
 
4
4
  module Datadog
5
5
  module Contrib
6
- module RSpec
7
- # Patcher enables patching of 'rspec' module.
6
+ # Datadog Lograge integration.
7
+ module Lograge
8
+ # Patcher enables patching of 'lograge' module.
8
9
  module Patcher
9
10
  include Contrib::Patcher
10
11
 
@@ -14,8 +15,9 @@ module Datadog
14
15
  Integration.version
15
16
  end
16
17
 
18
+ # patch applies our patch
17
19
  def patch
18
- ::RSpec::Core::Example.send(:include, Example)
20
+ ::Lograge::LogSubscribers::Base.include(Instrumentation)
19
21
  end
20
22
  end
21
23
  end