ddtrace 0.50.0 → 0.52.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 (1082) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.gitignore +7 -0
  4. data/CHANGELOG.md +131 -0
  5. data/CONTRIBUTING.md +1 -5
  6. data/ddtrace.gemspec +10 -1
  7. data/docs/DevelopmentGuide.md +15 -0
  8. data/docs/GettingStarted.md +42 -4
  9. data/docs/ProfilingDevelopment.md +33 -14
  10. data/ext/ddtrace_profiling_native_extension/extconf.rb +28 -0
  11. data/ext/ddtrace_profiling_native_extension/profiling.c +17 -0
  12. data/lib/datadog/ci.rb +1 -0
  13. data/lib/datadog/ci/configuration/components.rb +1 -0
  14. data/lib/datadog/ci/configuration/settings.rb +1 -0
  15. data/lib/datadog/ci/context_flush.rb +1 -0
  16. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -1
  17. data/lib/datadog/ci/contrib/cucumber/ext.rb +1 -0
  18. data/lib/datadog/ci/contrib/cucumber/formatter.rb +1 -0
  19. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -0
  20. data/lib/datadog/ci/contrib/cucumber/integration.rb +1 -0
  21. data/lib/datadog/ci/contrib/cucumber/patcher.rb +1 -0
  22. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -1
  23. data/lib/datadog/ci/contrib/rspec/example.rb +1 -0
  24. data/lib/datadog/ci/contrib/rspec/ext.rb +1 -0
  25. data/lib/datadog/ci/contrib/rspec/integration.rb +1 -0
  26. data/lib/datadog/ci/contrib/rspec/patcher.rb +1 -0
  27. data/lib/datadog/ci/ext/app_types.rb +1 -0
  28. data/lib/datadog/ci/ext/environment.rb +229 -89
  29. data/lib/datadog/ci/ext/settings.rb +1 -0
  30. data/lib/datadog/ci/ext/test.rb +8 -1
  31. data/lib/datadog/ci/extensions.rb +1 -0
  32. data/lib/datadog/ci/test.rb +14 -0
  33. data/lib/datadog/contrib.rb +69 -0
  34. data/lib/datadog/core/environment/cgroup.rb +52 -0
  35. data/lib/datadog/core/environment/class_count.rb +20 -0
  36. data/lib/datadog/core/environment/container.rb +91 -0
  37. data/lib/datadog/core/environment/ext.rb +27 -0
  38. data/lib/datadog/core/environment/gc.rb +19 -0
  39. data/lib/datadog/core/environment/identity.rb +51 -0
  40. data/lib/datadog/core/environment/socket.rb +17 -0
  41. data/lib/datadog/core/environment/thread_count.rb +19 -0
  42. data/lib/datadog/core/environment/variable_helpers.rb +42 -0
  43. data/lib/ddtrace.rb +19 -49
  44. data/lib/ddtrace/analytics.rb +1 -0
  45. data/lib/ddtrace/auto_instrument.rb +2 -0
  46. data/lib/ddtrace/auto_instrument_base.rb +1 -0
  47. data/lib/ddtrace/buffer.rb +7 -5
  48. data/lib/ddtrace/chunker.rb +1 -0
  49. data/lib/ddtrace/configuration.rb +21 -2
  50. data/lib/ddtrace/configuration/agent_settings_resolver.rb +1 -0
  51. data/lib/ddtrace/configuration/base.rb +4 -3
  52. data/lib/ddtrace/configuration/components.rb +54 -11
  53. data/lib/ddtrace/configuration/dependency_resolver.rb +1 -0
  54. data/lib/ddtrace/configuration/option.rb +1 -0
  55. data/lib/ddtrace/configuration/option_definition.rb +1 -0
  56. data/lib/ddtrace/configuration/option_definition_set.rb +1 -0
  57. data/lib/ddtrace/configuration/option_set.rb +1 -0
  58. data/lib/ddtrace/configuration/options.rb +1 -0
  59. data/lib/ddtrace/configuration/pin_setup.rb +1 -0
  60. data/lib/ddtrace/configuration/settings.rb +24 -9
  61. data/lib/ddtrace/context.rb +1 -0
  62. data/lib/ddtrace/context_flush.rb +1 -0
  63. data/lib/ddtrace/context_provider.rb +1 -0
  64. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +1 -0
  65. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  66. data/lib/ddtrace/contrib/action_cable/events.rb +1 -0
  67. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +1 -0
  68. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +1 -0
  69. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +1 -0
  70. data/lib/ddtrace/contrib/action_cable/ext.rb +1 -0
  71. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +1 -0
  72. data/lib/ddtrace/contrib/action_cable/integration.rb +1 -0
  73. data/lib/ddtrace/contrib/action_cable/patcher.rb +1 -0
  74. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +21 -10
  75. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +1 -0
  76. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +1 -0
  77. data/lib/ddtrace/contrib/action_pack/ext.rb +1 -0
  78. data/lib/ddtrace/contrib/action_pack/integration.rb +1 -0
  79. data/lib/ddtrace/contrib/action_pack/patcher.rb +1 -0
  80. data/lib/ddtrace/contrib/action_pack/utils.rb +1 -0
  81. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +1 -0
  82. data/lib/ddtrace/contrib/action_view/event.rb +1 -0
  83. data/lib/ddtrace/contrib/action_view/events.rb +1 -0
  84. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  85. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  86. data/lib/ddtrace/contrib/action_view/ext.rb +1 -0
  87. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -0
  88. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +1 -0
  89. data/lib/ddtrace/contrib/action_view/integration.rb +1 -0
  90. data/lib/ddtrace/contrib/action_view/patcher.rb +1 -0
  91. data/lib/ddtrace/contrib/action_view/utils.rb +1 -0
  92. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +1 -0
  93. data/lib/ddtrace/contrib/active_model_serializers/event.rb +1 -0
  94. data/lib/ddtrace/contrib/active_model_serializers/events.rb +1 -0
  95. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +1 -0
  96. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +1 -0
  97. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +1 -0
  98. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +1 -0
  99. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +1 -0
  100. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +1 -0
  101. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +3 -2
  102. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +1 -0
  103. data/lib/ddtrace/contrib/active_record/event.rb +1 -0
  104. data/lib/ddtrace/contrib/active_record/events.rb +1 -0
  105. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -0
  106. data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -0
  107. data/lib/ddtrace/contrib/active_record/ext.rb +1 -0
  108. data/lib/ddtrace/contrib/active_record/integration.rb +1 -0
  109. data/lib/ddtrace/contrib/active_record/patcher.rb +1 -0
  110. data/lib/ddtrace/contrib/active_record/utils.rb +4 -3
  111. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +1 -0
  112. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +1 -0
  113. data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -0
  114. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +1 -0
  115. data/lib/ddtrace/contrib/active_support/ext.rb +1 -0
  116. data/lib/ddtrace/contrib/active_support/integration.rb +1 -0
  117. data/lib/ddtrace/contrib/active_support/notifications/event.rb +1 -0
  118. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  119. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -0
  120. data/lib/ddtrace/contrib/active_support/patcher.rb +1 -0
  121. data/lib/ddtrace/contrib/analytics.rb +1 -0
  122. data/lib/ddtrace/contrib/auto_instrument.rb +2 -1
  123. data/lib/ddtrace/contrib/aws/configuration/settings.rb +1 -0
  124. data/lib/ddtrace/contrib/aws/ext.rb +1 -0
  125. data/lib/ddtrace/contrib/aws/instrumentation.rb +1 -0
  126. data/lib/ddtrace/contrib/aws/integration.rb +1 -0
  127. data/lib/ddtrace/contrib/aws/parsed_context.rb +1 -0
  128. data/lib/ddtrace/contrib/aws/patcher.rb +2 -1
  129. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  130. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +1 -0
  131. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -0
  132. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
  133. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +1 -0
  134. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +1 -0
  135. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +2 -0
  136. data/lib/ddtrace/contrib/configurable.rb +1 -0
  137. data/lib/ddtrace/contrib/configuration/resolver.rb +1 -0
  138. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +1 -0
  139. data/lib/ddtrace/contrib/configuration/settings.rb +1 -0
  140. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +1 -0
  141. data/lib/ddtrace/contrib/dalli/ext.rb +1 -0
  142. data/lib/ddtrace/contrib/dalli/instrumentation.rb +1 -0
  143. data/lib/ddtrace/contrib/dalli/integration.rb +1 -0
  144. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -0
  145. data/lib/ddtrace/contrib/dalli/quantize.rb +1 -0
  146. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +1 -0
  147. data/lib/ddtrace/contrib/delayed_job/ext.rb +1 -0
  148. data/lib/ddtrace/contrib/delayed_job/integration.rb +1 -0
  149. data/lib/ddtrace/contrib/delayed_job/patcher.rb +1 -0
  150. data/lib/ddtrace/contrib/delayed_job/plugin.rb +1 -0
  151. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +1 -0
  152. data/lib/ddtrace/contrib/elasticsearch/ext.rb +1 -0
  153. data/lib/ddtrace/contrib/elasticsearch/integration.rb +1 -0
  154. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  155. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -0
  156. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +1 -0
  157. data/lib/ddtrace/contrib/ethon/easy_patch.rb +1 -0
  158. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  159. data/lib/ddtrace/contrib/ethon/integration.rb +1 -0
  160. data/lib/ddtrace/contrib/ethon/multi_patch.rb +1 -0
  161. data/lib/ddtrace/contrib/ethon/patcher.rb +2 -0
  162. data/lib/ddtrace/contrib/excon/configuration/settings.rb +1 -0
  163. data/lib/ddtrace/contrib/excon/ext.rb +1 -0
  164. data/lib/ddtrace/contrib/excon/integration.rb +1 -0
  165. data/lib/ddtrace/contrib/excon/middleware.rb +1 -0
  166. data/lib/ddtrace/contrib/excon/patcher.rb +1 -0
  167. data/lib/ddtrace/contrib/extensions.rb +37 -11
  168. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +1 -0
  169. data/lib/ddtrace/contrib/faraday/connection.rb +1 -0
  170. data/lib/ddtrace/contrib/faraday/ext.rb +1 -0
  171. data/lib/ddtrace/contrib/faraday/integration.rb +1 -0
  172. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -0
  173. data/lib/ddtrace/contrib/faraday/patcher.rb +1 -0
  174. data/lib/ddtrace/contrib/faraday/rack_builder.rb +1 -0
  175. data/lib/ddtrace/contrib/grape/configuration/settings.rb +1 -0
  176. data/lib/ddtrace/contrib/grape/endpoint.rb +26 -16
  177. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  178. data/lib/ddtrace/contrib/grape/instrumentation.rb +2 -1
  179. data/lib/ddtrace/contrib/grape/integration.rb +1 -0
  180. data/lib/ddtrace/contrib/grape/patcher.rb +1 -0
  181. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +1 -0
  182. data/lib/ddtrace/contrib/graphql/ext.rb +1 -0
  183. data/lib/ddtrace/contrib/graphql/integration.rb +1 -0
  184. data/lib/ddtrace/contrib/graphql/patcher.rb +1 -0
  185. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +2 -0
  186. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +5 -0
  187. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -0
  188. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +3 -4
  189. data/lib/ddtrace/contrib/grpc/ext.rb +1 -0
  190. data/lib/ddtrace/contrib/grpc/integration.rb +1 -0
  191. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +1 -0
  192. data/lib/ddtrace/contrib/grpc/patcher.rb +2 -0
  193. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -0
  194. data/lib/ddtrace/contrib/http/configuration/settings.rb +1 -0
  195. data/lib/ddtrace/contrib/http/ext.rb +1 -0
  196. data/lib/ddtrace/contrib/http/instrumentation.rb +1 -0
  197. data/lib/ddtrace/contrib/http/integration.rb +1 -0
  198. data/lib/ddtrace/contrib/http/patcher.rb +1 -0
  199. data/lib/ddtrace/contrib/http_annotation_helper.rb +1 -0
  200. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +1 -0
  201. data/lib/ddtrace/contrib/httpclient/ext.rb +1 -0
  202. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +1 -0
  203. data/lib/ddtrace/contrib/httpclient/integration.rb +1 -0
  204. data/lib/ddtrace/contrib/httpclient/patcher.rb +2 -1
  205. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +1 -0
  206. data/lib/ddtrace/contrib/httprb/ext.rb +1 -0
  207. data/lib/ddtrace/contrib/httprb/instrumentation.rb +1 -0
  208. data/lib/ddtrace/contrib/httprb/integration.rb +1 -0
  209. data/lib/ddtrace/contrib/httprb/patcher.rb +2 -1
  210. data/lib/ddtrace/contrib/integration.rb +1 -0
  211. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +1 -0
  212. data/lib/ddtrace/contrib/kafka/consumer_event.rb +1 -0
  213. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +1 -0
  214. data/lib/ddtrace/contrib/kafka/event.rb +1 -0
  215. data/lib/ddtrace/contrib/kafka/events.rb +1 -0
  216. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +1 -0
  217. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +1 -0
  218. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +1 -0
  219. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +1 -0
  220. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +1 -0
  221. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +1 -0
  222. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +1 -0
  223. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +1 -0
  224. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +1 -0
  225. data/lib/ddtrace/contrib/kafka/ext.rb +1 -0
  226. data/lib/ddtrace/contrib/kafka/integration.rb +1 -0
  227. data/lib/ddtrace/contrib/kafka/patcher.rb +1 -0
  228. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +19 -0
  229. data/lib/ddtrace/contrib/lograge/ext.rb +11 -0
  230. data/lib/ddtrace/contrib/lograge/instrumentation.rb +39 -0
  231. data/lib/ddtrace/contrib/lograge/integration.rb +46 -0
  232. data/lib/ddtrace/contrib/lograge/patcher.rb +26 -0
  233. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +1 -0
  234. data/lib/ddtrace/contrib/mongodb/ext.rb +1 -0
  235. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -0
  236. data/lib/ddtrace/contrib/mongodb/integration.rb +1 -0
  237. data/lib/ddtrace/contrib/mongodb/parsers.rb +1 -0
  238. data/lib/ddtrace/contrib/mongodb/patcher.rb +1 -0
  239. data/lib/ddtrace/contrib/mongodb/subscribers.rb +1 -0
  240. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +1 -0
  241. data/lib/ddtrace/contrib/mysql2/ext.rb +1 -0
  242. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -0
  243. data/lib/ddtrace/contrib/mysql2/integration.rb +1 -0
  244. data/lib/ddtrace/contrib/mysql2/patcher.rb +1 -0
  245. data/lib/ddtrace/contrib/patchable.rb +1 -0
  246. data/lib/ddtrace/contrib/patcher.rb +2 -1
  247. data/lib/ddtrace/contrib/presto/configuration/settings.rb +1 -0
  248. data/lib/ddtrace/contrib/presto/ext.rb +1 -0
  249. data/lib/ddtrace/contrib/presto/instrumentation.rb +1 -0
  250. data/lib/ddtrace/contrib/presto/integration.rb +1 -0
  251. data/lib/ddtrace/contrib/presto/patcher.rb +1 -0
  252. data/lib/ddtrace/contrib/qless/configuration/settings.rb +1 -0
  253. data/lib/ddtrace/contrib/qless/ext.rb +1 -0
  254. data/lib/ddtrace/contrib/qless/integration.rb +1 -0
  255. data/lib/ddtrace/contrib/qless/patcher.rb +2 -0
  256. data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
  257. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
  258. data/lib/ddtrace/contrib/que/configuration/settings.rb +1 -0
  259. data/lib/ddtrace/contrib/que/ext.rb +1 -0
  260. data/lib/ddtrace/contrib/que/integration.rb +1 -0
  261. data/lib/ddtrace/contrib/que/patcher.rb +1 -0
  262. data/lib/ddtrace/contrib/que/tracer.rb +1 -0
  263. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +1 -0
  264. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  265. data/lib/ddtrace/contrib/racecar/events.rb +1 -0
  266. data/lib/ddtrace/contrib/racecar/events/batch.rb +1 -0
  267. data/lib/ddtrace/contrib/racecar/events/consume.rb +1 -0
  268. data/lib/ddtrace/contrib/racecar/events/message.rb +1 -0
  269. data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
  270. data/lib/ddtrace/contrib/racecar/integration.rb +1 -0
  271. data/lib/ddtrace/contrib/racecar/patcher.rb +1 -0
  272. data/lib/ddtrace/contrib/rack/configuration/settings.rb +1 -0
  273. data/lib/ddtrace/contrib/rack/ext.rb +1 -0
  274. data/lib/ddtrace/contrib/rack/integration.rb +1 -0
  275. data/lib/ddtrace/contrib/rack/middlewares.rb +2 -1
  276. data/lib/ddtrace/contrib/rack/patcher.rb +1 -0
  277. data/lib/ddtrace/contrib/rack/request_queue.rb +1 -0
  278. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +1 -0
  279. data/lib/ddtrace/contrib/rails/configuration/settings.rb +1 -0
  280. data/lib/ddtrace/contrib/rails/ext.rb +1 -0
  281. data/lib/ddtrace/contrib/rails/framework.rb +26 -1
  282. data/lib/ddtrace/contrib/rails/integration.rb +1 -0
  283. data/lib/ddtrace/contrib/rails/log_injection.rb +1 -40
  284. data/lib/ddtrace/contrib/rails/middlewares.rb +1 -0
  285. data/lib/ddtrace/contrib/rails/patcher.rb +12 -9
  286. data/lib/ddtrace/contrib/rails/railtie.rb +1 -0
  287. data/lib/ddtrace/contrib/rails/utils.rb +1 -0
  288. data/lib/ddtrace/contrib/rake/configuration/settings.rb +1 -0
  289. data/lib/ddtrace/contrib/rake/ext.rb +1 -0
  290. data/lib/ddtrace/contrib/rake/instrumentation.rb +1 -0
  291. data/lib/ddtrace/contrib/rake/integration.rb +1 -0
  292. data/lib/ddtrace/contrib/rake/patcher.rb +1 -0
  293. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +1 -0
  294. data/lib/ddtrace/contrib/redis/configuration/settings.rb +1 -0
  295. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  296. data/lib/ddtrace/contrib/redis/integration.rb +1 -0
  297. data/lib/ddtrace/contrib/redis/patcher.rb +1 -0
  298. data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
  299. data/lib/ddtrace/contrib/redis/tags.rb +1 -0
  300. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +1 -0
  301. data/lib/ddtrace/contrib/registerable.rb +3 -2
  302. data/lib/ddtrace/contrib/registry.rb +1 -0
  303. data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
  304. data/lib/ddtrace/contrib/resque/ext.rb +1 -0
  305. data/lib/ddtrace/contrib/resque/integration.rb +1 -0
  306. data/lib/ddtrace/contrib/resque/patcher.rb +1 -0
  307. data/lib/ddtrace/contrib/resque/resque_job.rb +1 -0
  308. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +1 -0
  309. data/lib/ddtrace/contrib/rest_client/ext.rb +1 -0
  310. data/lib/ddtrace/contrib/rest_client/integration.rb +1 -0
  311. data/lib/ddtrace/contrib/rest_client/patcher.rb +2 -0
  312. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -0
  313. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +19 -0
  314. data/lib/ddtrace/contrib/semantic_logger/ext.rb +11 -0
  315. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +43 -0
  316. data/lib/ddtrace/contrib/semantic_logger/integration.rb +48 -0
  317. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +26 -0
  318. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +1 -0
  319. data/lib/ddtrace/contrib/sequel/database.rb +1 -0
  320. data/lib/ddtrace/contrib/sequel/dataset.rb +1 -0
  321. data/lib/ddtrace/contrib/sequel/ext.rb +1 -0
  322. data/lib/ddtrace/contrib/sequel/integration.rb +1 -0
  323. data/lib/ddtrace/contrib/sequel/patcher.rb +1 -0
  324. data/lib/ddtrace/contrib/sequel/utils.rb +1 -0
  325. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  326. data/lib/ddtrace/contrib/shoryuken/ext.rb +1 -0
  327. data/lib/ddtrace/contrib/shoryuken/integration.rb +1 -0
  328. data/lib/ddtrace/contrib/shoryuken/patcher.rb +1 -0
  329. data/lib/ddtrace/contrib/shoryuken/tracer.rb +1 -0
  330. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +1 -0
  331. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
  332. data/lib/ddtrace/contrib/sidekiq/ext.rb +1 -0
  333. data/lib/ddtrace/contrib/sidekiq/integration.rb +1 -0
  334. data/lib/ddtrace/contrib/sidekiq/patcher.rb +1 -0
  335. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
  336. data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -0
  337. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +1 -0
  338. data/lib/ddtrace/contrib/sinatra/env.rb +1 -0
  339. data/lib/ddtrace/contrib/sinatra/ext.rb +1 -0
  340. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -0
  341. data/lib/ddtrace/contrib/sinatra/integration.rb +1 -0
  342. data/lib/ddtrace/contrib/sinatra/patcher.rb +2 -0
  343. data/lib/ddtrace/contrib/sinatra/tracer.rb +13 -3
  344. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +8 -1
  345. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
  346. data/lib/ddtrace/contrib/sneakers/ext.rb +1 -0
  347. data/lib/ddtrace/contrib/sneakers/integration.rb +1 -0
  348. data/lib/ddtrace/contrib/sneakers/patcher.rb +1 -0
  349. data/lib/ddtrace/contrib/sneakers/tracer.rb +1 -0
  350. data/lib/ddtrace/contrib/status_code_matcher.rb +1 -0
  351. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +1 -0
  352. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +1 -0
  353. data/lib/ddtrace/contrib/sucker_punch/ext.rb +1 -0
  354. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +1 -0
  355. data/lib/ddtrace/contrib/sucker_punch/integration.rb +1 -0
  356. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +2 -0
  357. data/lib/ddtrace/correlation.rb +2 -1
  358. data/lib/ddtrace/diagnostics/environment_logger.rb +4 -3
  359. data/lib/ddtrace/diagnostics/health.rb +1 -0
  360. data/lib/ddtrace/distributed_tracing/headers/b3.rb +1 -0
  361. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +1 -0
  362. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -0
  363. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  364. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -0
  365. data/lib/ddtrace/encoding.rb +3 -0
  366. data/lib/ddtrace/error.rb +1 -0
  367. data/lib/ddtrace/event.rb +1 -0
  368. data/lib/ddtrace/ext/analytics.rb +1 -0
  369. data/lib/ddtrace/ext/app_types.rb +1 -0
  370. data/lib/ddtrace/ext/correlation.rb +1 -0
  371. data/lib/ddtrace/ext/diagnostics.rb +1 -0
  372. data/lib/ddtrace/ext/distributed.rb +1 -0
  373. data/lib/ddtrace/ext/environment.rb +8 -0
  374. data/lib/ddtrace/ext/errors.rb +1 -0
  375. data/lib/ddtrace/ext/forced_tracing.rb +1 -0
  376. data/lib/ddtrace/ext/git.rb +10 -1
  377. data/lib/ddtrace/ext/http.rb +1 -0
  378. data/lib/ddtrace/ext/integration.rb +1 -0
  379. data/lib/ddtrace/ext/manual_tracing.rb +1 -0
  380. data/lib/ddtrace/ext/metrics.rb +1 -0
  381. data/lib/ddtrace/ext/net.rb +1 -0
  382. data/lib/ddtrace/ext/priority.rb +1 -0
  383. data/lib/ddtrace/ext/profiling.rb +3 -0
  384. data/lib/ddtrace/ext/runtime.rb +1 -9
  385. data/lib/ddtrace/ext/sampling.rb +1 -0
  386. data/lib/ddtrace/ext/sql.rb +1 -0
  387. data/lib/ddtrace/ext/test.rb +1 -0
  388. data/lib/ddtrace/ext/transport.rb +1 -0
  389. data/lib/ddtrace/forced_tracing.rb +1 -0
  390. data/lib/ddtrace/logger.rb +1 -0
  391. data/lib/ddtrace/metrics.rb +60 -33
  392. data/lib/ddtrace/opentelemetry/extensions.rb +1 -0
  393. data/lib/ddtrace/opentelemetry/span.rb +1 -0
  394. data/lib/ddtrace/opentracer.rb +1 -0
  395. data/lib/ddtrace/opentracer/binary_propagator.rb +1 -0
  396. data/lib/ddtrace/opentracer/carrier.rb +1 -0
  397. data/lib/ddtrace/opentracer/distributed_headers.rb +1 -0
  398. data/lib/ddtrace/opentracer/global_tracer.rb +1 -0
  399. data/lib/ddtrace/opentracer/propagator.rb +1 -0
  400. data/lib/ddtrace/opentracer/rack_propagator.rb +1 -0
  401. data/lib/ddtrace/opentracer/scope.rb +1 -0
  402. data/lib/ddtrace/opentracer/scope_manager.rb +1 -0
  403. data/lib/ddtrace/opentracer/span.rb +1 -0
  404. data/lib/ddtrace/opentracer/span_context.rb +1 -0
  405. data/lib/ddtrace/opentracer/span_context_factory.rb +1 -0
  406. data/lib/ddtrace/opentracer/text_map_propagator.rb +1 -0
  407. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  408. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +1 -0
  409. data/lib/ddtrace/opentracer/tracer.rb +1 -0
  410. data/lib/ddtrace/patcher.rb +1 -0
  411. data/lib/ddtrace/pin.rb +1 -0
  412. data/lib/ddtrace/pipeline.rb +1 -0
  413. data/lib/ddtrace/pipeline/span_filter.rb +1 -0
  414. data/lib/ddtrace/pipeline/span_processor.rb +1 -0
  415. data/lib/ddtrace/profiling.rb +64 -20
  416. data/lib/ddtrace/profiling/backtrace_location.rb +1 -0
  417. data/lib/ddtrace/profiling/buffer.rb +1 -0
  418. data/lib/ddtrace/profiling/collectors/stack.rb +11 -16
  419. data/lib/ddtrace/profiling/encoding/profile.rb +1 -0
  420. data/lib/ddtrace/profiling/event.rb +1 -0
  421. data/lib/ddtrace/profiling/events/stack.rb +16 -37
  422. data/lib/ddtrace/profiling/exporter.rb +1 -0
  423. data/lib/ddtrace/profiling/ext/cpu.rb +16 -1
  424. data/lib/ddtrace/profiling/ext/cthread.rb +1 -0
  425. data/lib/ddtrace/profiling/ext/forking.rb +1 -0
  426. data/lib/ddtrace/profiling/flush.rb +10 -9
  427. data/lib/ddtrace/profiling/native_extension.rb +18 -0
  428. data/lib/ddtrace/profiling/pprof/builder.rb +1 -0
  429. data/lib/ddtrace/profiling/pprof/converter.rb +1 -0
  430. data/lib/ddtrace/profiling/pprof/message_set.rb +4 -1
  431. data/lib/ddtrace/profiling/pprof/payload.rb +2 -1
  432. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +1 -0
  433. data/lib/ddtrace/profiling/pprof/stack_sample.rb +16 -5
  434. data/lib/ddtrace/profiling/pprof/string_table.rb +1 -0
  435. data/lib/ddtrace/profiling/pprof/template.rb +1 -0
  436. data/lib/ddtrace/profiling/preload.rb +1 -0
  437. data/lib/ddtrace/profiling/profiler.rb +1 -0
  438. data/lib/ddtrace/profiling/recorder.rb +3 -2
  439. data/lib/ddtrace/profiling/scheduler.rb +21 -3
  440. data/lib/ddtrace/profiling/tasks/setup.rb +9 -4
  441. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +41 -0
  442. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +46 -0
  443. data/lib/ddtrace/profiling/transport/client.rb +3 -0
  444. data/lib/ddtrace/profiling/transport/http.rb +29 -27
  445. data/lib/ddtrace/profiling/transport/http/api.rb +1 -0
  446. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +1 -0
  447. data/lib/ddtrace/profiling/transport/http/api/instance.rb +1 -0
  448. data/lib/ddtrace/profiling/transport/http/api/spec.rb +1 -0
  449. data/lib/ddtrace/profiling/transport/http/builder.rb +1 -0
  450. data/lib/ddtrace/profiling/transport/http/client.rb +1 -0
  451. data/lib/ddtrace/profiling/transport/http/response.rb +1 -0
  452. data/lib/ddtrace/profiling/transport/io.rb +1 -0
  453. data/lib/ddtrace/profiling/transport/io/client.rb +1 -0
  454. data/lib/ddtrace/profiling/transport/io/response.rb +1 -0
  455. data/lib/ddtrace/profiling/transport/parcel.rb +1 -0
  456. data/lib/ddtrace/profiling/transport/request.rb +1 -0
  457. data/lib/ddtrace/profiling/transport/response.rb +1 -0
  458. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  459. data/lib/ddtrace/propagation/http_propagator.rb +3 -2
  460. data/lib/ddtrace/quantization/hash.rb +1 -0
  461. data/lib/ddtrace/quantization/http.rb +3 -0
  462. data/lib/ddtrace/runtime/metrics.rb +19 -10
  463. data/lib/ddtrace/sampler.rb +1 -0
  464. data/lib/ddtrace/sampling.rb +1 -0
  465. data/lib/ddtrace/sampling/matcher.rb +1 -0
  466. data/lib/ddtrace/sampling/rate_limiter.rb +1 -0
  467. data/lib/ddtrace/sampling/rule.rb +2 -1
  468. data/lib/ddtrace/sampling/rule_sampler.rb +2 -1
  469. data/lib/ddtrace/span.rb +37 -12
  470. data/lib/ddtrace/sync_writer.rb +3 -2
  471. data/lib/ddtrace/tasks/exec.rb +4 -5
  472. data/lib/ddtrace/tasks/help.rb +1 -0
  473. data/lib/ddtrace/tracer.rb +6 -14
  474. data/lib/ddtrace/transport/http.rb +10 -7
  475. data/lib/ddtrace/transport/http/adapters/net.rb +1 -0
  476. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  477. data/lib/ddtrace/transport/http/adapters/test.rb +1 -0
  478. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +1 -0
  479. data/lib/ddtrace/transport/http/api.rb +1 -0
  480. data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
  481. data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
  482. data/lib/ddtrace/transport/http/api/instance.rb +1 -0
  483. data/lib/ddtrace/transport/http/api/map.rb +1 -0
  484. data/lib/ddtrace/transport/http/api/spec.rb +1 -0
  485. data/lib/ddtrace/transport/http/builder.rb +1 -0
  486. data/lib/ddtrace/transport/http/client.rb +3 -1
  487. data/lib/ddtrace/transport/http/env.rb +1 -0
  488. data/lib/ddtrace/transport/http/response.rb +1 -0
  489. data/lib/ddtrace/transport/http/statistics.rb +1 -0
  490. data/lib/ddtrace/transport/http/traces.rb +1 -0
  491. data/lib/ddtrace/transport/io.rb +1 -0
  492. data/lib/ddtrace/transport/io/client.rb +2 -1
  493. data/lib/ddtrace/transport/io/response.rb +1 -0
  494. data/lib/ddtrace/transport/io/traces.rb +3 -0
  495. data/lib/ddtrace/transport/parcel.rb +3 -0
  496. data/lib/ddtrace/transport/request.rb +1 -0
  497. data/lib/ddtrace/transport/response.rb +1 -0
  498. data/lib/ddtrace/transport/statistics.rb +1 -0
  499. data/lib/ddtrace/transport/traces.rb +3 -2
  500. data/lib/ddtrace/utils.rb +14 -2
  501. data/lib/ddtrace/utils/compression.rb +1 -0
  502. data/lib/ddtrace/utils/database.rb +1 -0
  503. data/lib/ddtrace/utils/forking.rb +1 -0
  504. data/lib/ddtrace/utils/object_set.rb +1 -0
  505. data/lib/ddtrace/utils/only_once.rb +1 -0
  506. data/lib/ddtrace/utils/sequence.rb +1 -0
  507. data/lib/ddtrace/utils/string_table.rb +1 -0
  508. data/lib/ddtrace/utils/time.rb +3 -0
  509. data/lib/ddtrace/vendor/active_record/connection_specification.rb +1 -0
  510. data/lib/ddtrace/vendor/multipart-post/multipart.rb +1 -0
  511. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +1 -0
  512. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -0
  513. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +1 -0
  514. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +1 -0
  515. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +1 -0
  516. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +1 -0
  517. data/lib/ddtrace/version.rb +2 -1
  518. data/lib/ddtrace/worker.rb +1 -0
  519. data/lib/ddtrace/workers.rb +2 -1
  520. data/lib/ddtrace/workers/async.rb +2 -1
  521. data/lib/ddtrace/workers/loop.rb +1 -0
  522. data/lib/ddtrace/workers/polling.rb +1 -0
  523. data/lib/ddtrace/workers/queue.rb +1 -0
  524. data/lib/ddtrace/workers/runtime_metrics.rb +1 -0
  525. data/lib/ddtrace/workers/trace_writer.rb +3 -2
  526. data/lib/ddtrace/writer.rb +3 -2
  527. metadata +34 -562
  528. data/.circleci/config.yml +0 -870
  529. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -83
  530. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -83
  531. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -85
  532. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -83
  533. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -83
  534. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -83
  535. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -83
  536. data/.circleci/images/primary/Dockerfile-3.0.0 +0 -73
  537. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +0 -88
  538. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +0 -73
  539. data/.circleci/images/primary/Dockerfile-truffleruby-21.1.0 +0 -73
  540. data/.dockerignore +0 -0
  541. data/.env +0 -26
  542. data/.github/CODEOWNERS +0 -1
  543. data/.github/workflows/add-milestone-to-pull-requests.yml +0 -42
  544. data/.github/workflows/create-next-milestone.yml +0 -20
  545. data/.gitlab-ci.yml +0 -27
  546. data/.rspec +0 -1
  547. data/.rubocop.yml +0 -351
  548. data/.rubocop_todo.yml +0 -438
  549. data/.simplecov +0 -47
  550. data/Appraisals +0 -1323
  551. data/Gemfile +0 -69
  552. data/Rakefile +0 -939
  553. data/benchmarks/data/profiler-submission-marshal.gz +0 -0
  554. data/benchmarks/postgres_database.yml +0 -9
  555. data/benchmarks/profiler_sample_loop.rb +0 -69
  556. data/benchmarks/profiler_submission.rb +0 -93
  557. data/benchmarks/sidekiq_test.rb +0 -154
  558. data/docker-compose.yml +0 -414
  559. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +0 -79
  560. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +0 -1518
  561. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +0 -35
  562. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +0 -157
  563. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +0 -34
  564. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +0 -153
  565. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +0 -35
  566. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +0 -174
  567. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +0 -35
  568. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +0 -206
  569. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +0 -35
  570. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +0 -206
  571. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +0 -40
  572. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +0 -271
  573. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +0 -40
  574. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +0 -271
  575. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +0 -41
  576. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +0 -273
  577. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +0 -41
  578. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  579. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +0 -42
  580. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +0 -279
  581. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +0 -40
  582. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +0 -290
  583. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +0 -40
  584. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +0 -290
  585. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +0 -41
  586. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +0 -292
  587. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +0 -41
  588. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -297
  589. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +0 -40
  590. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +0 -287
  591. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +0 -40
  592. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +0 -287
  593. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +0 -41
  594. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +0 -289
  595. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +0 -41
  596. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  597. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +0 -42
  598. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +0 -295
  599. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +0 -36
  600. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +0 -180
  601. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +0 -36
  602. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +0 -180
  603. data/gemfiles/jruby_9.2.11.1_contrib.gemfile +0 -79
  604. data/gemfiles/jruby_9.2.11.1_contrib.gemfile.lock +0 -1518
  605. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile +0 -35
  606. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile.lock +0 -157
  607. data/gemfiles/jruby_9.2.11.1_core_old.gemfile +0 -34
  608. data/gemfiles/jruby_9.2.11.1_core_old.gemfile.lock +0 -153
  609. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile +0 -35
  610. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile.lock +0 -174
  611. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile +0 -35
  612. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile.lock +0 -206
  613. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile +0 -35
  614. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile.lock +0 -206
  615. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile +0 -40
  616. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile.lock +0 -271
  617. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile +0 -40
  618. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile.lock +0 -271
  619. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile +0 -41
  620. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile.lock +0 -273
  621. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile +0 -41
  622. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  623. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile +0 -42
  624. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile.lock +0 -279
  625. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile +0 -40
  626. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile.lock +0 -290
  627. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile +0 -40
  628. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile.lock +0 -290
  629. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile +0 -41
  630. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile.lock +0 -292
  631. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile +0 -41
  632. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile.lock +0 -297
  633. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile +0 -40
  634. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile.lock +0 -287
  635. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile +0 -40
  636. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile.lock +0 -287
  637. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile +0 -41
  638. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile.lock +0 -289
  639. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile +0 -41
  640. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  641. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile +0 -42
  642. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile.lock +0 -295
  643. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile +0 -36
  644. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile.lock +0 -180
  645. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile +0 -36
  646. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile.lock +0 -180
  647. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +0 -66
  648. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +0 -305
  649. data/gemfiles/ruby_2.1.10_core_old.gemfile +0 -33
  650. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +0 -118
  651. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +0 -39
  652. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +0 -196
  653. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +0 -40
  654. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  655. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +0 -42
  656. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +0 -215
  657. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +0 -39
  658. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +0 -204
  659. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +0 -41
  660. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +0 -223
  661. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +0 -40
  662. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  663. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +0 -38
  664. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +0 -218
  665. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +0 -38
  666. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +0 -218
  667. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +0 -40
  668. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +0 -237
  669. data/gemfiles/ruby_2.2.10_contrib.gemfile +0 -73
  670. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +0 -1450
  671. data/gemfiles/ruby_2.2.10_core_old.gemfile +0 -33
  672. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +0 -118
  673. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +0 -39
  674. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +0 -196
  675. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +0 -40
  676. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  677. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +0 -41
  678. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +0 -212
  679. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +0 -39
  680. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +0 -204
  681. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +0 -41
  682. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +0 -223
  683. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +0 -40
  684. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  685. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +0 -38
  686. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +0 -218
  687. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +0 -38
  688. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +0 -218
  689. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +0 -40
  690. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +0 -237
  691. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +0 -40
  692. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +0 -229
  693. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +0 -38
  694. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +0 -234
  695. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +0 -38
  696. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +0 -234
  697. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +0 -39
  698. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +0 -236
  699. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +0 -39
  700. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  701. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +0 -40
  702. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +0 -245
  703. data/gemfiles/ruby_2.3.8_contrib.gemfile +0 -73
  704. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +0 -1459
  705. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +0 -34
  706. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +0 -127
  707. data/gemfiles/ruby_2.3.8_core_old.gemfile +0 -33
  708. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +0 -123
  709. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +0 -34
  710. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +0 -144
  711. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +0 -34
  712. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +0 -174
  713. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +0 -39
  714. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +0 -201
  715. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +0 -40
  716. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +0 -210
  717. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +0 -41
  718. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +0 -217
  719. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +0 -39
  720. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +0 -209
  721. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +0 -41
  722. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +0 -228
  723. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +0 -40
  724. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +0 -218
  725. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +0 -38
  726. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +0 -223
  727. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +0 -38
  728. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +0 -223
  729. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +0 -40
  730. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +0 -242
  731. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +0 -40
  732. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +0 -234
  733. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +0 -37
  734. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +0 -234
  735. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +0 -37
  736. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +0 -234
  737. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +0 -38
  738. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +0 -236
  739. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +0 -38
  740. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  741. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +0 -39
  742. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +0 -245
  743. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +0 -35
  744. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +0 -150
  745. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +0 -35
  746. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +0 -150
  747. data/gemfiles/ruby_2.4.6_contrib.gemfile +0 -78
  748. data/gemfiles/ruby_2.4.6_contrib.gemfile.lock +0 -1513
  749. data/gemfiles/ruby_2.4.6_contrib_old.gemfile +0 -38
  750. data/gemfiles/ruby_2.4.6_contrib_old.gemfile.lock +0 -155
  751. data/gemfiles/ruby_2.4.6_core_old.gemfile +0 -37
  752. data/gemfiles/ruby_2.4.6_core_old.gemfile.lock +0 -151
  753. data/gemfiles/ruby_2.4.6_cucumber3.gemfile +0 -38
  754. data/gemfiles/ruby_2.4.6_cucumber3.gemfile.lock +0 -172
  755. data/gemfiles/ruby_2.4.6_cucumber4.gemfile +0 -38
  756. data/gemfiles/ruby_2.4.6_cucumber4.gemfile.lock +0 -202
  757. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile +0 -41
  758. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile.lock +0 -262
  759. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile +0 -41
  760. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile.lock +0 -262
  761. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile +0 -42
  762. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile.lock +0 -264
  763. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile +0 -42
  764. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -264
  765. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile +0 -43
  766. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile.lock +0 -273
  767. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile +0 -39
  768. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile.lock +0 -178
  769. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile +0 -39
  770. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile.lock +0 -178
  771. data/gemfiles/ruby_2.5.6_contrib.gemfile +0 -83
  772. data/gemfiles/ruby_2.5.6_contrib.gemfile.lock +0 -1526
  773. data/gemfiles/ruby_2.5.6_contrib_old.gemfile +0 -39
  774. data/gemfiles/ruby_2.5.6_contrib_old.gemfile.lock +0 -165
  775. data/gemfiles/ruby_2.5.6_core_old.gemfile +0 -38
  776. data/gemfiles/ruby_2.5.6_core_old.gemfile.lock +0 -161
  777. data/gemfiles/ruby_2.5.6_cucumber3.gemfile +0 -39
  778. data/gemfiles/ruby_2.5.6_cucumber3.gemfile.lock +0 -182
  779. data/gemfiles/ruby_2.5.6_cucumber4.gemfile +0 -39
  780. data/gemfiles/ruby_2.5.6_cucumber4.gemfile.lock +0 -214
  781. data/gemfiles/ruby_2.5.6_cucumber5.gemfile +0 -39
  782. data/gemfiles/ruby_2.5.6_cucumber5.gemfile.lock +0 -214
  783. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile +0 -44
  784. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile.lock +0 -276
  785. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile +0 -44
  786. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile.lock +0 -276
  787. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile +0 -45
  788. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile.lock +0 -278
  789. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile +0 -45
  790. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  791. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile +0 -46
  792. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile.lock +0 -284
  793. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile +0 -44
  794. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile.lock +0 -295
  795. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile +0 -44
  796. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile.lock +0 -295
  797. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile +0 -45
  798. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile.lock +0 -297
  799. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile +0 -45
  800. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile.lock +0 -302
  801. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile +0 -44
  802. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile.lock +0 -292
  803. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile +0 -44
  804. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile.lock +0 -292
  805. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile +0 -45
  806. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile.lock +0 -294
  807. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile +0 -45
  808. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  809. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile +0 -46
  810. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile.lock +0 -300
  811. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile +0 -40
  812. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile.lock +0 -188
  813. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile +0 -40
  814. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile.lock +0 -188
  815. data/gemfiles/ruby_2.6.4_contrib.gemfile +0 -79
  816. data/gemfiles/ruby_2.6.4_contrib.gemfile.lock +0 -1524
  817. data/gemfiles/ruby_2.6.4_contrib_old.gemfile +0 -39
  818. data/gemfiles/ruby_2.6.4_contrib_old.gemfile.lock +0 -167
  819. data/gemfiles/ruby_2.6.4_core_old.gemfile +0 -38
  820. data/gemfiles/ruby_2.6.4_core_old.gemfile.lock +0 -163
  821. data/gemfiles/ruby_2.6.4_cucumber3.gemfile +0 -39
  822. data/gemfiles/ruby_2.6.4_cucumber3.gemfile.lock +0 -184
  823. data/gemfiles/ruby_2.6.4_cucumber4.gemfile +0 -39
  824. data/gemfiles/ruby_2.6.4_cucumber4.gemfile.lock +0 -216
  825. data/gemfiles/ruby_2.6.4_cucumber5.gemfile +0 -39
  826. data/gemfiles/ruby_2.6.4_cucumber5.gemfile.lock +0 -216
  827. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile +0 -42
  828. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile.lock +0 -276
  829. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile +0 -42
  830. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile.lock +0 -276
  831. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile +0 -43
  832. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile.lock +0 -278
  833. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile +0 -43
  834. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  835. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile +0 -44
  836. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile.lock +0 -284
  837. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile +0 -42
  838. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile.lock +0 -295
  839. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile +0 -42
  840. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile.lock +0 -295
  841. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile +0 -43
  842. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile.lock +0 -297
  843. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile +0 -43
  844. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile.lock +0 -302
  845. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile +0 -42
  846. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile.lock +0 -292
  847. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile +0 -42
  848. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile.lock +0 -292
  849. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile +0 -43
  850. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile.lock +0 -294
  851. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile +0 -43
  852. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  853. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile +0 -44
  854. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile.lock +0 -300
  855. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile +0 -40
  856. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile.lock +0 -190
  857. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile +0 -40
  858. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile.lock +0 -190
  859. data/gemfiles/ruby_2.7.0_contrib.gemfile +0 -78
  860. data/gemfiles/ruby_2.7.0_contrib.gemfile.lock +0 -1523
  861. data/gemfiles/ruby_2.7.0_contrib_old.gemfile +0 -39
  862. data/gemfiles/ruby_2.7.0_contrib_old.gemfile.lock +0 -167
  863. data/gemfiles/ruby_2.7.0_core_old.gemfile +0 -38
  864. data/gemfiles/ruby_2.7.0_core_old.gemfile.lock +0 -163
  865. data/gemfiles/ruby_2.7.0_cucumber3.gemfile +0 -39
  866. data/gemfiles/ruby_2.7.0_cucumber3.gemfile.lock +0 -184
  867. data/gemfiles/ruby_2.7.0_cucumber4.gemfile +0 -39
  868. data/gemfiles/ruby_2.7.0_cucumber4.gemfile.lock +0 -216
  869. data/gemfiles/ruby_2.7.0_cucumber5.gemfile +0 -39
  870. data/gemfiles/ruby_2.7.0_cucumber5.gemfile.lock +0 -216
  871. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile +0 -42
  872. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +0 -276
  873. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +0 -42
  874. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +0 -276
  875. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile +0 -44
  876. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile.lock +0 -295
  877. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile +0 -44
  878. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -295
  879. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile +0 -44
  880. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile.lock +0 -284
  881. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile +0 -42
  882. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +0 -295
  883. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile +0 -42
  884. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +0 -295
  885. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile +0 -43
  886. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +0 -297
  887. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile +0 -43
  888. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  889. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile +0 -42
  890. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +0 -292
  891. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +0 -42
  892. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +0 -292
  893. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile +0 -44
  894. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile.lock +0 -311
  895. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile +0 -44
  896. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -311
  897. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile +0 -44
  898. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile.lock +0 -300
  899. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile +0 -40
  900. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +0 -190
  901. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile +0 -40
  902. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +0 -190
  903. data/gemfiles/ruby_3.0.0_contrib.gemfile +0 -78
  904. data/gemfiles/ruby_3.0.0_contrib.gemfile.lock +0 -1540
  905. data/gemfiles/ruby_3.0.0_core_old.gemfile +0 -39
  906. data/gemfiles/ruby_3.0.0_core_old.gemfile.lock +0 -165
  907. data/gemfiles/ruby_3.0.0_cucumber3.gemfile +0 -40
  908. data/gemfiles/ruby_3.0.0_cucumber3.gemfile.lock +0 -186
  909. data/gemfiles/ruby_3.0.0_cucumber4.gemfile +0 -40
  910. data/gemfiles/ruby_3.0.0_cucumber4.gemfile.lock +0 -218
  911. data/gemfiles/ruby_3.0.0_cucumber5.gemfile +0 -40
  912. data/gemfiles/ruby_3.0.0_cucumber5.gemfile.lock +0 -218
  913. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile +0 -43
  914. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile.lock +0 -295
  915. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile +0 -43
  916. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile.lock +0 -295
  917. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile +0 -44
  918. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile.lock +0 -297
  919. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile +0 -44
  920. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  921. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile +0 -41
  922. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile.lock +0 -192
  923. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile +0 -41
  924. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile.lock +0 -192
  925. data/integration/README.md +0 -67
  926. data/integration/apps/rack/.dockerignore +0 -1
  927. data/integration/apps/rack/.envrc.sample +0 -1
  928. data/integration/apps/rack/.gitignore +0 -4
  929. data/integration/apps/rack/.rspec +0 -1
  930. data/integration/apps/rack/Dockerfile +0 -28
  931. data/integration/apps/rack/Dockerfile-ci +0 -11
  932. data/integration/apps/rack/Gemfile +0 -24
  933. data/integration/apps/rack/README.md +0 -93
  934. data/integration/apps/rack/app/acme.rb +0 -80
  935. data/integration/apps/rack/app/datadog.rb +0 -17
  936. data/integration/apps/rack/bin/run +0 -22
  937. data/integration/apps/rack/bin/setup +0 -17
  938. data/integration/apps/rack/bin/test +0 -24
  939. data/integration/apps/rack/config.ru +0 -6
  940. data/integration/apps/rack/config/puma.rb +0 -14
  941. data/integration/apps/rack/config/unicorn.rb +0 -23
  942. data/integration/apps/rack/docker-compose.ci.yml +0 -62
  943. data/integration/apps/rack/docker-compose.yml +0 -78
  944. data/integration/apps/rack/script/build-images +0 -38
  945. data/integration/apps/rack/script/ci +0 -51
  946. data/integration/apps/rack/spec/integration/basic_spec.rb +0 -10
  947. data/integration/apps/rack/spec/spec_helper.rb +0 -16
  948. data/integration/apps/rack/spec/support/integration_helper.rb +0 -22
  949. data/integration/apps/rails-five/.dockerignore +0 -1
  950. data/integration/apps/rails-five/.env +0 -3
  951. data/integration/apps/rails-five/.envrc.sample +0 -1
  952. data/integration/apps/rails-five/.gitignore +0 -30
  953. data/integration/apps/rails-five/Dockerfile +0 -25
  954. data/integration/apps/rails-five/Dockerfile-ci +0 -11
  955. data/integration/apps/rails-five/Gemfile +0 -104
  956. data/integration/apps/rails-five/README.md +0 -94
  957. data/integration/apps/rails-five/Rakefile +0 -6
  958. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +0 -4
  959. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +0 -4
  960. data/integration/apps/rails-five/app/controllers/application_controller.rb +0 -2
  961. data/integration/apps/rails-five/app/controllers/basic_controller.rb +0 -36
  962. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  963. data/integration/apps/rails-five/app/controllers/health_controller.rb +0 -9
  964. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +0 -12
  965. data/integration/apps/rails-five/app/jobs/application_job.rb +0 -2
  966. data/integration/apps/rails-five/app/jobs/test_job.rb +0 -12
  967. data/integration/apps/rails-five/app/mailers/application_mailer.rb +0 -4
  968. data/integration/apps/rails-five/app/models/application_record.rb +0 -3
  969. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  970. data/integration/apps/rails-five/app/models/test.rb +0 -2
  971. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +0 -13
  972. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +0 -1
  973. data/integration/apps/rails-five/bin/bundle +0 -3
  974. data/integration/apps/rails-five/bin/rails +0 -9
  975. data/integration/apps/rails-five/bin/rake +0 -9
  976. data/integration/apps/rails-five/bin/run +0 -24
  977. data/integration/apps/rails-five/bin/setup +0 -27
  978. data/integration/apps/rails-five/bin/spring +0 -17
  979. data/integration/apps/rails-five/bin/test +0 -21
  980. data/integration/apps/rails-five/bin/update +0 -28
  981. data/integration/apps/rails-five/config.ru +0 -5
  982. data/integration/apps/rails-five/config/application.rb +0 -97
  983. data/integration/apps/rails-five/config/boot.rb +0 -4
  984. data/integration/apps/rails-five/config/cable.yml +0 -10
  985. data/integration/apps/rails-five/config/credentials.yml.enc +0 -1
  986. data/integration/apps/rails-five/config/database.yml +0 -28
  987. data/integration/apps/rails-five/config/environment.rb +0 -5
  988. data/integration/apps/rails-five/config/environments/development.rb +0 -51
  989. data/integration/apps/rails-five/config/environments/production.rb +0 -82
  990. data/integration/apps/rails-five/config/environments/test.rb +0 -43
  991. data/integration/apps/rails-five/config/initializers/datadog.rb +0 -18
  992. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +0 -4
  993. data/integration/apps/rails-five/config/initializers/resque.rb +0 -4
  994. data/integration/apps/rails-five/config/initializers/rollbar.rb +0 -5
  995. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +0 -14
  996. data/integration/apps/rails-five/config/locales/en.yml +0 -33
  997. data/integration/apps/rails-five/config/puma.rb +0 -24
  998. data/integration/apps/rails-five/config/routes.rb +0 -11
  999. data/integration/apps/rails-five/config/spring.rb +0 -6
  1000. data/integration/apps/rails-five/config/unicorn.rb +0 -29
  1001. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +0 -11
  1002. data/integration/apps/rails-five/db/schema.rb +0 -23
  1003. data/integration/apps/rails-five/db/seeds.rb +0 -7
  1004. data/integration/apps/rails-five/docker-compose.ci.yml +0 -98
  1005. data/integration/apps/rails-five/docker-compose.yml +0 -100
  1006. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  1007. data/integration/apps/rails-five/log/.keep +0 -0
  1008. data/integration/apps/rails-five/public/robots.txt +0 -1
  1009. data/integration/apps/rails-five/script/build-images +0 -35
  1010. data/integration/apps/rails-five/script/ci +0 -51
  1011. data/integration/apps/rails-five/spec/integration/basic_spec.rb +0 -10
  1012. data/integration/apps/rails-five/spec/spec_helper.rb +0 -16
  1013. data/integration/apps/rails-five/spec/support/integration_helper.rb +0 -22
  1014. data/integration/apps/rails-five/storage/.keep +0 -0
  1015. data/integration/apps/rails-five/tmp/.keep +0 -0
  1016. data/integration/apps/rails-five/vendor/.keep +0 -0
  1017. data/integration/apps/rspec/.dockerignore +0 -1
  1018. data/integration/apps/rspec/.envrc.sample +0 -1
  1019. data/integration/apps/rspec/.gitignore +0 -2
  1020. data/integration/apps/rspec/.rspec +0 -1
  1021. data/integration/apps/rspec/Dockerfile +0 -25
  1022. data/integration/apps/rspec/Dockerfile-ci +0 -11
  1023. data/integration/apps/rspec/Gemfile +0 -14
  1024. data/integration/apps/rspec/README.md +0 -70
  1025. data/integration/apps/rspec/agent.yaml +0 -3
  1026. data/integration/apps/rspec/app/datadog.rb +0 -13
  1027. data/integration/apps/rspec/app/fibonacci.rb +0 -30
  1028. data/integration/apps/rspec/bin/run +0 -20
  1029. data/integration/apps/rspec/bin/setup +0 -17
  1030. data/integration/apps/rspec/bin/test +0 -21
  1031. data/integration/apps/rspec/docker-compose.ci.yml +0 -51
  1032. data/integration/apps/rspec/docker-compose.yml +0 -63
  1033. data/integration/apps/rspec/script/build-images +0 -37
  1034. data/integration/apps/rspec/script/ci +0 -53
  1035. data/integration/apps/rspec/spec/fibonacci_spec.rb +0 -16
  1036. data/integration/apps/rspec/spec/rspec_spec.rb +0 -58
  1037. data/integration/apps/rspec/spec/spec_helper.rb +0 -24
  1038. data/integration/apps/ruby/.dockerignore +0 -1
  1039. data/integration/apps/ruby/.envrc.sample +0 -1
  1040. data/integration/apps/ruby/.gitignore +0 -2
  1041. data/integration/apps/ruby/Dockerfile +0 -25
  1042. data/integration/apps/ruby/Dockerfile-ci +0 -11
  1043. data/integration/apps/ruby/Gemfile +0 -11
  1044. data/integration/apps/ruby/README.md +0 -70
  1045. data/integration/apps/ruby/agent.yaml +0 -3
  1046. data/integration/apps/ruby/app/datadog.rb +0 -13
  1047. data/integration/apps/ruby/app/fibonacci.rb +0 -58
  1048. data/integration/apps/ruby/bin/run +0 -20
  1049. data/integration/apps/ruby/bin/setup +0 -17
  1050. data/integration/apps/ruby/bin/test +0 -21
  1051. data/integration/apps/ruby/docker-compose.ci.yml +0 -51
  1052. data/integration/apps/ruby/docker-compose.yml +0 -63
  1053. data/integration/apps/ruby/script/build-images +0 -38
  1054. data/integration/apps/ruby/script/ci +0 -51
  1055. data/integration/images/agent/Dockerfile +0 -2
  1056. data/integration/images/agent/agent.yaml +0 -3
  1057. data/integration/images/include/datadog/analyzer.rb +0 -71
  1058. data/integration/images/include/datadog/demo_env.rb +0 -101
  1059. data/integration/images/include/http-health-check +0 -33
  1060. data/integration/images/ruby/2.1/Dockerfile +0 -54
  1061. data/integration/images/ruby/2.2/Dockerfile +0 -54
  1062. data/integration/images/ruby/2.3/Dockerfile +0 -70
  1063. data/integration/images/ruby/2.4/Dockerfile +0 -54
  1064. data/integration/images/ruby/2.5/Dockerfile +0 -54
  1065. data/integration/images/ruby/2.6/Dockerfile +0 -54
  1066. data/integration/images/ruby/2.7/Dockerfile +0 -54
  1067. data/integration/images/ruby/3.0/Dockerfile +0 -54
  1068. data/integration/images/wrk/Dockerfile +0 -33
  1069. data/integration/images/wrk/scripts/entrypoint.sh +0 -17
  1070. data/integration/images/wrk/scripts/scenarios/basic/default.lua +0 -1
  1071. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +0 -1
  1072. data/integration/script/build-images +0 -43
  1073. data/lib/ddtrace/environment.rb +0 -41
  1074. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  1075. data/lib/ddtrace/runtime/class_count.rb +0 -17
  1076. data/lib/ddtrace/runtime/container.rb +0 -87
  1077. data/lib/ddtrace/runtime/gc.rb +0 -16
  1078. data/lib/ddtrace/runtime/identity.rb +0 -48
  1079. data/lib/ddtrace/runtime/object_space.rb +0 -19
  1080. data/lib/ddtrace/runtime/socket.rb +0 -14
  1081. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  1082. data/tasks/release_gem.rake +0 -28
@@ -0,0 +1,42 @@
1
+ # typed: false
2
+ module Datadog
3
+ module Core
4
+ # Namespace for handling application environment
5
+ module Environment
6
+ # Defines helper methods for environment
7
+ module VariableHelpers
8
+ extend self
9
+
10
+ def env_to_bool(var, default = nil)
11
+ var = decode_array(var)
12
+ var && ENV.key?(var) ? ENV[var].to_s.strip.downcase == 'true' : default
13
+ end
14
+
15
+ def env_to_int(var, default = nil)
16
+ var = decode_array(var)
17
+ var && ENV.key?(var) ? ENV[var].to_i : default
18
+ end
19
+
20
+ def env_to_float(var, default = nil)
21
+ var = decode_array(var)
22
+ var && ENV.key?(var) ? ENV[var].to_f : default
23
+ end
24
+
25
+ def env_to_list(var, default = [])
26
+ var = decode_array(var)
27
+ if var && ENV.key?(var)
28
+ ENV[var].split(',').map(&:strip)
29
+ else
30
+ default
31
+ end
32
+ end
33
+
34
+ private
35
+
36
+ def decode_array(var)
37
+ var.is_a?(Array) ? var.find { |env_var| ENV.key?(env_var) } : var
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
data/lib/ddtrace.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # typed: strict
1
2
  # During development, we load `ddtrace` by through `ddtrace.gemspec`,
2
3
  # which in turn eager loads 'ddtrace/version'.
3
4
  #
@@ -17,66 +18,35 @@ require 'ddtrace/metrics'
17
18
  require 'ddtrace/auto_instrument_base'
18
19
  require 'ddtrace/profiling'
19
20
 
21
+ require 'datadog/contrib'
22
+ require 'ddtrace/contrib/auto_instrument'
23
+ require 'ddtrace/contrib/extensions'
24
+
25
+ require 'ddtrace/opentelemetry/extensions'
26
+
20
27
  # \Datadog global namespace that includes all tracing functionality for Tracer and Span classes.
21
28
  module Datadog
22
29
  extend Configuration
23
30
  extend AutoInstrumentBase
24
31
 
25
- # Load and extend Contrib by default
26
- require 'ddtrace/contrib/extensions'
32
+ # Load built-in Datadog integrations
27
33
  extend Contrib::Extensions
34
+ # Load Contrib auto instrumentation
35
+ extend Contrib::AutoInstrument
36
+ # Load Contrib extension to global Datadog objects
37
+ Configuration::Settings.include Contrib::Extensions::Configuration::Settings
28
38
 
29
39
  # Load and extend OpenTelemetry compatibility by default
30
- require 'ddtrace/opentelemetry/extensions'
31
40
  extend OpenTelemetry::Extensions
32
41
 
33
- # Load and extend AutoInstrument
34
- require 'ddtrace/contrib/auto_instrument'
35
- extend Contrib::AutoInstrument
36
-
37
42
  # Add shutdown hook:
38
43
  # Ensures the tracer has an opportunity to flush traces
39
44
  # and cleanup before terminating the process.
40
- at_exit { Datadog.shutdown! }
45
+ at_exit do
46
+ if Interrupt === $! # rubocop:disable Style/SpecialGlobalVars is process terminating due to a ctrl+c or similar?
47
+ Datadog.send(:handle_interrupt_shutdown!)
48
+ else
49
+ Datadog.shutdown!
50
+ end
51
+ end
41
52
  end
42
-
43
- require 'ddtrace/contrib/action_cable/integration'
44
- require 'ddtrace/contrib/action_pack/integration'
45
- require 'ddtrace/contrib/action_view/integration'
46
- require 'ddtrace/contrib/active_model_serializers/integration'
47
- require 'ddtrace/contrib/active_record/integration'
48
- require 'ddtrace/contrib/active_support/integration'
49
- require 'ddtrace/contrib/aws/integration'
50
- require 'ddtrace/contrib/concurrent_ruby/integration'
51
- require 'ddtrace/contrib/dalli/integration'
52
- require 'ddtrace/contrib/delayed_job/integration'
53
- require 'ddtrace/contrib/elasticsearch/integration'
54
- require 'ddtrace/contrib/ethon/integration'
55
- require 'ddtrace/contrib/excon/integration'
56
- require 'ddtrace/contrib/faraday/integration'
57
- require 'ddtrace/contrib/grape/integration'
58
- require 'ddtrace/contrib/graphql/integration'
59
- require 'ddtrace/contrib/grpc/integration'
60
- require 'ddtrace/contrib/http/integration'
61
- require 'ddtrace/contrib/httpclient/integration'
62
- require 'ddtrace/contrib/httprb/integration'
63
- require 'ddtrace/contrib/integration'
64
- require 'ddtrace/contrib/kafka/integration'
65
- require 'ddtrace/contrib/presto/integration'
66
- require 'ddtrace/contrib/que/integration'
67
- require 'ddtrace/contrib/mysql2/integration'
68
- require 'ddtrace/contrib/mongodb/integration'
69
- require 'ddtrace/contrib/qless/integration'
70
- require 'ddtrace/contrib/racecar/integration'
71
- require 'ddtrace/contrib/rack/integration'
72
- require 'ddtrace/contrib/rails/integration'
73
- require 'ddtrace/contrib/rake/integration'
74
- require 'ddtrace/contrib/redis/integration'
75
- require 'ddtrace/contrib/resque/integration'
76
- require 'ddtrace/contrib/rest_client/integration'
77
- require 'ddtrace/contrib/sequel/integration'
78
- require 'ddtrace/contrib/shoryuken/integration'
79
- require 'ddtrace/contrib/sidekiq/integration'
80
- require 'ddtrace/contrib/sinatra/integration'
81
- require 'ddtrace/contrib/sneakers/integration'
82
- require 'ddtrace/contrib/sucker_punch/integration'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  require 'ddtrace/ext/analytics'
2
3
 
3
4
  module Datadog
@@ -1,3 +1,5 @@
1
+ # typed: strict
1
2
  require 'ddtrace'
2
3
 
3
4
  Datadog.add_auto_instrument
5
+ Datadog.profiler.start if Datadog.profiler
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  module Datadog
2
3
  # base methods stubbed for adding auto instrument extensions
3
4
  module AutoInstrumentBase
@@ -1,5 +1,5 @@
1
+ # typed: true
1
2
  require 'ddtrace/diagnostics/health'
2
- require 'ddtrace/runtime/object_space'
3
3
 
4
4
  # Trace buffer that accumulates traces for a consumer.
5
5
  # Consumption can happen from a different thread.
@@ -213,6 +213,8 @@ module Datadog
213
213
 
214
214
  # Health metrics for trace buffers.
215
215
  module MeasuredBuffer
216
+ include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
217
+
216
218
  def initialize(*_)
217
219
  super
218
220
 
@@ -259,7 +261,7 @@ module Datadog
259
261
 
260
262
  @buffer_spans += trace.length
261
263
  rescue StandardError => e
262
- Datadog.logger.debug("Failed to measure queue accept. Cause: #{e.message} Source: #{e.backtrace.first}")
264
+ Datadog.logger.debug("Failed to measure queue accept. Cause: #{e.message} Source: #{Array(e.backtrace).first}")
263
265
  end
264
266
 
265
267
  def measure_drop(trace)
@@ -267,7 +269,7 @@ module Datadog
267
269
 
268
270
  @buffer_spans -= trace.length
269
271
  rescue StandardError => e
270
- Datadog.logger.debug("Failed to measure queue drop. Cause: #{e.message} Source: #{e.backtrace.first}")
272
+ Datadog.logger.debug("Failed to measure queue drop. Cause: #{e.message} Source: #{Array(e.backtrace).first}")
271
273
  end
272
274
 
273
275
  def measure_pop(traces)
@@ -290,7 +292,7 @@ module Datadog
290
292
  @buffer_dropped = 0
291
293
  @buffer_spans = 0
292
294
  rescue StandardError => e
293
- Datadog.logger.debug("Failed to measure queue. Cause: #{e.message} Source: #{e.backtrace.first}")
295
+ Datadog.logger.debug("Failed to measure queue. Cause: #{e.message} Source: #{Array(e.backtrace).first}")
294
296
  end
295
297
  end
296
298
 
@@ -318,7 +320,7 @@ module Datadog
318
320
  #
319
321
  # TODO We should restructure this module, so that classes are not declared at top-level ::Datadog.
320
322
  # TODO Making such a change is potentially breaking for users manually configuring the tracer.
321
- TraceBuffer = if Datadog::Ext::Runtime::RUBY_ENGINE == 'ruby'
323
+ TraceBuffer = if Datadog::Core::Environment::Ext::RUBY_ENGINE == 'ruby'
322
324
  CRubyTraceBuffer
323
325
  else
324
326
  ThreadSafeTraceBuffer
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'json'
2
3
  require 'msgpack'
3
4
 
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  require 'forwardable'
2
3
  require 'ddtrace/configuration/pin_setup'
3
4
  require 'ddtrace/configuration/settings'
@@ -5,7 +6,8 @@ require 'ddtrace/configuration/components'
5
6
 
6
7
  module Datadog
7
8
  # Configuration provides a unique access point for configurations
8
- module Configuration
9
+ module Configuration # rubocop:disable Metrics/ModuleLength
10
+ include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
9
11
  extend Forwardable
10
12
 
11
13
  # Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
@@ -137,7 +139,7 @@ module Datadog
137
139
  logger_without_components.error(
138
140
  'Detected deadlock during ddtrace initialization. ' \
139
141
  'Please report this at https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug' \
140
- "\n\tSource:\n\t#{e.backtrace.join("\n\t")}"
142
+ "\n\tSource:\n\t#{Array(e.backtrace).join("\n\t")}"
141
143
  )
142
144
  nil
143
145
  end
@@ -172,5 +174,22 @@ module Datadog
172
174
  logger
173
175
  end
174
176
  end
177
+
178
+ # Called from our at_exit hook whenever there was a pending Interrupt exception (e.g. typically due to ctrl+c)
179
+ # to print a nice message whenever we're taking a bit longer than usual to finish the process.
180
+ def handle_interrupt_shutdown!
181
+ logger = Datadog.logger
182
+ shutdown_thread = Thread.new { shutdown! }
183
+ print_message_treshold_seconds = 0.2
184
+
185
+ slow_shutdown = shutdown_thread.join(print_message_treshold_seconds).nil?
186
+
187
+ if slow_shutdown
188
+ logger.info 'Reporting remaining data... Press ctrl+c to exit immediately.'
189
+ shutdown_thread.join
190
+ end
191
+
192
+ nil
193
+ end
175
194
  end
176
195
  end
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'uri'
2
3
 
3
4
  require 'ddtrace/ext/transport'
@@ -1,4 +1,5 @@
1
- require 'ddtrace/environment'
1
+ # typed: false
2
+ require 'datadog/core/environment/variable_helpers'
2
3
  require 'ddtrace/configuration/options'
3
4
 
4
5
  module Datadog
@@ -6,8 +7,8 @@ module Datadog
6
7
  # Basic configuration behavior
7
8
  module Base
8
9
  def self.included(base)
9
- base.extend(Datadog::Environment::Helpers)
10
- base.include(Datadog::Environment::Helpers)
10
+ base.extend(Datadog::Core::Environment::VariableHelpers)
11
+ base.include(Datadog::Core::Environment::VariableHelpers)
11
12
  base.include(Options)
12
13
 
13
14
  base.extend(ClassMethods)
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  require 'ddtrace/configuration/agent_settings_resolver'
2
3
  require 'ddtrace/diagnostics/health'
3
4
  require 'ddtrace/logger'
@@ -19,7 +20,7 @@ module Datadog
19
20
  options = { enabled: settings.enabled }
20
21
  options[:statsd] = settings.statsd unless settings.statsd.nil?
21
22
 
22
- Datadog::Diagnostics::Health::Metrics.new(options)
23
+ Datadog::Diagnostics::Health::Metrics.new(**options)
23
24
  end
24
25
 
25
26
  def build_logger(settings)
@@ -34,7 +35,7 @@ module Datadog
34
35
  options[:statsd] = settings.runtime_metrics.statsd unless settings.runtime_metrics.statsd.nil?
35
36
  options[:services] = [settings.service] unless settings.service.nil?
36
37
 
37
- Datadog::Runtime::Metrics.new(options)
38
+ Datadog::Runtime::Metrics.new(**options)
38
39
  end
39
40
 
40
41
  def build_runtime_metrics_worker(settings)
@@ -57,7 +58,14 @@ module Datadog
57
58
  default_service: settings.service,
58
59
  enabled: settings.tracer.enabled,
59
60
  partial_flush: settings.tracer.partial_flush.enabled,
60
- tags: build_tracer_tags(settings)
61
+ tags: build_tracer_tags(settings),
62
+ sampler: PrioritySampler.new(
63
+ base_sampler: AllSampler.new,
64
+ post_sampler: Sampling::RuleSampler.new(
65
+ rate_limit: settings.sampling.rate_limit,
66
+ default_sample_rate: settings.sampling.default_rate
67
+ )
68
+ )
61
69
  )
62
70
 
63
71
  # TODO: We reconfigure the tracer here because it has way too many
@@ -70,16 +78,50 @@ module Datadog
70
78
  tracer
71
79
  end
72
80
 
73
- def build_profiler(settings, agent_settings)
81
+ def build_profiler(settings, agent_settings, tracer)
74
82
  return unless Datadog::Profiling.supported? && settings.profiling.enabled
75
83
 
84
+ unless defined?(Datadog::Profiling::Tasks::Setup)
85
+ # In #1545 a user reported a NameError due to this constant being uninitialized
86
+ # I've documented my suspicion on why that happened in
87
+ # https://github.com/DataDog/dd-trace-rb/issues/1545#issuecomment-856049025
88
+ #
89
+ # > Thanks for the info! It seems to feed into my theory: there's two moments in the code where we check if
90
+ # > profiler is "supported": 1) when loading ddtrace (inside preload) and 2) when starting the profile
91
+ # > after Datadog.configure gets run.
92
+ # > The problem is that the code assumes that both checks 1) and 2) will always reach the same conclusion:
93
+ # > either profiler is supported, or profiler is not supported.
94
+ # > In the problematic case, it looks like in your case check 1 decides that profiler is not
95
+ # > supported => doesn't load it, and then check 2 decides that it is => assumes it is loaded and tries to
96
+ # > start it.
97
+ #
98
+ # I was never able to validate if this was the issue or why exactly .supported? would change its mind BUT
99
+ # just in case it happens again, I've left this check which avoids breaking the user's application AND
100
+ # would instead direct them to report it to us instead, so that we can investigate what's wrong.
101
+ #
102
+ # TODO: As of June 2021, most checks in .supported? are related to the google-protobuf gem; so it's
103
+ # very likely that it was the origin of the issue we saw. Thus, if, as planned we end up moving away from
104
+ # protobuf OR enough time has passed and no users saw the issue again, we can remove this check altogether.
105
+ Datadog.logger.error(
106
+ 'Profiling was marked as supported and enabled, but setup task was not loaded properly. ' \
107
+ 'Please report this at https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug'
108
+ )
109
+
110
+ return
111
+ end
112
+
76
113
  # Load extensions needed to support some of the Profiling features
77
114
  Datadog::Profiling::Tasks::Setup.new.run
78
115
 
79
116
  # NOTE: Please update the Initialization section of ProfilingDevelopment.md with any changes to this method
80
117
 
118
+ trace_identifiers_helper = Datadog::Profiling::TraceIdentifiers::Helper.new(
119
+ tracer: tracer,
120
+ extract_trace_resource: settings.profiling.advanced.extract_trace_resource
121
+ )
122
+
81
123
  recorder = build_profiler_recorder(settings)
82
- collectors = build_profiler_collectors(settings, recorder)
124
+ collectors = build_profiler_collectors(settings, recorder, trace_identifiers_helper)
83
125
  exporters = build_profiler_exporters(settings, agent_settings)
84
126
  scheduler = build_profiler_scheduler(settings, recorder, exporters)
85
127
 
@@ -90,8 +132,8 @@ module Datadog
90
132
 
91
133
  def build_tracer_tags(settings)
92
134
  settings.tags.dup.tap do |tags|
93
- tags['env'] = settings.env unless settings.env.nil?
94
- tags['version'] = settings.version unless settings.version.nil?
135
+ tags[Ext::Environment::TAG_ENV] = settings.env unless settings.env.nil?
136
+ tags[Ext::Environment::TAG_VERSION] = settings.version unless settings.version.nil?
95
137
  end
96
138
  end
97
139
 
@@ -132,14 +174,15 @@ module Datadog
132
174
  def build_profiler_recorder(settings)
133
175
  event_classes = [Datadog::Profiling::Events::StackSample]
134
176
 
135
- Datadog::Profiling::Recorder.new(event_classes, settings.profiling.max_events)
177
+ Datadog::Profiling::Recorder.new(event_classes, settings.profiling.advanced.max_events)
136
178
  end
137
179
 
138
- def build_profiler_collectors(settings, recorder)
180
+ def build_profiler_collectors(settings, recorder, trace_identifiers_helper)
139
181
  [
140
182
  Datadog::Profiling::Collectors::Stack.new(
141
183
  recorder,
142
- max_frames: settings.profiling.max_frames
184
+ trace_identifiers_helper: trace_identifiers_helper,
185
+ max_frames: settings.profiling.advanced.max_frames
143
186
  # TODO: Provide proc that identifies Datadog worker threads?
144
187
  # ignore_thread: settings.profiling.ignore_profiler
145
188
  )
@@ -180,7 +223,7 @@ module Datadog
180
223
  @tracer = self.class.build_tracer(settings, agent_settings)
181
224
 
182
225
  # Profiler
183
- @profiler = self.class.build_profiler(settings, agent_settings)
226
+ @profiler = self.class.build_profiler(settings, agent_settings, @tracer)
184
227
 
185
228
  # Runtime metrics
186
229
  @runtime_metrics = self.class.build_runtime_metrics_worker(settings)
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'tsort'
2
3
 
3
4
  module Datadog
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  module Datadog
2
3
  module Configuration
3
4
  # Represents an instance of an integration configuration option
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  require 'ddtrace/configuration/option'
2
3
 
3
4
  module Datadog
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  require 'ddtrace/configuration/dependency_resolver'
2
3
 
3
4
  module Datadog
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  module Datadog
2
3
  module Configuration
3
4
  class OptionSet < Hash
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'ddtrace/configuration/option_set'
2
3
  require 'ddtrace/configuration/option_definition'
3
4
  require 'ddtrace/configuration/option_definition_set'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  module Datadog
2
3
  module Configuration
3
4
  # PinSetup translates a flat hash into a Pin configuration