ddtrace 0.50.0 → 0.52.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1082) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +22 -0
  3. data/.gitignore +7 -0
  4. data/CHANGELOG.md +131 -0
  5. data/CONTRIBUTING.md +1 -5
  6. data/ddtrace.gemspec +10 -1
  7. data/docs/DevelopmentGuide.md +15 -0
  8. data/docs/GettingStarted.md +42 -4
  9. data/docs/ProfilingDevelopment.md +33 -14
  10. data/ext/ddtrace_profiling_native_extension/extconf.rb +28 -0
  11. data/ext/ddtrace_profiling_native_extension/profiling.c +17 -0
  12. data/lib/datadog/ci.rb +1 -0
  13. data/lib/datadog/ci/configuration/components.rb +1 -0
  14. data/lib/datadog/ci/configuration/settings.rb +1 -0
  15. data/lib/datadog/ci/context_flush.rb +1 -0
  16. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -1
  17. data/lib/datadog/ci/contrib/cucumber/ext.rb +1 -0
  18. data/lib/datadog/ci/contrib/cucumber/formatter.rb +1 -0
  19. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -0
  20. data/lib/datadog/ci/contrib/cucumber/integration.rb +1 -0
  21. data/lib/datadog/ci/contrib/cucumber/patcher.rb +1 -0
  22. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -1
  23. data/lib/datadog/ci/contrib/rspec/example.rb +1 -0
  24. data/lib/datadog/ci/contrib/rspec/ext.rb +1 -0
  25. data/lib/datadog/ci/contrib/rspec/integration.rb +1 -0
  26. data/lib/datadog/ci/contrib/rspec/patcher.rb +1 -0
  27. data/lib/datadog/ci/ext/app_types.rb +1 -0
  28. data/lib/datadog/ci/ext/environment.rb +229 -89
  29. data/lib/datadog/ci/ext/settings.rb +1 -0
  30. data/lib/datadog/ci/ext/test.rb +8 -1
  31. data/lib/datadog/ci/extensions.rb +1 -0
  32. data/lib/datadog/ci/test.rb +14 -0
  33. data/lib/datadog/contrib.rb +69 -0
  34. data/lib/datadog/core/environment/cgroup.rb +52 -0
  35. data/lib/datadog/core/environment/class_count.rb +20 -0
  36. data/lib/datadog/core/environment/container.rb +91 -0
  37. data/lib/datadog/core/environment/ext.rb +27 -0
  38. data/lib/datadog/core/environment/gc.rb +19 -0
  39. data/lib/datadog/core/environment/identity.rb +51 -0
  40. data/lib/datadog/core/environment/socket.rb +17 -0
  41. data/lib/datadog/core/environment/thread_count.rb +19 -0
  42. data/lib/datadog/core/environment/variable_helpers.rb +42 -0
  43. data/lib/ddtrace.rb +19 -49
  44. data/lib/ddtrace/analytics.rb +1 -0
  45. data/lib/ddtrace/auto_instrument.rb +2 -0
  46. data/lib/ddtrace/auto_instrument_base.rb +1 -0
  47. data/lib/ddtrace/buffer.rb +7 -5
  48. data/lib/ddtrace/chunker.rb +1 -0
  49. data/lib/ddtrace/configuration.rb +21 -2
  50. data/lib/ddtrace/configuration/agent_settings_resolver.rb +1 -0
  51. data/lib/ddtrace/configuration/base.rb +4 -3
  52. data/lib/ddtrace/configuration/components.rb +54 -11
  53. data/lib/ddtrace/configuration/dependency_resolver.rb +1 -0
  54. data/lib/ddtrace/configuration/option.rb +1 -0
  55. data/lib/ddtrace/configuration/option_definition.rb +1 -0
  56. data/lib/ddtrace/configuration/option_definition_set.rb +1 -0
  57. data/lib/ddtrace/configuration/option_set.rb +1 -0
  58. data/lib/ddtrace/configuration/options.rb +1 -0
  59. data/lib/ddtrace/configuration/pin_setup.rb +1 -0
  60. data/lib/ddtrace/configuration/settings.rb +24 -9
  61. data/lib/ddtrace/context.rb +1 -0
  62. data/lib/ddtrace/context_flush.rb +1 -0
  63. data/lib/ddtrace/context_provider.rb +1 -0
  64. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +1 -0
  65. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  66. data/lib/ddtrace/contrib/action_cable/events.rb +1 -0
  67. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +1 -0
  68. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +1 -0
  69. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +1 -0
  70. data/lib/ddtrace/contrib/action_cable/ext.rb +1 -0
  71. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +1 -0
  72. data/lib/ddtrace/contrib/action_cable/integration.rb +1 -0
  73. data/lib/ddtrace/contrib/action_cable/patcher.rb +1 -0
  74. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +21 -10
  75. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +1 -0
  76. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +1 -0
  77. data/lib/ddtrace/contrib/action_pack/ext.rb +1 -0
  78. data/lib/ddtrace/contrib/action_pack/integration.rb +1 -0
  79. data/lib/ddtrace/contrib/action_pack/patcher.rb +1 -0
  80. data/lib/ddtrace/contrib/action_pack/utils.rb +1 -0
  81. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +1 -0
  82. data/lib/ddtrace/contrib/action_view/event.rb +1 -0
  83. data/lib/ddtrace/contrib/action_view/events.rb +1 -0
  84. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  85. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  86. data/lib/ddtrace/contrib/action_view/ext.rb +1 -0
  87. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -0
  88. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +1 -0
  89. data/lib/ddtrace/contrib/action_view/integration.rb +1 -0
  90. data/lib/ddtrace/contrib/action_view/patcher.rb +1 -0
  91. data/lib/ddtrace/contrib/action_view/utils.rb +1 -0
  92. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +1 -0
  93. data/lib/ddtrace/contrib/active_model_serializers/event.rb +1 -0
  94. data/lib/ddtrace/contrib/active_model_serializers/events.rb +1 -0
  95. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +1 -0
  96. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +1 -0
  97. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +1 -0
  98. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +1 -0
  99. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +1 -0
  100. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +1 -0
  101. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +3 -2
  102. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +1 -0
  103. data/lib/ddtrace/contrib/active_record/event.rb +1 -0
  104. data/lib/ddtrace/contrib/active_record/events.rb +1 -0
  105. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -0
  106. data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -0
  107. data/lib/ddtrace/contrib/active_record/ext.rb +1 -0
  108. data/lib/ddtrace/contrib/active_record/integration.rb +1 -0
  109. data/lib/ddtrace/contrib/active_record/patcher.rb +1 -0
  110. data/lib/ddtrace/contrib/active_record/utils.rb +4 -3
  111. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +1 -0
  112. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +1 -0
  113. data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -0
  114. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +1 -0
  115. data/lib/ddtrace/contrib/active_support/ext.rb +1 -0
  116. data/lib/ddtrace/contrib/active_support/integration.rb +1 -0
  117. data/lib/ddtrace/contrib/active_support/notifications/event.rb +1 -0
  118. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  119. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -0
  120. data/lib/ddtrace/contrib/active_support/patcher.rb +1 -0
  121. data/lib/ddtrace/contrib/analytics.rb +1 -0
  122. data/lib/ddtrace/contrib/auto_instrument.rb +2 -1
  123. data/lib/ddtrace/contrib/aws/configuration/settings.rb +1 -0
  124. data/lib/ddtrace/contrib/aws/ext.rb +1 -0
  125. data/lib/ddtrace/contrib/aws/instrumentation.rb +1 -0
  126. data/lib/ddtrace/contrib/aws/integration.rb +1 -0
  127. data/lib/ddtrace/contrib/aws/parsed_context.rb +1 -0
  128. data/lib/ddtrace/contrib/aws/patcher.rb +2 -1
  129. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  130. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +1 -0
  131. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -0
  132. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
  133. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +1 -0
  134. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +1 -0
  135. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +2 -0
  136. data/lib/ddtrace/contrib/configurable.rb +1 -0
  137. data/lib/ddtrace/contrib/configuration/resolver.rb +1 -0
  138. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +1 -0
  139. data/lib/ddtrace/contrib/configuration/settings.rb +1 -0
  140. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +1 -0
  141. data/lib/ddtrace/contrib/dalli/ext.rb +1 -0
  142. data/lib/ddtrace/contrib/dalli/instrumentation.rb +1 -0
  143. data/lib/ddtrace/contrib/dalli/integration.rb +1 -0
  144. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -0
  145. data/lib/ddtrace/contrib/dalli/quantize.rb +1 -0
  146. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +1 -0
  147. data/lib/ddtrace/contrib/delayed_job/ext.rb +1 -0
  148. data/lib/ddtrace/contrib/delayed_job/integration.rb +1 -0
  149. data/lib/ddtrace/contrib/delayed_job/patcher.rb +1 -0
  150. data/lib/ddtrace/contrib/delayed_job/plugin.rb +1 -0
  151. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +1 -0
  152. data/lib/ddtrace/contrib/elasticsearch/ext.rb +1 -0
  153. data/lib/ddtrace/contrib/elasticsearch/integration.rb +1 -0
  154. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  155. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -0
  156. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +1 -0
  157. data/lib/ddtrace/contrib/ethon/easy_patch.rb +1 -0
  158. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  159. data/lib/ddtrace/contrib/ethon/integration.rb +1 -0
  160. data/lib/ddtrace/contrib/ethon/multi_patch.rb +1 -0
  161. data/lib/ddtrace/contrib/ethon/patcher.rb +2 -0
  162. data/lib/ddtrace/contrib/excon/configuration/settings.rb +1 -0
  163. data/lib/ddtrace/contrib/excon/ext.rb +1 -0
  164. data/lib/ddtrace/contrib/excon/integration.rb +1 -0
  165. data/lib/ddtrace/contrib/excon/middleware.rb +1 -0
  166. data/lib/ddtrace/contrib/excon/patcher.rb +1 -0
  167. data/lib/ddtrace/contrib/extensions.rb +37 -11
  168. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +1 -0
  169. data/lib/ddtrace/contrib/faraday/connection.rb +1 -0
  170. data/lib/ddtrace/contrib/faraday/ext.rb +1 -0
  171. data/lib/ddtrace/contrib/faraday/integration.rb +1 -0
  172. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -0
  173. data/lib/ddtrace/contrib/faraday/patcher.rb +1 -0
  174. data/lib/ddtrace/contrib/faraday/rack_builder.rb +1 -0
  175. data/lib/ddtrace/contrib/grape/configuration/settings.rb +1 -0
  176. data/lib/ddtrace/contrib/grape/endpoint.rb +26 -16
  177. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  178. data/lib/ddtrace/contrib/grape/instrumentation.rb +2 -1
  179. data/lib/ddtrace/contrib/grape/integration.rb +1 -0
  180. data/lib/ddtrace/contrib/grape/patcher.rb +1 -0
  181. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +1 -0
  182. data/lib/ddtrace/contrib/graphql/ext.rb +1 -0
  183. data/lib/ddtrace/contrib/graphql/integration.rb +1 -0
  184. data/lib/ddtrace/contrib/graphql/patcher.rb +1 -0
  185. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +2 -0
  186. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +5 -0
  187. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -0
  188. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +3 -4
  189. data/lib/ddtrace/contrib/grpc/ext.rb +1 -0
  190. data/lib/ddtrace/contrib/grpc/integration.rb +1 -0
  191. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +1 -0
  192. data/lib/ddtrace/contrib/grpc/patcher.rb +2 -0
  193. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -0
  194. data/lib/ddtrace/contrib/http/configuration/settings.rb +1 -0
  195. data/lib/ddtrace/contrib/http/ext.rb +1 -0
  196. data/lib/ddtrace/contrib/http/instrumentation.rb +1 -0
  197. data/lib/ddtrace/contrib/http/integration.rb +1 -0
  198. data/lib/ddtrace/contrib/http/patcher.rb +1 -0
  199. data/lib/ddtrace/contrib/http_annotation_helper.rb +1 -0
  200. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +1 -0
  201. data/lib/ddtrace/contrib/httpclient/ext.rb +1 -0
  202. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +1 -0
  203. data/lib/ddtrace/contrib/httpclient/integration.rb +1 -0
  204. data/lib/ddtrace/contrib/httpclient/patcher.rb +2 -1
  205. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +1 -0
  206. data/lib/ddtrace/contrib/httprb/ext.rb +1 -0
  207. data/lib/ddtrace/contrib/httprb/instrumentation.rb +1 -0
  208. data/lib/ddtrace/contrib/httprb/integration.rb +1 -0
  209. data/lib/ddtrace/contrib/httprb/patcher.rb +2 -1
  210. data/lib/ddtrace/contrib/integration.rb +1 -0
  211. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +1 -0
  212. data/lib/ddtrace/contrib/kafka/consumer_event.rb +1 -0
  213. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +1 -0
  214. data/lib/ddtrace/contrib/kafka/event.rb +1 -0
  215. data/lib/ddtrace/contrib/kafka/events.rb +1 -0
  216. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +1 -0
  217. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +1 -0
  218. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +1 -0
  219. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +1 -0
  220. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +1 -0
  221. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +1 -0
  222. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +1 -0
  223. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +1 -0
  224. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +1 -0
  225. data/lib/ddtrace/contrib/kafka/ext.rb +1 -0
  226. data/lib/ddtrace/contrib/kafka/integration.rb +1 -0
  227. data/lib/ddtrace/contrib/kafka/patcher.rb +1 -0
  228. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +19 -0
  229. data/lib/ddtrace/contrib/lograge/ext.rb +11 -0
  230. data/lib/ddtrace/contrib/lograge/instrumentation.rb +39 -0
  231. data/lib/ddtrace/contrib/lograge/integration.rb +46 -0
  232. data/lib/ddtrace/contrib/lograge/patcher.rb +26 -0
  233. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +1 -0
  234. data/lib/ddtrace/contrib/mongodb/ext.rb +1 -0
  235. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -0
  236. data/lib/ddtrace/contrib/mongodb/integration.rb +1 -0
  237. data/lib/ddtrace/contrib/mongodb/parsers.rb +1 -0
  238. data/lib/ddtrace/contrib/mongodb/patcher.rb +1 -0
  239. data/lib/ddtrace/contrib/mongodb/subscribers.rb +1 -0
  240. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +1 -0
  241. data/lib/ddtrace/contrib/mysql2/ext.rb +1 -0
  242. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -0
  243. data/lib/ddtrace/contrib/mysql2/integration.rb +1 -0
  244. data/lib/ddtrace/contrib/mysql2/patcher.rb +1 -0
  245. data/lib/ddtrace/contrib/patchable.rb +1 -0
  246. data/lib/ddtrace/contrib/patcher.rb +2 -1
  247. data/lib/ddtrace/contrib/presto/configuration/settings.rb +1 -0
  248. data/lib/ddtrace/contrib/presto/ext.rb +1 -0
  249. data/lib/ddtrace/contrib/presto/instrumentation.rb +1 -0
  250. data/lib/ddtrace/contrib/presto/integration.rb +1 -0
  251. data/lib/ddtrace/contrib/presto/patcher.rb +1 -0
  252. data/lib/ddtrace/contrib/qless/configuration/settings.rb +1 -0
  253. data/lib/ddtrace/contrib/qless/ext.rb +1 -0
  254. data/lib/ddtrace/contrib/qless/integration.rb +1 -0
  255. data/lib/ddtrace/contrib/qless/patcher.rb +2 -0
  256. data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
  257. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
  258. data/lib/ddtrace/contrib/que/configuration/settings.rb +1 -0
  259. data/lib/ddtrace/contrib/que/ext.rb +1 -0
  260. data/lib/ddtrace/contrib/que/integration.rb +1 -0
  261. data/lib/ddtrace/contrib/que/patcher.rb +1 -0
  262. data/lib/ddtrace/contrib/que/tracer.rb +1 -0
  263. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +1 -0
  264. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  265. data/lib/ddtrace/contrib/racecar/events.rb +1 -0
  266. data/lib/ddtrace/contrib/racecar/events/batch.rb +1 -0
  267. data/lib/ddtrace/contrib/racecar/events/consume.rb +1 -0
  268. data/lib/ddtrace/contrib/racecar/events/message.rb +1 -0
  269. data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
  270. data/lib/ddtrace/contrib/racecar/integration.rb +1 -0
  271. data/lib/ddtrace/contrib/racecar/patcher.rb +1 -0
  272. data/lib/ddtrace/contrib/rack/configuration/settings.rb +1 -0
  273. data/lib/ddtrace/contrib/rack/ext.rb +1 -0
  274. data/lib/ddtrace/contrib/rack/integration.rb +1 -0
  275. data/lib/ddtrace/contrib/rack/middlewares.rb +2 -1
  276. data/lib/ddtrace/contrib/rack/patcher.rb +1 -0
  277. data/lib/ddtrace/contrib/rack/request_queue.rb +1 -0
  278. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +1 -0
  279. data/lib/ddtrace/contrib/rails/configuration/settings.rb +1 -0
  280. data/lib/ddtrace/contrib/rails/ext.rb +1 -0
  281. data/lib/ddtrace/contrib/rails/framework.rb +26 -1
  282. data/lib/ddtrace/contrib/rails/integration.rb +1 -0
  283. data/lib/ddtrace/contrib/rails/log_injection.rb +1 -40
  284. data/lib/ddtrace/contrib/rails/middlewares.rb +1 -0
  285. data/lib/ddtrace/contrib/rails/patcher.rb +12 -9
  286. data/lib/ddtrace/contrib/rails/railtie.rb +1 -0
  287. data/lib/ddtrace/contrib/rails/utils.rb +1 -0
  288. data/lib/ddtrace/contrib/rake/configuration/settings.rb +1 -0
  289. data/lib/ddtrace/contrib/rake/ext.rb +1 -0
  290. data/lib/ddtrace/contrib/rake/instrumentation.rb +1 -0
  291. data/lib/ddtrace/contrib/rake/integration.rb +1 -0
  292. data/lib/ddtrace/contrib/rake/patcher.rb +1 -0
  293. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +1 -0
  294. data/lib/ddtrace/contrib/redis/configuration/settings.rb +1 -0
  295. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  296. data/lib/ddtrace/contrib/redis/integration.rb +1 -0
  297. data/lib/ddtrace/contrib/redis/patcher.rb +1 -0
  298. data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
  299. data/lib/ddtrace/contrib/redis/tags.rb +1 -0
  300. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +1 -0
  301. data/lib/ddtrace/contrib/registerable.rb +3 -2
  302. data/lib/ddtrace/contrib/registry.rb +1 -0
  303. data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
  304. data/lib/ddtrace/contrib/resque/ext.rb +1 -0
  305. data/lib/ddtrace/contrib/resque/integration.rb +1 -0
  306. data/lib/ddtrace/contrib/resque/patcher.rb +1 -0
  307. data/lib/ddtrace/contrib/resque/resque_job.rb +1 -0
  308. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +1 -0
  309. data/lib/ddtrace/contrib/rest_client/ext.rb +1 -0
  310. data/lib/ddtrace/contrib/rest_client/integration.rb +1 -0
  311. data/lib/ddtrace/contrib/rest_client/patcher.rb +2 -0
  312. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -0
  313. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +19 -0
  314. data/lib/ddtrace/contrib/semantic_logger/ext.rb +11 -0
  315. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +43 -0
  316. data/lib/ddtrace/contrib/semantic_logger/integration.rb +48 -0
  317. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +26 -0
  318. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +1 -0
  319. data/lib/ddtrace/contrib/sequel/database.rb +1 -0
  320. data/lib/ddtrace/contrib/sequel/dataset.rb +1 -0
  321. data/lib/ddtrace/contrib/sequel/ext.rb +1 -0
  322. data/lib/ddtrace/contrib/sequel/integration.rb +1 -0
  323. data/lib/ddtrace/contrib/sequel/patcher.rb +1 -0
  324. data/lib/ddtrace/contrib/sequel/utils.rb +1 -0
  325. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  326. data/lib/ddtrace/contrib/shoryuken/ext.rb +1 -0
  327. data/lib/ddtrace/contrib/shoryuken/integration.rb +1 -0
  328. data/lib/ddtrace/contrib/shoryuken/patcher.rb +1 -0
  329. data/lib/ddtrace/contrib/shoryuken/tracer.rb +1 -0
  330. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +1 -0
  331. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
  332. data/lib/ddtrace/contrib/sidekiq/ext.rb +1 -0
  333. data/lib/ddtrace/contrib/sidekiq/integration.rb +1 -0
  334. data/lib/ddtrace/contrib/sidekiq/patcher.rb +1 -0
  335. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
  336. data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -0
  337. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +1 -0
  338. data/lib/ddtrace/contrib/sinatra/env.rb +1 -0
  339. data/lib/ddtrace/contrib/sinatra/ext.rb +1 -0
  340. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -0
  341. data/lib/ddtrace/contrib/sinatra/integration.rb +1 -0
  342. data/lib/ddtrace/contrib/sinatra/patcher.rb +2 -0
  343. data/lib/ddtrace/contrib/sinatra/tracer.rb +13 -3
  344. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +8 -1
  345. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
  346. data/lib/ddtrace/contrib/sneakers/ext.rb +1 -0
  347. data/lib/ddtrace/contrib/sneakers/integration.rb +1 -0
  348. data/lib/ddtrace/contrib/sneakers/patcher.rb +1 -0
  349. data/lib/ddtrace/contrib/sneakers/tracer.rb +1 -0
  350. data/lib/ddtrace/contrib/status_code_matcher.rb +1 -0
  351. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +1 -0
  352. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +1 -0
  353. data/lib/ddtrace/contrib/sucker_punch/ext.rb +1 -0
  354. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +1 -0
  355. data/lib/ddtrace/contrib/sucker_punch/integration.rb +1 -0
  356. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +2 -0
  357. data/lib/ddtrace/correlation.rb +2 -1
  358. data/lib/ddtrace/diagnostics/environment_logger.rb +4 -3
  359. data/lib/ddtrace/diagnostics/health.rb +1 -0
  360. data/lib/ddtrace/distributed_tracing/headers/b3.rb +1 -0
  361. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +1 -0
  362. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -0
  363. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  364. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -0
  365. data/lib/ddtrace/encoding.rb +3 -0
  366. data/lib/ddtrace/error.rb +1 -0
  367. data/lib/ddtrace/event.rb +1 -0
  368. data/lib/ddtrace/ext/analytics.rb +1 -0
  369. data/lib/ddtrace/ext/app_types.rb +1 -0
  370. data/lib/ddtrace/ext/correlation.rb +1 -0
  371. data/lib/ddtrace/ext/diagnostics.rb +1 -0
  372. data/lib/ddtrace/ext/distributed.rb +1 -0
  373. data/lib/ddtrace/ext/environment.rb +8 -0
  374. data/lib/ddtrace/ext/errors.rb +1 -0
  375. data/lib/ddtrace/ext/forced_tracing.rb +1 -0
  376. data/lib/ddtrace/ext/git.rb +10 -1
  377. data/lib/ddtrace/ext/http.rb +1 -0
  378. data/lib/ddtrace/ext/integration.rb +1 -0
  379. data/lib/ddtrace/ext/manual_tracing.rb +1 -0
  380. data/lib/ddtrace/ext/metrics.rb +1 -0
  381. data/lib/ddtrace/ext/net.rb +1 -0
  382. data/lib/ddtrace/ext/priority.rb +1 -0
  383. data/lib/ddtrace/ext/profiling.rb +3 -0
  384. data/lib/ddtrace/ext/runtime.rb +1 -9
  385. data/lib/ddtrace/ext/sampling.rb +1 -0
  386. data/lib/ddtrace/ext/sql.rb +1 -0
  387. data/lib/ddtrace/ext/test.rb +1 -0
  388. data/lib/ddtrace/ext/transport.rb +1 -0
  389. data/lib/ddtrace/forced_tracing.rb +1 -0
  390. data/lib/ddtrace/logger.rb +1 -0
  391. data/lib/ddtrace/metrics.rb +60 -33
  392. data/lib/ddtrace/opentelemetry/extensions.rb +1 -0
  393. data/lib/ddtrace/opentelemetry/span.rb +1 -0
  394. data/lib/ddtrace/opentracer.rb +1 -0
  395. data/lib/ddtrace/opentracer/binary_propagator.rb +1 -0
  396. data/lib/ddtrace/opentracer/carrier.rb +1 -0
  397. data/lib/ddtrace/opentracer/distributed_headers.rb +1 -0
  398. data/lib/ddtrace/opentracer/global_tracer.rb +1 -0
  399. data/lib/ddtrace/opentracer/propagator.rb +1 -0
  400. data/lib/ddtrace/opentracer/rack_propagator.rb +1 -0
  401. data/lib/ddtrace/opentracer/scope.rb +1 -0
  402. data/lib/ddtrace/opentracer/scope_manager.rb +1 -0
  403. data/lib/ddtrace/opentracer/span.rb +1 -0
  404. data/lib/ddtrace/opentracer/span_context.rb +1 -0
  405. data/lib/ddtrace/opentracer/span_context_factory.rb +1 -0
  406. data/lib/ddtrace/opentracer/text_map_propagator.rb +1 -0
  407. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  408. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +1 -0
  409. data/lib/ddtrace/opentracer/tracer.rb +1 -0
  410. data/lib/ddtrace/patcher.rb +1 -0
  411. data/lib/ddtrace/pin.rb +1 -0
  412. data/lib/ddtrace/pipeline.rb +1 -0
  413. data/lib/ddtrace/pipeline/span_filter.rb +1 -0
  414. data/lib/ddtrace/pipeline/span_processor.rb +1 -0
  415. data/lib/ddtrace/profiling.rb +64 -20
  416. data/lib/ddtrace/profiling/backtrace_location.rb +1 -0
  417. data/lib/ddtrace/profiling/buffer.rb +1 -0
  418. data/lib/ddtrace/profiling/collectors/stack.rb +11 -16
  419. data/lib/ddtrace/profiling/encoding/profile.rb +1 -0
  420. data/lib/ddtrace/profiling/event.rb +1 -0
  421. data/lib/ddtrace/profiling/events/stack.rb +16 -37
  422. data/lib/ddtrace/profiling/exporter.rb +1 -0
  423. data/lib/ddtrace/profiling/ext/cpu.rb +16 -1
  424. data/lib/ddtrace/profiling/ext/cthread.rb +1 -0
  425. data/lib/ddtrace/profiling/ext/forking.rb +1 -0
  426. data/lib/ddtrace/profiling/flush.rb +10 -9
  427. data/lib/ddtrace/profiling/native_extension.rb +18 -0
  428. data/lib/ddtrace/profiling/pprof/builder.rb +1 -0
  429. data/lib/ddtrace/profiling/pprof/converter.rb +1 -0
  430. data/lib/ddtrace/profiling/pprof/message_set.rb +4 -1
  431. data/lib/ddtrace/profiling/pprof/payload.rb +2 -1
  432. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +1 -0
  433. data/lib/ddtrace/profiling/pprof/stack_sample.rb +16 -5
  434. data/lib/ddtrace/profiling/pprof/string_table.rb +1 -0
  435. data/lib/ddtrace/profiling/pprof/template.rb +1 -0
  436. data/lib/ddtrace/profiling/preload.rb +1 -0
  437. data/lib/ddtrace/profiling/profiler.rb +1 -0
  438. data/lib/ddtrace/profiling/recorder.rb +3 -2
  439. data/lib/ddtrace/profiling/scheduler.rb +21 -3
  440. data/lib/ddtrace/profiling/tasks/setup.rb +9 -4
  441. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +41 -0
  442. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +46 -0
  443. data/lib/ddtrace/profiling/transport/client.rb +3 -0
  444. data/lib/ddtrace/profiling/transport/http.rb +29 -27
  445. data/lib/ddtrace/profiling/transport/http/api.rb +1 -0
  446. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +1 -0
  447. data/lib/ddtrace/profiling/transport/http/api/instance.rb +1 -0
  448. data/lib/ddtrace/profiling/transport/http/api/spec.rb +1 -0
  449. data/lib/ddtrace/profiling/transport/http/builder.rb +1 -0
  450. data/lib/ddtrace/profiling/transport/http/client.rb +1 -0
  451. data/lib/ddtrace/profiling/transport/http/response.rb +1 -0
  452. data/lib/ddtrace/profiling/transport/io.rb +1 -0
  453. data/lib/ddtrace/profiling/transport/io/client.rb +1 -0
  454. data/lib/ddtrace/profiling/transport/io/response.rb +1 -0
  455. data/lib/ddtrace/profiling/transport/parcel.rb +1 -0
  456. data/lib/ddtrace/profiling/transport/request.rb +1 -0
  457. data/lib/ddtrace/profiling/transport/response.rb +1 -0
  458. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  459. data/lib/ddtrace/propagation/http_propagator.rb +3 -2
  460. data/lib/ddtrace/quantization/hash.rb +1 -0
  461. data/lib/ddtrace/quantization/http.rb +3 -0
  462. data/lib/ddtrace/runtime/metrics.rb +19 -10
  463. data/lib/ddtrace/sampler.rb +1 -0
  464. data/lib/ddtrace/sampling.rb +1 -0
  465. data/lib/ddtrace/sampling/matcher.rb +1 -0
  466. data/lib/ddtrace/sampling/rate_limiter.rb +1 -0
  467. data/lib/ddtrace/sampling/rule.rb +2 -1
  468. data/lib/ddtrace/sampling/rule_sampler.rb +2 -1
  469. data/lib/ddtrace/span.rb +37 -12
  470. data/lib/ddtrace/sync_writer.rb +3 -2
  471. data/lib/ddtrace/tasks/exec.rb +4 -5
  472. data/lib/ddtrace/tasks/help.rb +1 -0
  473. data/lib/ddtrace/tracer.rb +6 -14
  474. data/lib/ddtrace/transport/http.rb +10 -7
  475. data/lib/ddtrace/transport/http/adapters/net.rb +1 -0
  476. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  477. data/lib/ddtrace/transport/http/adapters/test.rb +1 -0
  478. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +1 -0
  479. data/lib/ddtrace/transport/http/api.rb +1 -0
  480. data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
  481. data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
  482. data/lib/ddtrace/transport/http/api/instance.rb +1 -0
  483. data/lib/ddtrace/transport/http/api/map.rb +1 -0
  484. data/lib/ddtrace/transport/http/api/spec.rb +1 -0
  485. data/lib/ddtrace/transport/http/builder.rb +1 -0
  486. data/lib/ddtrace/transport/http/client.rb +3 -1
  487. data/lib/ddtrace/transport/http/env.rb +1 -0
  488. data/lib/ddtrace/transport/http/response.rb +1 -0
  489. data/lib/ddtrace/transport/http/statistics.rb +1 -0
  490. data/lib/ddtrace/transport/http/traces.rb +1 -0
  491. data/lib/ddtrace/transport/io.rb +1 -0
  492. data/lib/ddtrace/transport/io/client.rb +2 -1
  493. data/lib/ddtrace/transport/io/response.rb +1 -0
  494. data/lib/ddtrace/transport/io/traces.rb +3 -0
  495. data/lib/ddtrace/transport/parcel.rb +3 -0
  496. data/lib/ddtrace/transport/request.rb +1 -0
  497. data/lib/ddtrace/transport/response.rb +1 -0
  498. data/lib/ddtrace/transport/statistics.rb +1 -0
  499. data/lib/ddtrace/transport/traces.rb +3 -2
  500. data/lib/ddtrace/utils.rb +14 -2
  501. data/lib/ddtrace/utils/compression.rb +1 -0
  502. data/lib/ddtrace/utils/database.rb +1 -0
  503. data/lib/ddtrace/utils/forking.rb +1 -0
  504. data/lib/ddtrace/utils/object_set.rb +1 -0
  505. data/lib/ddtrace/utils/only_once.rb +1 -0
  506. data/lib/ddtrace/utils/sequence.rb +1 -0
  507. data/lib/ddtrace/utils/string_table.rb +1 -0
  508. data/lib/ddtrace/utils/time.rb +3 -0
  509. data/lib/ddtrace/vendor/active_record/connection_specification.rb +1 -0
  510. data/lib/ddtrace/vendor/multipart-post/multipart.rb +1 -0
  511. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +1 -0
  512. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -0
  513. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +1 -0
  514. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +1 -0
  515. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +1 -0
  516. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +1 -0
  517. data/lib/ddtrace/version.rb +2 -1
  518. data/lib/ddtrace/worker.rb +1 -0
  519. data/lib/ddtrace/workers.rb +2 -1
  520. data/lib/ddtrace/workers/async.rb +2 -1
  521. data/lib/ddtrace/workers/loop.rb +1 -0
  522. data/lib/ddtrace/workers/polling.rb +1 -0
  523. data/lib/ddtrace/workers/queue.rb +1 -0
  524. data/lib/ddtrace/workers/runtime_metrics.rb +1 -0
  525. data/lib/ddtrace/workers/trace_writer.rb +3 -2
  526. data/lib/ddtrace/writer.rb +3 -2
  527. metadata +34 -562
  528. data/.circleci/config.yml +0 -870
  529. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -83
  530. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -83
  531. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -85
  532. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -83
  533. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -83
  534. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -83
  535. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -83
  536. data/.circleci/images/primary/Dockerfile-3.0.0 +0 -73
  537. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +0 -88
  538. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +0 -73
  539. data/.circleci/images/primary/Dockerfile-truffleruby-21.1.0 +0 -73
  540. data/.dockerignore +0 -0
  541. data/.env +0 -26
  542. data/.github/CODEOWNERS +0 -1
  543. data/.github/workflows/add-milestone-to-pull-requests.yml +0 -42
  544. data/.github/workflows/create-next-milestone.yml +0 -20
  545. data/.gitlab-ci.yml +0 -27
  546. data/.rspec +0 -1
  547. data/.rubocop.yml +0 -351
  548. data/.rubocop_todo.yml +0 -438
  549. data/.simplecov +0 -47
  550. data/Appraisals +0 -1323
  551. data/Gemfile +0 -69
  552. data/Rakefile +0 -939
  553. data/benchmarks/data/profiler-submission-marshal.gz +0 -0
  554. data/benchmarks/postgres_database.yml +0 -9
  555. data/benchmarks/profiler_sample_loop.rb +0 -69
  556. data/benchmarks/profiler_submission.rb +0 -93
  557. data/benchmarks/sidekiq_test.rb +0 -154
  558. data/docker-compose.yml +0 -414
  559. data/gemfiles/jruby_9.2.0.0_contrib.gemfile +0 -79
  560. data/gemfiles/jruby_9.2.0.0_contrib.gemfile.lock +0 -1518
  561. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile +0 -35
  562. data/gemfiles/jruby_9.2.0.0_contrib_old.gemfile.lock +0 -157
  563. data/gemfiles/jruby_9.2.0.0_core_old.gemfile +0 -34
  564. data/gemfiles/jruby_9.2.0.0_core_old.gemfile.lock +0 -153
  565. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile +0 -35
  566. data/gemfiles/jruby_9.2.0.0_cucumber3.gemfile.lock +0 -174
  567. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile +0 -35
  568. data/gemfiles/jruby_9.2.0.0_cucumber4.gemfile.lock +0 -206
  569. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile +0 -35
  570. data/gemfiles/jruby_9.2.0.0_cucumber5.gemfile.lock +0 -206
  571. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile +0 -40
  572. data/gemfiles/jruby_9.2.0.0_rails5_mysql2.gemfile.lock +0 -271
  573. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile +0 -40
  574. data/gemfiles/jruby_9.2.0.0_rails5_postgres.gemfile.lock +0 -271
  575. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile +0 -41
  576. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis.gemfile.lock +0 -273
  577. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile +0 -41
  578. data/gemfiles/jruby_9.2.0.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  579. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile +0 -42
  580. data/gemfiles/jruby_9.2.0.0_rails5_postgres_sidekiq.gemfile.lock +0 -279
  581. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile +0 -40
  582. data/gemfiles/jruby_9.2.0.0_rails61_mysql2.gemfile.lock +0 -290
  583. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile +0 -40
  584. data/gemfiles/jruby_9.2.0.0_rails61_postgres.gemfile.lock +0 -290
  585. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile +0 -41
  586. data/gemfiles/jruby_9.2.0.0_rails61_postgres_redis.gemfile.lock +0 -292
  587. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile +0 -41
  588. data/gemfiles/jruby_9.2.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -297
  589. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile +0 -40
  590. data/gemfiles/jruby_9.2.0.0_rails6_mysql2.gemfile.lock +0 -287
  591. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile +0 -40
  592. data/gemfiles/jruby_9.2.0.0_rails6_postgres.gemfile.lock +0 -287
  593. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile +0 -41
  594. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis.gemfile.lock +0 -289
  595. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile +0 -41
  596. data/gemfiles/jruby_9.2.0.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  597. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile +0 -42
  598. data/gemfiles/jruby_9.2.0.0_rails6_postgres_sidekiq.gemfile.lock +0 -295
  599. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile +0 -36
  600. data/gemfiles/jruby_9.2.0.0_resque2_redis3.gemfile.lock +0 -180
  601. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile +0 -36
  602. data/gemfiles/jruby_9.2.0.0_resque2_redis4.gemfile.lock +0 -180
  603. data/gemfiles/jruby_9.2.11.1_contrib.gemfile +0 -79
  604. data/gemfiles/jruby_9.2.11.1_contrib.gemfile.lock +0 -1518
  605. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile +0 -35
  606. data/gemfiles/jruby_9.2.11.1_contrib_old.gemfile.lock +0 -157
  607. data/gemfiles/jruby_9.2.11.1_core_old.gemfile +0 -34
  608. data/gemfiles/jruby_9.2.11.1_core_old.gemfile.lock +0 -153
  609. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile +0 -35
  610. data/gemfiles/jruby_9.2.11.1_cucumber3.gemfile.lock +0 -174
  611. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile +0 -35
  612. data/gemfiles/jruby_9.2.11.1_cucumber4.gemfile.lock +0 -206
  613. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile +0 -35
  614. data/gemfiles/jruby_9.2.11.1_cucumber5.gemfile.lock +0 -206
  615. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile +0 -40
  616. data/gemfiles/jruby_9.2.11.1_rails5_mysql2.gemfile.lock +0 -271
  617. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile +0 -40
  618. data/gemfiles/jruby_9.2.11.1_rails5_postgres.gemfile.lock +0 -271
  619. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile +0 -41
  620. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis.gemfile.lock +0 -273
  621. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile +0 -41
  622. data/gemfiles/jruby_9.2.11.1_rails5_postgres_redis_activesupport.gemfile.lock +0 -273
  623. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile +0 -42
  624. data/gemfiles/jruby_9.2.11.1_rails5_postgres_sidekiq.gemfile.lock +0 -279
  625. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile +0 -40
  626. data/gemfiles/jruby_9.2.11.1_rails61_mysql2.gemfile.lock +0 -290
  627. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile +0 -40
  628. data/gemfiles/jruby_9.2.11.1_rails61_postgres.gemfile.lock +0 -290
  629. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile +0 -41
  630. data/gemfiles/jruby_9.2.11.1_rails61_postgres_redis.gemfile.lock +0 -292
  631. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile +0 -41
  632. data/gemfiles/jruby_9.2.11.1_rails61_postgres_sidekiq.gemfile.lock +0 -297
  633. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile +0 -40
  634. data/gemfiles/jruby_9.2.11.1_rails6_mysql2.gemfile.lock +0 -287
  635. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile +0 -40
  636. data/gemfiles/jruby_9.2.11.1_rails6_postgres.gemfile.lock +0 -287
  637. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile +0 -41
  638. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis.gemfile.lock +0 -289
  639. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile +0 -41
  640. data/gemfiles/jruby_9.2.11.1_rails6_postgres_redis_activesupport.gemfile.lock +0 -289
  641. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile +0 -42
  642. data/gemfiles/jruby_9.2.11.1_rails6_postgres_sidekiq.gemfile.lock +0 -295
  643. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile +0 -36
  644. data/gemfiles/jruby_9.2.11.1_resque2_redis3.gemfile.lock +0 -180
  645. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile +0 -36
  646. data/gemfiles/jruby_9.2.11.1_resque2_redis4.gemfile.lock +0 -180
  647. data/gemfiles/ruby_2.1.10_contrib_old.gemfile +0 -66
  648. data/gemfiles/ruby_2.1.10_contrib_old.gemfile.lock +0 -305
  649. data/gemfiles/ruby_2.1.10_core_old.gemfile +0 -33
  650. data/gemfiles/ruby_2.1.10_core_old.gemfile.lock +0 -118
  651. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile +0 -39
  652. data/gemfiles/ruby_2.1.10_rails30_postgres.gemfile.lock +0 -196
  653. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile +0 -40
  654. data/gemfiles/ruby_2.1.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  655. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile +0 -42
  656. data/gemfiles/ruby_2.1.10_rails32_mysql2.gemfile.lock +0 -215
  657. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile +0 -39
  658. data/gemfiles/ruby_2.1.10_rails32_postgres.gemfile.lock +0 -204
  659. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile +0 -41
  660. data/gemfiles/ruby_2.1.10_rails32_postgres_redis.gemfile.lock +0 -223
  661. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile +0 -40
  662. data/gemfiles/ruby_2.1.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  663. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile +0 -38
  664. data/gemfiles/ruby_2.1.10_rails4_mysql2.gemfile.lock +0 -218
  665. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile +0 -38
  666. data/gemfiles/ruby_2.1.10_rails4_postgres.gemfile.lock +0 -218
  667. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile +0 -40
  668. data/gemfiles/ruby_2.1.10_rails4_postgres_redis.gemfile.lock +0 -237
  669. data/gemfiles/ruby_2.2.10_contrib.gemfile +0 -73
  670. data/gemfiles/ruby_2.2.10_contrib.gemfile.lock +0 -1450
  671. data/gemfiles/ruby_2.2.10_core_old.gemfile +0 -33
  672. data/gemfiles/ruby_2.2.10_core_old.gemfile.lock +0 -118
  673. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile +0 -39
  674. data/gemfiles/ruby_2.2.10_rails30_postgres.gemfile.lock +0 -196
  675. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile +0 -40
  676. data/gemfiles/ruby_2.2.10_rails30_postgres_sidekiq.gemfile.lock +0 -205
  677. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile +0 -41
  678. data/gemfiles/ruby_2.2.10_rails32_mysql2.gemfile.lock +0 -212
  679. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile +0 -39
  680. data/gemfiles/ruby_2.2.10_rails32_postgres.gemfile.lock +0 -204
  681. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile +0 -41
  682. data/gemfiles/ruby_2.2.10_rails32_postgres_redis.gemfile.lock +0 -223
  683. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile +0 -40
  684. data/gemfiles/ruby_2.2.10_rails32_postgres_sidekiq.gemfile.lock +0 -213
  685. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile +0 -38
  686. data/gemfiles/ruby_2.2.10_rails4_mysql2.gemfile.lock +0 -218
  687. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile +0 -38
  688. data/gemfiles/ruby_2.2.10_rails4_postgres.gemfile.lock +0 -218
  689. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile +0 -40
  690. data/gemfiles/ruby_2.2.10_rails4_postgres_redis.gemfile.lock +0 -237
  691. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile +0 -40
  692. data/gemfiles/ruby_2.2.10_rails4_postgres_sidekiq.gemfile.lock +0 -229
  693. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile +0 -38
  694. data/gemfiles/ruby_2.2.10_rails5_mysql2.gemfile.lock +0 -234
  695. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile +0 -38
  696. data/gemfiles/ruby_2.2.10_rails5_postgres.gemfile.lock +0 -234
  697. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile +0 -39
  698. data/gemfiles/ruby_2.2.10_rails5_postgres_redis.gemfile.lock +0 -236
  699. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile +0 -39
  700. data/gemfiles/ruby_2.2.10_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  701. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile +0 -40
  702. data/gemfiles/ruby_2.2.10_rails5_postgres_sidekiq.gemfile.lock +0 -245
  703. data/gemfiles/ruby_2.3.8_contrib.gemfile +0 -73
  704. data/gemfiles/ruby_2.3.8_contrib.gemfile.lock +0 -1459
  705. data/gemfiles/ruby_2.3.8_contrib_old.gemfile +0 -34
  706. data/gemfiles/ruby_2.3.8_contrib_old.gemfile.lock +0 -127
  707. data/gemfiles/ruby_2.3.8_core_old.gemfile +0 -33
  708. data/gemfiles/ruby_2.3.8_core_old.gemfile.lock +0 -123
  709. data/gemfiles/ruby_2.3.8_cucumber3.gemfile +0 -34
  710. data/gemfiles/ruby_2.3.8_cucumber3.gemfile.lock +0 -144
  711. data/gemfiles/ruby_2.3.8_cucumber4.gemfile +0 -34
  712. data/gemfiles/ruby_2.3.8_cucumber4.gemfile.lock +0 -174
  713. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile +0 -39
  714. data/gemfiles/ruby_2.3.8_rails30_postgres.gemfile.lock +0 -201
  715. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile +0 -40
  716. data/gemfiles/ruby_2.3.8_rails30_postgres_sidekiq.gemfile.lock +0 -210
  717. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile +0 -41
  718. data/gemfiles/ruby_2.3.8_rails32_mysql2.gemfile.lock +0 -217
  719. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile +0 -39
  720. data/gemfiles/ruby_2.3.8_rails32_postgres.gemfile.lock +0 -209
  721. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile +0 -41
  722. data/gemfiles/ruby_2.3.8_rails32_postgres_redis.gemfile.lock +0 -228
  723. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile +0 -40
  724. data/gemfiles/ruby_2.3.8_rails32_postgres_sidekiq.gemfile.lock +0 -218
  725. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile +0 -38
  726. data/gemfiles/ruby_2.3.8_rails4_mysql2.gemfile.lock +0 -223
  727. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile +0 -38
  728. data/gemfiles/ruby_2.3.8_rails4_postgres.gemfile.lock +0 -223
  729. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile +0 -40
  730. data/gemfiles/ruby_2.3.8_rails4_postgres_redis.gemfile.lock +0 -242
  731. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile +0 -40
  732. data/gemfiles/ruby_2.3.8_rails4_postgres_sidekiq.gemfile.lock +0 -234
  733. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile +0 -37
  734. data/gemfiles/ruby_2.3.8_rails5_mysql2.gemfile.lock +0 -234
  735. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile +0 -37
  736. data/gemfiles/ruby_2.3.8_rails5_postgres.gemfile.lock +0 -234
  737. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile +0 -38
  738. data/gemfiles/ruby_2.3.8_rails5_postgres_redis.gemfile.lock +0 -236
  739. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile +0 -38
  740. data/gemfiles/ruby_2.3.8_rails5_postgres_redis_activesupport.gemfile.lock +0 -236
  741. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile +0 -39
  742. data/gemfiles/ruby_2.3.8_rails5_postgres_sidekiq.gemfile.lock +0 -245
  743. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile +0 -35
  744. data/gemfiles/ruby_2.3.8_resque2_redis3.gemfile.lock +0 -150
  745. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile +0 -35
  746. data/gemfiles/ruby_2.3.8_resque2_redis4.gemfile.lock +0 -150
  747. data/gemfiles/ruby_2.4.6_contrib.gemfile +0 -78
  748. data/gemfiles/ruby_2.4.6_contrib.gemfile.lock +0 -1513
  749. data/gemfiles/ruby_2.4.6_contrib_old.gemfile +0 -38
  750. data/gemfiles/ruby_2.4.6_contrib_old.gemfile.lock +0 -155
  751. data/gemfiles/ruby_2.4.6_core_old.gemfile +0 -37
  752. data/gemfiles/ruby_2.4.6_core_old.gemfile.lock +0 -151
  753. data/gemfiles/ruby_2.4.6_cucumber3.gemfile +0 -38
  754. data/gemfiles/ruby_2.4.6_cucumber3.gemfile.lock +0 -172
  755. data/gemfiles/ruby_2.4.6_cucumber4.gemfile +0 -38
  756. data/gemfiles/ruby_2.4.6_cucumber4.gemfile.lock +0 -202
  757. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile +0 -41
  758. data/gemfiles/ruby_2.4.6_rails5_mysql2.gemfile.lock +0 -262
  759. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile +0 -41
  760. data/gemfiles/ruby_2.4.6_rails5_postgres.gemfile.lock +0 -262
  761. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile +0 -42
  762. data/gemfiles/ruby_2.4.6_rails5_postgres_redis.gemfile.lock +0 -264
  763. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile +0 -42
  764. data/gemfiles/ruby_2.4.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -264
  765. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile +0 -43
  766. data/gemfiles/ruby_2.4.6_rails5_postgres_sidekiq.gemfile.lock +0 -273
  767. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile +0 -39
  768. data/gemfiles/ruby_2.4.6_resque2_redis3.gemfile.lock +0 -178
  769. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile +0 -39
  770. data/gemfiles/ruby_2.4.6_resque2_redis4.gemfile.lock +0 -178
  771. data/gemfiles/ruby_2.5.6_contrib.gemfile +0 -83
  772. data/gemfiles/ruby_2.5.6_contrib.gemfile.lock +0 -1526
  773. data/gemfiles/ruby_2.5.6_contrib_old.gemfile +0 -39
  774. data/gemfiles/ruby_2.5.6_contrib_old.gemfile.lock +0 -165
  775. data/gemfiles/ruby_2.5.6_core_old.gemfile +0 -38
  776. data/gemfiles/ruby_2.5.6_core_old.gemfile.lock +0 -161
  777. data/gemfiles/ruby_2.5.6_cucumber3.gemfile +0 -39
  778. data/gemfiles/ruby_2.5.6_cucumber3.gemfile.lock +0 -182
  779. data/gemfiles/ruby_2.5.6_cucumber4.gemfile +0 -39
  780. data/gemfiles/ruby_2.5.6_cucumber4.gemfile.lock +0 -214
  781. data/gemfiles/ruby_2.5.6_cucumber5.gemfile +0 -39
  782. data/gemfiles/ruby_2.5.6_cucumber5.gemfile.lock +0 -214
  783. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile +0 -44
  784. data/gemfiles/ruby_2.5.6_rails5_mysql2.gemfile.lock +0 -276
  785. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile +0 -44
  786. data/gemfiles/ruby_2.5.6_rails5_postgres.gemfile.lock +0 -276
  787. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile +0 -45
  788. data/gemfiles/ruby_2.5.6_rails5_postgres_redis.gemfile.lock +0 -278
  789. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile +0 -45
  790. data/gemfiles/ruby_2.5.6_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  791. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile +0 -46
  792. data/gemfiles/ruby_2.5.6_rails5_postgres_sidekiq.gemfile.lock +0 -284
  793. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile +0 -44
  794. data/gemfiles/ruby_2.5.6_rails61_mysql2.gemfile.lock +0 -295
  795. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile +0 -44
  796. data/gemfiles/ruby_2.5.6_rails61_postgres.gemfile.lock +0 -295
  797. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile +0 -45
  798. data/gemfiles/ruby_2.5.6_rails61_postgres_redis.gemfile.lock +0 -297
  799. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile +0 -45
  800. data/gemfiles/ruby_2.5.6_rails61_postgres_sidekiq.gemfile.lock +0 -302
  801. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile +0 -44
  802. data/gemfiles/ruby_2.5.6_rails6_mysql2.gemfile.lock +0 -292
  803. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile +0 -44
  804. data/gemfiles/ruby_2.5.6_rails6_postgres.gemfile.lock +0 -292
  805. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile +0 -45
  806. data/gemfiles/ruby_2.5.6_rails6_postgres_redis.gemfile.lock +0 -294
  807. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile +0 -45
  808. data/gemfiles/ruby_2.5.6_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  809. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile +0 -46
  810. data/gemfiles/ruby_2.5.6_rails6_postgres_sidekiq.gemfile.lock +0 -300
  811. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile +0 -40
  812. data/gemfiles/ruby_2.5.6_resque2_redis3.gemfile.lock +0 -188
  813. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile +0 -40
  814. data/gemfiles/ruby_2.5.6_resque2_redis4.gemfile.lock +0 -188
  815. data/gemfiles/ruby_2.6.4_contrib.gemfile +0 -79
  816. data/gemfiles/ruby_2.6.4_contrib.gemfile.lock +0 -1524
  817. data/gemfiles/ruby_2.6.4_contrib_old.gemfile +0 -39
  818. data/gemfiles/ruby_2.6.4_contrib_old.gemfile.lock +0 -167
  819. data/gemfiles/ruby_2.6.4_core_old.gemfile +0 -38
  820. data/gemfiles/ruby_2.6.4_core_old.gemfile.lock +0 -163
  821. data/gemfiles/ruby_2.6.4_cucumber3.gemfile +0 -39
  822. data/gemfiles/ruby_2.6.4_cucumber3.gemfile.lock +0 -184
  823. data/gemfiles/ruby_2.6.4_cucumber4.gemfile +0 -39
  824. data/gemfiles/ruby_2.6.4_cucumber4.gemfile.lock +0 -216
  825. data/gemfiles/ruby_2.6.4_cucumber5.gemfile +0 -39
  826. data/gemfiles/ruby_2.6.4_cucumber5.gemfile.lock +0 -216
  827. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile +0 -42
  828. data/gemfiles/ruby_2.6.4_rails5_mysql2.gemfile.lock +0 -276
  829. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile +0 -42
  830. data/gemfiles/ruby_2.6.4_rails5_postgres.gemfile.lock +0 -276
  831. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile +0 -43
  832. data/gemfiles/ruby_2.6.4_rails5_postgres_redis.gemfile.lock +0 -278
  833. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile +0 -43
  834. data/gemfiles/ruby_2.6.4_rails5_postgres_redis_activesupport.gemfile.lock +0 -278
  835. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile +0 -44
  836. data/gemfiles/ruby_2.6.4_rails5_postgres_sidekiq.gemfile.lock +0 -284
  837. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile +0 -42
  838. data/gemfiles/ruby_2.6.4_rails61_mysql2.gemfile.lock +0 -295
  839. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile +0 -42
  840. data/gemfiles/ruby_2.6.4_rails61_postgres.gemfile.lock +0 -295
  841. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile +0 -43
  842. data/gemfiles/ruby_2.6.4_rails61_postgres_redis.gemfile.lock +0 -297
  843. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile +0 -43
  844. data/gemfiles/ruby_2.6.4_rails61_postgres_sidekiq.gemfile.lock +0 -302
  845. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile +0 -42
  846. data/gemfiles/ruby_2.6.4_rails6_mysql2.gemfile.lock +0 -292
  847. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile +0 -42
  848. data/gemfiles/ruby_2.6.4_rails6_postgres.gemfile.lock +0 -292
  849. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile +0 -43
  850. data/gemfiles/ruby_2.6.4_rails6_postgres_redis.gemfile.lock +0 -294
  851. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile +0 -43
  852. data/gemfiles/ruby_2.6.4_rails6_postgres_redis_activesupport.gemfile.lock +0 -294
  853. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile +0 -44
  854. data/gemfiles/ruby_2.6.4_rails6_postgres_sidekiq.gemfile.lock +0 -300
  855. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile +0 -40
  856. data/gemfiles/ruby_2.6.4_resque2_redis3.gemfile.lock +0 -190
  857. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile +0 -40
  858. data/gemfiles/ruby_2.6.4_resque2_redis4.gemfile.lock +0 -190
  859. data/gemfiles/ruby_2.7.0_contrib.gemfile +0 -78
  860. data/gemfiles/ruby_2.7.0_contrib.gemfile.lock +0 -1523
  861. data/gemfiles/ruby_2.7.0_contrib_old.gemfile +0 -39
  862. data/gemfiles/ruby_2.7.0_contrib_old.gemfile.lock +0 -167
  863. data/gemfiles/ruby_2.7.0_core_old.gemfile +0 -38
  864. data/gemfiles/ruby_2.7.0_core_old.gemfile.lock +0 -163
  865. data/gemfiles/ruby_2.7.0_cucumber3.gemfile +0 -39
  866. data/gemfiles/ruby_2.7.0_cucumber3.gemfile.lock +0 -184
  867. data/gemfiles/ruby_2.7.0_cucumber4.gemfile +0 -39
  868. data/gemfiles/ruby_2.7.0_cucumber4.gemfile.lock +0 -216
  869. data/gemfiles/ruby_2.7.0_cucumber5.gemfile +0 -39
  870. data/gemfiles/ruby_2.7.0_cucumber5.gemfile.lock +0 -216
  871. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile +0 -42
  872. data/gemfiles/ruby_2.7.0_rails5_mysql2.gemfile.lock +0 -276
  873. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile +0 -42
  874. data/gemfiles/ruby_2.7.0_rails5_postgres.gemfile.lock +0 -276
  875. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile +0 -44
  876. data/gemfiles/ruby_2.7.0_rails5_postgres_redis.gemfile.lock +0 -295
  877. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile +0 -44
  878. data/gemfiles/ruby_2.7.0_rails5_postgres_redis_activesupport.gemfile.lock +0 -295
  879. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile +0 -44
  880. data/gemfiles/ruby_2.7.0_rails5_postgres_sidekiq.gemfile.lock +0 -284
  881. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile +0 -42
  882. data/gemfiles/ruby_2.7.0_rails61_mysql2.gemfile.lock +0 -295
  883. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile +0 -42
  884. data/gemfiles/ruby_2.7.0_rails61_postgres.gemfile.lock +0 -295
  885. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile +0 -43
  886. data/gemfiles/ruby_2.7.0_rails61_postgres_redis.gemfile.lock +0 -297
  887. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile +0 -43
  888. data/gemfiles/ruby_2.7.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  889. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile +0 -42
  890. data/gemfiles/ruby_2.7.0_rails6_mysql2.gemfile.lock +0 -292
  891. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile +0 -42
  892. data/gemfiles/ruby_2.7.0_rails6_postgres.gemfile.lock +0 -292
  893. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile +0 -44
  894. data/gemfiles/ruby_2.7.0_rails6_postgres_redis.gemfile.lock +0 -311
  895. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile +0 -44
  896. data/gemfiles/ruby_2.7.0_rails6_postgres_redis_activesupport.gemfile.lock +0 -311
  897. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile +0 -44
  898. data/gemfiles/ruby_2.7.0_rails6_postgres_sidekiq.gemfile.lock +0 -300
  899. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile +0 -40
  900. data/gemfiles/ruby_2.7.0_resque2_redis3.gemfile.lock +0 -190
  901. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile +0 -40
  902. data/gemfiles/ruby_2.7.0_resque2_redis4.gemfile.lock +0 -190
  903. data/gemfiles/ruby_3.0.0_contrib.gemfile +0 -78
  904. data/gemfiles/ruby_3.0.0_contrib.gemfile.lock +0 -1540
  905. data/gemfiles/ruby_3.0.0_core_old.gemfile +0 -39
  906. data/gemfiles/ruby_3.0.0_core_old.gemfile.lock +0 -165
  907. data/gemfiles/ruby_3.0.0_cucumber3.gemfile +0 -40
  908. data/gemfiles/ruby_3.0.0_cucumber3.gemfile.lock +0 -186
  909. data/gemfiles/ruby_3.0.0_cucumber4.gemfile +0 -40
  910. data/gemfiles/ruby_3.0.0_cucumber4.gemfile.lock +0 -218
  911. data/gemfiles/ruby_3.0.0_cucumber5.gemfile +0 -40
  912. data/gemfiles/ruby_3.0.0_cucumber5.gemfile.lock +0 -218
  913. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile +0 -43
  914. data/gemfiles/ruby_3.0.0_rails61_mysql2.gemfile.lock +0 -295
  915. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile +0 -43
  916. data/gemfiles/ruby_3.0.0_rails61_postgres.gemfile.lock +0 -295
  917. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile +0 -44
  918. data/gemfiles/ruby_3.0.0_rails61_postgres_redis.gemfile.lock +0 -297
  919. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile +0 -44
  920. data/gemfiles/ruby_3.0.0_rails61_postgres_sidekiq.gemfile.lock +0 -302
  921. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile +0 -41
  922. data/gemfiles/ruby_3.0.0_resque2_redis3.gemfile.lock +0 -192
  923. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile +0 -41
  924. data/gemfiles/ruby_3.0.0_resque2_redis4.gemfile.lock +0 -192
  925. data/integration/README.md +0 -67
  926. data/integration/apps/rack/.dockerignore +0 -1
  927. data/integration/apps/rack/.envrc.sample +0 -1
  928. data/integration/apps/rack/.gitignore +0 -4
  929. data/integration/apps/rack/.rspec +0 -1
  930. data/integration/apps/rack/Dockerfile +0 -28
  931. data/integration/apps/rack/Dockerfile-ci +0 -11
  932. data/integration/apps/rack/Gemfile +0 -24
  933. data/integration/apps/rack/README.md +0 -93
  934. data/integration/apps/rack/app/acme.rb +0 -80
  935. data/integration/apps/rack/app/datadog.rb +0 -17
  936. data/integration/apps/rack/bin/run +0 -22
  937. data/integration/apps/rack/bin/setup +0 -17
  938. data/integration/apps/rack/bin/test +0 -24
  939. data/integration/apps/rack/config.ru +0 -6
  940. data/integration/apps/rack/config/puma.rb +0 -14
  941. data/integration/apps/rack/config/unicorn.rb +0 -23
  942. data/integration/apps/rack/docker-compose.ci.yml +0 -62
  943. data/integration/apps/rack/docker-compose.yml +0 -78
  944. data/integration/apps/rack/script/build-images +0 -38
  945. data/integration/apps/rack/script/ci +0 -51
  946. data/integration/apps/rack/spec/integration/basic_spec.rb +0 -10
  947. data/integration/apps/rack/spec/spec_helper.rb +0 -16
  948. data/integration/apps/rack/spec/support/integration_helper.rb +0 -22
  949. data/integration/apps/rails-five/.dockerignore +0 -1
  950. data/integration/apps/rails-five/.env +0 -3
  951. data/integration/apps/rails-five/.envrc.sample +0 -1
  952. data/integration/apps/rails-five/.gitignore +0 -30
  953. data/integration/apps/rails-five/Dockerfile +0 -25
  954. data/integration/apps/rails-five/Dockerfile-ci +0 -11
  955. data/integration/apps/rails-five/Gemfile +0 -104
  956. data/integration/apps/rails-five/README.md +0 -94
  957. data/integration/apps/rails-five/Rakefile +0 -6
  958. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +0 -4
  959. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +0 -4
  960. data/integration/apps/rails-five/app/controllers/application_controller.rb +0 -2
  961. data/integration/apps/rails-five/app/controllers/basic_controller.rb +0 -36
  962. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  963. data/integration/apps/rails-five/app/controllers/health_controller.rb +0 -9
  964. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +0 -12
  965. data/integration/apps/rails-five/app/jobs/application_job.rb +0 -2
  966. data/integration/apps/rails-five/app/jobs/test_job.rb +0 -12
  967. data/integration/apps/rails-five/app/mailers/application_mailer.rb +0 -4
  968. data/integration/apps/rails-five/app/models/application_record.rb +0 -3
  969. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  970. data/integration/apps/rails-five/app/models/test.rb +0 -2
  971. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +0 -13
  972. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +0 -1
  973. data/integration/apps/rails-five/bin/bundle +0 -3
  974. data/integration/apps/rails-five/bin/rails +0 -9
  975. data/integration/apps/rails-five/bin/rake +0 -9
  976. data/integration/apps/rails-five/bin/run +0 -24
  977. data/integration/apps/rails-five/bin/setup +0 -27
  978. data/integration/apps/rails-five/bin/spring +0 -17
  979. data/integration/apps/rails-five/bin/test +0 -21
  980. data/integration/apps/rails-five/bin/update +0 -28
  981. data/integration/apps/rails-five/config.ru +0 -5
  982. data/integration/apps/rails-five/config/application.rb +0 -97
  983. data/integration/apps/rails-five/config/boot.rb +0 -4
  984. data/integration/apps/rails-five/config/cable.yml +0 -10
  985. data/integration/apps/rails-five/config/credentials.yml.enc +0 -1
  986. data/integration/apps/rails-five/config/database.yml +0 -28
  987. data/integration/apps/rails-five/config/environment.rb +0 -5
  988. data/integration/apps/rails-five/config/environments/development.rb +0 -51
  989. data/integration/apps/rails-five/config/environments/production.rb +0 -82
  990. data/integration/apps/rails-five/config/environments/test.rb +0 -43
  991. data/integration/apps/rails-five/config/initializers/datadog.rb +0 -18
  992. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +0 -4
  993. data/integration/apps/rails-five/config/initializers/resque.rb +0 -4
  994. data/integration/apps/rails-five/config/initializers/rollbar.rb +0 -5
  995. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +0 -14
  996. data/integration/apps/rails-five/config/locales/en.yml +0 -33
  997. data/integration/apps/rails-five/config/puma.rb +0 -24
  998. data/integration/apps/rails-five/config/routes.rb +0 -11
  999. data/integration/apps/rails-five/config/spring.rb +0 -6
  1000. data/integration/apps/rails-five/config/unicorn.rb +0 -29
  1001. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +0 -11
  1002. data/integration/apps/rails-five/db/schema.rb +0 -23
  1003. data/integration/apps/rails-five/db/seeds.rb +0 -7
  1004. data/integration/apps/rails-five/docker-compose.ci.yml +0 -98
  1005. data/integration/apps/rails-five/docker-compose.yml +0 -100
  1006. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  1007. data/integration/apps/rails-five/log/.keep +0 -0
  1008. data/integration/apps/rails-five/public/robots.txt +0 -1
  1009. data/integration/apps/rails-five/script/build-images +0 -35
  1010. data/integration/apps/rails-five/script/ci +0 -51
  1011. data/integration/apps/rails-five/spec/integration/basic_spec.rb +0 -10
  1012. data/integration/apps/rails-five/spec/spec_helper.rb +0 -16
  1013. data/integration/apps/rails-five/spec/support/integration_helper.rb +0 -22
  1014. data/integration/apps/rails-five/storage/.keep +0 -0
  1015. data/integration/apps/rails-five/tmp/.keep +0 -0
  1016. data/integration/apps/rails-five/vendor/.keep +0 -0
  1017. data/integration/apps/rspec/.dockerignore +0 -1
  1018. data/integration/apps/rspec/.envrc.sample +0 -1
  1019. data/integration/apps/rspec/.gitignore +0 -2
  1020. data/integration/apps/rspec/.rspec +0 -1
  1021. data/integration/apps/rspec/Dockerfile +0 -25
  1022. data/integration/apps/rspec/Dockerfile-ci +0 -11
  1023. data/integration/apps/rspec/Gemfile +0 -14
  1024. data/integration/apps/rspec/README.md +0 -70
  1025. data/integration/apps/rspec/agent.yaml +0 -3
  1026. data/integration/apps/rspec/app/datadog.rb +0 -13
  1027. data/integration/apps/rspec/app/fibonacci.rb +0 -30
  1028. data/integration/apps/rspec/bin/run +0 -20
  1029. data/integration/apps/rspec/bin/setup +0 -17
  1030. data/integration/apps/rspec/bin/test +0 -21
  1031. data/integration/apps/rspec/docker-compose.ci.yml +0 -51
  1032. data/integration/apps/rspec/docker-compose.yml +0 -63
  1033. data/integration/apps/rspec/script/build-images +0 -37
  1034. data/integration/apps/rspec/script/ci +0 -53
  1035. data/integration/apps/rspec/spec/fibonacci_spec.rb +0 -16
  1036. data/integration/apps/rspec/spec/rspec_spec.rb +0 -58
  1037. data/integration/apps/rspec/spec/spec_helper.rb +0 -24
  1038. data/integration/apps/ruby/.dockerignore +0 -1
  1039. data/integration/apps/ruby/.envrc.sample +0 -1
  1040. data/integration/apps/ruby/.gitignore +0 -2
  1041. data/integration/apps/ruby/Dockerfile +0 -25
  1042. data/integration/apps/ruby/Dockerfile-ci +0 -11
  1043. data/integration/apps/ruby/Gemfile +0 -11
  1044. data/integration/apps/ruby/README.md +0 -70
  1045. data/integration/apps/ruby/agent.yaml +0 -3
  1046. data/integration/apps/ruby/app/datadog.rb +0 -13
  1047. data/integration/apps/ruby/app/fibonacci.rb +0 -58
  1048. data/integration/apps/ruby/bin/run +0 -20
  1049. data/integration/apps/ruby/bin/setup +0 -17
  1050. data/integration/apps/ruby/bin/test +0 -21
  1051. data/integration/apps/ruby/docker-compose.ci.yml +0 -51
  1052. data/integration/apps/ruby/docker-compose.yml +0 -63
  1053. data/integration/apps/ruby/script/build-images +0 -38
  1054. data/integration/apps/ruby/script/ci +0 -51
  1055. data/integration/images/agent/Dockerfile +0 -2
  1056. data/integration/images/agent/agent.yaml +0 -3
  1057. data/integration/images/include/datadog/analyzer.rb +0 -71
  1058. data/integration/images/include/datadog/demo_env.rb +0 -101
  1059. data/integration/images/include/http-health-check +0 -33
  1060. data/integration/images/ruby/2.1/Dockerfile +0 -54
  1061. data/integration/images/ruby/2.2/Dockerfile +0 -54
  1062. data/integration/images/ruby/2.3/Dockerfile +0 -70
  1063. data/integration/images/ruby/2.4/Dockerfile +0 -54
  1064. data/integration/images/ruby/2.5/Dockerfile +0 -54
  1065. data/integration/images/ruby/2.6/Dockerfile +0 -54
  1066. data/integration/images/ruby/2.7/Dockerfile +0 -54
  1067. data/integration/images/ruby/3.0/Dockerfile +0 -54
  1068. data/integration/images/wrk/Dockerfile +0 -33
  1069. data/integration/images/wrk/scripts/entrypoint.sh +0 -17
  1070. data/integration/images/wrk/scripts/scenarios/basic/default.lua +0 -1
  1071. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +0 -1
  1072. data/integration/script/build-images +0 -43
  1073. data/lib/ddtrace/environment.rb +0 -41
  1074. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  1075. data/lib/ddtrace/runtime/class_count.rb +0 -17
  1076. data/lib/ddtrace/runtime/container.rb +0 -87
  1077. data/lib/ddtrace/runtime/gc.rb +0 -16
  1078. data/lib/ddtrace/runtime/identity.rb +0 -48
  1079. data/lib/ddtrace/runtime/object_space.rb +0 -19
  1080. data/lib/ddtrace/runtime/socket.rb +0 -14
  1081. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  1082. data/tasks/release_gem.rake +0 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f9add4aab5afd288528cb19861c90d1c51f0760cc683716cb5aefdbd03cd6ee0
4
- data.tar.gz: 9eba21868f503c91e4af96fa2dd5e625fc60ac19b43ff6b1f538c269e3159599
3
+ metadata.gz: 8f5ee0735d05ecdadc38bbc0978a2087141d136f31b1848845518d2086f877d2
4
+ data.tar.gz: dd677af05b413d5593440aedca7b36dc9aba0c9ba08e9213eb8eb9c5443cb2d9
5
5
  SHA512:
6
- metadata.gz: 36623270e170b810ba47ec10fab7aeb73d366653149266661468727153c71a6b322eb1f87dbda1f2be1587aa49fc8a2c9ffdbf06e753a03d558885123ac0b71b
7
- data.tar.gz: 9140282f96d2f3fd5450b51f5f7f1a9370c9772d40eac8f67ed5dbd1a0d421bc1a2689019a9592f47593853dcbaf44a5691870c4224f5c924e7155858167c33e
6
+ metadata.gz: 9f964c58615348135d915933cea46dac145c1266fa7d573fd8609c7eaf13be8667a8917af8ad5d93340935c00d2dc4bcd89adc7e14db7667eadf005448594f91
7
+ data.tar.gz: 23ee7b6812d641a0f6bdc65e43baac6f7f17cc68ca2c07a42e87158400a9b97944aa0f6416c2002fdbbfd0e00f92b1e0a6907de7ee3df39e0840f408a6ec1aec
data/.editorconfig ADDED
@@ -0,0 +1,22 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # Unix-style newlines with a newline ending every file
7
+ [*]
8
+ end_of_line = lf
9
+ insert_final_newline = true
10
+ trim_trailing_whitespace = true
11
+
12
+ [*.h]
13
+ indent_style = space
14
+ indent_size = 2
15
+
16
+ [*.c]
17
+ indent_style = space
18
+ indent_size = 2
19
+
20
+ [*.yml]
21
+ indent_style = space
22
+ indent_size = 2
data/.gitignore CHANGED
@@ -58,3 +58,10 @@ Gemfile.lock
58
58
 
59
59
  # bundle config
60
60
  gemfiles/.bundle
61
+
62
+ # Native extension binaries
63
+ lib/*.bundle
64
+ lib/*.so
65
+
66
+ # Extra file kept by sorbet for debugging usage, as documented in https://sorbet.org/docs/adopting#step-6-source-control
67
+ sorbet/rbi/hidden-definitions/errors.txt
data/CHANGELOG.md CHANGED
@@ -2,6 +2,104 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.52.0] - 2021-08-09
6
+
7
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.52.0
8
+
9
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.51.1...v0.52.0
10
+
11
+ ### Added
12
+
13
+ - Add Sorbet typechecker to dd-trace-rb ([#1607][])
14
+
15
+ Note that no inline type signatures were added, to avoid a hard dependency on sorbet.
16
+
17
+ - Profiler: Add support for annotating profiler stacks with the resource of the active web trace, if any ([#1623][])
18
+
19
+ Note that this data is not yet visible on the profiling interface.
20
+
21
+ - Add error_handler option to GRPC tracer configuration ([#1583][]) ([@fteem][])
22
+ - User-friendly handling of slow submissions on shutdown ([#1601][])
23
+ - Profiler: Add experimental toggle to disable the profiling native extension ([#1594][])
24
+ - Profiler: Bootstrap profiling native extension ([#1584][])
25
+
26
+ ### Changed
27
+
28
+ - Profiler: Profiling data is no longer reported when there's less than 1 second of data to report ([#1630][])
29
+ - Move Grape span resource setting to beginning of request ([#1629][])
30
+ - Set resource in Sinatra spans at the beginning of requests, and delay setting fallback resource to end of requests ([#1628][])
31
+ - Move Rails span resource setting to beginning of request ([#1626][])
32
+ - Make registry a global constant repository ([#1572][])
33
+ - Profiler: Remove automatic agentless support ([#1590][])
34
+
35
+ ### Fixed
36
+
37
+ - Profiler: Fix CPU-time accounting in Profiling when fibers are used ([#1636][])
38
+ - Don't set peer.service tag on grpc.server spans ([#1632][])
39
+ - CI-App: Fix GitHub actions environment variable extraction ([#1622][])
40
+ - Additional Faraday 1.4+ cgroup parsing formats ([#1595][])
41
+ - Avoid shipping development cruft files in gem releases ([#1585][])
42
+
43
+ ## [0.51.1] - 2021-07-13
44
+
45
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.51.1
46
+
47
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.51.0...v0.51.1
48
+
49
+ ### Fixed
50
+
51
+ - AWS-SDK instrumentation without `aws-sdk-s3` ([#1592][])
52
+
53
+ ## [0.51.0] - 2021-07-12
54
+
55
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.51.0
56
+
57
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.50.0...v0.51.0
58
+
59
+ ### Added
60
+
61
+ - Semantic Logger trace correlation injection ([#1566][])
62
+ - New and improved Lograge trace correlation injection ([#1555][])
63
+ - Profiler: Start profiler on `ddtrace/auto_instrument`
64
+ - CI-App: Add runtime and OS information ([#1587][])
65
+ - CI-App: Read metadata from local git repository ([#1561][])
66
+
67
+ ### Changed
68
+
69
+ - Rename `Datadog::Runtime` to `Datadog::Core::Environment` ([#1570][])
70
+
71
+ As we prepare the `Datadog` Ruby namespace to better accommodate new products, we are moving a few internal modules to a different location to avoid conflicts.
72
+
73
+ None of the affected files are exposed publicly in our documentation, and they are only expected to be used internally and may change at any time, even between patch releases.
74
+
75
+ * The following modules have been moved:
76
+ ```ruby
77
+ Datadog::Runtime::Cgroup -> Datadog::Core::Environment::Cgroup
78
+ Datadog::Runtime::ClassCount -> Datadog::Core::Environment::ClassCount
79
+ Datadog::Runtime::Container -> Datadog::Core::Environment::Container
80
+ Datadog::Runtime::GC -> Datadog::Core::Environment::GC
81
+ Datadog::Runtime::Identity -> Datadog::Core::Environment::Identity
82
+ Datadog::Runtime::ObjectSpace -> Datadog::Core::Environment::ObjectSpace
83
+ Datadog::Runtime::Socket -> Datadog::Core::Environment::Socket
84
+ Datadog::Runtime::ThreadCount -> Datadog::Core::Environment::ThreadCount
85
+ ```
86
+ * Most constants from `Datadog::Ext::Runtime` have been moved to a new module: `Datadog::Core::Environment::Ext`.
87
+ - Skip CPU time instrumentation if logging gem is detected ([#1557][])
88
+
89
+ ### Fixed
90
+
91
+ - Initialize `dogstatsd-ruby` in single threaded mode ([#1576][])
92
+
93
+ This should alleviate any existing issues with `dogstatsd-ruby` resource leaks.
94
+
95
+ - Do not use configured `dogstatsd-ruby` instance when it's an incompatible version ([#1560][])
96
+ - Ensure tags with special Datadog processing are consistently serialized ([#1556][])
97
+ - Profiler: NameError during initialization ([#1552][])
98
+
99
+ ### Refactored
100
+ - Improvements to test suite & CI ([#1586][])
101
+ - Improvements to documentation ([#1397][])
102
+
5
103
  ## [0.50.0] - 2021-06-07
6
104
 
7
105
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.50.0
@@ -1713,6 +1811,8 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
1713
1811
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
1714
1812
 
1715
1813
  [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.48.0...master
1814
+ [0.51.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.51.0...v0.51.1
1815
+ [0.51.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.50.0...v0.51.0
1716
1816
  [0.48.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.47.0...v0.48.0
1717
1817
  [0.47.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.46.0...v0.47.0
1718
1818
  [0.46.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.45.0...v0.46.0
@@ -2359,6 +2459,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2359
2459
  [#1393]: https://github.com/DataDog/dd-trace-rb/issues/1393
2360
2460
  [#1394]: https://github.com/DataDog/dd-trace-rb/issues/1394
2361
2461
  [#1396]: https://github.com/DataDog/dd-trace-rb/issues/1396
2462
+ [#1397]: https://github.com/DataDog/dd-trace-rb/issues/1397
2362
2463
  [#1398]: https://github.com/DataDog/dd-trace-rb/issues/1398
2363
2464
  [#1399]: https://github.com/DataDog/dd-trace-rb/issues/1399
2364
2465
  [#1400]: https://github.com/DataDog/dd-trace-rb/issues/1400
@@ -2419,6 +2520,35 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2419
2520
  [#1537]: https://github.com/DataDog/dd-trace-rb/issues/1537
2420
2521
  [#1543]: https://github.com/DataDog/dd-trace-rb/issues/1543
2421
2522
  [#1544]: https://github.com/DataDog/dd-trace-rb/issues/1544
2523
+ [#1552]: https://github.com/DataDog/dd-trace-rb/issues/1552
2524
+ [#1555]: https://github.com/DataDog/dd-trace-rb/issues/1555
2525
+ [#1556]: https://github.com/DataDog/dd-trace-rb/issues/1556
2526
+ [#1557]: https://github.com/DataDog/dd-trace-rb/issues/1557
2527
+ [#1560]: https://github.com/DataDog/dd-trace-rb/issues/1560
2528
+ [#1561]: https://github.com/DataDog/dd-trace-rb/issues/1561
2529
+ [#1566]: https://github.com/DataDog/dd-trace-rb/issues/1566
2530
+ [#1570]: https://github.com/DataDog/dd-trace-rb/issues/1570
2531
+ [#1572]: https://github.com/DataDog/dd-trace-rb/issues/1572
2532
+ [#1576]: https://github.com/DataDog/dd-trace-rb/issues/1576
2533
+ [#1583]: https://github.com/DataDog/dd-trace-rb/issues/1583
2534
+ [#1584]: https://github.com/DataDog/dd-trace-rb/issues/1584
2535
+ [#1585]: https://github.com/DataDog/dd-trace-rb/issues/1585
2536
+ [#1586]: https://github.com/DataDog/dd-trace-rb/issues/1586
2537
+ [#1587]: https://github.com/DataDog/dd-trace-rb/issues/1587
2538
+ [#1590]: https://github.com/DataDog/dd-trace-rb/issues/1590
2539
+ [#1592]: https://github.com/DataDog/dd-trace-rb/issues/1592
2540
+ [#1594]: https://github.com/DataDog/dd-trace-rb/issues/1594
2541
+ [#1595]: https://github.com/DataDog/dd-trace-rb/issues/1595
2542
+ [#1601]: https://github.com/DataDog/dd-trace-rb/issues/1601
2543
+ [#1607]: https://github.com/DataDog/dd-trace-rb/issues/1607
2544
+ [#1622]: https://github.com/DataDog/dd-trace-rb/issues/1622
2545
+ [#1623]: https://github.com/DataDog/dd-trace-rb/issues/1623
2546
+ [#1626]: https://github.com/DataDog/dd-trace-rb/issues/1626
2547
+ [#1628]: https://github.com/DataDog/dd-trace-rb/issues/1628
2548
+ [#1629]: https://github.com/DataDog/dd-trace-rb/issues/1629
2549
+ [#1630]: https://github.com/DataDog/dd-trace-rb/issues/1630
2550
+ [#1632]: https://github.com/DataDog/dd-trace-rb/issues/1632
2551
+ [#1636]: https://github.com/DataDog/dd-trace-rb/issues/1636
2422
2552
  [@AdrianLC]: https://github.com/AdrianLC
2423
2553
  [@Azure7111]: https://github.com/Azure7111
2424
2554
  [@BabyGroot]: https://github.com/BabyGroot
@@ -2470,6 +2600,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2470
2600
  [@evan-waters]: https://github.com/evan-waters
2471
2601
  [@fledman]: https://github.com/fledman
2472
2602
  [@frsantos]: https://github.com/frsantos
2603
+ [@fteem]: https://github.com/fteem
2473
2604
  [@gaborszakacs]: https://github.com/gaborszakacs
2474
2605
  [@giancarlocosta]: https://github.com/giancarlocosta
2475
2606
  [@gingerlime]: https://github.com/gingerlime
data/CONTRIBUTING.md CHANGED
@@ -20,8 +20,6 @@ Additionally, if you can, include:
20
20
  - Links to similar features that would serve as a good comparison
21
21
  - (Any other details that would be useful for implementing this feature!)
22
22
 
23
- Feature requests will be reviewed, discussed, and then added to [our Community project](https://github.com/DataDog/dd-trace-rb/projects/2).
24
-
25
23
  ## Found a bug?
26
24
 
27
25
  For any urgent matters (such as outages) or issues concerning the Datadog service or UI, contact our support team via https://docs.datadoghq.com/help/ for direct, faster assistance.
@@ -46,7 +44,7 @@ If at all possible, also provide:
46
44
  - Code sample or test that reproduces the problem
47
45
  - An explanation of what causes the bug and/or how it can be fixed
48
46
 
49
- Reports that include rich detail are better, and ones with code that reproduce the bug are best. Bug requests are triaged, reviewed, and added to [our Community project](https://github.com/DataDog/dd-trace-rb/projects/2).
47
+ Reports that include rich detail are better, and ones with code that reproduce the bug are best.
50
48
 
51
49
  ## Have a patch?
52
50
 
@@ -74,8 +72,6 @@ We also recommend that you share in your description:
74
72
  - Benchmarks if the feature is anticipated to have performance implications
75
73
  - Any limitations, constraints or risks that are important to consider
76
74
 
77
- Pull requests will be reviewed and added to [our Community project](https://github.com/DataDog/dd-trace-rb/projects/2).
78
-
79
75
  For more information on common topics such as debugging locally, or how to write new integrations, check out [our development guide](https://github.com/DataDog/dd-trace-rb/blob/master/docs/DevelopmentGuide.md). If at any point you have a question or need assistance with your pull request, feel free to mention a project member! We're always happy to help contributors with their pull requests.
80
76
 
81
77
  ## Final word
data/ddtrace.gemspec CHANGED
@@ -28,7 +28,14 @@ Gem::Specification.new do |spec|
28
28
  raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
29
29
  end
30
30
 
31
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
31
+ spec.files =
32
+ `git ls-files -z`
33
+ .split("\x0")
34
+ .reject { |f| f.match(%r{^(test|spec|features|[.]circleci|[.]github|[.]dd-ci|benchmarks|gemfiles|integration|tasks|sorbet)/}) }
35
+ .reject do |f|
36
+ ['.dockerignore', '.env', '.gitattributes', '.gitlab-ci.yml', '.rspec', '.rubocop.yml',
37
+ '.rubocop_todo.yml', '.simplecov', 'Appraisals', 'Gemfile', 'Rakefile', 'docker-compose.yml'].include?(f)
38
+ end
32
39
  spec.executables = ['ddtracerb']
33
40
  spec.require_paths = ['lib']
34
41
 
@@ -41,4 +48,6 @@ Gem::Specification.new do |spec|
41
48
 
42
49
  # Used by the profiler
43
50
  spec.add_dependency 'ffi', '~> 1.0'
51
+
52
+ spec.extensions = ['ext/ddtrace_profiling_native_extension/extconf.rb']
44
53
  end
@@ -9,6 +9,8 @@ This guide covers some of the common how-tos and technical reference material fo
9
9
  - [Writing tests](#writing-tests)
10
10
  - [Running tests](#running-tests)
11
11
  - [Checking code quality](#checking-code-quality)
12
+ - [Running benchmarks](#running-benchmarks)
13
+ - [Type checking](#type-checking)
12
14
  - [Appendix](#appendix)
13
15
  - [Writing new integrations](#writing-new-integrations)
14
16
  - [Custom transport adapters](#custom-transport-adapters)
@@ -162,6 +164,19 @@ $ bundle exec rake spec:benchmark
162
164
 
163
165
  Results are printed to STDOUT as well as written to the `./tmp/benchmark/` directory.
164
166
 
167
+ ## Type checking
168
+
169
+ This library uses the [Sorbet](https://sorbet.org/) type checker. Sorbet can be run with `bundle exec srb tc` (or `bundle exec rake
170
+ typecheck`). There's also Language Server Protocol support, if your editor supports it.
171
+
172
+ Type checking can be controlled on a file-by-file manner, using a `# typed: ...` comment. The default (when none is provided) is assuming `# typed: false`.
173
+
174
+ Things to note:
175
+
176
+ * For compatibility with older Rubies, we use Sorbet but do not yet allow type annotations in the codebase. If Sorbet is blocking you, feel free to use `# typed: false` or `# typed: ignore` with a quick note on why this was needed. In many cases, Sorbet can typecheck a file correctly with no extra type annotations.
177
+
178
+ * Most integration-specific code will reference optional external dependencies which Sorbet cannot see into. You'll probably need to use `# typed: false` or `# typed: ignore` for those files as well.
179
+
165
180
  ## Appendix
166
181
 
167
182
  ### Writing new integrations
@@ -86,6 +86,11 @@ To contribute, check out the [contribution guidelines][contribution docs] and [d
86
86
  - [For application runtime](#for-application-runtime)
87
87
  - [OpenTracing](#opentracing)
88
88
  - [Profiling](#profiling)
89
+ - [Troubleshooting](#troubleshooting)
90
+ - [Profiling Resque jobs](#profiling-resque-jobs)
91
+ - [Known issues and suggested configurations](#known-issues-and-suggested-configurations)
92
+ - [Payload too large](#payload-too-large)
93
+ - [Stack level too deep](#stack-level-too-deep)
89
94
 
90
95
  ## Compatibility
91
96
 
@@ -1025,6 +1030,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
1025
1030
  | Key | Description | Default |
1026
1031
  | --- | ----------- | ------- |
1027
1032
  | `service_name` | Service name used for `grpc` instrumentation | `'grpc'` |
1033
+ | `error_handler` | Custom error handler invoked when a request is an error. A `Proc` that accepts `span` and `error` parameters. Sets error on the span by default. | `proc { |span, error| span.set_error(error) unless span.nil? }` |
1028
1034
 
1029
1035
  **Configuring clients to use different settings**
1030
1036
 
@@ -2237,7 +2243,7 @@ In many cases, such as logging, it may be useful to correlate trace IDs to other
2237
2243
 
2238
2244
  ##### Automatic
2239
2245
 
2240
- For Rails applications using the default logger (`ActiveSupport::TaggedLogging`) or `lograge`, you can automatically enable trace correlation injection by setting the `rails` instrumentation configuration option `log_injection` to `true` or by setting environment variable `DD_LOGS_INJECTION=true`:
2246
+ For Rails applications using the default logger (`ActiveSupport::TaggedLogging`), `semantic_logger`, or `lograge`, you can automatically enable trace correlation injection by setting the `rails` instrumentation configuration option `log_injection` to `true` or by setting environment variable `DD_LOGS_INJECTION=true`:
2241
2247
 
2242
2248
  ```ruby
2243
2249
  # config/initializers/datadog.rb
@@ -2248,8 +2254,6 @@ Datadog.configure do |c|
2248
2254
  end
2249
2255
  ```
2250
2256
 
2251
- _Note:_ For `lograge` users who have also defined `lograge.custom_options` in an `initializers/lograge.rb` configuration file, due to the order that Rails loads initializers (alphabetical), automatic trace correlation may not take effect, since `initializers/datadog.rb` would be overwritten by the `initializers/lograge.rb` initializer. To support automatic trace correlation with _existing_ `lograge.custom_options`, use the [Manual (Lograge)](#manual-lograge) configuration below.
2252
-
2253
2257
  ##### Manual (Lograge)
2254
2258
 
2255
2259
  After [setting up Lograge in a Rails application](https://docs.datadoghq.com/logs/log_collection/ruby/), manually modify the `custom_options` block in your environment configuration file (e.g. `config/environments/production.rb`) to add the trace IDs.
@@ -2409,7 +2413,7 @@ The tracer and its integrations can produce some additional metrics that can pro
2409
2413
  To configure your application for metrics collection:
2410
2414
 
2411
2415
  1. [Configure your Datadog agent for StatsD](https://docs.datadoghq.com/developers/dogstatsd/#setup)
2412
- 2. Add `gem 'dogstatsd-ruby', '~> 4.0'` to your Gemfile (note that it is advised to pin v4.x [until this issue is solved](https://github.com/DataDog/dogstatsd-ruby/issues/182))
2416
+ 2. Add `gem 'dogstatsd-ruby', '~> 5.2'` to your Gemfile
2413
2417
 
2414
2418
  #### For application runtime
2415
2419
 
@@ -2490,8 +2494,42 @@ However, additional instrumentation provided by Datadog can be activated alongsi
2490
2494
 
2491
2495
  To get started with profiling, follow the [Profiler Getting Started Guide](https://docs.datadoghq.com/tracing/profiler/getting_started/?code-lang=ruby).
2492
2496
 
2497
+ #### Troubleshooting
2498
+
2499
+ If you run into issues with profiling, please check the [Profiler Troubleshooting Guide](https://docs.datadoghq.com/tracing/profiler/profiler_troubleshooting/?code-lang=ruby).
2500
+
2493
2501
  #### Profiling Resque jobs
2494
2502
 
2495
2503
  When profiling [Resque](https://github.com/resque/resque) jobs, you should set the `RUN_AT_EXIT_HOOKS=1` option described in the [Resque](https://github.com/resque/resque/blob/v2.0.0/docs/HOOKS.md#worker-hooks) documentation.
2496
2504
 
2497
2505
  Without this flag, profiles for short-lived Resque jobs will not be available as Resque kills worker processes before they have a chance to submit this information.
2506
+
2507
+ ## Known issues and suggested configurations
2508
+
2509
+ ### Payload too large
2510
+
2511
+ By default, Datadog limits the size of trace payloads to prevent memory overhead within instrumented applications. As a result, traces containing thousands of operations may not be sent to Datadog.
2512
+
2513
+ If traces are missing, enable [debug mode](#tracer-settings) to check if messages containing `"Dropping trace. Payload too large"` are logged.
2514
+
2515
+ Since debug mode is verbose, Datadog does not recommend leaving this enabled or enabling this in production. Disable it after confirming. You can inspect the [Datadog Agent logs](https://docs.datadoghq.com/agent/guide/agent-log-files/) for similar messages.
2516
+
2517
+ If you have confirmed that traces are dropped due to large payloads, then enable the [partial_flush](#tracer-settings) setting to break down large traces into smaller chunks.
2518
+
2519
+ ### Stack level too deep
2520
+
2521
+ Datadog tracing collects trace data by adding instrumentation into other common libraries (e.g. Rails, Rack, etc.) Some libraries provide APIs to add this instrumentation, but some do not. In order to add instrumentation into libraries lacking an instrumentation API, Datadog uses a technique called "monkey-patching" to modify the code of that library.
2522
+
2523
+ In Ruby version 1.9.3 and earlier, "monkey-patching" often involved the use of [`alias_method`](https://ruby-doc.org/core-3.0.0/Module.html#method-i-alias_method), also known as *method rewriting*, to destructively replace existing Ruby methods. However, this practice would often create conflicts & errors if two libraries attempted to "rewrite" the same method. (e.g. two different APM packages trying to instrument the same method.)
2524
+
2525
+ In Ruby 2.0, the [`Module#prepend`](https://ruby-doc.org/core-3.0.0/Module.html#method-i-prepend) feature was introduced. This feature avoids destructive method rewriting and allows multiple "monkey patches" on the same method. Consequently, it has become the safest, preferred means to "monkey patch" code.
2526
+
2527
+ Datadog instrumentation almost exclusively uses the `Module#prepend` feature to add instrumentation non-destructively. However, some libraries (typically those supporting Ruby < 2.0) still use `alias_method` which can create conflicts with Datadog instrumentation, often resulting in `SystemStackError` or `stack level too deep` errors.
2528
+
2529
+ As the implementation of `alias_method` exists within those libraries, Datadog generally cannot fix them. However, some libraries have known workarounds:
2530
+
2531
+ * `rack-mini-profiler`: [Net::HTTP stack level too deep errors](https://github.com/MiniProfiler/rack-mini-profiler#nethttp-stack-level-too-deep-errors).
2532
+
2533
+ For libraries without a known workaround, consider removing the library using `alias` or `Module#alias_method` or separating libraries into different environments for testing.
2534
+
2535
+ For any further questions or to report an occurence of this issue, please [reach out to Datadog support](https://docs.datadoghq.com/help)
@@ -11,7 +11,7 @@ Components below live inside <../lib/ddtrace/profiling>:
11
11
  * `Collectors::Stack`: Collects stack trace samples from Ruby threads for both CPU-time (if available) and wall-clock.
12
12
  Runs on its own background thread.
13
13
  * `Encoding::Profile`: Encodes gathered data into the pprof format.
14
- * `Events::Stack`, `Events::StackSample`, `Events::StackExceptionSample`: Entity classes used to represent stacks.
14
+ * `Events::Stack`, `Events::StackSample`: Entity classes used to represent stacks.
15
15
  * `Ext::CPU`: Monkey patches Ruby's `Thread` with our `Ext::CThread` to enable CPU-time profiling.
16
16
  * `Ext::CThread`: Extension used to enable CPU-time profiling via use of Pthread's `getcpuclockid`.
17
17
  * `Ext::Forking`: Monkey patches `Kernel#fork`, adding a `Kernel#at_fork` callback mechanism which is used to restore
@@ -20,6 +20,7 @@ Components below live inside <../lib/ddtrace/profiling>:
20
20
  * `Tasks::Setup`: Takes care of loading our extensions/monkey patches to handle fork() and CPU profiling.
21
21
  * `Transport::*` (in <../lib/ddtrace/profiling/transport>): Implements transmission of profiling payloads to the Datadog agent
22
22
  or backend.
23
+ * `TraceIdentifiers::*`: Used to retrieve trace id and span id from tracers, to be used to connect traces to profiles.
23
24
  * `BacktraceLocation`: Entity class used to represent an entry in a stack trace.
24
25
  * `Buffer`: Bounded buffer used to store profiling events.
25
26
  * `Exporter`: Writes profiling data to a given transport.
@@ -41,22 +42,14 @@ flow:
41
42
  4. The `Setup` task activates our extensions
42
43
  * `Datadog::Profiling::Ext::Forking`
43
44
  * `Datadog::Profiling::Ext::CPU`
44
- 5. Still inside `Datadog::Components`, the `build_profiler` method then creates and wires up the Profiler:
45
- ```ruby
46
- recorder = build_profiler_recorder(settings)
47
- collectors = build_profiler_collectors(settings, recorder)
48
- exporters = build_profiler_exporters(settings)
49
- scheduler = build_profiler_scheduler(settings, recorder, exporters)
50
-
51
- Datadog::Profiler.new(collectors, scheduler)
52
- ```
45
+ 5. Still inside `Datadog::Components`, the `build_profiler` method then creates and wires up the Profiler as such:
53
46
  ```asciiflow
54
47
  +------------+
55
48
  | Profiler |
56
- +-+--------+-+
57
- | |
58
- v v
59
- +---------+--+ +--+--------+
49
+ +-+-------+--+
50
+ | |
51
+ v v
52
+ +---------+--+ +-+---------+
60
53
  | Collectors | | Scheduler |
61
54
  +---------+--+ +-+-------+-+
62
55
  | | |
@@ -86,3 +79,29 @@ takes care of encoding the data and reporting it to the datadog agent (or to the
86
79
  ## How CPU-time profiling works
87
80
 
88
81
  **TODO**: Document our pthread-based approach to getting CPU-time for threads.
82
+
83
+ ## How linking of traces to profiles works
84
+
85
+ The [code hotspots feature](https://docs.datadoghq.com/tracing/profiler/connect_traces_and_profiles) allows users to start
86
+ from a trace and then to investigate the profile that corresponds to that trace.
87
+
88
+ This works in two steps:
89
+ 1. Linking a trace to the profile that was gathered while it executed
90
+ 2. Enabling the filtering of a profile to contain only the samples relating to a given trace/span
91
+
92
+ To link a trace to a profile, we must ensure that both have the same `runtime-id` tag.
93
+ This tag is in `Datadog::Runtime::Identity.id` and is automatically added by both the tracer and the profiler to reported
94
+ traces/profiles.
95
+
96
+ The profiler backend links a trace covering a given time interval to the profiles covering the same time interval,
97
+ whenever they share the same `runtime-id`.
98
+
99
+ To further enable filtering of a profile to show only samples related to a given trace/span, each sample taken by the
100
+ profiler is tagged with the trace_id and span_id for the given trace/span.
101
+
102
+ This is done using the `Datadog::Profiling::TraceIdentifiers::Helper` that retrieves a trace_id and span_id, if
103
+ available, from the supported tracers. This helper is called by the `Collectors::Stack` during sampling.
104
+
105
+ Note that if a given trace executes too fast, it's possible that the profiler will not contain any samples for that
106
+ specific trace. Nevertheless, the linking still works and is useful, as it allows users to explore what was going on their
107
+ profile at that time, even if they can't filter down to the specific request.