ddtrace 0.50.0 → 0.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) 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 +63 -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/lograge/configuration/settings.rb +18 -0
  460. data/lib/ddtrace/contrib/lograge/ext.rb +10 -0
  461. data/lib/ddtrace/contrib/lograge/instrumentation.rb +38 -0
  462. data/lib/ddtrace/contrib/lograge/integration.rb +45 -0
  463. data/lib/ddtrace/contrib/lograge/patcher.rb +25 -0
  464. data/lib/ddtrace/contrib/rack/middlewares.rb +1 -1
  465. data/lib/ddtrace/contrib/rails/framework.rb +25 -1
  466. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -40
  467. data/lib/ddtrace/contrib/rails/patcher.rb +11 -9
  468. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +18 -0
  469. data/lib/ddtrace/contrib/semantic_logger/ext.rb +10 -0
  470. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +42 -0
  471. data/lib/ddtrace/contrib/semantic_logger/integration.rb +47 -0
  472. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +25 -0
  473. data/lib/ddtrace/correlation.rb +1 -1
  474. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -2
  475. data/lib/ddtrace/ext/environment.rb +7 -0
  476. data/lib/ddtrace/ext/git.rb +9 -1
  477. data/lib/ddtrace/ext/runtime.rb +0 -9
  478. data/lib/ddtrace/metrics.rb +54 -28
  479. data/lib/ddtrace/profiling/ext/cpu.rb +16 -1
  480. data/lib/ddtrace/profiling/flush.rb +9 -9
  481. data/lib/ddtrace/profiling/transport/http.rb +7 -7
  482. data/lib/ddtrace/runtime/metrics.rb +18 -10
  483. data/lib/ddtrace/span.rb +17 -6
  484. data/lib/ddtrace/sync_writer.rb +2 -2
  485. data/lib/ddtrace/tracer.rb +4 -12
  486. data/lib/ddtrace/transport/http.rb +7 -7
  487. data/lib/ddtrace/version.rb +1 -1
  488. data/lib/ddtrace/workers/trace_writer.rb +1 -1
  489. data/lib/ddtrace/writer.rb +2 -2
  490. data/tasks/update_appraisal_gemfiles.rake +36 -0
  491. metadata +301 -242
  492. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +0 -276
  493. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +0 -42
  494. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +0 -276
  495. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +0 -295
  496. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +0 -295
  497. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +0 -297
  498. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +0 -292
  499. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +0 -42
  500. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +0 -292
  501. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +0 -190
  502. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +0 -190
  503. data/lib/ddtrace/environment.rb +0 -41
  504. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  505. data/lib/ddtrace/runtime/class_count.rb +0 -17
  506. data/lib/ddtrace/runtime/container.rb +0 -87
  507. data/lib/ddtrace/runtime/gc.rb +0 -16
  508. data/lib/ddtrace/runtime/identity.rb +0 -48
  509. data/lib/ddtrace/runtime/object_space.rb +0 -19
  510. data/lib/ddtrace/runtime/socket.rb +0 -14
  511. data/lib/ddtrace/runtime/thread_count.rb +0 -16
@@ -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