ddtrace 0.50.0 → 0.51.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (512) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +32 -33
  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.1.0 +1 -1
  14. data/.dd-ci/ci-app-spec.json +31 -0
  15. data/.gitattributes +1 -0
  16. data/.github/workflows/test-head.yaml +34 -0
  17. data/.rubocop_todo.yml +0 -1
  18. data/Appraisals +195 -75
  19. data/CHANGELOG.md +75 -0
  20. data/Gemfile +6 -3
  21. data/Rakefile +45 -2
  22. data/docker-compose.yml +10 -10
  23. data/docs/GettingStarted.md +35 -4
  24. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +4 -1
  25. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +222 -169
  26. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +3 -2
  27. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +19 -17
  28. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +2 -1
  29. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +17 -15
  30. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +3 -2
  31. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +19 -17
  32. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +3 -2
  33. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +20 -18
  34. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +3 -2
  35. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +20 -18
  36. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +4 -3
  37. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +59 -57
  38. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +4 -3
  39. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +59 -57
  40. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +4 -3
  41. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +60 -58
  42. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +4 -3
  43. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +60 -58
  44. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +4 -3
  45. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +60 -58
  46. data/gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile +41 -0
  47. data/gemfiles/jruby_9.2.0.0_rails5_semantic_logger.gemfile.lock +272 -0
  48. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +3 -2
  49. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +78 -76
  50. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +3 -2
  51. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +78 -76
  52. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +3 -2
  53. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +79 -77
  54. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +3 -2
  55. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +79 -77
  56. data/gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile +41 -0
  57. data/gemfiles/jruby_9.2.0.0_rails61_semantic_logger.gemfile.lock +291 -0
  58. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +4 -3
  59. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +73 -71
  60. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +4 -3
  61. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +73 -71
  62. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +4 -3
  63. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +74 -72
  64. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +4 -3
  65. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +74 -72
  66. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +4 -3
  67. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +74 -72
  68. data/gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile +41 -0
  69. data/gemfiles/jruby_9.2.0.0_rails6_semantic_logger.gemfile.lock +288 -0
  70. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +3 -2
  71. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +19 -17
  72. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +3 -2
  73. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +20 -18
  74. data/gemfiles/{jruby_9.2.11.1_contrib.gemfile → jruby_9.2.18.0_contrib.gemfile} +4 -1
  75. data/gemfiles/{jruby_9.2.11.1_contrib.gemfile.lock → jruby_9.2.18.0_contrib.gemfile.lock} +223 -170
  76. data/gemfiles/{jruby_9.2.11.1_contrib_old.gemfile → jruby_9.2.18.0_contrib_old.gemfile} +3 -2
  77. data/gemfiles/{jruby_9.2.11.1_contrib_old.gemfile.lock → jruby_9.2.18.0_contrib_old.gemfile.lock} +20 -18
  78. data/gemfiles/{jruby_9.2.11.1_core_old.gemfile → jruby_9.2.18.0_core_old.gemfile} +2 -1
  79. data/gemfiles/{jruby_9.2.11.1_core_old.gemfile.lock → jruby_9.2.18.0_core_old.gemfile.lock} +18 -16
  80. data/gemfiles/{jruby_9.2.11.1_cucumber3.gemfile → jruby_9.2.18.0_cucumber3.gemfile} +3 -2
  81. data/gemfiles/{jruby_9.2.11.1_cucumber3.gemfile.lock → jruby_9.2.18.0_cucumber3.gemfile.lock} +20 -18
  82. data/gemfiles/{jruby_9.2.11.1_cucumber4.gemfile → jruby_9.2.18.0_cucumber4.gemfile} +3 -2
  83. data/gemfiles/{jruby_9.2.11.1_cucumber4.gemfile.lock → jruby_9.2.18.0_cucumber4.gemfile.lock} +21 -19
  84. data/gemfiles/{jruby_9.2.11.1_cucumber5.gemfile → jruby_9.2.18.0_cucumber5.gemfile} +3 -2
  85. data/gemfiles/{jruby_9.2.11.1_cucumber5.gemfile.lock → jruby_9.2.18.0_cucumber5.gemfile.lock} +21 -19
  86. data/gemfiles/{jruby_9.2.11.1_rails5_mysql2.gemfile → jruby_9.2.18.0_rails5_mysql2.gemfile} +4 -3
  87. data/gemfiles/{jruby_9.2.11.1_rails5_mysql2.gemfile.lock → jruby_9.2.18.0_rails5_mysql2.gemfile.lock} +60 -58
  88. data/gemfiles/{jruby_9.2.11.1_rails5_postgres.gemfile → jruby_9.2.18.0_rails5_postgres.gemfile} +4 -3
  89. data/gemfiles/{jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile.lock → jruby_9.2.18.0_rails5_postgres.gemfile.lock} +60 -60
  90. data/gemfiles/{jruby_9.2.11.1_rails5_postgres_redis.gemfile → jruby_9.2.18.0_rails5_postgres_redis.gemfile} +4 -3
  91. data/gemfiles/{jruby_9.2.11.1_rails5_postgres_redis.gemfile.lock → jruby_9.2.18.0_rails5_postgres_redis.gemfile.lock} +61 -59
  92. data/gemfiles/{jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile → jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile} +4 -3
  93. data/gemfiles/{jruby_9.2.11.1_rails5_postgres.gemfile.lock → jruby_9.2.18.0_rails5_postgres_redis_activesupport.gemfile.lock} +62 -58
  94. data/gemfiles/{jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile → jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile} +4 -3
  95. data/gemfiles/{jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile.lock → jruby_9.2.18.0_rails5_postgres_sidekiq.gemfile.lock} +61 -59
  96. data/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile +41 -0
  97. data/gemfiles/jruby_9.2.18.0_rails5_semantic_logger.gemfile.lock +272 -0
  98. data/gemfiles/{jruby_9.2.11.1_rails61_mysql2.gemfile → jruby_9.2.18.0_rails61_mysql2.gemfile} +3 -2
  99. data/gemfiles/{jruby_9.2.11.1_rails61_mysql2.gemfile.lock → jruby_9.2.18.0_rails61_mysql2.gemfile.lock} +79 -77
  100. data/gemfiles/{jruby_9.2.11.1_rails61_postgres.gemfile → jruby_9.2.18.0_rails61_postgres.gemfile} +3 -2
  101. data/gemfiles/{jruby_9.2.11.1_rails61_postgres.gemfile.lock → jruby_9.2.18.0_rails61_postgres.gemfile.lock} +79 -77
  102. data/gemfiles/{jruby_9.2.11.1_rails61_postgres_redis.gemfile → jruby_9.2.18.0_rails61_postgres_redis.gemfile} +3 -2
  103. data/gemfiles/{jruby_9.2.11.1_rails61_postgres_redis.gemfile.lock → jruby_9.2.18.0_rails61_postgres_redis.gemfile.lock} +80 -78
  104. data/gemfiles/{jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile → jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile} +3 -2
  105. data/gemfiles/{jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile.lock → jruby_9.2.18.0_rails61_postgres_sidekiq.gemfile.lock} +80 -78
  106. data/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile +41 -0
  107. data/gemfiles/jruby_9.2.18.0_rails61_semantic_logger.gemfile.lock +291 -0
  108. data/gemfiles/{jruby_9.2.11.1_rails6_mysql2.gemfile → jruby_9.2.18.0_rails6_mysql2.gemfile} +4 -3
  109. data/gemfiles/{jruby_9.2.11.1_rails6_mysql2.gemfile.lock → jruby_9.2.18.0_rails6_mysql2.gemfile.lock} +74 -72
  110. data/gemfiles/{jruby_9.2.11.1_rails6_postgres.gemfile → jruby_9.2.18.0_rails6_postgres.gemfile} +4 -3
  111. data/gemfiles/{jruby_9.2.11.1_rails6_postgres.gemfile.lock → jruby_9.2.18.0_rails6_postgres.gemfile.lock} +74 -72
  112. data/gemfiles/{jruby_9.2.11.1_rails6_postgres_redis.gemfile → jruby_9.2.18.0_rails6_postgres_redis.gemfile} +4 -3
  113. data/gemfiles/{jruby_9.2.11.1_rails6_postgres_redis.gemfile.lock → jruby_9.2.18.0_rails6_postgres_redis.gemfile.lock} +75 -73
  114. data/gemfiles/{jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile → jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile} +4 -3
  115. data/gemfiles/{jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile.lock → jruby_9.2.18.0_rails6_postgres_redis_activesupport.gemfile.lock} +75 -73
  116. data/gemfiles/{jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile → jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile} +4 -3
  117. data/gemfiles/{jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile.lock → jruby_9.2.18.0_rails6_postgres_sidekiq.gemfile.lock} +75 -73
  118. data/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile +41 -0
  119. data/gemfiles/jruby_9.2.18.0_rails6_semantic_logger.gemfile.lock +288 -0
  120. data/gemfiles/{jruby_9.2.11.1_resque2_redis3.gemfile → jruby_9.2.18.0_resque2_redis3.gemfile} +3 -2
  121. data/gemfiles/{jruby_9.2.11.1_resque2_redis3.gemfile.lock → jruby_9.2.18.0_resque2_redis3.gemfile.lock} +20 -18
  122. data/gemfiles/{jruby_9.2.11.1_resque2_redis4.gemfile → jruby_9.2.18.0_resque2_redis4.gemfile} +3 -2
  123. data/gemfiles/{jruby_9.2.11.1_resque2_redis4.gemfile.lock → jruby_9.2.18.0_resque2_redis4.gemfile.lock} +21 -19
  124. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +3 -1
  125. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +14 -9
  126. data/gemfiles/ruby_2.1.10_core_old.gemfile +2 -1
  127. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +6 -4
  128. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +3 -3
  129. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +9 -12
  130. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +3 -3
  131. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +9 -12
  132. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +3 -3
  133. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +9 -12
  134. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +3 -3
  135. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +9 -12
  136. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +3 -3
  137. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +9 -12
  138. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +3 -3
  139. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +9 -12
  140. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +4 -3
  141. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +10 -8
  142. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +4 -3
  143. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +10 -8
  144. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +4 -3
  145. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +11 -9
  146. data/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile +39 -0
  147. data/gemfiles/ruby_2.1.10_rails4_semantic_logger.gemfile.lock +218 -0
  148. data/gemfiles/ruby_2.2.10_contrib.gemfile +4 -1
  149. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +188 -139
  150. data/gemfiles/ruby_2.2.10_core_old.gemfile +2 -1
  151. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +7 -5
  152. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +3 -3
  153. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +10 -13
  154. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +3 -3
  155. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +10 -13
  156. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +3 -3
  157. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +10 -13
  158. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +3 -3
  159. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +10 -13
  160. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +3 -3
  161. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +10 -13
  162. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +3 -3
  163. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +10 -13
  164. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +4 -3
  165. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +11 -9
  166. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +4 -3
  167. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +11 -9
  168. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +4 -3
  169. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +12 -10
  170. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +4 -3
  171. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +11 -9
  172. data/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile +39 -0
  173. data/gemfiles/ruby_2.2.10_rails4_semantic_logger.gemfile.lock +218 -0
  174. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +4 -3
  175. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +12 -10
  176. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +4 -3
  177. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +12 -10
  178. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +4 -3
  179. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +12 -10
  180. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +4 -3
  181. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +12 -10
  182. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +4 -3
  183. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +12 -10
  184. data/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile +39 -0
  185. data/gemfiles/ruby_2.2.10_rails5_semantic_logger.gemfile.lock +234 -0
  186. data/gemfiles/ruby_2.3.8_contrib.gemfile +4 -2
  187. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +197 -148
  188. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +3 -3
  189. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +10 -14
  190. data/gemfiles/ruby_2.3.8_core_old.gemfile +2 -2
  191. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +8 -12
  192. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +3 -3
  193. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +10 -14
  194. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +3 -3
  195. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +11 -15
  196. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +3 -4
  197. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +11 -20
  198. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +3 -4
  199. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +11 -20
  200. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +3 -4
  201. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +11 -20
  202. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +3 -4
  203. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +11 -20
  204. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +3 -4
  205. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +11 -20
  206. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +3 -4
  207. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +11 -20
  208. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +4 -4
  209. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +12 -16
  210. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +4 -4
  211. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +12 -16
  212. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +4 -4
  213. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +13 -17
  214. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +4 -4
  215. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +13 -17
  216. data/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile +38 -0
  217. data/gemfiles/ruby_2.3.8_rails4_semantic_logger.gemfile.lock +218 -0
  218. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +4 -4
  219. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +49 -53
  220. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +4 -4
  221. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +49 -53
  222. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +4 -4
  223. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +50 -54
  224. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +4 -4
  225. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +50 -54
  226. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +4 -4
  227. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +49 -53
  228. data/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile +37 -0
  229. data/gemfiles/ruby_2.3.8_rails5_semantic_logger.gemfile.lock +229 -0
  230. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +3 -3
  231. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +10 -14
  232. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +3 -3
  233. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +11 -15
  234. data/gemfiles/{ruby_2.4.6_contrib.gemfile → ruby_2.4.10_contrib.gemfile} +5 -2
  235. data/gemfiles/{ruby_2.4.6_contrib.gemfile.lock → ruby_2.4.10_contrib.gemfile.lock} +232 -149
  236. data/gemfiles/{ruby_2.4.6_contrib_old.gemfile → ruby_2.4.10_contrib_old.gemfile} +3 -2
  237. data/gemfiles/{ruby_2.4.6_contrib_old.gemfile.lock → ruby_2.4.10_contrib_old.gemfile.lock} +13 -11
  238. data/gemfiles/{ruby_2.4.6_core_old.gemfile → ruby_2.4.10_core_old.gemfile} +2 -1
  239. data/gemfiles/{ruby_2.4.6_core_old.gemfile.lock → ruby_2.4.10_core_old.gemfile.lock} +11 -9
  240. data/gemfiles/{ruby_2.4.6_cucumber3.gemfile → ruby_2.4.10_cucumber3.gemfile} +3 -2
  241. data/gemfiles/{ruby_2.4.6_cucumber3.gemfile.lock → ruby_2.4.10_cucumber3.gemfile.lock} +13 -11
  242. data/gemfiles/{ruby_2.4.6_cucumber4.gemfile → ruby_2.4.10_cucumber4.gemfile} +3 -2
  243. data/gemfiles/{ruby_2.4.6_cucumber4.gemfile.lock → ruby_2.4.10_cucumber4.gemfile.lock} +14 -12
  244. data/gemfiles/{ruby_2.4.6_rails5_mysql2.gemfile → ruby_2.4.10_rails5_mysql2.gemfile} +4 -3
  245. data/gemfiles/{ruby_2.4.6_rails5_mysql2.gemfile.lock → ruby_2.4.10_rails5_mysql2.gemfile.lock} +52 -50
  246. data/gemfiles/{ruby_2.4.6_rails5_postgres.gemfile → ruby_2.4.10_rails5_postgres.gemfile} +4 -3
  247. data/gemfiles/{ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile.lock → ruby_2.4.10_rails5_postgres.gemfile.lock} +52 -52
  248. data/gemfiles/{ruby_2.4.6_rails5_postgres_redis.gemfile → ruby_2.4.10_rails5_postgres_redis.gemfile} +4 -3
  249. data/gemfiles/{ruby_2.4.6_rails5_postgres_redis.gemfile.lock → ruby_2.4.10_rails5_postgres_redis.gemfile.lock} +53 -51
  250. data/gemfiles/{ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile → ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile} +4 -3
  251. data/gemfiles/{ruby_2.4.6_rails5_postgres.gemfile.lock → ruby_2.4.10_rails5_postgres_redis_activesupport.gemfile.lock} +54 -50
  252. data/gemfiles/{ruby_2.4.6_rails5_postgres_sidekiq.gemfile → ruby_2.4.10_rails5_postgres_sidekiq.gemfile} +4 -3
  253. data/gemfiles/{ruby_2.4.6_rails5_postgres_sidekiq.gemfile.lock → ruby_2.4.10_rails5_postgres_sidekiq.gemfile.lock} +52 -50
  254. data/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile +42 -0
  255. data/gemfiles/ruby_2.4.10_rails5_semantic_logger.gemfile.lock +263 -0
  256. data/gemfiles/{ruby_2.4.6_resque2_redis3.gemfile → ruby_2.4.10_resque2_redis3.gemfile} +3 -2
  257. data/gemfiles/{ruby_2.4.6_resque2_redis3.gemfile.lock → ruby_2.4.10_resque2_redis3.gemfile.lock} +13 -11
  258. data/gemfiles/{ruby_2.4.6_resque2_redis4.gemfile → ruby_2.4.10_resque2_redis4.gemfile} +3 -2
  259. data/gemfiles/{ruby_2.4.6_resque2_redis4.gemfile.lock → ruby_2.4.10_resque2_redis4.gemfile.lock} +14 -12
  260. data/gemfiles/{ruby_2.5.6_contrib.gemfile → ruby_2.5.9_contrib.gemfile} +4 -1
  261. data/gemfiles/{ruby_2.5.6_contrib.gemfile.lock → ruby_2.5.9_contrib.gemfile.lock} +273 -191
  262. data/gemfiles/{ruby_2.5.6_contrib_old.gemfile → ruby_2.5.9_contrib_old.gemfile} +3 -2
  263. data/gemfiles/{ruby_2.5.6_contrib_old.gemfile.lock → ruby_2.5.9_contrib_old.gemfile.lock} +22 -20
  264. data/gemfiles/{ruby_2.5.6_core_old.gemfile → ruby_2.5.9_core_old.gemfile} +2 -1
  265. data/gemfiles/{ruby_2.5.6_core_old.gemfile.lock → ruby_2.5.9_core_old.gemfile.lock} +20 -18
  266. data/gemfiles/{ruby_2.5.6_cucumber3.gemfile → ruby_2.5.9_cucumber3.gemfile} +3 -2
  267. data/gemfiles/{ruby_2.5.6_cucumber3.gemfile.lock → ruby_2.5.9_cucumber3.gemfile.lock} +22 -20
  268. data/gemfiles/{ruby_2.5.6_cucumber4.gemfile → ruby_2.5.9_cucumber4.gemfile} +3 -2
  269. data/gemfiles/{ruby_2.5.6_cucumber4.gemfile.lock → ruby_2.5.9_cucumber4.gemfile.lock} +23 -21
  270. data/gemfiles/{ruby_2.5.6_cucumber5.gemfile → ruby_2.5.9_cucumber5.gemfile} +3 -2
  271. data/gemfiles/{ruby_2.5.6_cucumber5.gemfile.lock → ruby_2.5.9_cucumber5.gemfile.lock} +23 -21
  272. data/gemfiles/{ruby_2.5.6_rails5_mysql2.gemfile → ruby_2.5.9_rails5_mysql2.gemfile} +4 -3
  273. data/gemfiles/{ruby_2.5.6_rails5_mysql2.gemfile.lock → ruby_2.5.9_rails5_mysql2.gemfile.lock} +62 -62
  274. data/gemfiles/{ruby_2.5.6_rails5_postgres.gemfile → ruby_2.5.9_rails5_postgres.gemfile} +4 -3
  275. data/gemfiles/{ruby_2.5.6_rails5_postgres.gemfile.lock → ruby_2.5.9_rails5_postgres.gemfile.lock} +62 -62
  276. data/gemfiles/{ruby_2.5.6_rails5_postgres_redis.gemfile → ruby_2.5.9_rails5_postgres_redis.gemfile} +4 -3
  277. data/gemfiles/{ruby_2.5.6_rails5_postgres_redis.gemfile.lock → ruby_2.5.9_rails5_postgres_redis.gemfile.lock} +63 -63
  278. data/gemfiles/{ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile → ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile} +4 -3
  279. data/gemfiles/{ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile.lock → ruby_2.5.9_rails5_postgres_redis_activesupport.gemfile.lock} +63 -63
  280. data/gemfiles/{ruby_2.5.6_rails5_postgres_sidekiq.gemfile → ruby_2.5.9_rails5_postgres_sidekiq.gemfile} +4 -3
  281. data/gemfiles/{ruby_2.5.6_rails5_postgres_sidekiq.gemfile.lock → ruby_2.5.9_rails5_postgres_sidekiq.gemfile.lock} +63 -63
  282. data/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile +45 -0
  283. data/gemfiles/ruby_2.5.9_rails5_semantic_logger.gemfile.lock +275 -0
  284. data/gemfiles/{ruby_2.5.6_rails61_mysql2.gemfile → ruby_2.5.9_rails61_mysql2.gemfile} +3 -2
  285. data/gemfiles/{ruby_2.5.6_rails61_mysql2.gemfile.lock → ruby_2.5.9_rails61_mysql2.gemfile.lock} +81 -81
  286. data/gemfiles/{ruby_2.5.6_rails61_postgres.gemfile → ruby_2.5.9_rails61_postgres.gemfile} +3 -2
  287. data/gemfiles/{ruby_2.5.6_rails61_postgres.gemfile.lock → ruby_2.5.9_rails61_postgres.gemfile.lock} +81 -81
  288. data/gemfiles/{ruby_2.5.6_rails61_postgres_redis.gemfile → ruby_2.5.9_rails61_postgres_redis.gemfile} +3 -2
  289. data/gemfiles/{ruby_2.5.6_rails61_postgres_redis.gemfile.lock → ruby_2.5.9_rails61_postgres_redis.gemfile.lock} +82 -82
  290. data/gemfiles/{ruby_2.5.6_rails61_postgres_sidekiq.gemfile → ruby_2.5.9_rails61_postgres_sidekiq.gemfile} +3 -2
  291. data/gemfiles/{ruby_2.5.6_rails61_postgres_sidekiq.gemfile.lock → ruby_2.5.9_rails61_postgres_sidekiq.gemfile.lock} +82 -82
  292. data/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile +45 -0
  293. data/gemfiles/ruby_2.5.9_rails61_semantic_logger.gemfile.lock +294 -0
  294. data/gemfiles/{ruby_2.5.6_rails6_mysql2.gemfile → ruby_2.5.9_rails6_mysql2.gemfile} +4 -3
  295. data/gemfiles/{ruby_2.5.6_rails6_mysql2.gemfile.lock → ruby_2.5.9_rails6_mysql2.gemfile.lock} +76 -76
  296. data/gemfiles/{ruby_2.5.6_rails6_postgres.gemfile → ruby_2.5.9_rails6_postgres.gemfile} +4 -3
  297. data/gemfiles/{ruby_2.5.6_rails6_postgres.gemfile.lock → ruby_2.5.9_rails6_postgres.gemfile.lock} +76 -76
  298. data/gemfiles/{ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile → ruby_2.5.9_rails6_postgres_redis.gemfile} +4 -3
  299. data/gemfiles/{ruby_2.5.6_rails6_postgres_redis.gemfile.lock → ruby_2.5.9_rails6_postgres_redis.gemfile.lock} +77 -77
  300. data/gemfiles/{ruby_2.5.6_rails6_postgres_redis.gemfile → ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile} +4 -3
  301. data/gemfiles/{ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile.lock → ruby_2.5.9_rails6_postgres_redis_activesupport.gemfile.lock} +77 -77
  302. data/gemfiles/{ruby_2.5.6_rails6_postgres_sidekiq.gemfile → ruby_2.5.9_rails6_postgres_sidekiq.gemfile} +4 -3
  303. data/gemfiles/{ruby_2.5.6_rails6_postgres_sidekiq.gemfile.lock → ruby_2.5.9_rails6_postgres_sidekiq.gemfile.lock} +77 -77
  304. data/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile +45 -0
  305. data/gemfiles/ruby_2.5.9_rails6_semantic_logger.gemfile.lock +291 -0
  306. data/gemfiles/{ruby_2.5.6_resque2_redis3.gemfile → ruby_2.5.9_resque2_redis3.gemfile} +3 -2
  307. data/gemfiles/{ruby_2.5.6_resque2_redis3.gemfile.lock → ruby_2.5.9_resque2_redis3.gemfile.lock} +22 -20
  308. data/gemfiles/{ruby_2.5.6_resque2_redis4.gemfile → ruby_2.5.9_resque2_redis4.gemfile} +3 -2
  309. data/gemfiles/{ruby_2.5.6_resque2_redis4.gemfile.lock → ruby_2.5.9_resque2_redis4.gemfile.lock} +23 -21
  310. data/gemfiles/{ruby_2.6.4_contrib.gemfile → ruby_2.6.7_contrib.gemfile} +4 -1
  311. data/gemfiles/{ruby_2.7.0_contrib.gemfile.lock → ruby_2.6.7_contrib.gemfile.lock} +280 -197
  312. data/gemfiles/{ruby_2.6.4_contrib_old.gemfile → ruby_2.6.7_contrib_old.gemfile} +3 -2
  313. data/gemfiles/{ruby_2.7.0_contrib_old.gemfile.lock → ruby_2.6.7_contrib_old.gemfile.lock} +26 -24
  314. data/gemfiles/{ruby_2.7.0_core_old.gemfile → ruby_2.6.7_core_old.gemfile} +2 -1
  315. data/gemfiles/{ruby_2.7.0_core_old.gemfile.lock → ruby_2.6.7_core_old.gemfile.lock} +24 -22
  316. data/gemfiles/{ruby_2.7.0_cucumber3.gemfile → ruby_2.6.7_cucumber3.gemfile} +3 -2
  317. data/gemfiles/{ruby_2.7.0_cucumber3.gemfile.lock → ruby_2.6.7_cucumber3.gemfile.lock} +26 -24
  318. data/gemfiles/{ruby_2.6.4_cucumber4.gemfile → ruby_2.6.7_cucumber4.gemfile} +3 -2
  319. data/gemfiles/{ruby_2.7.0_cucumber4.gemfile.lock → ruby_2.6.7_cucumber4.gemfile.lock} +27 -25
  320. data/gemfiles/{ruby_2.6.4_cucumber5.gemfile → ruby_2.6.7_cucumber5.gemfile} +3 -2
  321. data/gemfiles/{ruby_2.7.0_cucumber5.gemfile.lock → ruby_2.6.7_cucumber5.gemfile.lock} +27 -25
  322. data/gemfiles/{ruby_2.6.4_rails5_mysql2.gemfile → ruby_2.6.7_rails5_mysql2.gemfile} +4 -3
  323. data/gemfiles/ruby_2.6.7_rails5_mysql2.gemfile.lock +276 -0
  324. data/gemfiles/{ruby_2.6.4_rails5_postgres.gemfile → ruby_2.6.7_rails5_postgres.gemfile} +4 -3
  325. data/gemfiles/{ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile.lock → ruby_2.6.7_rails5_postgres.gemfile.lock} +62 -64
  326. data/gemfiles/{ruby_2.6.4_rails5_postgres_redis.gemfile → ruby_2.6.7_rails5_postgres_redis.gemfile} +4 -3
  327. data/gemfiles/{ruby_2.6.4_rails5_postgres_redis.gemfile.lock → ruby_2.6.7_rails5_postgres_redis.gemfile.lock} +63 -63
  328. data/gemfiles/{ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile → ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile} +4 -3
  329. data/gemfiles/ruby_2.6.7_rails5_postgres_redis_activesupport.gemfile.lock +278 -0
  330. data/gemfiles/{ruby_2.6.4_rails5_postgres_sidekiq.gemfile → ruby_2.6.7_rails5_postgres_sidekiq.gemfile} +4 -3
  331. data/gemfiles/{ruby_2.7.0_rails5_postgres_sidekiq.gemfile.lock → ruby_2.6.7_rails5_postgres_sidekiq.gemfile.lock} +67 -67
  332. data/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile +43 -0
  333. data/gemfiles/ruby_2.6.7_rails5_semantic_logger.gemfile.lock +275 -0
  334. data/gemfiles/{ruby_2.6.4_rails61_mysql2.gemfile → ruby_2.6.7_rails61_mysql2.gemfile} +3 -2
  335. data/gemfiles/ruby_2.6.7_rails61_mysql2.gemfile.lock +295 -0
  336. data/gemfiles/{ruby_2.6.4_rails61_postgres.gemfile → ruby_2.6.7_rails61_postgres.gemfile} +3 -2
  337. data/gemfiles/ruby_2.6.7_rails61_postgres.gemfile.lock +295 -0
  338. data/gemfiles/{ruby_2.7.0_rails61_postgres_redis.gemfile → ruby_2.6.7_rails61_postgres_redis.gemfile} +3 -2
  339. data/gemfiles/ruby_2.6.7_rails61_postgres_redis.gemfile.lock +297 -0
  340. data/gemfiles/{ruby_2.7.0_rails61_postgres_sidekiq.gemfile → ruby_2.6.7_rails61_postgres_sidekiq.gemfile} +3 -2
  341. data/gemfiles/{ruby_3.0.0_rails61_postgres_sidekiq.gemfile.lock → ruby_2.6.7_rails61_postgres_sidekiq.gemfile.lock} +82 -82
  342. data/gemfiles/{ruby_2.6.4_rails61_postgres_sidekiq.gemfile → ruby_2.6.7_rails61_semantic_logger.gemfile} +4 -4
  343. data/gemfiles/ruby_2.6.7_rails61_semantic_logger.gemfile.lock +294 -0
  344. data/gemfiles/{ruby_2.6.4_rails6_mysql2.gemfile → ruby_2.6.7_rails6_mysql2.gemfile} +4 -3
  345. data/gemfiles/ruby_2.6.7_rails6_mysql2.gemfile.lock +292 -0
  346. data/gemfiles/{ruby_2.6.4_rails6_postgres.gemfile → ruby_2.6.7_rails6_postgres.gemfile} +4 -3
  347. data/gemfiles/ruby_2.6.7_rails6_postgres.gemfile.lock +292 -0
  348. data/gemfiles/{ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile → ruby_2.6.7_rails6_postgres_redis.gemfile} +4 -3
  349. data/gemfiles/{ruby_2.6.4_rails6_postgres_redis.gemfile.lock → ruby_2.6.7_rails6_postgres_redis.gemfile.lock} +77 -77
  350. data/gemfiles/{ruby_2.6.4_rails6_postgres_redis.gemfile → ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile} +4 -3
  351. data/gemfiles/{ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile.lock → ruby_2.6.7_rails6_postgres_redis_activesupport.gemfile.lock} +77 -77
  352. data/gemfiles/{ruby_2.6.4_rails6_postgres_sidekiq.gemfile → ruby_2.6.7_rails6_postgres_sidekiq.gemfile} +4 -3
  353. data/gemfiles/{ruby_2.7.0_rails6_postgres_sidekiq.gemfile.lock → ruby_2.6.7_rails6_postgres_sidekiq.gemfile.lock} +81 -81
  354. data/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile +43 -0
  355. data/gemfiles/ruby_2.6.7_rails6_semantic_logger.gemfile.lock +291 -0
  356. data/gemfiles/{ruby_2.7.0_resque2_redis3.gemfile → ruby_2.6.7_resque2_redis3.gemfile} +3 -2
  357. data/gemfiles/ruby_2.6.7_resque2_redis3.gemfile.lock +192 -0
  358. data/gemfiles/{ruby_2.7.0_resque2_redis4.gemfile → ruby_2.6.7_resque2_redis4.gemfile} +3 -2
  359. data/gemfiles/ruby_2.6.7_resque2_redis4.gemfile.lock +192 -0
  360. data/gemfiles/{ruby_2.7.0_contrib.gemfile → ruby_2.7.3_contrib.gemfile} +4 -1
  361. data/gemfiles/{ruby_2.6.4_contrib.gemfile.lock → ruby_2.7.3_contrib.gemfile.lock} +230 -174
  362. data/gemfiles/{ruby_2.7.0_contrib_old.gemfile → ruby_2.7.3_contrib_old.gemfile} +3 -2
  363. data/gemfiles/{ruby_2.6.4_contrib_old.gemfile.lock → ruby_2.7.3_contrib_old.gemfile.lock} +21 -19
  364. data/gemfiles/{ruby_2.6.4_core_old.gemfile → ruby_2.7.3_core_old.gemfile} +2 -1
  365. data/gemfiles/{ruby_2.6.4_core_old.gemfile.lock → ruby_2.7.3_core_old.gemfile.lock} +19 -17
  366. data/gemfiles/{ruby_2.6.4_cucumber3.gemfile → ruby_2.7.3_cucumber3.gemfile} +3 -2
  367. data/gemfiles/{ruby_2.6.4_cucumber3.gemfile.lock → ruby_2.7.3_cucumber3.gemfile.lock} +21 -19
  368. data/gemfiles/{ruby_2.7.0_cucumber4.gemfile → ruby_2.7.3_cucumber4.gemfile} +3 -2
  369. data/gemfiles/{ruby_2.6.4_cucumber4.gemfile.lock → ruby_2.7.3_cucumber4.gemfile.lock} +22 -20
  370. data/gemfiles/{ruby_2.7.0_cucumber5.gemfile → ruby_2.7.3_cucumber5.gemfile} +3 -2
  371. data/gemfiles/{ruby_2.6.4_cucumber5.gemfile.lock → ruby_2.7.3_cucumber5.gemfile.lock} +22 -20
  372. data/gemfiles/{ruby_2.7.0_rails5_mysql2.gemfile → ruby_2.7.3_rails5_mysql2.gemfile} +4 -3
  373. data/gemfiles/{ruby_2.6.4_rails5_mysql2.gemfile.lock → ruby_2.7.3_rails5_mysql2.gemfile.lock} +62 -60
  374. data/gemfiles/ruby_2.7.3_rails5_postgres.gemfile +43 -0
  375. data/gemfiles/{ruby_2.6.4_rails5_postgres.gemfile.lock → ruby_2.7.3_rails5_postgres.gemfile.lock} +62 -60
  376. data/gemfiles/{ruby_2.7.0_rails5_postgres_redis.gemfile → ruby_2.7.3_rails5_postgres_redis.gemfile} +4 -3
  377. data/gemfiles/{ruby_2.7.0_rails5_postgres_redis.gemfile.lock → ruby_2.7.3_rails5_postgres_redis.gemfile.lock} +68 -66
  378. data/gemfiles/{ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile → ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile} +4 -3
  379. data/gemfiles/{ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile.lock → ruby_2.7.3_rails5_postgres_redis_activesupport.gemfile.lock} +68 -66
  380. data/gemfiles/{ruby_2.7.0_rails5_postgres_sidekiq.gemfile → ruby_2.7.3_rails5_postgres_sidekiq.gemfile} +4 -3
  381. data/gemfiles/{ruby_2.6.4_rails5_postgres_sidekiq.gemfile.lock → ruby_2.7.3_rails5_postgres_sidekiq.gemfile.lock} +63 -61
  382. data/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile +43 -0
  383. data/gemfiles/ruby_2.7.3_rails5_semantic_logger.gemfile.lock +277 -0
  384. data/gemfiles/{ruby_2.7.0_rails61_mysql2.gemfile → ruby_2.7.3_rails61_mysql2.gemfile} +3 -2
  385. data/gemfiles/{ruby_2.6.4_rails61_mysql2.gemfile.lock → ruby_2.7.3_rails61_mysql2.gemfile.lock} +81 -79
  386. data/gemfiles/{ruby_2.7.0_rails61_postgres.gemfile → ruby_2.7.3_rails61_postgres.gemfile} +3 -2
  387. data/gemfiles/{ruby_2.6.4_rails61_postgres.gemfile.lock → ruby_2.7.3_rails61_postgres.gemfile.lock} +81 -79
  388. data/gemfiles/{ruby_2.6.4_rails61_postgres_redis.gemfile → ruby_2.7.3_rails61_postgres_redis.gemfile} +3 -2
  389. data/gemfiles/{ruby_2.6.4_rails61_postgres_redis.gemfile.lock → ruby_2.7.3_rails61_postgres_redis.gemfile.lock} +82 -80
  390. data/gemfiles/{ruby_3.0.0_rails61_postgres_sidekiq.gemfile → ruby_2.7.3_rails61_postgres_sidekiq.gemfile} +3 -3
  391. data/gemfiles/{ruby_2.6.4_rails61_postgres_sidekiq.gemfile.lock → ruby_2.7.3_rails61_postgres_sidekiq.gemfile.lock} +82 -80
  392. data/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile +43 -0
  393. data/gemfiles/ruby_2.7.3_rails61_semantic_logger.gemfile.lock +296 -0
  394. data/gemfiles/{ruby_2.7.0_rails6_mysql2.gemfile → ruby_2.7.3_rails6_mysql2.gemfile} +4 -3
  395. data/gemfiles/{ruby_2.6.4_rails6_mysql2.gemfile.lock → ruby_2.7.3_rails6_mysql2.gemfile.lock} +76 -74
  396. data/gemfiles/ruby_2.7.3_rails6_postgres.gemfile +43 -0
  397. data/gemfiles/{ruby_2.6.4_rails6_postgres.gemfile.lock → ruby_2.7.3_rails6_postgres.gemfile.lock} +76 -74
  398. data/gemfiles/{ruby_2.7.0_rails6_postgres_redis.gemfile → ruby_2.7.3_rails6_postgres_redis.gemfile} +4 -3
  399. data/gemfiles/{ruby_2.7.0_rails6_postgres_redis.gemfile.lock → ruby_2.7.3_rails6_postgres_redis.gemfile.lock} +82 -80
  400. data/gemfiles/{ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile → ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile} +4 -3
  401. data/gemfiles/{ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile.lock → ruby_2.7.3_rails6_postgres_redis_activesupport.gemfile.lock} +82 -80
  402. data/gemfiles/{ruby_2.7.0_rails6_postgres_sidekiq.gemfile → ruby_2.7.3_rails6_postgres_sidekiq.gemfile} +4 -3
  403. data/gemfiles/{ruby_2.6.4_rails6_postgres_sidekiq.gemfile.lock → ruby_2.7.3_rails6_postgres_sidekiq.gemfile.lock} +77 -75
  404. data/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile +43 -0
  405. data/gemfiles/ruby_2.7.3_rails6_semantic_logger.gemfile.lock +293 -0
  406. data/gemfiles/{ruby_2.6.4_resque2_redis3.gemfile → ruby_2.7.3_resque2_redis3.gemfile} +3 -2
  407. data/gemfiles/{ruby_2.6.4_resque2_redis3.gemfile.lock → ruby_2.7.3_resque2_redis3.gemfile.lock} +21 -19
  408. data/gemfiles/{ruby_2.6.4_resque2_redis4.gemfile → ruby_2.7.3_resque2_redis4.gemfile} +3 -2
  409. data/gemfiles/{ruby_2.6.4_resque2_redis4.gemfile.lock → ruby_2.7.3_resque2_redis4.gemfile.lock} +22 -20
  410. data/gemfiles/{ruby_3.0.0_contrib.gemfile → ruby_3.0.1_contrib.gemfile} +3 -1
  411. data/gemfiles/{ruby_3.0.0_contrib.gemfile.lock → ruby_3.0.1_contrib.gemfile.lock} +215 -172
  412. data/gemfiles/{ruby_3.0.0_core_old.gemfile → ruby_3.0.1_core_old.gemfile} +2 -1
  413. data/gemfiles/{ruby_3.0.0_core_old.gemfile.lock → ruby_3.0.1_core_old.gemfile.lock} +20 -18
  414. data/gemfiles/{ruby_3.0.0_cucumber3.gemfile → ruby_3.0.1_cucumber3.gemfile} +3 -2
  415. data/gemfiles/{ruby_3.0.0_cucumber3.gemfile.lock → ruby_3.0.1_cucumber3.gemfile.lock} +22 -20
  416. data/gemfiles/{ruby_3.0.0_cucumber4.gemfile → ruby_3.0.1_cucumber4.gemfile} +3 -2
  417. data/gemfiles/{ruby_3.0.0_cucumber4.gemfile.lock → ruby_3.0.1_cucumber4.gemfile.lock} +23 -21
  418. data/gemfiles/{ruby_3.0.0_cucumber5.gemfile → ruby_3.0.1_cucumber5.gemfile} +3 -2
  419. data/gemfiles/{ruby_3.0.0_cucumber5.gemfile.lock → ruby_3.0.1_cucumber5.gemfile.lock} +23 -21
  420. data/gemfiles/{ruby_3.0.0_rails61_mysql2.gemfile → ruby_3.0.1_rails61_mysql2.gemfile} +3 -2
  421. data/gemfiles/{ruby_3.0.0_rails61_mysql2.gemfile.lock → ruby_3.0.1_rails61_mysql2.gemfile.lock} +81 -79
  422. data/gemfiles/{ruby_3.0.0_rails61_postgres.gemfile → ruby_3.0.1_rails61_postgres.gemfile} +3 -2
  423. data/gemfiles/{ruby_3.0.0_rails61_postgres.gemfile.lock → ruby_3.0.1_rails61_postgres.gemfile.lock} +81 -79
  424. data/gemfiles/{ruby_3.0.0_rails61_postgres_redis.gemfile → ruby_3.0.1_rails61_postgres_redis.gemfile} +3 -2
  425. data/gemfiles/{ruby_3.0.0_rails61_postgres_redis.gemfile.lock → ruby_3.0.1_rails61_postgres_redis.gemfile.lock} +82 -80
  426. data/gemfiles/ruby_3.0.1_rails61_postgres_sidekiq.gemfile +46 -0
  427. data/gemfiles/{ruby_2.7.0_rails61_postgres_sidekiq.gemfile.lock → ruby_3.0.1_rails61_postgres_sidekiq.gemfile.lock} +95 -86
  428. data/gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile +44 -0
  429. data/gemfiles/ruby_3.0.1_rails61_semantic_logger.gemfile.lock +296 -0
  430. data/gemfiles/{ruby_3.0.0_resque2_redis3.gemfile → ruby_3.0.1_resque2_redis3.gemfile} +3 -2
  431. data/gemfiles/{ruby_3.0.0_resque2_redis3.gemfile.lock → ruby_3.0.1_resque2_redis3.gemfile.lock} +22 -20
  432. data/gemfiles/{ruby_3.0.0_resque2_redis4.gemfile → ruby_3.0.1_resque2_redis4.gemfile} +3 -2
  433. data/gemfiles/{ruby_3.0.0_resque2_redis4.gemfile.lock → ruby_3.0.1_resque2_redis4.gemfile.lock} +23 -21
  434. data/integration/apps/rspec/bin/setup +6 -0
  435. data/integration/apps/rspec/docker-compose.yml +1 -0
  436. data/integration/images/include/datadog/demo_env.rb +15 -14
  437. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +1 -1
  438. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +1 -1
  439. data/lib/datadog/ci/ext/environment.rb +224 -89
  440. data/lib/datadog/ci/ext/test.rb +7 -1
  441. data/lib/datadog/ci/test.rb +13 -0
  442. data/lib/datadog/core/environment/cgroup.rb +49 -0
  443. data/lib/datadog/core/environment/class_count.rb +19 -0
  444. data/lib/datadog/core/environment/container.rb +88 -0
  445. data/lib/datadog/core/environment/ext.rb +26 -0
  446. data/lib/datadog/core/environment/gc.rb +18 -0
  447. data/lib/datadog/core/environment/identity.rb +50 -0
  448. data/lib/datadog/core/environment/object_space.rb +22 -0
  449. data/lib/datadog/core/environment/socket.rb +16 -0
  450. data/lib/datadog/core/environment/thread_count.rb +18 -0
  451. data/lib/datadog/core/environment/variable_helpers.rb +39 -0
  452. data/lib/ddtrace.rb +2 -0
  453. data/lib/ddtrace/auto_instrument.rb +1 -0
  454. data/lib/ddtrace/buffer.rb +2 -2
  455. data/lib/ddtrace/configuration/base.rb +3 -3
  456. data/lib/ddtrace/configuration/components.rb +33 -4
  457. data/lib/ddtrace/configuration/settings.rb +11 -3
  458. data/lib/ddtrace/contrib/active_record/utils.rb +2 -2
  459. data/lib/ddtrace/contrib/aws/patcher.rb +1 -1
  460. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +18 -0
  461. data/lib/ddtrace/contrib/lograge/ext.rb +10 -0
  462. data/lib/ddtrace/contrib/lograge/instrumentation.rb +38 -0
  463. data/lib/ddtrace/contrib/lograge/integration.rb +45 -0
  464. data/lib/ddtrace/contrib/lograge/patcher.rb +25 -0
  465. data/lib/ddtrace/contrib/rack/middlewares.rb +1 -1
  466. data/lib/ddtrace/contrib/rails/framework.rb +25 -1
  467. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -40
  468. data/lib/ddtrace/contrib/rails/patcher.rb +11 -9
  469. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +18 -0
  470. data/lib/ddtrace/contrib/semantic_logger/ext.rb +10 -0
  471. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +42 -0
  472. data/lib/ddtrace/contrib/semantic_logger/integration.rb +47 -0
  473. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +25 -0
  474. data/lib/ddtrace/correlation.rb +1 -1
  475. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -2
  476. data/lib/ddtrace/ext/environment.rb +7 -0
  477. data/lib/ddtrace/ext/git.rb +9 -1
  478. data/lib/ddtrace/ext/runtime.rb +0 -9
  479. data/lib/ddtrace/metrics.rb +54 -28
  480. data/lib/ddtrace/profiling/ext/cpu.rb +16 -1
  481. data/lib/ddtrace/profiling/flush.rb +9 -9
  482. data/lib/ddtrace/profiling/transport/http.rb +7 -7
  483. data/lib/ddtrace/runtime/metrics.rb +18 -10
  484. data/lib/ddtrace/span.rb +17 -6
  485. data/lib/ddtrace/sync_writer.rb +2 -2
  486. data/lib/ddtrace/tracer.rb +4 -12
  487. data/lib/ddtrace/transport/http.rb +7 -7
  488. data/lib/ddtrace/version.rb +2 -2
  489. data/lib/ddtrace/workers/trace_writer.rb +1 -1
  490. data/lib/ddtrace/writer.rb +2 -2
  491. data/tasks/update_appraisal_gemfiles.rake +36 -0
  492. metadata +301 -242
  493. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +0 -276
  494. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +0 -42
  495. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +0 -276
  496. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +0 -295
  497. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +0 -295
  498. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +0 -297
  499. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +0 -292
  500. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +0 -42
  501. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +0 -292
  502. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +0 -190
  503. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +0 -190
  504. data/lib/ddtrace/environment.rb +0 -41
  505. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  506. data/lib/ddtrace/runtime/class_count.rb +0 -17
  507. data/lib/ddtrace/runtime/container.rb +0 -87
  508. data/lib/ddtrace/runtime/gc.rb +0 -16
  509. data/lib/ddtrace/runtime/identity.rb +0 -48
  510. data/lib/ddtrace/runtime/object_space.rb +0 -19
  511. data/lib/ddtrace/runtime/socket.rb +0 -14
  512. data/lib/ddtrace/runtime/thread_count.rb +0 -16
@@ -0,0 +1,10 @@
1
+ module Datadog
2
+ module Contrib
3
+ module SemanticLogger
4
+ # SemanticLogger integration constants
5
+ module Ext
6
+ ENV_ENABLED = 'DD_TRACE_SEMANTIC_LOGGER_ENABLED'.freeze
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,42 @@
1
+ module Datadog
2
+ module Contrib
3
+ module SemanticLogger
4
+ # Instrumentation for SemanticLogger
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 log(log, message = nil, progname = nil, &block)
13
+ original_named_tags = log.named_tags || {}
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
+ # # if the user already has conflicting log_tags
33
+ # # we want them to clobber ours, because we should allow them to override
34
+ # # if needed.
35
+ log.named_tags = datadog_trace_log_hash.merge(original_named_tags)
36
+ super(log, message, progname, &block)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,47 @@
1
+ require 'ddtrace/contrib/integration'
2
+ require 'ddtrace/contrib/semantic_logger/configuration/settings'
3
+ require 'ddtrace/contrib/semantic_logger/patcher'
4
+
5
+ module Datadog
6
+ module Contrib
7
+ module SemanticLogger
8
+ # Description of SemanticLogger integration
9
+ class Integration
10
+ include Contrib::Integration
11
+
12
+ # v4 had a migration to `named_tags` instead of `payload`
13
+ # and has been out for almost 5 years at this point
14
+ # it's probably reasonable to nudge users to using modern ruby libs
15
+ MINIMUM_VERSION = Gem::Version.new('4.0.0')
16
+
17
+ register_as :semantic_logger
18
+
19
+ def self.version
20
+ Gem.loaded_specs['semantic_logger'] && Gem.loaded_specs['semantic_logger'].version
21
+ end
22
+
23
+ def self.loaded?
24
+ !defined?(::SemanticLogger::Logger).nil?
25
+ end
26
+
27
+ def self.compatible?
28
+ super && version >= MINIMUM_VERSION
29
+ end
30
+
31
+ # TODO: abstract out the log injection related instrumentation into it's own module so we dont
32
+ # keep having to do these workarounds
33
+ def auto_instrument?
34
+ false
35
+ end
36
+
37
+ def default_configuration
38
+ Configuration::Settings.new
39
+ end
40
+
41
+ def patcher
42
+ Patcher
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,25 @@
1
+ require 'ddtrace/contrib/patcher'
2
+ require 'ddtrace/contrib/semantic_logger/instrumentation'
3
+
4
+ module Datadog
5
+ module Contrib
6
+ # Datadog SemanticLogger integration.
7
+ module SemanticLogger
8
+ # Patcher enables patching of 'semantic_logger' module.
9
+ module Patcher
10
+ include Contrib::Patcher
11
+
12
+ module_function
13
+
14
+ def target_version
15
+ Integration.version
16
+ end
17
+
18
+ # patch applies our patch
19
+ def patch
20
+ ::SemanticLogger::Logger.include(Instrumentation)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,5 +1,5 @@
1
1
  require 'ddtrace/ext/correlation'
2
- require 'ddtrace/environment'
2
+ require 'datadog/core/environment/variable_helpers'
3
3
 
4
4
  module Datadog
5
5
  # Contains behavior for managing correlations with tracing
@@ -73,14 +73,14 @@ module Datadog
73
73
 
74
74
  # @return [String] "ruby"
75
75
  def lang
76
- Ext::Runtime::LANG
76
+ Core::Environment::Ext::LANG
77
77
  end
78
78
 
79
79
  # Supported Ruby language version.
80
80
  # Will be distinct from VM version for non-MRI environments.
81
81
  # @return [String]
82
82
  def lang_version
83
- Ext::Runtime::LANG_VERSION
83
+ Core::Environment::Ext::LANG_VERSION
84
84
  end
85
85
 
86
86
  # @return [String] configured application environment
@@ -8,6 +8,13 @@ module Datadog
8
8
  ENV_TAGS = 'DD_TAGS'.freeze
9
9
  ENV_VERSION = 'DD_VERSION'.freeze
10
10
 
11
+ FALLBACK_SERVICE_NAME =
12
+ begin
13
+ File.basename($PROGRAM_NAME, '.*')
14
+ rescue StandardError
15
+ 'ruby'
16
+ end.freeze
17
+
11
18
  TAG_ENV = 'env'.freeze
12
19
  TAG_SERVICE = 'service'.freeze
13
20
  TAG_VERSION = 'version'.freeze
@@ -3,9 +3,17 @@ module Datadog
3
3
  # Defines constants for Git tags
4
4
  module Git
5
5
  TAG_BRANCH = 'git.branch'.freeze
6
- TAG_COMMIT_SHA = 'git.commit.sha'.freeze
7
6
  TAG_REPOSITORY_URL = 'git.repository_url'.freeze
8
7
  TAG_TAG = 'git.tag'.freeze
8
+
9
+ TAG_COMMIT_AUTHOR_DATE = 'git.commit.author.date'.freeze
10
+ TAG_COMMIT_AUTHOR_EMAIL = 'git.commit.author.email'.freeze
11
+ TAG_COMMIT_AUTHOR_NAME = 'git.commit.author.name'.freeze
12
+ TAG_COMMIT_COMMITTER_DATE = 'git.commit.committer.date'.freeze
13
+ TAG_COMMIT_COMMITTER_EMAIL = 'git.commit.committer.email'.freeze
14
+ TAG_COMMIT_COMMITTER_NAME = 'git.commit.committer.name'.freeze
15
+ TAG_COMMIT_MESSAGE = 'git.commit.message'.freeze
16
+ TAG_COMMIT_SHA = 'git.commit.sha'.freeze
9
17
  end
10
18
  end
11
19
  end
@@ -3,15 +3,6 @@ require 'ddtrace/version'
3
3
  module Datadog
4
4
  module Ext
5
5
  module Runtime
6
- # Identity
7
- LANG = 'ruby'.freeze
8
- LANG_ENGINE = RUBY_ENGINE
9
- LANG_INTERPRETER = "#{RUBY_ENGINE}-#{RUBY_PLATFORM}".freeze
10
- LANG_PLATFORM = RUBY_PLATFORM
11
- LANG_VERSION = RUBY_VERSION
12
- RUBY_ENGINE = ::RUBY_ENGINE # e.g. 'ruby', 'jruby', 'truffleruby'
13
- TRACER_VERSION = Datadog::VERSION::STRING
14
-
15
6
  TAG_ID = 'runtime-id'.freeze
16
7
  TAG_LANG = 'language'.freeze
17
8
 
@@ -2,8 +2,8 @@ require 'ddtrace/ext/metrics'
2
2
 
3
3
  require 'set'
4
4
  require 'logger'
5
- require 'ddtrace/environment'
6
- require 'ddtrace/runtime/identity'
5
+ require 'datadog/core/environment/identity'
6
+ require 'ddtrace/ext/environment'
7
7
  require 'ddtrace/utils/only_once'
8
8
  require 'ddtrace/utils/time'
9
9
 
@@ -13,22 +13,24 @@ module Datadog
13
13
  class Metrics
14
14
  attr_reader :statsd
15
15
 
16
- def initialize(options = {})
17
- @statsd = options.fetch(:statsd) { default_statsd_client if supported? }
18
- @enabled = options.fetch(:enabled, true)
16
+ def initialize(statsd: nil, enabled: true, **_)
17
+ @statsd =
18
+ if supported?
19
+ statsd || default_statsd_client
20
+ else
21
+ ignored_statsd_warning if statsd
22
+ nil
23
+ end
24
+ @enabled = enabled
19
25
  end
20
26
 
21
27
  def supported?
22
- version = (
23
- defined?(Datadog::Statsd::VERSION) &&
24
- Datadog::Statsd::VERSION &&
25
- Gem::Version.new(Datadog::Statsd::VERSION)
26
- ) || (
27
- Gem.loaded_specs['dogstatsd-ruby'] &&
28
- Gem.loaded_specs['dogstatsd-ruby'].version
29
- )
28
+ version = dogstatsd_version
30
29
 
31
- !version.nil? && (version >= Gem::Version.new('3.3.0'))
30
+ !version.nil? && version >= Gem::Version.new('3.3.0') &&
31
+ # dogstatsd-ruby >= 5.0 & < 5.2.0 has known issues with process forks
32
+ # and do not support the single thread mode we use to avoid this problem.
33
+ !(version >= Gem::Version.new('5.0') && version < Gem::Version.new('5.2'))
32
34
  end
33
35
 
34
36
  def enabled?
@@ -50,10 +52,23 @@ module Datadog
50
52
  def default_statsd_client
51
53
  require 'datadog/statsd'
52
54
 
53
- incompatible_statsd_warning
54
-
55
55
  # Create a StatsD client that points to the agent.
56
- Datadog::Statsd.new(default_hostname, default_port)
56
+ #
57
+ # We use `single_thread: true`, as dogstatsd-ruby >= 5.0 creates a background thread
58
+ # by default, but does not handle forks correctly, causing resource leaks.
59
+ #
60
+ # Using dogstatsd-ruby >= 5.0 is still valuable, as it supports
61
+ # transparent batch metric submission, which reduces submission
62
+ # overhead.
63
+ #
64
+ # Versions < 5.0 are always single-threaded, but do not have the kwarg option.
65
+ options = if dogstatsd_version >= Gem::Version.new('5.2')
66
+ { single_thread: true }
67
+ else
68
+ {}
69
+ end
70
+
71
+ Datadog::Statsd.new(default_hostname, default_port, **options)
57
72
  end
58
73
 
59
74
  def configure(options = {})
@@ -144,10 +159,10 @@ module Datadog
144
159
  module Options
145
160
  DEFAULT = {
146
161
  tags: DEFAULT_TAGS = [
147
- "#{Ext::Metrics::TAG_LANG}:#{Runtime::Identity.lang}".freeze,
148
- "#{Ext::Metrics::TAG_LANG_INTERPRETER}:#{Runtime::Identity.lang_interpreter}".freeze,
149
- "#{Ext::Metrics::TAG_LANG_VERSION}:#{Runtime::Identity.lang_version}".freeze,
150
- "#{Ext::Metrics::TAG_TRACER_VERSION}:#{Runtime::Identity.tracer_version}".freeze
162
+ "#{Ext::Metrics::TAG_LANG}:#{Core::Environment::Identity.lang}".freeze,
163
+ "#{Ext::Metrics::TAG_LANG_INTERPRETER}:#{Core::Environment::Identity.lang_interpreter}".freeze,
164
+ "#{Ext::Metrics::TAG_LANG_VERSION}:#{Core::Environment::Identity.lang_version}".freeze,
165
+ "#{Ext::Metrics::TAG_TRACER_VERSION}:#{Core::Environment::Identity.tracer_version}".freeze
151
166
  ].freeze
152
167
  }.freeze
153
168
 
@@ -238,16 +253,27 @@ module Datadog
238
253
 
239
254
  private
240
255
 
241
- INCOMPATIBLE_STATSD_ONLY_ONCE = Datadog::Utils::OnlyOnce.new
242
- private_constant :INCOMPATIBLE_STATSD_ONLY_ONCE
256
+ def dogstatsd_version
257
+ return @dogstatsd_version if instance_variable_defined?(:@dogstatsd_version)
258
+
259
+ @dogstatsd_version = (
260
+ defined?(Datadog::Statsd::VERSION) &&
261
+ Datadog::Statsd::VERSION &&
262
+ Gem::Version.new(Datadog::Statsd::VERSION)
263
+ ) || (
264
+ Gem.loaded_specs['dogstatsd-ruby'] &&
265
+ Gem.loaded_specs['dogstatsd-ruby'].version
266
+ )
267
+ end
243
268
 
244
- def incompatible_statsd_warning
245
- return if Gem.loaded_specs['dogstatsd-ruby'].version < Gem::Version.new('5.0')
269
+ IGNORED_STATSD_ONLY_ONCE = Datadog::Utils::OnlyOnce.new
270
+ private_constant :IGNORED_STATSD_ONLY_ONCE
246
271
 
247
- INCOMPATIBLE_STATSD_ONLY_ONCE.run do
272
+ def ignored_statsd_warning
273
+ IGNORED_STATSD_ONLY_ONCE.run do
248
274
  Datadog.logger.warn(
249
- 'This version of `ddtrace` is incompatible with `dogstastd-ruby` version >= 5.0 and can ' \
250
- 'cause unbounded memory usage. Please use `dogstastd-ruby` version < 5.0 instead.'
275
+ 'Ignoring user-supplied statsd instance as currently-installed version of dogstastd-ruby is incompatible. ' \
276
+ "To fix this, ensure that you have `gem 'dogstatsd-ruby', '~> 5.2'` on your Gemfile or gems.rb file."
251
277
  )
252
278
  end
253
279
  end
@@ -43,9 +43,24 @@ module Datadog
43
43
  elsif Gem::Specification.find_all_by_name('rollbar', ROLLBAR_INCOMPATIBLE_VERSIONS).any?
44
44
  'You have an incompatible rollbar gem version installed; ensure that you have rollbar >= 3.1.2 by ' \
45
45
  "adding `gem 'rollbar', '>= 3.1.2'` to your Gemfile or gems.rb file. " \
46
- 'See https://github.com/rollbar/rollbar-gem/pull/1018 for details.'
46
+ 'See https://github.com/rollbar/rollbar-gem/pull/1018 for details'
47
+ elsif Gem::Specification.find_all_by_name('logging').any? && logging_inherit_context_enabled?
48
+ 'The `logging` gem is installed and its thread inherit context feature is enabled. ' \
49
+ "Please add LOGGING_INHERIT_CONTEXT=false to your application's environment variables to disable the " \
50
+ 'conflicting `logging` gem feature. ' \
51
+ 'See https://github.com/TwP/logging/pull/230 for details'
47
52
  end
48
53
  end
54
+
55
+ private_class_method def self.logging_inherit_context_enabled?
56
+ # The logging gem provides a mechanism to disable the conflicting behavior, see
57
+ # https://github.com/TwP/logging/blob/ae9872d093833b2a5a34cbe1faa4e895a81f6845/lib/logging/diagnostic_context.rb#L418
58
+ # Here we check if the behavior is enabled
59
+ inherit_context_configuration = ENV['LOGGING_INHERIT_CONTEXT']
60
+
61
+ inherit_context_configuration.nil? ||
62
+ (inherit_context_configuration && !%w[false no 0].include?(inherit_context_configuration.downcase))
63
+ end
49
64
  end
50
65
  end
51
66
  end
@@ -1,5 +1,5 @@
1
- require 'ddtrace/runtime/identity'
2
- require 'ddtrace/runtime/socket'
1
+ require 'datadog/core/environment/identity'
2
+ require 'datadog/core/environment/socket'
3
3
 
4
4
  module Datadog
5
5
  module Profiling
@@ -23,16 +23,16 @@ module Datadog
23
23
  ) do
24
24
  def initialize(*args)
25
25
  super
26
- self.runtime_id = runtime_id || Datadog::Runtime::Identity.id
26
+ self.runtime_id = runtime_id || Datadog::Core::Environment::Identity.id
27
27
  self.service = service || Datadog.configuration.service
28
28
  self.env = env || Datadog.configuration.env
29
29
  self.version = version || Datadog.configuration.version
30
- self.host = host || Datadog::Runtime::Socket.hostname
31
- self.language = language || Datadog::Runtime::Identity.lang
32
- self.runtime_engine = runtime_engine || Datadog::Runtime::Identity.lang_engine
33
- self.runtime_platform = runtime_platform || Datadog::Runtime::Identity.lang_platform
34
- self.runtime_version = runtime_version || Datadog::Runtime::Identity.lang_version
35
- self.profiler_version = profiler_version || Datadog::Runtime::Identity.tracer_version
30
+ self.host = host || Datadog::Core::Environment::Socket.hostname
31
+ self.language = language || Datadog::Core::Environment::Identity.lang
32
+ self.runtime_engine = runtime_engine || Datadog::Core::Environment::Identity.lang_engine
33
+ self.runtime_platform = runtime_platform || Datadog::Core::Environment::Identity.lang_platform
34
+ self.runtime_version = runtime_version || Datadog::Core::Environment::Identity.lang_version
35
+ self.profiler_version = profiler_version || Datadog::Core::Environment::Identity.tracer_version
36
36
  self.tags = tags || Datadog.configuration.tags
37
37
  end
38
38
  end
@@ -1,7 +1,7 @@
1
- require 'ddtrace/ext/runtime'
1
+ require 'datadog/core/environment/ext'
2
2
  require 'ddtrace/ext/transport'
3
3
 
4
- require 'ddtrace/runtime/container'
4
+ require 'datadog/core/environment/container'
5
5
 
6
6
  require 'ddtrace/profiling/transport/http/builder'
7
7
  require 'ddtrace/profiling/transport/http/api'
@@ -55,13 +55,13 @@ module Datadog
55
55
 
56
56
  def default_headers
57
57
  {
58
- Datadog::Ext::Transport::HTTP::HEADER_META_LANG => Datadog::Ext::Runtime::LANG,
59
- Datadog::Ext::Transport::HTTP::HEADER_META_LANG_VERSION => Datadog::Ext::Runtime::LANG_VERSION,
60
- Datadog::Ext::Transport::HTTP::HEADER_META_LANG_INTERPRETER => Datadog::Ext::Runtime::LANG_INTERPRETER,
61
- Datadog::Ext::Transport::HTTP::HEADER_META_TRACER_VERSION => Datadog::Ext::Runtime::TRACER_VERSION
58
+ Datadog::Ext::Transport::HTTP::HEADER_META_LANG => Core::Environment::Ext::LANG,
59
+ Datadog::Ext::Transport::HTTP::HEADER_META_LANG_VERSION => Core::Environment::Ext::LANG_VERSION,
60
+ Datadog::Ext::Transport::HTTP::HEADER_META_LANG_INTERPRETER => Core::Environment::Ext::LANG_INTERPRETER,
61
+ Datadog::Ext::Transport::HTTP::HEADER_META_TRACER_VERSION => Core::Environment::Ext::TRACER_VERSION
62
62
  }.tap do |headers|
63
63
  # Add container ID, if present.
64
- container_id = Datadog::Runtime::Container.container_id
64
+ container_id = Datadog::Core::Environment::Container.container_id
65
65
  headers[Datadog::Ext::Transport::HTTP::HEADER_CONTAINER_ID] = container_id unless container_id.nil?
66
66
  end
67
67
  end
@@ -2,16 +2,16 @@ require 'ddtrace/ext/integration'
2
2
  require 'ddtrace/ext/runtime'
3
3
 
4
4
  require 'ddtrace/metrics'
5
- require 'ddtrace/runtime/class_count'
6
- require 'ddtrace/runtime/gc'
7
- require 'ddtrace/runtime/identity'
8
- require 'ddtrace/runtime/thread_count'
5
+ require 'datadog/core/environment/class_count'
6
+ require 'datadog/core/environment/gc'
7
+ require 'datadog/core/environment/identity'
8
+ require 'datadog/core/environment/thread_count'
9
9
 
10
10
  module Datadog
11
11
  module Runtime
12
12
  # For generating runtime metrics
13
13
  class Metrics < Datadog::Metrics
14
- def initialize(options = {})
14
+ def initialize(**options)
15
15
  super
16
16
 
17
17
  # Initialize service list
@@ -29,7 +29,7 @@ module Datadog
29
29
  # Tag span with language and runtime ID for association with metrics.
30
30
  # We only tag spans that performed internal application work.
31
31
  unless span.get_tag(Datadog::Ext::Integration::TAG_PEER_SERVICE)
32
- span.set_tag(Ext::Runtime::TAG_LANG, Runtime::Identity.lang)
32
+ span.set_tag(Ext::Runtime::TAG_LANG, Core::Environment::Identity.lang)
33
33
  end
34
34
  end
35
35
 
@@ -52,13 +52,21 @@ module Datadog
52
52
  def flush
53
53
  return unless enabled?
54
54
 
55
- try_flush { gauge(Ext::Runtime::Metrics::METRIC_CLASS_COUNT, ClassCount.value) if ClassCount.available? }
56
- try_flush { gauge(Ext::Runtime::Metrics::METRIC_THREAD_COUNT, ThreadCount.value) if ThreadCount.available? }
57
- try_flush { gc_metrics.each { |metric, value| gauge(metric, value) } if GC.available? }
55
+ try_flush do
56
+ if Core::Environment::ClassCount.available?
57
+ gauge(Ext::Runtime::Metrics::METRIC_CLASS_COUNT, Core::Environment::ClassCount.value)
58
+ end
59
+ end
60
+ try_flush do
61
+ if Core::Environment::ThreadCount.available?
62
+ gauge(Ext::Runtime::Metrics::METRIC_THREAD_COUNT, Core::Environment::ThreadCount.value)
63
+ end
64
+ end
65
+ try_flush { gc_metrics.each { |metric, value| gauge(metric, value) } if Core::Environment::GC.available? }
58
66
  end
59
67
 
60
68
  def gc_metrics
61
- GC.stat.flat_map do |k, v|
69
+ Core::Environment::GC.stat.flat_map do |k, v|
62
70
  nested_gc_metric(Ext::Runtime::Metrics::METRIC_GC_PREFIX, k, v)
63
71
  end.to_h
64
72
  end