ddtrace 0.50.0 → 0.53.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 (1107) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.gitignore +7 -0
  4. data/CHANGELOG.md +196 -1
  5. data/CONTRIBUTING.md +1 -5
  6. data/ddtrace.gemspec +10 -1
  7. data/docs/DevelopmentGuide.md +16 -6
  8. data/docs/GettingStarted.md +108 -20
  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/configuration/components.rb +1 -0
  13. data/lib/datadog/ci/configuration/settings.rb +1 -0
  14. data/lib/datadog/ci/context_flush.rb +1 -0
  15. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -1
  16. data/lib/datadog/ci/contrib/cucumber/ext.rb +1 -0
  17. data/lib/datadog/ci/contrib/cucumber/formatter.rb +1 -0
  18. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -0
  19. data/lib/datadog/ci/contrib/cucumber/integration.rb +1 -0
  20. data/lib/datadog/ci/contrib/cucumber/patcher.rb +1 -0
  21. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -1
  22. data/lib/datadog/ci/contrib/rspec/example.rb +1 -0
  23. data/lib/datadog/ci/contrib/rspec/ext.rb +1 -0
  24. data/lib/datadog/ci/contrib/rspec/integration.rb +3 -2
  25. data/lib/datadog/ci/contrib/rspec/patcher.rb +1 -0
  26. data/lib/datadog/ci/ext/app_types.rb +1 -0
  27. data/lib/datadog/ci/ext/environment.rb +269 -92
  28. data/lib/datadog/ci/ext/settings.rb +1 -0
  29. data/lib/datadog/ci/ext/test.rb +8 -1
  30. data/lib/datadog/ci/extensions.rb +1 -0
  31. data/lib/datadog/ci/test.rb +14 -0
  32. data/lib/datadog/ci.rb +1 -0
  33. data/lib/datadog/contrib.rb +71 -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/datadog/core/environment/vm_cache.rb +46 -0
  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/agent_settings_resolver.rb +108 -40
  50. data/lib/ddtrace/configuration/base.rb +4 -3
  51. data/lib/ddtrace/configuration/components.rb +54 -11
  52. data/lib/ddtrace/configuration/dependency_resolver.rb +1 -0
  53. data/lib/ddtrace/configuration/option.rb +1 -0
  54. data/lib/ddtrace/configuration/option_definition.rb +1 -0
  55. data/lib/ddtrace/configuration/option_definition_set.rb +1 -0
  56. data/lib/ddtrace/configuration/option_set.rb +1 -0
  57. data/lib/ddtrace/configuration/options.rb +1 -0
  58. data/lib/ddtrace/configuration/pin_setup.rb +1 -0
  59. data/lib/ddtrace/configuration/settings.rb +34 -9
  60. data/lib/ddtrace/configuration.rb +21 -2
  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/broadcast.rb +1 -0
  67. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +1 -0
  68. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +1 -0
  69. data/lib/ddtrace/contrib/action_cable/events.rb +1 -0
  70. data/lib/ddtrace/contrib/action_cable/ext.rb +1 -0
  71. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +47 -0
  72. data/lib/ddtrace/contrib/action_cable/integration.rb +1 -0
  73. data/lib/ddtrace/contrib/action_cable/patcher.rb +2 -0
  74. data/lib/ddtrace/contrib/action_mailer/configuration/settings.rb +32 -0
  75. data/lib/ddtrace/contrib/action_mailer/event.rb +50 -0
  76. data/lib/ddtrace/contrib/action_mailer/events/deliver.rb +54 -0
  77. data/lib/ddtrace/contrib/action_mailer/events/process.rb +41 -0
  78. data/lib/ddtrace/contrib/action_mailer/events.rb +31 -0
  79. data/lib/ddtrace/contrib/action_mailer/ext.rb +32 -0
  80. data/lib/ddtrace/contrib/action_mailer/integration.rb +45 -0
  81. data/lib/ddtrace/contrib/action_mailer/patcher.rb +27 -0
  82. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +21 -10
  83. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +1 -0
  84. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +1 -0
  85. data/lib/ddtrace/contrib/action_pack/ext.rb +1 -0
  86. data/lib/ddtrace/contrib/action_pack/integration.rb +1 -0
  87. data/lib/ddtrace/contrib/action_pack/patcher.rb +1 -0
  88. data/lib/ddtrace/contrib/action_pack/utils.rb +1 -0
  89. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +1 -0
  90. data/lib/ddtrace/contrib/action_view/event.rb +1 -0
  91. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  92. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  93. data/lib/ddtrace/contrib/action_view/events.rb +1 -0
  94. data/lib/ddtrace/contrib/action_view/ext.rb +1 -0
  95. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -0
  96. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +1 -0
  97. data/lib/ddtrace/contrib/action_view/integration.rb +1 -0
  98. data/lib/ddtrace/contrib/action_view/patcher.rb +1 -0
  99. data/lib/ddtrace/contrib/action_view/utils.rb +1 -0
  100. data/lib/ddtrace/contrib/active_job/configuration/settings.rb +33 -0
  101. data/lib/ddtrace/contrib/active_job/event.rb +54 -0
  102. data/lib/ddtrace/contrib/active_job/events/discard.rb +46 -0
  103. data/lib/ddtrace/contrib/active_job/events/enqueue.rb +45 -0
  104. data/lib/ddtrace/contrib/active_job/events/enqueue_at.rb +45 -0
  105. data/lib/ddtrace/contrib/active_job/events/enqueue_retry.rb +47 -0
  106. data/lib/ddtrace/contrib/active_job/events/perform.rb +45 -0
  107. data/lib/ddtrace/contrib/active_job/events/retry_stopped.rb +46 -0
  108. data/lib/ddtrace/contrib/active_job/events.rb +39 -0
  109. data/lib/ddtrace/contrib/active_job/ext.rb +32 -0
  110. data/lib/ddtrace/contrib/active_job/integration.rb +46 -0
  111. data/lib/ddtrace/contrib/active_job/log_injection.rb +21 -0
  112. data/lib/ddtrace/contrib/active_job/patcher.rb +33 -0
  113. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +1 -0
  114. data/lib/ddtrace/contrib/active_model_serializers/event.rb +1 -0
  115. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +1 -0
  116. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +1 -0
  117. data/lib/ddtrace/contrib/active_model_serializers/events.rb +1 -0
  118. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +1 -0
  119. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +1 -0
  120. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +1 -0
  121. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +1 -0
  122. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +3 -2
  123. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +1 -0
  124. data/lib/ddtrace/contrib/active_record/event.rb +1 -0
  125. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -0
  126. data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -0
  127. data/lib/ddtrace/contrib/active_record/events.rb +1 -0
  128. data/lib/ddtrace/contrib/active_record/ext.rb +1 -0
  129. data/lib/ddtrace/contrib/active_record/integration.rb +1 -0
  130. data/lib/ddtrace/contrib/active_record/patcher.rb +1 -0
  131. data/lib/ddtrace/contrib/active_record/utils.rb +4 -3
  132. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +1 -0
  133. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +1 -0
  134. data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -0
  135. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +1 -0
  136. data/lib/ddtrace/contrib/active_support/ext.rb +1 -0
  137. data/lib/ddtrace/contrib/active_support/integration.rb +1 -0
  138. data/lib/ddtrace/contrib/active_support/notifications/event.rb +1 -0
  139. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  140. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -0
  141. data/lib/ddtrace/contrib/active_support/patcher.rb +1 -0
  142. data/lib/ddtrace/contrib/analytics.rb +1 -0
  143. data/lib/ddtrace/contrib/auto_instrument.rb +2 -2
  144. data/lib/ddtrace/contrib/aws/configuration/settings.rb +1 -0
  145. data/lib/ddtrace/contrib/aws/ext.rb +1 -0
  146. data/lib/ddtrace/contrib/aws/instrumentation.rb +1 -0
  147. data/lib/ddtrace/contrib/aws/integration.rb +1 -0
  148. data/lib/ddtrace/contrib/aws/parsed_context.rb +1 -0
  149. data/lib/ddtrace/contrib/aws/patcher.rb +2 -1
  150. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  151. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +1 -0
  152. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -0
  153. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
  154. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +1 -0
  155. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +1 -0
  156. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +2 -0
  157. data/lib/ddtrace/contrib/configurable.rb +1 -0
  158. data/lib/ddtrace/contrib/configuration/resolver.rb +1 -0
  159. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +1 -0
  160. data/lib/ddtrace/contrib/configuration/settings.rb +1 -0
  161. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +1 -0
  162. data/lib/ddtrace/contrib/dalli/ext.rb +1 -0
  163. data/lib/ddtrace/contrib/dalli/instrumentation.rb +1 -0
  164. data/lib/ddtrace/contrib/dalli/integration.rb +1 -0
  165. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -0
  166. data/lib/ddtrace/contrib/dalli/quantize.rb +1 -0
  167. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +1 -0
  168. data/lib/ddtrace/contrib/delayed_job/ext.rb +1 -0
  169. data/lib/ddtrace/contrib/delayed_job/integration.rb +1 -0
  170. data/lib/ddtrace/contrib/delayed_job/patcher.rb +1 -0
  171. data/lib/ddtrace/contrib/delayed_job/plugin.rb +1 -0
  172. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +1 -0
  173. data/lib/ddtrace/contrib/elasticsearch/ext.rb +1 -0
  174. data/lib/ddtrace/contrib/elasticsearch/integration.rb +1 -0
  175. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  176. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -0
  177. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +1 -0
  178. data/lib/ddtrace/contrib/ethon/easy_patch.rb +1 -0
  179. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  180. data/lib/ddtrace/contrib/ethon/integration.rb +1 -0
  181. data/lib/ddtrace/contrib/ethon/multi_patch.rb +1 -0
  182. data/lib/ddtrace/contrib/ethon/patcher.rb +2 -0
  183. data/lib/ddtrace/contrib/excon/configuration/settings.rb +1 -0
  184. data/lib/ddtrace/contrib/excon/ext.rb +1 -0
  185. data/lib/ddtrace/contrib/excon/integration.rb +1 -0
  186. data/lib/ddtrace/contrib/excon/middleware.rb +1 -0
  187. data/lib/ddtrace/contrib/excon/patcher.rb +1 -0
  188. data/lib/ddtrace/contrib/extensions.rb +37 -11
  189. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +1 -0
  190. data/lib/ddtrace/contrib/faraday/connection.rb +1 -0
  191. data/lib/ddtrace/contrib/faraday/ext.rb +1 -0
  192. data/lib/ddtrace/contrib/faraday/integration.rb +1 -0
  193. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -0
  194. data/lib/ddtrace/contrib/faraday/patcher.rb +1 -0
  195. data/lib/ddtrace/contrib/faraday/rack_builder.rb +1 -0
  196. data/lib/ddtrace/contrib/grape/configuration/settings.rb +1 -0
  197. data/lib/ddtrace/contrib/grape/endpoint.rb +26 -16
  198. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  199. data/lib/ddtrace/contrib/grape/instrumentation.rb +2 -1
  200. data/lib/ddtrace/contrib/grape/integration.rb +1 -0
  201. data/lib/ddtrace/contrib/grape/patcher.rb +1 -0
  202. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +1 -0
  203. data/lib/ddtrace/contrib/graphql/ext.rb +1 -0
  204. data/lib/ddtrace/contrib/graphql/integration.rb +1 -0
  205. data/lib/ddtrace/contrib/graphql/patcher.rb +1 -0
  206. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +2 -0
  207. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -0
  208. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +3 -4
  209. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +5 -0
  210. data/lib/ddtrace/contrib/grpc/ext.rb +1 -0
  211. data/lib/ddtrace/contrib/grpc/integration.rb +1 -0
  212. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +1 -0
  213. data/lib/ddtrace/contrib/grpc/patcher.rb +2 -0
  214. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -0
  215. data/lib/ddtrace/contrib/http/configuration/settings.rb +1 -0
  216. data/lib/ddtrace/contrib/http/ext.rb +1 -0
  217. data/lib/ddtrace/contrib/http/instrumentation.rb +1 -0
  218. data/lib/ddtrace/contrib/http/integration.rb +1 -0
  219. data/lib/ddtrace/contrib/http/patcher.rb +1 -0
  220. data/lib/ddtrace/contrib/http_annotation_helper.rb +1 -0
  221. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +1 -0
  222. data/lib/ddtrace/contrib/httpclient/ext.rb +1 -0
  223. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +1 -0
  224. data/lib/ddtrace/contrib/httpclient/integration.rb +1 -0
  225. data/lib/ddtrace/contrib/httpclient/patcher.rb +2 -1
  226. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +1 -0
  227. data/lib/ddtrace/contrib/httprb/ext.rb +1 -0
  228. data/lib/ddtrace/contrib/httprb/instrumentation.rb +1 -0
  229. data/lib/ddtrace/contrib/httprb/integration.rb +1 -0
  230. data/lib/ddtrace/contrib/httprb/patcher.rb +2 -1
  231. data/lib/ddtrace/contrib/integration.rb +1 -0
  232. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +1 -0
  233. data/lib/ddtrace/contrib/kafka/consumer_event.rb +1 -0
  234. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +1 -0
  235. data/lib/ddtrace/contrib/kafka/event.rb +1 -0
  236. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +1 -0
  237. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +1 -0
  238. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +1 -0
  239. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +1 -0
  240. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +1 -0
  241. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +1 -0
  242. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +1 -0
  243. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +1 -0
  244. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +1 -0
  245. data/lib/ddtrace/contrib/kafka/events.rb +1 -0
  246. data/lib/ddtrace/contrib/kafka/ext.rb +1 -0
  247. data/lib/ddtrace/contrib/kafka/integration.rb +1 -0
  248. data/lib/ddtrace/contrib/kafka/patcher.rb +1 -0
  249. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +19 -0
  250. data/lib/ddtrace/contrib/lograge/ext.rb +11 -0
  251. data/lib/ddtrace/contrib/lograge/instrumentation.rb +39 -0
  252. data/lib/ddtrace/contrib/lograge/integration.rb +46 -0
  253. data/lib/ddtrace/contrib/lograge/patcher.rb +26 -0
  254. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +1 -0
  255. data/lib/ddtrace/contrib/mongodb/ext.rb +1 -0
  256. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -0
  257. data/lib/ddtrace/contrib/mongodb/integration.rb +1 -0
  258. data/lib/ddtrace/contrib/mongodb/parsers.rb +1 -0
  259. data/lib/ddtrace/contrib/mongodb/patcher.rb +1 -0
  260. data/lib/ddtrace/contrib/mongodb/subscribers.rb +1 -0
  261. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +1 -0
  262. data/lib/ddtrace/contrib/mysql2/ext.rb +1 -0
  263. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -0
  264. data/lib/ddtrace/contrib/mysql2/integration.rb +1 -0
  265. data/lib/ddtrace/contrib/mysql2/patcher.rb +1 -0
  266. data/lib/ddtrace/contrib/patchable.rb +1 -0
  267. data/lib/ddtrace/contrib/patcher.rb +2 -1
  268. data/lib/ddtrace/contrib/presto/configuration/settings.rb +1 -0
  269. data/lib/ddtrace/contrib/presto/ext.rb +1 -0
  270. data/lib/ddtrace/contrib/presto/instrumentation.rb +1 -0
  271. data/lib/ddtrace/contrib/presto/integration.rb +1 -0
  272. data/lib/ddtrace/contrib/presto/patcher.rb +1 -0
  273. data/lib/ddtrace/contrib/qless/configuration/settings.rb +1 -0
  274. data/lib/ddtrace/contrib/qless/ext.rb +1 -0
  275. data/lib/ddtrace/contrib/qless/integration.rb +1 -0
  276. data/lib/ddtrace/contrib/qless/patcher.rb +2 -0
  277. data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
  278. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
  279. data/lib/ddtrace/contrib/que/configuration/settings.rb +1 -0
  280. data/lib/ddtrace/contrib/que/ext.rb +1 -0
  281. data/lib/ddtrace/contrib/que/integration.rb +1 -0
  282. data/lib/ddtrace/contrib/que/patcher.rb +1 -0
  283. data/lib/ddtrace/contrib/que/tracer.rb +1 -0
  284. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +1 -0
  285. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  286. data/lib/ddtrace/contrib/racecar/events/batch.rb +1 -0
  287. data/lib/ddtrace/contrib/racecar/events/consume.rb +1 -0
  288. data/lib/ddtrace/contrib/racecar/events/message.rb +1 -0
  289. data/lib/ddtrace/contrib/racecar/events.rb +1 -0
  290. data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
  291. data/lib/ddtrace/contrib/racecar/integration.rb +1 -0
  292. data/lib/ddtrace/contrib/racecar/patcher.rb +1 -0
  293. data/lib/ddtrace/contrib/rack/configuration/settings.rb +1 -0
  294. data/lib/ddtrace/contrib/rack/ext.rb +1 -0
  295. data/lib/ddtrace/contrib/rack/integration.rb +1 -0
  296. data/lib/ddtrace/contrib/rack/middlewares.rb +2 -1
  297. data/lib/ddtrace/contrib/rack/patcher.rb +1 -0
  298. data/lib/ddtrace/contrib/rack/request_queue.rb +1 -0
  299. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +1 -1
  300. data/lib/ddtrace/contrib/rails/configuration/settings.rb +1 -0
  301. data/lib/ddtrace/contrib/rails/ext.rb +1 -0
  302. data/lib/ddtrace/contrib/rails/framework.rb +48 -1
  303. data/lib/ddtrace/contrib/rails/integration.rb +1 -0
  304. data/lib/ddtrace/contrib/rails/log_injection.rb +1 -40
  305. data/lib/ddtrace/contrib/rails/middlewares.rb +1 -0
  306. data/lib/ddtrace/contrib/rails/patcher.rb +30 -18
  307. data/lib/ddtrace/contrib/rails/railtie.rb +1 -0
  308. data/lib/ddtrace/contrib/rails/utils.rb +1 -0
  309. data/lib/ddtrace/contrib/rake/configuration/settings.rb +1 -0
  310. data/lib/ddtrace/contrib/rake/ext.rb +1 -0
  311. data/lib/ddtrace/contrib/rake/instrumentation.rb +1 -0
  312. data/lib/ddtrace/contrib/rake/integration.rb +1 -0
  313. data/lib/ddtrace/contrib/rake/patcher.rb +1 -0
  314. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +1 -0
  315. data/lib/ddtrace/contrib/redis/configuration/settings.rb +1 -0
  316. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  317. data/lib/ddtrace/contrib/redis/integration.rb +1 -0
  318. data/lib/ddtrace/contrib/redis/patcher.rb +1 -0
  319. data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
  320. data/lib/ddtrace/contrib/redis/tags.rb +1 -0
  321. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +1 -0
  322. data/lib/ddtrace/contrib/registerable.rb +2 -2
  323. data/lib/ddtrace/contrib/registry.rb +1 -0
  324. data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
  325. data/lib/ddtrace/contrib/resque/ext.rb +1 -0
  326. data/lib/ddtrace/contrib/resque/integration.rb +1 -0
  327. data/lib/ddtrace/contrib/resque/patcher.rb +1 -0
  328. data/lib/ddtrace/contrib/resque/resque_job.rb +1 -0
  329. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +1 -0
  330. data/lib/ddtrace/contrib/rest_client/ext.rb +1 -0
  331. data/lib/ddtrace/contrib/rest_client/integration.rb +1 -0
  332. data/lib/ddtrace/contrib/rest_client/patcher.rb +2 -0
  333. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -0
  334. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +19 -0
  335. data/lib/ddtrace/contrib/semantic_logger/ext.rb +11 -0
  336. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +43 -0
  337. data/lib/ddtrace/contrib/semantic_logger/integration.rb +48 -0
  338. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +26 -0
  339. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +1 -0
  340. data/lib/ddtrace/contrib/sequel/database.rb +1 -0
  341. data/lib/ddtrace/contrib/sequel/dataset.rb +1 -0
  342. data/lib/ddtrace/contrib/sequel/ext.rb +1 -0
  343. data/lib/ddtrace/contrib/sequel/integration.rb +1 -0
  344. data/lib/ddtrace/contrib/sequel/patcher.rb +1 -0
  345. data/lib/ddtrace/contrib/sequel/utils.rb +1 -0
  346. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  347. data/lib/ddtrace/contrib/shoryuken/ext.rb +1 -0
  348. data/lib/ddtrace/contrib/shoryuken/integration.rb +1 -0
  349. data/lib/ddtrace/contrib/shoryuken/patcher.rb +1 -0
  350. data/lib/ddtrace/contrib/shoryuken/tracer.rb +1 -0
  351. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +1 -0
  352. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
  353. data/lib/ddtrace/contrib/sidekiq/ext.rb +4 -0
  354. data/lib/ddtrace/contrib/sidekiq/integration.rb +11 -0
  355. data/lib/ddtrace/contrib/sidekiq/patcher.rb +27 -0
  356. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/heartbeat.rb +30 -0
  357. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/job_fetch.rb +30 -0
  358. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +29 -0
  359. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
  360. data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -0
  361. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +1 -0
  362. data/lib/ddtrace/contrib/sinatra/env.rb +3 -1
  363. data/lib/ddtrace/contrib/sinatra/ext.rb +1 -0
  364. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -0
  365. data/lib/ddtrace/contrib/sinatra/integration.rb +1 -0
  366. data/lib/ddtrace/contrib/sinatra/patcher.rb +2 -0
  367. data/lib/ddtrace/contrib/sinatra/tracer.rb +27 -4
  368. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +8 -1
  369. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
  370. data/lib/ddtrace/contrib/sneakers/ext.rb +1 -0
  371. data/lib/ddtrace/contrib/sneakers/integration.rb +1 -0
  372. data/lib/ddtrace/contrib/sneakers/patcher.rb +1 -0
  373. data/lib/ddtrace/contrib/sneakers/tracer.rb +1 -0
  374. data/lib/ddtrace/contrib/status_code_matcher.rb +1 -0
  375. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +1 -0
  376. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +1 -0
  377. data/lib/ddtrace/contrib/sucker_punch/ext.rb +1 -0
  378. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +1 -0
  379. data/lib/ddtrace/contrib/sucker_punch/integration.rb +1 -0
  380. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +2 -0
  381. data/lib/ddtrace/correlation.rb +2 -1
  382. data/lib/ddtrace/diagnostics/environment_logger.rb +4 -3
  383. data/lib/ddtrace/diagnostics/health.rb +1 -0
  384. data/lib/ddtrace/distributed_tracing/headers/b3.rb +1 -0
  385. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +1 -0
  386. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -0
  387. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  388. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -0
  389. data/lib/ddtrace/encoding.rb +3 -0
  390. data/lib/ddtrace/error.rb +1 -0
  391. data/lib/ddtrace/event.rb +1 -0
  392. data/lib/ddtrace/ext/analytics.rb +1 -0
  393. data/lib/ddtrace/ext/app_types.rb +1 -0
  394. data/lib/ddtrace/ext/correlation.rb +1 -0
  395. data/lib/ddtrace/ext/diagnostics.rb +1 -0
  396. data/lib/ddtrace/ext/distributed.rb +1 -0
  397. data/lib/ddtrace/ext/environment.rb +8 -0
  398. data/lib/ddtrace/ext/errors.rb +1 -0
  399. data/lib/ddtrace/ext/forced_tracing.rb +1 -0
  400. data/lib/ddtrace/ext/git.rb +22 -1
  401. data/lib/ddtrace/ext/http.rb +1 -0
  402. data/lib/ddtrace/ext/integration.rb +1 -0
  403. data/lib/ddtrace/ext/manual_tracing.rb +1 -0
  404. data/lib/ddtrace/ext/metrics.rb +1 -0
  405. data/lib/ddtrace/ext/net.rb +1 -0
  406. data/lib/ddtrace/ext/priority.rb +1 -0
  407. data/lib/ddtrace/ext/profiling.rb +4 -0
  408. data/lib/ddtrace/ext/runtime.rb +4 -9
  409. data/lib/ddtrace/ext/sampling.rb +1 -0
  410. data/lib/ddtrace/ext/sql.rb +1 -0
  411. data/lib/ddtrace/ext/test.rb +1 -0
  412. data/lib/ddtrace/ext/transport.rb +12 -0
  413. data/lib/ddtrace/forced_tracing.rb +1 -0
  414. data/lib/ddtrace/logger.rb +1 -0
  415. data/lib/ddtrace/metrics.rb +60 -33
  416. data/lib/ddtrace/opentelemetry/extensions.rb +1 -0
  417. data/lib/ddtrace/opentelemetry/span.rb +1 -0
  418. data/lib/ddtrace/opentracer/binary_propagator.rb +1 -0
  419. data/lib/ddtrace/opentracer/carrier.rb +1 -0
  420. data/lib/ddtrace/opentracer/distributed_headers.rb +1 -0
  421. data/lib/ddtrace/opentracer/global_tracer.rb +1 -0
  422. data/lib/ddtrace/opentracer/propagator.rb +1 -0
  423. data/lib/ddtrace/opentracer/rack_propagator.rb +1 -0
  424. data/lib/ddtrace/opentracer/scope.rb +1 -0
  425. data/lib/ddtrace/opentracer/scope_manager.rb +1 -0
  426. data/lib/ddtrace/opentracer/span.rb +1 -0
  427. data/lib/ddtrace/opentracer/span_context.rb +1 -0
  428. data/lib/ddtrace/opentracer/span_context_factory.rb +1 -0
  429. data/lib/ddtrace/opentracer/text_map_propagator.rb +1 -0
  430. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  431. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +1 -0
  432. data/lib/ddtrace/opentracer/tracer.rb +1 -0
  433. data/lib/ddtrace/opentracer.rb +1 -0
  434. data/lib/ddtrace/patcher.rb +1 -0
  435. data/lib/ddtrace/pin.rb +1 -0
  436. data/lib/ddtrace/pipeline/span_filter.rb +1 -0
  437. data/lib/ddtrace/pipeline/span_processor.rb +1 -0
  438. data/lib/ddtrace/pipeline.rb +1 -0
  439. data/lib/ddtrace/profiling/backtrace_location.rb +1 -0
  440. data/lib/ddtrace/profiling/buffer.rb +1 -0
  441. data/lib/ddtrace/profiling/collectors/stack.rb +77 -38
  442. data/lib/ddtrace/profiling/encoding/profile.rb +10 -1
  443. data/lib/ddtrace/profiling/event.rb +1 -0
  444. data/lib/ddtrace/profiling/events/stack.rb +16 -37
  445. data/lib/ddtrace/profiling/exporter.rb +1 -0
  446. data/lib/ddtrace/profiling/ext/cpu.rb +16 -1
  447. data/lib/ddtrace/profiling/ext/cthread.rb +1 -0
  448. data/lib/ddtrace/profiling/ext/forking.rb +1 -0
  449. data/lib/ddtrace/profiling/flush.rb +10 -9
  450. data/lib/ddtrace/profiling/native_extension.rb +18 -0
  451. data/lib/ddtrace/profiling/pprof/builder.rb +1 -0
  452. data/lib/ddtrace/profiling/pprof/converter.rb +23 -9
  453. data/lib/ddtrace/profiling/pprof/message_set.rb +4 -1
  454. data/lib/ddtrace/profiling/pprof/payload.rb +2 -1
  455. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +1 -0
  456. data/lib/ddtrace/profiling/pprof/stack_sample.rb +43 -6
  457. data/lib/ddtrace/profiling/pprof/string_table.rb +1 -0
  458. data/lib/ddtrace/profiling/pprof/template.rb +1 -0
  459. data/lib/ddtrace/profiling/preload.rb +1 -0
  460. data/lib/ddtrace/profiling/profiler.rb +1 -0
  461. data/lib/ddtrace/profiling/recorder.rb +3 -2
  462. data/lib/ddtrace/profiling/scheduler.rb +21 -3
  463. data/lib/ddtrace/profiling/tasks/setup.rb +9 -5
  464. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +41 -0
  465. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +46 -0
  466. data/lib/ddtrace/profiling/transport/client.rb +3 -0
  467. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +1 -0
  468. data/lib/ddtrace/profiling/transport/http/api/instance.rb +1 -0
  469. data/lib/ddtrace/profiling/transport/http/api/spec.rb +1 -0
  470. data/lib/ddtrace/profiling/transport/http/api.rb +1 -0
  471. data/lib/ddtrace/profiling/transport/http/builder.rb +1 -0
  472. data/lib/ddtrace/profiling/transport/http/client.rb +1 -0
  473. data/lib/ddtrace/profiling/transport/http/response.rb +1 -0
  474. data/lib/ddtrace/profiling/transport/http.rb +33 -40
  475. data/lib/ddtrace/profiling/transport/io/client.rb +1 -0
  476. data/lib/ddtrace/profiling/transport/io/response.rb +1 -0
  477. data/lib/ddtrace/profiling/transport/io.rb +1 -0
  478. data/lib/ddtrace/profiling/transport/parcel.rb +1 -0
  479. data/lib/ddtrace/profiling/transport/request.rb +1 -0
  480. data/lib/ddtrace/profiling/transport/response.rb +1 -0
  481. data/lib/ddtrace/profiling.rb +64 -20
  482. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  483. data/lib/ddtrace/propagation/http_propagator.rb +3 -2
  484. data/lib/ddtrace/quantization/hash.rb +1 -0
  485. data/lib/ddtrace/quantization/http.rb +3 -0
  486. data/lib/ddtrace/runtime/metrics.rb +33 -10
  487. data/lib/ddtrace/sampler.rb +1 -0
  488. data/lib/ddtrace/sampling/matcher.rb +1 -0
  489. data/lib/ddtrace/sampling/rate_limiter.rb +1 -0
  490. data/lib/ddtrace/sampling/rule.rb +2 -1
  491. data/lib/ddtrace/sampling/rule_sampler.rb +2 -1
  492. data/lib/ddtrace/sampling.rb +1 -0
  493. data/lib/ddtrace/span.rb +21 -8
  494. data/lib/ddtrace/sync_writer.rb +3 -2
  495. data/lib/ddtrace/tasks/exec.rb +4 -5
  496. data/lib/ddtrace/tasks/help.rb +1 -0
  497. data/lib/ddtrace/tracer.rb +7 -15
  498. data/lib/ddtrace/transport/http/adapters/net.rb +14 -3
  499. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  500. data/lib/ddtrace/transport/http/adapters/test.rb +5 -2
  501. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +24 -12
  502. data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
  503. data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
  504. data/lib/ddtrace/transport/http/api/instance.rb +1 -0
  505. data/lib/ddtrace/transport/http/api/map.rb +1 -0
  506. data/lib/ddtrace/transport/http/api/spec.rb +1 -0
  507. data/lib/ddtrace/transport/http/api.rb +1 -0
  508. data/lib/ddtrace/transport/http/builder.rb +14 -6
  509. data/lib/ddtrace/transport/http/client.rb +3 -1
  510. data/lib/ddtrace/transport/http/env.rb +1 -0
  511. data/lib/ddtrace/transport/http/response.rb +1 -0
  512. data/lib/ddtrace/transport/http/statistics.rb +1 -0
  513. data/lib/ddtrace/transport/http/traces.rb +1 -0
  514. data/lib/ddtrace/transport/http.rb +15 -18
  515. data/lib/ddtrace/transport/io/client.rb +2 -1
  516. data/lib/ddtrace/transport/io/response.rb +1 -0
  517. data/lib/ddtrace/transport/io/traces.rb +3 -0
  518. data/lib/ddtrace/transport/io.rb +1 -0
  519. data/lib/ddtrace/transport/parcel.rb +3 -0
  520. data/lib/ddtrace/transport/request.rb +1 -0
  521. data/lib/ddtrace/transport/response.rb +1 -0
  522. data/lib/ddtrace/transport/statistics.rb +1 -0
  523. data/lib/ddtrace/transport/traces.rb +3 -2
  524. data/lib/ddtrace/utils/compression.rb +1 -0
  525. data/lib/ddtrace/utils/database.rb +1 -0
  526. data/lib/ddtrace/utils/forking.rb +1 -0
  527. data/lib/ddtrace/utils/object_set.rb +1 -0
  528. data/lib/ddtrace/utils/only_once.rb +1 -0
  529. data/lib/ddtrace/utils/sequence.rb +1 -0
  530. data/lib/ddtrace/utils/string_table.rb +1 -0
  531. data/lib/ddtrace/utils/time.rb +8 -6
  532. data/lib/ddtrace/utils.rb +14 -2
  533. data/lib/ddtrace/vendor/active_record/connection_specification.rb +1 -0
  534. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -0
  535. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +1 -0
  536. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +1 -0
  537. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +1 -0
  538. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +1 -0
  539. data/lib/ddtrace/vendor/multipart-post/multipart.rb +1 -0
  540. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +1 -0
  541. data/lib/ddtrace/version.rb +2 -1
  542. data/lib/ddtrace/worker.rb +1 -0
  543. data/lib/ddtrace/workers/async.rb +2 -1
  544. data/lib/ddtrace/workers/loop.rb +1 -0
  545. data/lib/ddtrace/workers/polling.rb +1 -0
  546. data/lib/ddtrace/workers/queue.rb +1 -0
  547. data/lib/ddtrace/workers/runtime_metrics.rb +1 -0
  548. data/lib/ddtrace/workers/trace_writer.rb +3 -2
  549. data/lib/ddtrace/workers.rb +2 -1
  550. data/lib/ddtrace/writer.rb +3 -2
  551. data/lib/ddtrace.rb +19 -49
  552. metadata +59 -562
  553. data/.circleci/config.yml +0 -870
  554. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -83
  555. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -83
  556. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -85
  557. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -83
  558. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -83
  559. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -83
  560. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -83
  561. data/.circleci/images/primary/Dockerfile-3.0.0 +0 -73
  562. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +0 -88
  563. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +0 -73
  564. data/.circleci/images/primary/Dockerfile-truffleruby-21.1.0 +0 -73
  565. data/.dockerignore +0 -0
  566. data/.env +0 -26
  567. data/.github/CODEOWNERS +0 -1
  568. data/.github/workflows/add-milestone-to-pull-requests.yml +0 -42
  569. data/.github/workflows/create-next-milestone.yml +0 -20
  570. data/.gitlab-ci.yml +0 -27
  571. data/.rspec +0 -1
  572. data/.rubocop.yml +0 -351
  573. data/.rubocop_todo.yml +0 -438
  574. data/.simplecov +0 -47
  575. data/Appraisals +0 -1323
  576. data/Gemfile +0 -69
  577. data/Rakefile +0 -939
  578. data/benchmarks/data/profiler-submission-marshal.gz +0 -0
  579. data/benchmarks/postgres_database.yml +0 -9
  580. data/benchmarks/profiler_sample_loop.rb +0 -69
  581. data/benchmarks/profiler_submission.rb +0 -93
  582. data/benchmarks/sidekiq_test.rb +0 -154
  583. data/docker-compose.yml +0 -414
  584. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +0 -79
  585. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +0 -1518
  586. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +0 -35
  587. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +0 -157
  588. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +0 -34
  589. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +0 -153
  590. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +0 -35
  591. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +0 -174
  592. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +0 -35
  593. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +0 -206
  594. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +0 -35
  595. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +0 -206
  596. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +0 -40
  597. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +0 -271
  598. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +0 -40
  599. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +0 -271
  600. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +0 -41
  601. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +0 -273
  602. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +0 -41
  603. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  604. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +0 -42
  605. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +0 -279
  606. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +0 -40
  607. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +0 -290
  608. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +0 -40
  609. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +0 -290
  610. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +0 -41
  611. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +0 -292
  612. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +0 -41
  613. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -297
  614. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +0 -40
  615. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +0 -287
  616. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +0 -40
  617. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +0 -287
  618. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +0 -41
  619. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +0 -289
  620. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +0 -41
  621. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  622. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +0 -42
  623. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +0 -295
  624. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +0 -36
  625. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +0 -180
  626. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +0 -36
  627. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +0 -180
  628. data/gemfiles/jruby_9.2.11.1_contrib.gemfile +0 -79
  629. data/gemfiles/jruby_9.2.11.1_contrib.gemfile.lock +0 -1518
  630. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile +0 -35
  631. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile.lock +0 -157
  632. data/gemfiles/jruby_9.2.11.1_core_old.gemfile +0 -34
  633. data/gemfiles/jruby_9.2.11.1_core_old.gemfile.lock +0 -153
  634. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile +0 -35
  635. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile.lock +0 -174
  636. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile +0 -35
  637. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile.lock +0 -206
  638. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile +0 -35
  639. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile.lock +0 -206
  640. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile +0 -40
  641. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile.lock +0 -271
  642. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile +0 -40
  643. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile.lock +0 -271
  644. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile +0 -41
  645. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile.lock +0 -273
  646. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile +0 -41
  647. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  648. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile +0 -42
  649. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile.lock +0 -279
  650. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile +0 -40
  651. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile.lock +0 -290
  652. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile +0 -40
  653. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile.lock +0 -290
  654. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile +0 -41
  655. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile.lock +0 -292
  656. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile +0 -41
  657. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile.lock +0 -297
  658. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile +0 -40
  659. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile.lock +0 -287
  660. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile +0 -40
  661. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile.lock +0 -287
  662. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile +0 -41
  663. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile.lock +0 -289
  664. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile +0 -41
  665. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  666. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile +0 -42
  667. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile.lock +0 -295
  668. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile +0 -36
  669. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile.lock +0 -180
  670. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile +0 -36
  671. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile.lock +0 -180
  672. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +0 -66
  673. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +0 -305
  674. data/gemfiles/ruby_2.1.10_core_old.gemfile +0 -33
  675. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +0 -118
  676. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +0 -39
  677. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +0 -196
  678. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +0 -40
  679. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  680. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +0 -42
  681. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +0 -215
  682. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +0 -39
  683. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +0 -204
  684. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +0 -41
  685. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +0 -223
  686. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +0 -40
  687. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  688. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +0 -38
  689. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +0 -218
  690. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +0 -38
  691. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +0 -218
  692. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +0 -40
  693. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +0 -237
  694. data/gemfiles/ruby_2.2.10_contrib.gemfile +0 -73
  695. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +0 -1450
  696. data/gemfiles/ruby_2.2.10_core_old.gemfile +0 -33
  697. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +0 -118
  698. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +0 -39
  699. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +0 -196
  700. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +0 -40
  701. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  702. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +0 -41
  703. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +0 -212
  704. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +0 -39
  705. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +0 -204
  706. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +0 -41
  707. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +0 -223
  708. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +0 -40
  709. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  710. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +0 -38
  711. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +0 -218
  712. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +0 -38
  713. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +0 -218
  714. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +0 -40
  715. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +0 -237
  716. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +0 -40
  717. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +0 -229
  718. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +0 -38
  719. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +0 -234
  720. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +0 -38
  721. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +0 -234
  722. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +0 -39
  723. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +0 -236
  724. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +0 -39
  725. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  726. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +0 -40
  727. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +0 -245
  728. data/gemfiles/ruby_2.3.8_contrib.gemfile +0 -73
  729. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +0 -1459
  730. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +0 -34
  731. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +0 -127
  732. data/gemfiles/ruby_2.3.8_core_old.gemfile +0 -33
  733. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +0 -123
  734. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +0 -34
  735. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +0 -144
  736. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +0 -34
  737. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +0 -174
  738. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +0 -39
  739. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +0 -201
  740. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +0 -40
  741. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +0 -210
  742. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +0 -41
  743. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +0 -217
  744. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +0 -39
  745. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +0 -209
  746. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +0 -41
  747. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +0 -228
  748. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +0 -40
  749. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +0 -218
  750. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +0 -38
  751. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +0 -223
  752. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +0 -38
  753. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +0 -223
  754. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +0 -40
  755. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +0 -242
  756. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +0 -40
  757. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +0 -234
  758. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +0 -37
  759. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +0 -234
  760. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +0 -37
  761. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +0 -234
  762. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +0 -38
  763. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +0 -236
  764. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +0 -38
  765. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  766. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +0 -39
  767. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +0 -245
  768. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +0 -35
  769. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +0 -150
  770. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +0 -35
  771. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +0 -150
  772. data/gemfiles/ruby_2.4.6_contrib.gemfile +0 -78
  773. data/gemfiles/ruby_2.4.6_contrib.gemfile.lock +0 -1513
  774. data/gemfiles/ruby_2.4.6_contrib_old.gemfile +0 -38
  775. data/gemfiles/ruby_2.4.6_contrib_old.gemfile.lock +0 -155
  776. data/gemfiles/ruby_2.4.6_core_old.gemfile +0 -37
  777. data/gemfiles/ruby_2.4.6_core_old.gemfile.lock +0 -151
  778. data/gemfiles/ruby_2.4.6_cucumber3.gemfile +0 -38
  779. data/gemfiles/ruby_2.4.6_cucumber3.gemfile.lock +0 -172
  780. data/gemfiles/ruby_2.4.6_cucumber4.gemfile +0 -38
  781. data/gemfiles/ruby_2.4.6_cucumber4.gemfile.lock +0 -202
  782. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile +0 -41
  783. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile.lock +0 -262
  784. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile +0 -41
  785. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile.lock +0 -262
  786. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile +0 -42
  787. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile.lock +0 -264
  788. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile +0 -42
  789. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -264
  790. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile +0 -43
  791. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile.lock +0 -273
  792. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile +0 -39
  793. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile.lock +0 -178
  794. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile +0 -39
  795. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile.lock +0 -178
  796. data/gemfiles/ruby_2.5.6_contrib.gemfile +0 -83
  797. data/gemfiles/ruby_2.5.6_contrib.gemfile.lock +0 -1526
  798. data/gemfiles/ruby_2.5.6_contrib_old.gemfile +0 -39
  799. data/gemfiles/ruby_2.5.6_contrib_old.gemfile.lock +0 -165
  800. data/gemfiles/ruby_2.5.6_core_old.gemfile +0 -38
  801. data/gemfiles/ruby_2.5.6_core_old.gemfile.lock +0 -161
  802. data/gemfiles/ruby_2.5.6_cucumber3.gemfile +0 -39
  803. data/gemfiles/ruby_2.5.6_cucumber3.gemfile.lock +0 -182
  804. data/gemfiles/ruby_2.5.6_cucumber4.gemfile +0 -39
  805. data/gemfiles/ruby_2.5.6_cucumber4.gemfile.lock +0 -214
  806. data/gemfiles/ruby_2.5.6_cucumber5.gemfile +0 -39
  807. data/gemfiles/ruby_2.5.6_cucumber5.gemfile.lock +0 -214
  808. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile +0 -44
  809. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile.lock +0 -276
  810. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile +0 -44
  811. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile.lock +0 -276
  812. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile +0 -45
  813. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile.lock +0 -278
  814. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile +0 -45
  815. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  816. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile +0 -46
  817. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile.lock +0 -284
  818. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile +0 -44
  819. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile.lock +0 -295
  820. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile +0 -44
  821. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile.lock +0 -295
  822. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile +0 -45
  823. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile.lock +0 -297
  824. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile +0 -45
  825. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile.lock +0 -302
  826. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile +0 -44
  827. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile.lock +0 -292
  828. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile +0 -44
  829. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile.lock +0 -292
  830. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile +0 -45
  831. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile.lock +0 -294
  832. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile +0 -45
  833. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  834. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile +0 -46
  835. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile.lock +0 -300
  836. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile +0 -40
  837. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile.lock +0 -188
  838. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile +0 -40
  839. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile.lock +0 -188
  840. data/gemfiles/ruby_2.6.4_contrib.gemfile +0 -79
  841. data/gemfiles/ruby_2.6.4_contrib.gemfile.lock +0 -1524
  842. data/gemfiles/ruby_2.6.4_contrib_old.gemfile +0 -39
  843. data/gemfiles/ruby_2.6.4_contrib_old.gemfile.lock +0 -167
  844. data/gemfiles/ruby_2.6.4_core_old.gemfile +0 -38
  845. data/gemfiles/ruby_2.6.4_core_old.gemfile.lock +0 -163
  846. data/gemfiles/ruby_2.6.4_cucumber3.gemfile +0 -39
  847. data/gemfiles/ruby_2.6.4_cucumber3.gemfile.lock +0 -184
  848. data/gemfiles/ruby_2.6.4_cucumber4.gemfile +0 -39
  849. data/gemfiles/ruby_2.6.4_cucumber4.gemfile.lock +0 -216
  850. data/gemfiles/ruby_2.6.4_cucumber5.gemfile +0 -39
  851. data/gemfiles/ruby_2.6.4_cucumber5.gemfile.lock +0 -216
  852. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile +0 -42
  853. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile.lock +0 -276
  854. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile +0 -42
  855. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile.lock +0 -276
  856. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile +0 -43
  857. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile.lock +0 -278
  858. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile +0 -43
  859. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  860. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile +0 -44
  861. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile.lock +0 -284
  862. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile +0 -42
  863. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile.lock +0 -295
  864. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile +0 -42
  865. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile.lock +0 -295
  866. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile +0 -43
  867. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile.lock +0 -297
  868. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile +0 -43
  869. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile.lock +0 -302
  870. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile +0 -42
  871. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile.lock +0 -292
  872. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile +0 -42
  873. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile.lock +0 -292
  874. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile +0 -43
  875. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile.lock +0 -294
  876. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile +0 -43
  877. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  878. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile +0 -44
  879. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile.lock +0 -300
  880. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile +0 -40
  881. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile.lock +0 -190
  882. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile +0 -40
  883. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile.lock +0 -190
  884. data/gemfiles/ruby_2.7.0_contrib.gemfile +0 -78
  885. data/gemfiles/ruby_2.7.0_contrib.gemfile.lock +0 -1523
  886. data/gemfiles/ruby_2.7.0_contrib_old.gemfile +0 -39
  887. data/gemfiles/ruby_2.7.0_contrib_old.gemfile.lock +0 -167
  888. data/gemfiles/ruby_2.7.0_core_old.gemfile +0 -38
  889. data/gemfiles/ruby_2.7.0_core_old.gemfile.lock +0 -163
  890. data/gemfiles/ruby_2.7.0_cucumber3.gemfile +0 -39
  891. data/gemfiles/ruby_2.7.0_cucumber3.gemfile.lock +0 -184
  892. data/gemfiles/ruby_2.7.0_cucumber4.gemfile +0 -39
  893. data/gemfiles/ruby_2.7.0_cucumber4.gemfile.lock +0 -216
  894. data/gemfiles/ruby_2.7.0_cucumber5.gemfile +0 -39
  895. data/gemfiles/ruby_2.7.0_cucumber5.gemfile.lock +0 -216
  896. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile +0 -42
  897. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +0 -276
  898. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +0 -42
  899. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +0 -276
  900. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile +0 -44
  901. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile.lock +0 -295
  902. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile +0 -44
  903. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -295
  904. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile +0 -44
  905. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile.lock +0 -284
  906. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile +0 -42
  907. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +0 -295
  908. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile +0 -42
  909. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +0 -295
  910. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile +0 -43
  911. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +0 -297
  912. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile +0 -43
  913. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  914. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile +0 -42
  915. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +0 -292
  916. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +0 -42
  917. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +0 -292
  918. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile +0 -44
  919. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile.lock +0 -311
  920. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile +0 -44
  921. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -311
  922. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile +0 -44
  923. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile.lock +0 -300
  924. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile +0 -40
  925. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +0 -190
  926. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile +0 -40
  927. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +0 -190
  928. data/gemfiles/ruby_3.0.0_contrib.gemfile +0 -78
  929. data/gemfiles/ruby_3.0.0_contrib.gemfile.lock +0 -1540
  930. data/gemfiles/ruby_3.0.0_core_old.gemfile +0 -39
  931. data/gemfiles/ruby_3.0.0_core_old.gemfile.lock +0 -165
  932. data/gemfiles/ruby_3.0.0_cucumber3.gemfile +0 -40
  933. data/gemfiles/ruby_3.0.0_cucumber3.gemfile.lock +0 -186
  934. data/gemfiles/ruby_3.0.0_cucumber4.gemfile +0 -40
  935. data/gemfiles/ruby_3.0.0_cucumber4.gemfile.lock +0 -218
  936. data/gemfiles/ruby_3.0.0_cucumber5.gemfile +0 -40
  937. data/gemfiles/ruby_3.0.0_cucumber5.gemfile.lock +0 -218
  938. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile +0 -43
  939. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile.lock +0 -295
  940. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile +0 -43
  941. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile.lock +0 -295
  942. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile +0 -44
  943. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile.lock +0 -297
  944. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile +0 -44
  945. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  946. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile +0 -41
  947. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile.lock +0 -192
  948. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile +0 -41
  949. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile.lock +0 -192
  950. data/integration/README.md +0 -67
  951. data/integration/apps/rack/.dockerignore +0 -1
  952. data/integration/apps/rack/.envrc.sample +0 -1
  953. data/integration/apps/rack/.gitignore +0 -4
  954. data/integration/apps/rack/.rspec +0 -1
  955. data/integration/apps/rack/Dockerfile +0 -28
  956. data/integration/apps/rack/Dockerfile-ci +0 -11
  957. data/integration/apps/rack/Gemfile +0 -24
  958. data/integration/apps/rack/README.md +0 -93
  959. data/integration/apps/rack/app/acme.rb +0 -80
  960. data/integration/apps/rack/app/datadog.rb +0 -17
  961. data/integration/apps/rack/bin/run +0 -22
  962. data/integration/apps/rack/bin/setup +0 -17
  963. data/integration/apps/rack/bin/test +0 -24
  964. data/integration/apps/rack/config/puma.rb +0 -14
  965. data/integration/apps/rack/config/unicorn.rb +0 -23
  966. data/integration/apps/rack/config.ru +0 -6
  967. data/integration/apps/rack/docker-compose.ci.yml +0 -62
  968. data/integration/apps/rack/docker-compose.yml +0 -78
  969. data/integration/apps/rack/script/build-images +0 -38
  970. data/integration/apps/rack/script/ci +0 -51
  971. data/integration/apps/rack/spec/integration/basic_spec.rb +0 -10
  972. data/integration/apps/rack/spec/spec_helper.rb +0 -16
  973. data/integration/apps/rack/spec/support/integration_helper.rb +0 -22
  974. data/integration/apps/rails-five/.dockerignore +0 -1
  975. data/integration/apps/rails-five/.env +0 -3
  976. data/integration/apps/rails-five/.envrc.sample +0 -1
  977. data/integration/apps/rails-five/.gitignore +0 -30
  978. data/integration/apps/rails-five/Dockerfile +0 -25
  979. data/integration/apps/rails-five/Dockerfile-ci +0 -11
  980. data/integration/apps/rails-five/Gemfile +0 -104
  981. data/integration/apps/rails-five/README.md +0 -94
  982. data/integration/apps/rails-five/Rakefile +0 -6
  983. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +0 -4
  984. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +0 -4
  985. data/integration/apps/rails-five/app/controllers/application_controller.rb +0 -2
  986. data/integration/apps/rails-five/app/controllers/basic_controller.rb +0 -36
  987. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  988. data/integration/apps/rails-five/app/controllers/health_controller.rb +0 -9
  989. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +0 -12
  990. data/integration/apps/rails-five/app/jobs/application_job.rb +0 -2
  991. data/integration/apps/rails-five/app/jobs/test_job.rb +0 -12
  992. data/integration/apps/rails-five/app/mailers/application_mailer.rb +0 -4
  993. data/integration/apps/rails-five/app/models/application_record.rb +0 -3
  994. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  995. data/integration/apps/rails-five/app/models/test.rb +0 -2
  996. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +0 -13
  997. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +0 -1
  998. data/integration/apps/rails-five/bin/bundle +0 -3
  999. data/integration/apps/rails-five/bin/rails +0 -9
  1000. data/integration/apps/rails-five/bin/rake +0 -9
  1001. data/integration/apps/rails-five/bin/run +0 -24
  1002. data/integration/apps/rails-five/bin/setup +0 -27
  1003. data/integration/apps/rails-five/bin/spring +0 -17
  1004. data/integration/apps/rails-five/bin/test +0 -21
  1005. data/integration/apps/rails-five/bin/update +0 -28
  1006. data/integration/apps/rails-five/config/application.rb +0 -97
  1007. data/integration/apps/rails-five/config/boot.rb +0 -4
  1008. data/integration/apps/rails-five/config/cable.yml +0 -10
  1009. data/integration/apps/rails-five/config/credentials.yml.enc +0 -1
  1010. data/integration/apps/rails-five/config/database.yml +0 -28
  1011. data/integration/apps/rails-five/config/environment.rb +0 -5
  1012. data/integration/apps/rails-five/config/environments/development.rb +0 -51
  1013. data/integration/apps/rails-five/config/environments/production.rb +0 -82
  1014. data/integration/apps/rails-five/config/environments/test.rb +0 -43
  1015. data/integration/apps/rails-five/config/initializers/datadog.rb +0 -18
  1016. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +0 -4
  1017. data/integration/apps/rails-five/config/initializers/resque.rb +0 -4
  1018. data/integration/apps/rails-five/config/initializers/rollbar.rb +0 -5
  1019. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +0 -14
  1020. data/integration/apps/rails-five/config/locales/en.yml +0 -33
  1021. data/integration/apps/rails-five/config/puma.rb +0 -24
  1022. data/integration/apps/rails-five/config/routes.rb +0 -11
  1023. data/integration/apps/rails-five/config/spring.rb +0 -6
  1024. data/integration/apps/rails-five/config/unicorn.rb +0 -29
  1025. data/integration/apps/rails-five/config.ru +0 -5
  1026. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +0 -11
  1027. data/integration/apps/rails-five/db/schema.rb +0 -23
  1028. data/integration/apps/rails-five/db/seeds.rb +0 -7
  1029. data/integration/apps/rails-five/docker-compose.ci.yml +0 -98
  1030. data/integration/apps/rails-five/docker-compose.yml +0 -100
  1031. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  1032. data/integration/apps/rails-five/log/.keep +0 -0
  1033. data/integration/apps/rails-five/public/robots.txt +0 -1
  1034. data/integration/apps/rails-five/script/build-images +0 -35
  1035. data/integration/apps/rails-five/script/ci +0 -51
  1036. data/integration/apps/rails-five/spec/integration/basic_spec.rb +0 -10
  1037. data/integration/apps/rails-five/spec/spec_helper.rb +0 -16
  1038. data/integration/apps/rails-five/spec/support/integration_helper.rb +0 -22
  1039. data/integration/apps/rails-five/storage/.keep +0 -0
  1040. data/integration/apps/rails-five/tmp/.keep +0 -0
  1041. data/integration/apps/rails-five/vendor/.keep +0 -0
  1042. data/integration/apps/rspec/.dockerignore +0 -1
  1043. data/integration/apps/rspec/.envrc.sample +0 -1
  1044. data/integration/apps/rspec/.gitignore +0 -2
  1045. data/integration/apps/rspec/.rspec +0 -1
  1046. data/integration/apps/rspec/Dockerfile +0 -25
  1047. data/integration/apps/rspec/Dockerfile-ci +0 -11
  1048. data/integration/apps/rspec/Gemfile +0 -14
  1049. data/integration/apps/rspec/README.md +0 -70
  1050. data/integration/apps/rspec/agent.yaml +0 -3
  1051. data/integration/apps/rspec/app/datadog.rb +0 -13
  1052. data/integration/apps/rspec/app/fibonacci.rb +0 -30
  1053. data/integration/apps/rspec/bin/run +0 -20
  1054. data/integration/apps/rspec/bin/setup +0 -17
  1055. data/integration/apps/rspec/bin/test +0 -21
  1056. data/integration/apps/rspec/docker-compose.ci.yml +0 -51
  1057. data/integration/apps/rspec/docker-compose.yml +0 -63
  1058. data/integration/apps/rspec/script/build-images +0 -37
  1059. data/integration/apps/rspec/script/ci +0 -53
  1060. data/integration/apps/rspec/spec/fibonacci_spec.rb +0 -16
  1061. data/integration/apps/rspec/spec/rspec_spec.rb +0 -58
  1062. data/integration/apps/rspec/spec/spec_helper.rb +0 -24
  1063. data/integration/apps/ruby/.dockerignore +0 -1
  1064. data/integration/apps/ruby/.envrc.sample +0 -1
  1065. data/integration/apps/ruby/.gitignore +0 -2
  1066. data/integration/apps/ruby/Dockerfile +0 -25
  1067. data/integration/apps/ruby/Dockerfile-ci +0 -11
  1068. data/integration/apps/ruby/Gemfile +0 -11
  1069. data/integration/apps/ruby/README.md +0 -70
  1070. data/integration/apps/ruby/agent.yaml +0 -3
  1071. data/integration/apps/ruby/app/datadog.rb +0 -13
  1072. data/integration/apps/ruby/app/fibonacci.rb +0 -58
  1073. data/integration/apps/ruby/bin/run +0 -20
  1074. data/integration/apps/ruby/bin/setup +0 -17
  1075. data/integration/apps/ruby/bin/test +0 -21
  1076. data/integration/apps/ruby/docker-compose.ci.yml +0 -51
  1077. data/integration/apps/ruby/docker-compose.yml +0 -63
  1078. data/integration/apps/ruby/script/build-images +0 -38
  1079. data/integration/apps/ruby/script/ci +0 -51
  1080. data/integration/images/agent/Dockerfile +0 -2
  1081. data/integration/images/agent/agent.yaml +0 -3
  1082. data/integration/images/include/datadog/analyzer.rb +0 -71
  1083. data/integration/images/include/datadog/demo_env.rb +0 -101
  1084. data/integration/images/include/http-health-check +0 -33
  1085. data/integration/images/ruby/2.1/Dockerfile +0 -54
  1086. data/integration/images/ruby/2.2/Dockerfile +0 -54
  1087. data/integration/images/ruby/2.3/Dockerfile +0 -70
  1088. data/integration/images/ruby/2.4/Dockerfile +0 -54
  1089. data/integration/images/ruby/2.5/Dockerfile +0 -54
  1090. data/integration/images/ruby/2.6/Dockerfile +0 -54
  1091. data/integration/images/ruby/2.7/Dockerfile +0 -54
  1092. data/integration/images/ruby/3.0/Dockerfile +0 -54
  1093. data/integration/images/wrk/Dockerfile +0 -33
  1094. data/integration/images/wrk/scripts/entrypoint.sh +0 -17
  1095. data/integration/images/wrk/scripts/scenarios/basic/default.lua +0 -1
  1096. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +0 -1
  1097. data/integration/script/build-images +0 -43
  1098. data/lib/ddtrace/environment.rb +0 -41
  1099. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  1100. data/lib/ddtrace/runtime/class_count.rb +0 -17
  1101. data/lib/ddtrace/runtime/container.rb +0 -87
  1102. data/lib/ddtrace/runtime/gc.rb +0 -16
  1103. data/lib/ddtrace/runtime/identity.rb +0 -48
  1104. data/lib/ddtrace/runtime/object_space.rb +0 -19
  1105. data/lib/ddtrace/runtime/socket.rb +0 -14
  1106. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  1107. data/tasks/release_gem.rake +0 -28
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'uri'
2
3
 
3
4
  require 'ddtrace/ext/transport'
@@ -19,25 +20,49 @@ module Datadog
19
20
  class AgentSettingsResolver
20
21
  AgentSettings = \
21
22
  Struct.new(
23
+ :adapter,
22
24
  :ssl,
23
25
  :hostname,
24
26
  :port,
27
+ :uds_path,
25
28
  :timeout_seconds,
26
29
  :deprecated_for_removal_transport_configuration_proc,
27
30
  :deprecated_for_removal_transport_configuration_options
28
31
  ) do
29
32
  def initialize(
33
+ adapter:,
30
34
  ssl:,
31
35
  hostname:,
32
36
  port:,
37
+ uds_path:,
33
38
  timeout_seconds:,
34
39
  deprecated_for_removal_transport_configuration_proc:,
35
40
  deprecated_for_removal_transport_configuration_options:
36
41
  )
37
- super(ssl, hostname, port, timeout_seconds, deprecated_for_removal_transport_configuration_proc, \
38
- deprecated_for_removal_transport_configuration_options)
42
+ super(
43
+ adapter,
44
+ ssl,
45
+ hostname,
46
+ port,
47
+ uds_path,
48
+ timeout_seconds,
49
+ deprecated_for_removal_transport_configuration_proc,
50
+ deprecated_for_removal_transport_configuration_options,
51
+ )
39
52
  freeze
40
53
  end
54
+
55
+ # Returns a frozen copy of this struct
56
+ # with the provided +member_values+ modified.
57
+ def merge(**member_values)
58
+ new_struct = dup
59
+
60
+ member_values.each do |member, value|
61
+ new_struct[member] = value
62
+ end
63
+
64
+ new_struct.freeze
65
+ end
41
66
  end
42
67
 
43
68
  def self.call(settings, logger: Datadog.logger)
@@ -57,9 +82,11 @@ module Datadog
57
82
 
58
83
  def call
59
84
  AgentSettings.new(
85
+ adapter: adapter,
60
86
  ssl: ssl?,
61
87
  hostname: hostname,
62
88
  port: port,
89
+ uds_path: uds_path,
63
90
  timeout_seconds: timeout_seconds,
64
91
  # NOTE: When provided, the deprecated_for_removal_transport_configuration_proc can override all
65
92
  # values above (ssl, hostname, port, timeout), or even make them irrelevant (by using an unix socket or
@@ -71,27 +98,38 @@ module Datadog
71
98
  )
72
99
  end
73
100
 
74
- def hostname
75
- pick_from(
76
- configurations_in_priority_order: [
77
- DetectedConfiguration.new(
78
- friendly_name: "'c.tracer.hostname'",
79
- value: settings.tracer.hostname
80
- ),
81
- DetectedConfiguration.new(
82
- friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_URL} environment variable",
83
- value: parsed_url && parsed_url.hostname
84
- ),
85
- DetectedConfiguration.new(
86
- friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_HOST} environment variable",
87
- value: ENV[Datadog::Ext::Transport::HTTP::ENV_DEFAULT_HOST]
88
- )
89
- ],
90
- or_use_default: Datadog::Ext::Transport::HTTP::DEFAULT_HOST
101
+ def adapter
102
+ # If no agent settings have been provided, we try to connect using a local unix socket.
103
+ # We only do so if the socket is present when `ddtrace` runs.
104
+ if should_use_uds_fallback?
105
+ Ext::Transport::UnixSocket::ADAPTER
106
+ else
107
+ Ext::Transport::HTTP::ADAPTER
108
+ end
109
+ end
110
+
111
+ def configured_hostname
112
+ return @configured_hostname if defined?(@configured_hostname)
113
+
114
+ @configured_hostname = pick_from(
115
+ DetectedConfiguration.new(
116
+ friendly_name: "'c.tracer.hostname'",
117
+ value: settings.tracer.hostname
118
+ ),
119
+ DetectedConfiguration.new(
120
+ friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_URL} environment variable",
121
+ value: parsed_url && parsed_url.hostname
122
+ ),
123
+ DetectedConfiguration.new(
124
+ friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_HOST} environment variable",
125
+ value: ENV[Datadog::Ext::Transport::HTTP::ENV_DEFAULT_HOST]
126
+ )
91
127
  )
92
128
  end
93
129
 
94
- def port
130
+ def configured_port
131
+ return @configured_port if defined?(@configured_port)
132
+
95
133
  port_from_env = ENV[Datadog::Ext::Transport::HTTP::ENV_DEFAULT_PORT]
96
134
  parsed_port_from_env =
97
135
  if port_from_env
@@ -105,22 +143,19 @@ module Datadog
105
143
  end
106
144
  end
107
145
 
108
- pick_from(
109
- configurations_in_priority_order: [
110
- DetectedConfiguration.new(
111
- friendly_name: '"c.tracer.port"',
112
- value: settings.tracer.port
113
- ),
114
- DetectedConfiguration.new(
115
- friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_URL} environment variable",
116
- value: parsed_url && parsed_url.port
117
- ),
118
- DetectedConfiguration.new(
119
- friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_PORT} environment variable",
120
- value: parsed_port_from_env
121
- )
122
- ],
123
- or_use_default: Datadog::Ext::Transport::HTTP::DEFAULT_PORT
146
+ @configured_port = pick_from(
147
+ DetectedConfiguration.new(
148
+ friendly_name: '"c.tracer.port"',
149
+ value: settings.tracer.port
150
+ ),
151
+ DetectedConfiguration.new(
152
+ friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_URL} environment variable",
153
+ value: parsed_url && parsed_url.port
154
+ ),
155
+ DetectedConfiguration.new(
156
+ friendly_name: "#{Datadog::Ext::Transport::HTTP::ENV_DEFAULT_PORT} environment variable",
157
+ value: parsed_port_from_env
158
+ )
124
159
  )
125
160
  end
126
161
 
@@ -128,8 +163,23 @@ module Datadog
128
163
  !parsed_url.nil? && parsed_url.scheme == 'https'
129
164
  end
130
165
 
166
+ def hostname
167
+ configured_hostname || (should_use_uds_fallback? ? nil : Datadog::Ext::Transport::HTTP::DEFAULT_HOST)
168
+ end
169
+
170
+ def port
171
+ configured_port || (should_use_uds_fallback? ? nil : Datadog::Ext::Transport::HTTP::DEFAULT_PORT)
172
+ end
173
+
174
+ # Unix socket path in the file system
175
+ def uds_path
176
+ uds_fallback
177
+ end
178
+
179
+ # Defaults to +nil+, letting the adapter choose what default
180
+ # works best in their case.
131
181
  def timeout_seconds
132
- Datadog::Ext::Transport::HTTP::DEFAULT_TIMEOUT_SECONDS
182
+ nil
133
183
  end
134
184
 
135
185
  def deprecated_for_removal_transport_configuration_proc
@@ -149,6 +199,26 @@ module Datadog
149
199
  end
150
200
  end
151
201
 
202
+ # We only use the default unix socket if it is already present.
203
+ # This is by design, as we still want to use the default host:port if no unix socket is present.
204
+ def uds_fallback
205
+ return @uds_fallback if defined?(@uds_fallback)
206
+
207
+ @uds_fallback =
208
+ if configured_hostname.nil? &&
209
+ configured_port.nil? &&
210
+ deprecated_for_removal_transport_configuration_proc.nil? &&
211
+ deprecated_for_removal_transport_configuration_options.nil? &&
212
+ File.exist?(Ext::Transport::UnixSocket::DEFAULT_PATH)
213
+
214
+ Ext::Transport::UnixSocket::DEFAULT_PATH
215
+ end
216
+ end
217
+
218
+ def should_use_uds_fallback?
219
+ uds_fallback != nil
220
+ end
221
+
152
222
  def parsed_url
153
223
  return @parsed_url if defined?(@parsed_url)
154
224
 
@@ -176,7 +246,7 @@ module Datadog
176
246
  @unparsed_url_from_env ||= ENV[Datadog::Ext::Transport::HTTP::ENV_DEFAULT_URL]
177
247
  end
178
248
 
179
- def pick_from(configurations_in_priority_order:, or_use_default:)
249
+ def pick_from(*configurations_in_priority_order)
180
250
  detected_configurations_in_priority_order = configurations_in_priority_order.select(&:value?)
181
251
 
182
252
  if detected_configurations_in_priority_order.any?
@@ -185,8 +255,6 @@ module Datadog
185
255
  # The configurations are listed in priority, so we only need to look at the first; if there's more than
186
256
  # one, we emit a warning above
187
257
  detected_configurations_in_priority_order.first.value
188
- else
189
- or_use_default
190
258
  end
191
259
  end
192
260
 
@@ -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
+ endpoint_collection_enabled: settings.profiling.advanced.endpoint.collection.enabled
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
@@ -1,10 +1,11 @@
1
+ # typed: false
1
2
  require 'logger'
2
3
  require 'ddtrace/configuration/base'
3
4
 
4
5
  require 'ddtrace/ext/analytics'
5
6
  require 'ddtrace/ext/distributed'
7
+ require 'ddtrace/ext/environment'
6
8
  require 'ddtrace/ext/profiling'
7
- require 'ddtrace/ext/runtime'
8
9
  require 'ddtrace/ext/sampling'
9
10
  require 'ddtrace/ext/test'
10
11
 
@@ -159,13 +160,29 @@ module Datadog
159
160
  end
160
161
  end
161
162
 
162
- option :max_events, default: 32768
163
+ settings :advanced do
164
+ # This should never be reduced, as it can cause the resulting profiles to become biased.
165
+ # The current default should be enough for most services, allowing 16 threads to be sampled around 30 times
166
+ # per second for a 60 second period.
167
+ option :max_events, default: 32768
163
168
 
164
- # Controls the maximum number of frames for each thread sampled. Can be tuned to avoid omitted frames in the
165
- # produced profiles. Increasing this may increase the overhead of profiling.
166
- option :max_frames do |o|
167
- o.default { env_to_int(Ext::Profiling::ENV_MAX_FRAMES, 400) }
168
- o.lazy
169
+ # Controls the maximum number of frames for each thread sampled. Can be tuned to avoid omitted frames in the
170
+ # produced profiles. Increasing this may increase the overhead of profiling.
171
+ option :max_frames do |o|
172
+ o.default { env_to_int(Ext::Profiling::ENV_MAX_FRAMES, 400) }
173
+ o.lazy
174
+ end
175
+
176
+ settings :endpoint do
177
+ settings :collection do
178
+ # When using profiling together with tracing, this controls if endpoint names
179
+ # are gathered and reported together with profiles.
180
+ option :enabled do |o|
181
+ o.default { env_to_bool(Ext::Profiling::ENV_ENDPOINT_COLLECTION_ENABLED, true) }
182
+ o.lazy
183
+ end
184
+ end
185
+ end
169
186
  end
170
187
 
171
188
  settings :upload do
@@ -226,8 +243,16 @@ module Datadog
226
243
 
227
244
  option :service do |o|
228
245
  # NOTE: service also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details.
229
- o.default { ENV.fetch(Ext::Environment::ENV_SERVICE, nil) }
246
+ o.default { ENV.fetch(Ext::Environment::ENV_SERVICE, Ext::Environment::FALLBACK_SERVICE_NAME) }
230
247
  o.lazy
248
+
249
+ # There's a few cases where we don't want to use the fallback service name, so this helper allows us to get a
250
+ # nil instead so that one can do
251
+ # nice_service_name = Datadog.configure.service_without_fallback || nice_service_name_default
252
+ o.helper(:service_without_fallback) do
253
+ service_name = service
254
+ service_name unless service_name.equal?(Ext::Environment::FALLBACK_SERVICE_NAME)
255
+ end
231
256
  end
232
257
 
233
258
  option :site do |o|
@@ -264,7 +289,7 @@ module Datadog
264
289
  self.version = string_tags[Ext::Environment::TAG_VERSION]
265
290
  end
266
291
 
267
- if service.nil? && string_tags.key?(Ext::Environment::TAG_SERVICE)
292
+ if service_without_fallback.nil? && string_tags.key?(Ext::Environment::TAG_SERVICE)
268
293
  self.service = string_tags[Ext::Environment::TAG_SERVICE]
269
294
  end
270
295
 
@@ -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: true
1
2
  require 'ddtrace/diagnostics/health'
2
3
 
3
4
  require 'ddtrace/context_flush'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  module Datadog
2
3
  module ContextFlush
3
4
  # Consumes only completed traces (where all spans have finished)
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  module Datadog
2
3
  # DefaultContextProvider is a default context provider that retrieves
3
4
  # all contexts from the current thread-local storage. It is suitable for
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'ddtrace/contrib/configuration/settings'
2
3
  require 'ddtrace/contrib/action_cable/ext'
3
4
 
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  require 'ddtrace/contrib/analytics'
2
3
  require 'ddtrace/contrib/active_support/notifications/event'
3
4
  require 'ddtrace/contrib/action_cable/ext'
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'ddtrace/contrib/analytics'
2
3
  require 'ddtrace/contrib/action_cable/event'
3
4
 
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'ddtrace/contrib/analytics'
2
3
  require 'ddtrace/contrib/action_cable/event'
3
4
 
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'ddtrace/contrib/analytics'
2
3
  require 'ddtrace/contrib/action_cable/event'
3
4
 
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'ddtrace/contrib/action_cable/event'
2
3
  require 'ddtrace/contrib/action_cable/events/broadcast'
3
4
  require 'ddtrace/contrib/action_cable/events/perform_action'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  module Datadog
2
3
  module Contrib
3
4
  module ActionCable
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  module Datadog
2
3
  module Contrib
3
4
  module ActionCable
@@ -25,6 +26,52 @@ module Datadog
25
26
  end
26
27
  end
27
28
  end
29
+
30
+ # Instrumentation for when a Channel is subscribed to/unsubscribed from.
31
+ module ActionCableChannel
32
+ def self.included(base)
33
+ base.class_eval do
34
+ set_callback(
35
+ :subscribe,
36
+ :around,
37
+ ->(channel, block) { Tracer.trace(channel, :subscribe, &block) },
38
+ prepend: true
39
+ )
40
+
41
+ set_callback(
42
+ :unsubscribe,
43
+ :around,
44
+ ->(channel, block) { Tracer.trace(channel, :unsubscribe, &block) },
45
+ prepend: true
46
+ )
47
+ end
48
+ end
49
+
50
+ # Instrumentation for Channel hooks.
51
+ class Tracer
52
+ def self.trace(channel, hook)
53
+ configuration = Datadog.configuration[:action_cable]
54
+
55
+ Datadog.tracer.trace("action_cable.#{hook}") do |span|
56
+ span.service = configuration[:service_name]
57
+ span.resource = "#{channel.class}##{hook}"
58
+ span.span_type = Datadog::Ext::AppTypes::WEB
59
+
60
+ # Set analytics sample rate
61
+ if Contrib::Analytics.enabled?(configuration[:analytics_enabled])
62
+ Contrib::Analytics.set_sample_rate(span, configuration[:analytics_sample_rate])
63
+ end
64
+
65
+ # Measure service stats
66
+ Contrib::Analytics.set_measured(span)
67
+
68
+ span.set_tag(Ext::TAG_CHANNEL_CLASS, channel.class.to_s)
69
+
70
+ yield
71
+ end
72
+ end
73
+ end
74
+ end
28
75
  end
29
76
  end
30
77
  end
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  require 'ddtrace/contrib/integration'
2
3
  require 'ddtrace/contrib/action_cable/configuration/settings'
3
4
  require 'ddtrace/contrib/action_cable/patcher'