ddtrace 0.13.0 → 0.47.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (628) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +598 -381
  3. data/.circleci/images/primary/Dockerfile-2.0.0 +6 -2
  4. data/.circleci/images/primary/Dockerfile-2.1.10 +6 -2
  5. data/.circleci/images/primary/Dockerfile-2.2.10 +6 -2
  6. data/.circleci/images/primary/Dockerfile-2.3.8 +75 -0
  7. data/.circleci/images/primary/Dockerfile-2.4.6 +73 -0
  8. data/.circleci/images/primary/{Dockerfile-2.3.7 → Dockerfile-2.5.6} +2 -2
  9. data/.circleci/images/primary/{Dockerfile-2.4.4 → Dockerfile-2.6.4} +2 -2
  10. data/.circleci/images/primary/Dockerfile-2.7.0 +73 -0
  11. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  12. data/.circleci/images/primary/Dockerfile-jruby-9.2-latest +78 -0
  13. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +73 -0
  14. data/.circleci/images/primary/{Dockerfile-1.9.3 → Dockerfile-truffleruby-21.0.0} +6 -2
  15. data/.env +5 -2
  16. data/.github/CODEOWNERS +1 -0
  17. data/.github/workflows/add-milestone-to-pull-requests.yml +42 -0
  18. data/.github/workflows/create-next-milestone.yml +20 -0
  19. data/.gitignore +2 -0
  20. data/.gitlab-ci.yml +27 -0
  21. data/.rubocop.yml +270 -6
  22. data/.rubocop_todo.yml +397 -0
  23. data/.simplecov +47 -0
  24. data/Appraisals +933 -127
  25. data/CHANGELOG.md +2106 -97
  26. data/CONTRIBUTING.md +85 -0
  27. data/Gemfile +55 -2
  28. data/LICENSE +4 -22
  29. data/LICENSE-3rdparty.csv +2 -0
  30. data/LICENSE.Apache +200 -0
  31. data/LICENSE.BSD3 +24 -0
  32. data/NOTICE +4 -0
  33. data/README.md +5 -34
  34. data/Rakefile +825 -351
  35. data/benchmarks/postgres_database.yml +9 -0
  36. data/benchmarks/sidekiq_test.rb +154 -0
  37. data/ddtrace.gemspec +8 -17
  38. data/docker-compose.yml +260 -47
  39. data/docs/DevelopmentGuide.md +249 -0
  40. data/docs/GettingStarted.md +1435 -290
  41. data/integration/README.md +68 -0
  42. data/integration/apps/rack/.dockerignore +1 -0
  43. data/integration/apps/rack/.envrc.sample +1 -0
  44. data/integration/apps/rack/.gitignore +4 -0
  45. data/integration/apps/rack/.rspec +1 -0
  46. data/integration/apps/rack/Dockerfile +25 -0
  47. data/integration/apps/rack/Dockerfile-ci +11 -0
  48. data/integration/apps/rack/Gemfile +24 -0
  49. data/integration/apps/rack/README.md +93 -0
  50. data/integration/apps/rack/app/acme.rb +80 -0
  51. data/integration/apps/rack/app/datadog.rb +17 -0
  52. data/integration/apps/rack/bin/run +22 -0
  53. data/integration/apps/rack/bin/setup +17 -0
  54. data/integration/apps/rack/bin/test +24 -0
  55. data/integration/apps/rack/config.ru +6 -0
  56. data/integration/apps/rack/config/puma.rb +14 -0
  57. data/integration/apps/rack/config/unicorn.rb +23 -0
  58. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  59. data/integration/apps/rack/docker-compose.yml +78 -0
  60. data/integration/apps/rack/script/build-images +38 -0
  61. data/integration/apps/rack/script/ci +50 -0
  62. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  63. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  64. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  65. data/integration/apps/rails-five/.dockerignore +1 -0
  66. data/integration/apps/rails-five/.env +3 -0
  67. data/integration/apps/rails-five/.envrc.sample +1 -0
  68. data/integration/apps/rails-five/.gitignore +30 -0
  69. data/integration/apps/rails-five/Dockerfile +25 -0
  70. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  71. data/integration/apps/rails-five/Gemfile +104 -0
  72. data/integration/apps/rails-five/README.md +94 -0
  73. data/integration/apps/rails-five/Rakefile +6 -0
  74. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  75. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  76. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  77. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  78. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  79. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  80. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  81. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  82. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  83. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  84. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  85. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  86. data/integration/apps/rails-five/app/models/test.rb +2 -0
  87. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  88. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  89. data/integration/apps/rails-five/bin/bundle +3 -0
  90. data/integration/apps/rails-five/bin/rails +9 -0
  91. data/integration/apps/rails-five/bin/rake +9 -0
  92. data/integration/apps/rails-five/bin/run +24 -0
  93. data/integration/apps/rails-five/bin/setup +27 -0
  94. data/integration/apps/rails-five/bin/spring +17 -0
  95. data/integration/apps/rails-five/bin/test +21 -0
  96. data/integration/apps/rails-five/bin/update +28 -0
  97. data/integration/apps/rails-five/config.ru +5 -0
  98. data/integration/apps/rails-five/config/application.rb +97 -0
  99. data/integration/apps/rails-five/config/boot.rb +4 -0
  100. data/integration/apps/rails-five/config/cable.yml +10 -0
  101. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  102. data/integration/apps/rails-five/config/database.yml +28 -0
  103. data/integration/apps/rails-five/config/environment.rb +5 -0
  104. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  105. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  106. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  107. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  108. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  109. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  110. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  111. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  112. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  113. data/integration/apps/rails-five/config/puma.rb +24 -0
  114. data/integration/apps/rails-five/config/routes.rb +11 -0
  115. data/integration/apps/rails-five/config/spring.rb +6 -0
  116. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  117. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  118. data/integration/apps/rails-five/db/schema.rb +23 -0
  119. data/integration/apps/rails-five/db/seeds.rb +7 -0
  120. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  121. data/integration/apps/rails-five/docker-compose.yml +100 -0
  122. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  123. data/integration/apps/rails-five/log/.keep +0 -0
  124. data/integration/apps/rails-five/public/robots.txt +1 -0
  125. data/integration/apps/rails-five/script/build-images +35 -0
  126. data/integration/apps/rails-five/script/ci +50 -0
  127. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  128. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  129. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  130. data/integration/apps/rails-five/storage/.keep +0 -0
  131. data/integration/apps/rails-five/tmp/.keep +0 -0
  132. data/integration/apps/rails-five/vendor/.keep +0 -0
  133. data/integration/apps/ruby/.dockerignore +1 -0
  134. data/integration/apps/ruby/.envrc.sample +1 -0
  135. data/integration/apps/ruby/.gitignore +2 -0
  136. data/integration/apps/ruby/Dockerfile +25 -0
  137. data/integration/apps/ruby/Dockerfile-ci +11 -0
  138. data/integration/apps/ruby/Gemfile +11 -0
  139. data/integration/apps/ruby/README.md +70 -0
  140. data/integration/apps/ruby/agent.yaml +3 -0
  141. data/integration/apps/ruby/app/datadog.rb +13 -0
  142. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  143. data/integration/apps/ruby/bin/run +20 -0
  144. data/integration/apps/ruby/bin/setup +17 -0
  145. data/integration/apps/ruby/bin/test +21 -0
  146. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  147. data/integration/apps/ruby/docker-compose.yml +63 -0
  148. data/integration/apps/ruby/script/build-images +38 -0
  149. data/integration/apps/ruby/script/ci +50 -0
  150. data/integration/images/agent/Dockerfile +2 -0
  151. data/integration/images/agent/agent.yaml +3 -0
  152. data/integration/images/include/datadog/analyzer.rb +71 -0
  153. data/integration/images/include/datadog/demo_env.rb +101 -0
  154. data/integration/images/include/http-health-check +33 -0
  155. data/integration/images/ruby/2.0/Dockerfile +54 -0
  156. data/integration/images/ruby/2.1/Dockerfile +54 -0
  157. data/integration/images/ruby/2.2/Dockerfile +54 -0
  158. data/integration/images/ruby/2.3/Dockerfile +70 -0
  159. data/integration/images/ruby/2.4/Dockerfile +54 -0
  160. data/integration/images/ruby/2.5/Dockerfile +54 -0
  161. data/integration/images/ruby/2.6/Dockerfile +54 -0
  162. data/integration/images/ruby/2.7/Dockerfile +54 -0
  163. data/integration/images/ruby/3.0/Dockerfile +54 -0
  164. data/integration/images/wrk/Dockerfile +33 -0
  165. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  166. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  167. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  168. data/integration/script/build-images +43 -0
  169. data/lib/ddtrace.rb +65 -62
  170. data/lib/ddtrace/analytics.rb +38 -0
  171. data/lib/ddtrace/auto_instrument.rb +3 -0
  172. data/lib/ddtrace/auto_instrument_base.rb +6 -0
  173. data/lib/ddtrace/buffer.rb +298 -32
  174. data/lib/ddtrace/chunker.rb +34 -0
  175. data/lib/ddtrace/configuration.rb +151 -26
  176. data/lib/ddtrace/configuration/base.rb +84 -0
  177. data/lib/ddtrace/configuration/components.rb +151 -0
  178. data/lib/ddtrace/configuration/{resolver.rb → dependency_resolver.rb} +2 -2
  179. data/lib/ddtrace/configuration/option.rb +64 -0
  180. data/lib/ddtrace/configuration/option_definition.rb +121 -0
  181. data/lib/ddtrace/configuration/option_definition_set.rb +18 -0
  182. data/lib/ddtrace/configuration/option_set.rb +6 -0
  183. data/lib/ddtrace/configuration/options.rb +111 -0
  184. data/lib/ddtrace/configuration/pin_setup.rb +4 -3
  185. data/lib/ddtrace/configuration/settings.rb +299 -0
  186. data/lib/ddtrace/context.rb +133 -66
  187. data/lib/ddtrace/context_flush.rb +51 -114
  188. data/lib/ddtrace/context_provider.rb +61 -0
  189. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +30 -0
  190. data/lib/ddtrace/contrib/action_cable/event.rb +66 -0
  191. data/lib/ddtrace/contrib/action_cable/events.rb +33 -0
  192. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +49 -0
  193. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +55 -0
  194. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +50 -0
  195. data/lib/ddtrace/contrib/action_cable/ext.rb +26 -0
  196. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +31 -0
  197. data/lib/ddtrace/contrib/action_cable/integration.rb +45 -0
  198. data/lib/ddtrace/contrib/action_cable/patcher.rb +27 -0
  199. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +146 -0
  200. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +25 -0
  201. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +32 -0
  202. data/lib/ddtrace/contrib/action_pack/ext.rb +19 -0
  203. data/lib/ddtrace/contrib/action_pack/integration.rb +45 -0
  204. data/lib/ddtrace/contrib/action_pack/patcher.rb +23 -0
  205. data/lib/ddtrace/contrib/action_pack/utils.rb +36 -0
  206. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +31 -0
  207. data/lib/ddtrace/contrib/action_view/event.rb +35 -0
  208. data/lib/ddtrace/contrib/action_view/events.rb +30 -0
  209. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +46 -0
  210. data/lib/ddtrace/contrib/action_view/events/render_template.rb +49 -0
  211. data/lib/ddtrace/contrib/action_view/ext.rb +20 -0
  212. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +74 -0
  213. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +167 -0
  214. data/lib/ddtrace/contrib/action_view/integration.rb +52 -0
  215. data/lib/ddtrace/contrib/action_view/patcher.rb +47 -0
  216. data/lib/ddtrace/contrib/action_view/utils.rb +32 -0
  217. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +30 -0
  218. data/lib/ddtrace/contrib/active_model_serializers/event.rb +14 -3
  219. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +2 -2
  220. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +2 -2
  221. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +20 -0
  222. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +40 -0
  223. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +12 -45
  224. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +128 -0
  225. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +35 -0
  226. data/lib/ddtrace/contrib/active_record/event.rb +1 -1
  227. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +17 -8
  228. data/lib/ddtrace/contrib/active_record/events/sql.rb +32 -12
  229. data/lib/ddtrace/contrib/active_record/ext.rb +24 -0
  230. data/lib/ddtrace/contrib/active_record/integration.rb +53 -0
  231. data/lib/ddtrace/contrib/active_record/patcher.rb +5 -35
  232. data/lib/ddtrace/contrib/active_record/utils.rb +85 -31
  233. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +258 -0
  234. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +69 -0
  235. data/lib/ddtrace/contrib/active_support/cache/redis.rb +47 -0
  236. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +30 -0
  237. data/lib/ddtrace/contrib/active_support/ext.rb +27 -0
  238. data/lib/ddtrace/contrib/active_support/integration.rb +46 -0
  239. data/lib/ddtrace/contrib/active_support/notifications/event.rb +15 -2
  240. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +3 -2
  241. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +20 -12
  242. data/lib/ddtrace/contrib/active_support/patcher.rb +23 -0
  243. data/lib/ddtrace/contrib/analytics.rb +24 -0
  244. data/lib/ddtrace/contrib/auto_instrument.rb +49 -0
  245. data/lib/ddtrace/contrib/aws/configuration/settings.rb +30 -0
  246. data/lib/ddtrace/contrib/aws/ext.rb +23 -0
  247. data/lib/ddtrace/contrib/aws/instrumentation.rb +37 -19
  248. data/lib/ddtrace/contrib/aws/integration.rb +42 -0
  249. data/lib/ddtrace/contrib/aws/patcher.rb +30 -40
  250. data/lib/ddtrace/contrib/aws/services.rb +3 -0
  251. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +20 -0
  252. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +41 -0
  253. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +12 -0
  254. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +23 -0
  255. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +38 -0
  256. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +28 -0
  257. data/lib/ddtrace/contrib/configurable.rb +102 -0
  258. data/lib/ddtrace/contrib/configuration/resolver.rb +81 -0
  259. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +39 -0
  260. data/lib/ddtrace/contrib/configuration/settings.rb +55 -0
  261. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +28 -0
  262. data/lib/ddtrace/contrib/cucumber/ext.rb +17 -0
  263. data/lib/ddtrace/contrib/cucumber/formatter.rb +98 -0
  264. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +24 -0
  265. data/lib/ddtrace/contrib/cucumber/integration.rb +45 -0
  266. data/lib/ddtrace/contrib/cucumber/patcher.rb +23 -0
  267. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +30 -0
  268. data/lib/ddtrace/contrib/dalli/ext.rb +20 -0
  269. data/lib/ddtrace/contrib/dalli/instrumentation.rb +36 -17
  270. data/lib/ddtrace/contrib/dalli/integration.rb +38 -0
  271. data/lib/ddtrace/contrib/dalli/patcher.rb +13 -41
  272. data/lib/ddtrace/contrib/dalli/quantize.rb +4 -4
  273. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +32 -0
  274. data/lib/ddtrace/contrib/delayed_job/ext.rb +23 -0
  275. data/lib/ddtrace/contrib/delayed_job/integration.rb +38 -0
  276. data/lib/ddtrace/contrib/delayed_job/patcher.rb +28 -0
  277. data/lib/ddtrace/contrib/delayed_job/plugin.rb +84 -0
  278. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +31 -0
  279. data/lib/ddtrace/contrib/elasticsearch/ext.rb +22 -0
  280. data/lib/ddtrace/contrib/elasticsearch/integration.rb +39 -0
  281. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +49 -50
  282. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  283. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +32 -0
  284. data/lib/ddtrace/contrib/ethon/easy_patch.rb +151 -0
  285. data/lib/ddtrace/contrib/ethon/ext.rb +19 -0
  286. data/lib/ddtrace/contrib/ethon/integration.rb +43 -0
  287. data/lib/ddtrace/contrib/ethon/multi_patch.rb +84 -0
  288. data/lib/ddtrace/contrib/ethon/patcher.rb +25 -0
  289. data/lib/ddtrace/contrib/excon/configuration/settings.rb +33 -0
  290. data/lib/ddtrace/contrib/excon/ext.rb +17 -0
  291. data/lib/ddtrace/contrib/excon/integration.rb +43 -0
  292. data/lib/ddtrace/contrib/excon/middleware.rb +47 -23
  293. data/lib/ddtrace/contrib/excon/patcher.rb +7 -30
  294. data/lib/ddtrace/contrib/extensions.rb +143 -0
  295. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +38 -0
  296. data/lib/ddtrace/contrib/faraday/connection.rb +18 -0
  297. data/lib/ddtrace/contrib/faraday/ext.rb +17 -0
  298. data/lib/ddtrace/contrib/faraday/integration.rb +43 -0
  299. data/lib/ddtrace/contrib/faraday/middleware.rb +46 -29
  300. data/lib/ddtrace/contrib/faraday/patcher.rb +36 -56
  301. data/lib/ddtrace/contrib/faraday/rack_builder.rb +18 -0
  302. data/lib/ddtrace/contrib/grape/configuration/settings.rb +38 -0
  303. data/lib/ddtrace/contrib/grape/endpoint.rb +192 -120
  304. data/lib/ddtrace/contrib/grape/ext.rb +23 -0
  305. data/lib/ddtrace/contrib/grape/instrumentation.rb +33 -0
  306. data/lib/ddtrace/contrib/grape/integration.rb +39 -0
  307. data/lib/ddtrace/contrib/grape/patcher.rb +15 -59
  308. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +32 -0
  309. data/lib/ddtrace/contrib/graphql/ext.rb +16 -0
  310. data/lib/ddtrace/contrib/graphql/integration.rb +39 -0
  311. data/lib/ddtrace/contrib/graphql/patcher.rb +37 -34
  312. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +30 -0
  313. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +36 -27
  314. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +17 -8
  315. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +20 -5
  316. data/lib/ddtrace/contrib/grpc/ext.rb +18 -0
  317. data/lib/ddtrace/contrib/grpc/integration.rb +38 -0
  318. data/lib/ddtrace/contrib/grpc/patcher.rb +8 -38
  319. data/lib/ddtrace/contrib/http/circuit_breaker.rb +37 -0
  320. data/lib/ddtrace/contrib/http/configuration/settings.rb +32 -0
  321. data/lib/ddtrace/contrib/http/ext.rb +17 -0
  322. data/lib/ddtrace/contrib/http/instrumentation.rb +179 -0
  323. data/lib/ddtrace/contrib/http/integration.rb +45 -0
  324. data/lib/ddtrace/contrib/http/patcher.rb +9 -144
  325. data/lib/ddtrace/contrib/http_annotation_helper.rb +10 -0
  326. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +32 -0
  327. data/lib/ddtrace/contrib/httpclient/ext.rb +17 -0
  328. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +147 -0
  329. data/lib/ddtrace/contrib/httpclient/integration.rb +43 -0
  330. data/lib/ddtrace/contrib/httpclient/patcher.rb +38 -0
  331. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +32 -0
  332. data/lib/ddtrace/contrib/httprb/ext.rb +17 -0
  333. data/lib/ddtrace/contrib/httprb/instrumentation.rb +157 -0
  334. data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
  335. data/lib/ddtrace/contrib/httprb/patcher.rb +38 -0
  336. data/lib/ddtrace/contrib/integration.rb +16 -0
  337. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +30 -0
  338. data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
  339. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
  340. data/lib/ddtrace/contrib/kafka/event.rb +51 -0
  341. data/lib/ddtrace/contrib/kafka/events.rb +44 -0
  342. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
  343. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
  344. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
  345. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
  346. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
  347. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
  348. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
  349. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
  350. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
  351. data/lib/ddtrace/contrib/kafka/ext.rb +41 -0
  352. data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
  353. data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
  354. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +33 -0
  355. data/lib/ddtrace/contrib/mongodb/ext.rb +23 -0
  356. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +69 -0
  357. data/lib/ddtrace/contrib/mongodb/integration.rb +38 -0
  358. data/lib/ddtrace/contrib/mongodb/patcher.rb +11 -74
  359. data/lib/ddtrace/contrib/mongodb/subscribers.rb +57 -18
  360. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +30 -0
  361. data/lib/ddtrace/contrib/mysql2/ext.rb +18 -0
  362. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +64 -0
  363. data/lib/ddtrace/contrib/mysql2/integration.rb +38 -0
  364. data/lib/ddtrace/contrib/mysql2/patcher.rb +9 -25
  365. data/lib/ddtrace/contrib/patchable.rb +70 -0
  366. data/lib/ddtrace/contrib/patcher.rb +65 -0
  367. data/lib/ddtrace/contrib/presto/configuration/settings.rb +30 -0
  368. data/lib/ddtrace/contrib/presto/ext.rb +28 -0
  369. data/lib/ddtrace/contrib/presto/instrumentation.rb +110 -0
  370. data/lib/ddtrace/contrib/presto/integration.rb +38 -0
  371. data/lib/ddtrace/contrib/presto/patcher.rb +33 -0
  372. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  373. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  374. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  375. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  376. data/lib/ddtrace/contrib/qless/qless_job.rb +73 -0
  377. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +33 -0
  378. data/lib/ddtrace/contrib/que/configuration/settings.rb +43 -0
  379. data/lib/ddtrace/contrib/que/ext.rb +30 -0
  380. data/lib/ddtrace/contrib/que/integration.rb +42 -0
  381. data/lib/ddtrace/contrib/que/patcher.rb +24 -0
  382. data/lib/ddtrace/contrib/que/tracer.rb +57 -0
  383. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +30 -0
  384. data/lib/ddtrace/contrib/racecar/event.rb +22 -7
  385. data/lib/ddtrace/contrib/racecar/events.rb +2 -0
  386. data/lib/ddtrace/contrib/racecar/events/batch.rb +2 -2
  387. data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
  388. data/lib/ddtrace/contrib/racecar/events/message.rb +2 -2
  389. data/lib/ddtrace/contrib/racecar/ext.rb +25 -0
  390. data/lib/ddtrace/contrib/racecar/integration.rb +39 -0
  391. data/lib/ddtrace/contrib/racecar/patcher.rb +11 -42
  392. data/lib/ddtrace/contrib/rack/configuration/settings.rb +46 -0
  393. data/lib/ddtrace/contrib/rack/ext.rb +21 -0
  394. data/lib/ddtrace/contrib/rack/integration.rb +45 -0
  395. data/lib/ddtrace/contrib/rack/middlewares.rb +105 -54
  396. data/lib/ddtrace/contrib/rack/patcher.rb +65 -49
  397. data/lib/ddtrace/contrib/rack/request_queue.rb +17 -7
  398. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
  399. data/lib/ddtrace/contrib/rails/configuration/settings.rb +93 -0
  400. data/lib/ddtrace/contrib/rails/ext.rb +17 -0
  401. data/lib/ddtrace/contrib/rails/framework.rb +82 -33
  402. data/lib/ddtrace/contrib/rails/integration.rb +44 -0
  403. data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
  404. data/lib/ddtrace/contrib/rails/middlewares.rb +8 -2
  405. data/lib/ddtrace/contrib/rails/patcher.rb +88 -34
  406. data/lib/ddtrace/contrib/rails/railtie.rb +5 -9
  407. data/lib/ddtrace/contrib/rails/utils.rb +7 -31
  408. data/lib/ddtrace/contrib/rake/configuration/settings.rb +31 -0
  409. data/lib/ddtrace/contrib/rake/ext.rb +21 -0
  410. data/lib/ddtrace/contrib/rake/instrumentation.rb +33 -13
  411. data/lib/ddtrace/contrib/rake/integration.rb +38 -0
  412. data/lib/ddtrace/contrib/rake/patcher.rb +10 -33
  413. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +45 -0
  414. data/lib/ddtrace/contrib/redis/configuration/settings.rb +35 -0
  415. data/lib/ddtrace/contrib/redis/ext.rb +22 -0
  416. data/lib/ddtrace/contrib/redis/integration.rb +42 -0
  417. data/lib/ddtrace/contrib/redis/patcher.rb +58 -53
  418. data/lib/ddtrace/contrib/redis/quantize.rb +47 -1
  419. data/lib/ddtrace/contrib/redis/tags.rb +33 -7
  420. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  421. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +158 -0
  422. data/lib/ddtrace/contrib/registerable.rb +33 -0
  423. data/lib/ddtrace/contrib/registry.rb +42 -0
  424. data/lib/ddtrace/contrib/resque/configuration/settings.rb +32 -0
  425. data/lib/ddtrace/contrib/resque/ext.rb +17 -0
  426. data/lib/ddtrace/contrib/resque/integration.rb +47 -0
  427. data/lib/ddtrace/contrib/resque/patcher.rb +16 -38
  428. data/lib/ddtrace/contrib/resque/resque_job.rb +61 -20
  429. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +31 -0
  430. data/lib/ddtrace/contrib/rest_client/ext.rb +17 -0
  431. data/lib/ddtrace/contrib/rest_client/integration.rb +38 -0
  432. data/lib/ddtrace/contrib/rest_client/patcher.rb +23 -0
  433. data/lib/ddtrace/contrib/rest_client/request_patch.rb +91 -0
  434. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +28 -0
  435. data/lib/ddtrace/contrib/rspec/example.rb +75 -0
  436. data/lib/ddtrace/contrib/rspec/ext.rb +16 -0
  437. data/lib/ddtrace/contrib/rspec/integration.rb +46 -0
  438. data/lib/ddtrace/contrib/rspec/patcher.rb +23 -0
  439. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +28 -0
  440. data/lib/ddtrace/contrib/sequel/database.rb +9 -4
  441. data/lib/ddtrace/contrib/sequel/dataset.rb +7 -3
  442. data/lib/ddtrace/contrib/sequel/ext.rb +19 -0
  443. data/lib/ddtrace/contrib/sequel/integration.rb +38 -0
  444. data/lib/ddtrace/contrib/sequel/patcher.rb +6 -29
  445. data/lib/ddtrace/contrib/sequel/utils.rb +60 -14
  446. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +30 -0
  447. data/lib/ddtrace/contrib/shoryuken/ext.rb +21 -0
  448. data/lib/ddtrace/contrib/shoryuken/integration.rb +39 -0
  449. data/lib/ddtrace/contrib/shoryuken/patcher.rb +24 -0
  450. data/lib/ddtrace/contrib/shoryuken/tracer.rb +51 -0
  451. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +43 -0
  452. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +37 -0
  453. data/lib/ddtrace/contrib/sidekiq/ext.rb +27 -0
  454. data/lib/ddtrace/contrib/sidekiq/integration.rb +38 -0
  455. data/lib/ddtrace/contrib/sidekiq/patcher.rb +22 -14
  456. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +65 -0
  457. data/lib/ddtrace/contrib/sidekiq/tracing.rb +44 -0
  458. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +39 -0
  459. data/lib/ddtrace/contrib/sinatra/env.rb +27 -9
  460. data/lib/ddtrace/contrib/sinatra/ext.rb +27 -0
  461. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  462. data/lib/ddtrace/contrib/sinatra/integration.rb +38 -0
  463. data/lib/ddtrace/contrib/sinatra/patcher.rb +28 -0
  464. data/lib/ddtrace/contrib/sinatra/tracer.rb +79 -65
  465. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +60 -16
  466. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +33 -0
  467. data/lib/ddtrace/contrib/sneakers/ext.rb +22 -0
  468. data/lib/ddtrace/contrib/sneakers/integration.rb +41 -0
  469. data/lib/ddtrace/contrib/sneakers/patcher.rb +24 -0
  470. data/lib/ddtrace/contrib/sneakers/tracer.rb +53 -0
  471. data/lib/ddtrace/contrib/status_code_matcher.rb +69 -0
  472. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +30 -0
  473. data/lib/ddtrace/contrib/sucker_punch/ext.rb +21 -0
  474. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +29 -5
  475. data/lib/ddtrace/contrib/sucker_punch/integration.rb +38 -0
  476. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +21 -33
  477. data/lib/ddtrace/correlation.rb +39 -0
  478. data/lib/ddtrace/diagnostics/environment_logger.rb +279 -0
  479. data/lib/ddtrace/diagnostics/health.rb +33 -0
  480. data/lib/ddtrace/distributed_tracing/headers/b3.rb +44 -0
  481. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +56 -0
  482. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +42 -0
  483. data/lib/ddtrace/distributed_tracing/headers/headers.rb +71 -0
  484. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +43 -0
  485. data/lib/ddtrace/encoding.rb +36 -32
  486. data/lib/ddtrace/environment.rb +41 -0
  487. data/lib/ddtrace/event.rb +52 -0
  488. data/lib/ddtrace/ext/analytics.rb +12 -0
  489. data/lib/ddtrace/ext/app_types.rb +1 -0
  490. data/lib/ddtrace/ext/ci.rb +297 -0
  491. data/lib/ddtrace/ext/correlation.rb +11 -0
  492. data/lib/ddtrace/ext/diagnostics.rb +36 -0
  493. data/lib/ddtrace/ext/distributed.rb +22 -0
  494. data/lib/ddtrace/ext/environment.rb +16 -0
  495. data/lib/ddtrace/ext/forced_tracing.rb +25 -0
  496. data/lib/ddtrace/ext/git.rb +11 -0
  497. data/lib/ddtrace/ext/http.rb +4 -2
  498. data/lib/ddtrace/ext/integration.rb +8 -0
  499. data/lib/ddtrace/ext/manual_tracing.rb +9 -0
  500. data/lib/ddtrace/ext/metrics.rb +15 -0
  501. data/lib/ddtrace/ext/net.rb +2 -0
  502. data/lib/ddtrace/ext/runtime.rb +30 -0
  503. data/lib/ddtrace/ext/sampling.rb +16 -0
  504. data/lib/ddtrace/ext/test.rb +24 -0
  505. data/lib/ddtrace/ext/transport.rb +18 -0
  506. data/lib/ddtrace/forced_tracing.rb +38 -0
  507. data/lib/ddtrace/logger.rb +5 -4
  508. data/lib/ddtrace/metrics.rb +226 -0
  509. data/lib/ddtrace/opentelemetry/extensions.rb +13 -0
  510. data/lib/ddtrace/opentelemetry/span.rb +33 -0
  511. data/lib/ddtrace/opentracer.rb +40 -0
  512. data/lib/ddtrace/opentracer/binary_propagator.rb +24 -0
  513. data/lib/ddtrace/opentracer/carrier.rb +6 -0
  514. data/lib/ddtrace/opentracer/distributed_headers.rb +55 -0
  515. data/lib/ddtrace/opentracer/global_tracer.rb +15 -0
  516. data/lib/ddtrace/opentracer/propagator.rb +22 -0
  517. data/lib/ddtrace/opentracer/rack_propagator.rb +60 -0
  518. data/lib/ddtrace/opentracer/scope.rb +15 -0
  519. data/lib/ddtrace/opentracer/scope_manager.rb +6 -0
  520. data/lib/ddtrace/opentracer/span.rb +94 -0
  521. data/lib/ddtrace/opentracer/span_context.rb +14 -0
  522. data/lib/ddtrace/opentracer/span_context_factory.rb +23 -0
  523. data/lib/ddtrace/opentracer/text_map_propagator.rb +75 -0
  524. data/lib/ddtrace/opentracer/thread_local_scope.rb +31 -0
  525. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +40 -0
  526. data/lib/ddtrace/opentracer/tracer.rb +208 -0
  527. data/lib/ddtrace/patcher.rb +33 -5
  528. data/lib/ddtrace/pin.rb +35 -20
  529. data/lib/ddtrace/pipeline.rb +1 -1
  530. data/lib/ddtrace/pipeline/span_filter.rb +15 -15
  531. data/lib/ddtrace/propagation/grpc_propagator.rb +26 -6
  532. data/lib/ddtrace/propagation/http_propagator.rb +72 -10
  533. data/lib/ddtrace/quantization/http.rb +1 -0
  534. data/lib/ddtrace/runtime/cgroup.rb +44 -0
  535. data/lib/ddtrace/runtime/class_count.rb +17 -0
  536. data/lib/ddtrace/runtime/container.rb +71 -0
  537. data/lib/ddtrace/runtime/gc.rb +16 -0
  538. data/lib/ddtrace/runtime/identity.rb +48 -0
  539. data/lib/ddtrace/runtime/metrics.rb +114 -0
  540. data/lib/ddtrace/runtime/object_space.rb +19 -0
  541. data/lib/ddtrace/runtime/socket.rb +14 -0
  542. data/lib/ddtrace/runtime/thread_count.rb +16 -0
  543. data/lib/ddtrace/sampler.rb +218 -37
  544. data/lib/ddtrace/sampling.rb +2 -0
  545. data/lib/ddtrace/sampling/matcher.rb +57 -0
  546. data/lib/ddtrace/sampling/rate_limiter.rb +176 -0
  547. data/lib/ddtrace/sampling/rule.rb +61 -0
  548. data/lib/ddtrace/sampling/rule_sampler.rb +126 -0
  549. data/lib/ddtrace/span.rb +244 -34
  550. data/lib/ddtrace/sync_writer.rb +47 -16
  551. data/lib/ddtrace/tracer.rb +215 -117
  552. data/lib/ddtrace/transport/http.rb +113 -0
  553. data/lib/ddtrace/transport/http/adapters/net.rb +145 -0
  554. data/lib/ddtrace/transport/http/adapters/registry.rb +25 -0
  555. data/lib/ddtrace/transport/http/adapters/test.rb +83 -0
  556. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +66 -0
  557. data/lib/ddtrace/transport/http/api.rb +46 -0
  558. data/lib/ddtrace/transport/http/api/endpoint.rb +27 -0
  559. data/lib/ddtrace/transport/http/api/fallbacks.rb +22 -0
  560. data/lib/ddtrace/transport/http/api/instance.rb +33 -0
  561. data/lib/ddtrace/transport/http/api/map.rb +14 -0
  562. data/lib/ddtrace/transport/http/api/spec.rb +15 -0
  563. data/lib/ddtrace/transport/http/builder.rb +169 -0
  564. data/lib/ddtrace/transport/http/client.rb +50 -0
  565. data/lib/ddtrace/transport/http/env.rb +56 -0
  566. data/lib/ddtrace/transport/http/response.rb +26 -0
  567. data/lib/ddtrace/transport/http/statistics.rb +43 -0
  568. data/lib/ddtrace/transport/http/traces.rb +142 -0
  569. data/lib/ddtrace/transport/io.rb +26 -0
  570. data/lib/ddtrace/transport/io/client.rb +76 -0
  571. data/lib/ddtrace/transport/io/response.rb +23 -0
  572. data/lib/ddtrace/transport/io/traces.rb +97 -0
  573. data/lib/ddtrace/transport/parcel.rb +13 -0
  574. data/lib/ddtrace/transport/request.rb +13 -0
  575. data/lib/ddtrace/transport/response.rb +60 -0
  576. data/lib/ddtrace/transport/statistics.rb +72 -0
  577. data/lib/ddtrace/transport/traces.rb +205 -0
  578. data/lib/ddtrace/utils.rb +17 -14
  579. data/lib/ddtrace/utils/compression.rb +27 -0
  580. data/lib/ddtrace/utils/database.rb +7 -3
  581. data/lib/ddtrace/utils/forking.rb +52 -0
  582. data/lib/ddtrace/utils/object_set.rb +41 -0
  583. data/lib/ddtrace/utils/only_once.rb +40 -0
  584. data/lib/ddtrace/utils/sequence.rb +17 -0
  585. data/lib/ddtrace/utils/string_table.rb +45 -0
  586. data/lib/ddtrace/utils/time.rb +45 -0
  587. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  588. data/lib/ddtrace/vendor/active_record/connection_specification.rb +301 -0
  589. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  590. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  591. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  592. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  593. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  594. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  595. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  596. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  597. data/lib/ddtrace/version.rb +3 -1
  598. data/lib/ddtrace/worker.rb +20 -0
  599. data/lib/ddtrace/workers.rb +39 -40
  600. data/lib/ddtrace/workers/async.rb +173 -0
  601. data/lib/ddtrace/workers/loop.rb +119 -0
  602. data/lib/ddtrace/workers/polling.rb +49 -0
  603. data/lib/ddtrace/workers/queue.rb +40 -0
  604. data/lib/ddtrace/workers/runtime_metrics.rb +51 -0
  605. data/lib/ddtrace/workers/trace_writer.rb +202 -0
  606. data/lib/ddtrace/writer.rb +121 -57
  607. data/tasks/release_gem.rake +28 -0
  608. metadata +501 -211
  609. data/lib/ddtrace/configurable.rb +0 -83
  610. data/lib/ddtrace/configuration/proxy.rb +0 -25
  611. data/lib/ddtrace/contrib/base.rb +0 -15
  612. data/lib/ddtrace/contrib/mysql2/client.rb +0 -60
  613. data/lib/ddtrace/contrib/rails/action_controller.rb +0 -91
  614. data/lib/ddtrace/contrib/rails/action_controller_patch.rb +0 -77
  615. data/lib/ddtrace/contrib/rails/action_view.rb +0 -19
  616. data/lib/ddtrace/contrib/rails/active_support.rb +0 -65
  617. data/lib/ddtrace/contrib/rails/core_extensions.rb +0 -356
  618. data/lib/ddtrace/contrib/sidekiq/tracer.rb +0 -72
  619. data/lib/ddtrace/ext/cache.rb +0 -8
  620. data/lib/ddtrace/ext/grpc.rb +0 -7
  621. data/lib/ddtrace/ext/mongo.rb +0 -12
  622. data/lib/ddtrace/ext/redis.rb +0 -17
  623. data/lib/ddtrace/monkey.rb +0 -65
  624. data/lib/ddtrace/propagation/distributed_headers.rb +0 -48
  625. data/lib/ddtrace/provider.rb +0 -21
  626. data/lib/ddtrace/registry.rb +0 -42
  627. data/lib/ddtrace/registry/registerable.rb +0 -20
  628. data/lib/ddtrace/transport.rb +0 -212
@@ -1,91 +1,143 @@
1
- require 'ddtrace/transport'
1
+ require 'json'
2
+
3
+ require 'ddtrace/ext/net'
4
+ require 'ddtrace/runtime/socket'
5
+
6
+ require 'ddtrace/transport/http'
7
+ require 'ddtrace/transport/io'
2
8
  require 'ddtrace/encoding'
3
9
  require 'ddtrace/workers'
10
+ require 'ddtrace/diagnostics/environment_logger'
11
+ require 'ddtrace/utils/only_once'
4
12
 
5
13
  module Datadog
6
- # Traces and services writer that periodically sends data to the trace-agent
14
+ # Processor that sends traces and metadata to the agent
7
15
  class Writer
8
- attr_reader :transport, :worker, :priority_sampler
16
+ DEPRECATION_WARN_ONLY_ONCE = Datadog::Utils::OnlyOnce.new
9
17
 
10
- HOSTNAME = 'localhost'.freeze
11
- PORT = '8126'.freeze
18
+ attr_reader \
19
+ :priority_sampler,
20
+ :transport,
21
+ :worker
12
22
 
13
23
  def initialize(options = {})
14
24
  # writer and transport parameters
15
- @buff_size = options.fetch(:buffer_size, 100)
16
- @flush_interval = options.fetch(:flush_interval, 1)
25
+ @buff_size = options.fetch(:buffer_size, Workers::AsyncTransport::DEFAULT_BUFFER_MAX_SIZE)
26
+ @flush_interval = options.fetch(:flush_interval, Workers::AsyncTransport::DEFAULT_FLUSH_INTERVAL)
17
27
  transport_options = options.fetch(:transport_options, {})
18
28
 
19
29
  # priority sampling
20
30
  if options[:priority_sampler]
21
31
  @priority_sampler = options[:priority_sampler]
22
- transport_options[:api_version] ||= HTTPTransport::V4
23
- transport_options[:response_callback] ||= method(:sampling_updater)
32
+ transport_options[:api_version] ||= Transport::HTTP::API::V4
24
33
  end
25
34
 
26
35
  # transport and buffers
27
36
  @transport = options.fetch(:transport) do
28
- HTTPTransport.new(HOSTNAME, PORT, transport_options)
37
+ Transport::HTTP.default(transport_options)
29
38
  end
30
39
 
31
- @services = {}
32
-
33
40
  # handles the thread creation after an eventual fork
34
41
  @mutex_after_fork = Mutex.new
35
42
  @pid = nil
36
43
 
37
44
  @traces_flushed = 0
38
- @services_flushed = 0
39
45
 
40
- # one worker for both services and traces, each have their own queues
46
+ # one worker for traces
41
47
  @worker = nil
48
+
49
+ # Once stopped, this writer instance cannot be restarted.
50
+ # This allow for graceful shutdown, while preventing
51
+ # the host application from inadvertently start new
52
+ # threads during shutdown.
53
+ @stopped = false
42
54
  end
43
55
 
44
- # spawns two different workers for spans and services;
45
- # they share the same transport which is thread-safe
46
56
  def start
47
- @pid = Process.pid
57
+ @mutex_after_fork.synchronize do
58
+ return false if @stopped
59
+
60
+ pid = Process.pid
61
+ return if @worker && pid == @pid
62
+
63
+ @pid = pid
64
+
65
+ start_worker
66
+ true
67
+ end
68
+ end
69
+
70
+ # spawns a worker for spans; they share the same transport which is thread-safe
71
+ def start_worker
48
72
  @trace_handler = ->(items, transport) { send_spans(items, transport) }
49
- @service_handler = ->(items, transport) { send_services(items, transport) }
50
- @worker = Datadog::Workers::AsyncTransport.new(@transport,
51
- @buff_size,
52
- @trace_handler,
53
- @service_handler,
54
- @flush_interval)
55
-
56
- @worker.start()
73
+ @worker = Datadog::Workers::AsyncTransport.new(
74
+ transport: @transport,
75
+ buffer_size: @buff_size,
76
+ on_trace: @trace_handler,
77
+ interval: @flush_interval
78
+ )
79
+
80
+ @worker.start
57
81
  end
58
82
 
59
- # stops both workers for spans and services.
83
+ # Gracefully shuts down this writer.
84
+ #
85
+ # Once stopped methods calls won't fail, but
86
+ # no internal work will be performed.
87
+ #
88
+ # It is not possible to restart a stopped writer instance.
60
89
  def stop
61
- @worker.stop()
90
+ @mutex_after_fork.synchronize { stop_worker }
91
+ end
92
+
93
+ def stop_worker
94
+ @stopped = true
95
+
96
+ return if @worker.nil?
97
+
98
+ @worker.stop
62
99
  @worker = nil
100
+
101
+ true
63
102
  end
64
103
 
104
+ private :start_worker, :stop_worker
105
+
65
106
  # flush spans to the trace-agent, handles spans only
66
107
  def send_spans(traces, transport)
67
108
  return true if traces.empty?
68
109
 
69
- code = transport.send(:traces, traces)
70
- status = !transport.server_error?(code)
71
- @traces_flushed += traces.length if status
110
+ # Inject hostname if configured to do so
111
+ inject_hostname!(traces) if Datadog.configuration.report_hostname
72
112
 
73
- status
74
- end
113
+ # Send traces and get responses
114
+ responses = transport.send_traces(traces)
115
+
116
+ # Tally up successful flushes
117
+ responses.reject { |x| x.internal_error? || x.server_error? }.each do |response|
118
+ @traces_flushed += response.trace_count
119
+ end
75
120
 
76
- # flush services to the trace-agent, handles services only
77
- def send_services(services, transport)
78
- return true if services.empty?
121
+ # Update priority sampler
122
+ update_priority_sampler(responses.last)
79
123
 
80
- code = transport.send(:services, services)
81
- status = !transport.server_error?(code)
82
- @services_flushed += 1 if status
124
+ record_environment_information!(responses)
83
125
 
84
- status
126
+ # Return if server error occurred.
127
+ !responses.find(&:server_error?)
85
128
  end
86
129
 
87
130
  # enqueue the trace for submission to the API
88
- def write(trace, services)
131
+ def write(trace, services = nil)
132
+ unless services.nil?
133
+ DEPRECATION_WARN_ONLY_ONCE.run do
134
+ Datadog.logger.warn(%(
135
+ write: Writing services has been deprecated and no longer need to be provided.
136
+ write(traces, services) can be updated to write(traces)
137
+ ))
138
+ end
139
+ end
140
+
89
141
  # In multiprocess environments, the main process initializes the +Writer+ instance and if
90
142
  # the process forks (i.e. a web server like Unicorn or Puma with multiple workers) the new
91
143
  # processes will share the same +Writer+ until the first write (COW). Because of that,
@@ -94,39 +146,51 @@ module Datadog
94
146
  #
95
147
  # This check ensures that if a process doesn't own the current +Writer+, async workers
96
148
  # will be initialized again (but only once for each process).
97
- pid = Process.pid
98
- @mutex_after_fork.synchronize do
99
- if pid != @pid
100
- # we should start threads because the worker doesn't own this
101
- start()
102
- end
149
+ start if @worker.nil? || @pid != Process.pid
150
+
151
+ # TODO: Remove this, and have the tracer pump traces directly to runtime metrics
152
+ # instead of working through the trace writer.
153
+ # Associate root span with runtime metrics
154
+ if Datadog.configuration.runtime_metrics.enabled && !trace.empty?
155
+ Datadog.runtime_metrics.associate_with_span(trace.first)
103
156
  end
104
157
 
105
- @worker.enqueue_trace(trace)
106
- @worker.enqueue_service(services)
158
+ worker_local = @worker
159
+
160
+ if worker_local
161
+ worker_local.enqueue_trace(trace)
162
+ elsif !@stopped
163
+ Datadog.logger.debug('Writer either failed to start or was stopped before #write could complete')
164
+ end
107
165
  end
108
166
 
109
167
  # stats returns a dictionary of stats about the writer.
110
168
  def stats
111
169
  {
112
170
  traces_flushed: @traces_flushed,
113
- services_flushed: @services_flushed,
114
171
  transport: @transport.stats
115
172
  }
116
173
  end
117
174
 
118
175
  private
119
176
 
120
- def sampling_updater(action, response, api)
121
- return unless action == :traces && response.is_a?(Net::HTTPOK)
177
+ def inject_hostname!(traces)
178
+ traces.each do |trace|
179
+ next if trace.first.nil?
122
180
 
123
- if api[:version] == HTTPTransport::V4
124
- service_rates = JSON.parse(response.body)
125
- @priority_sampler.update(service_rates)
126
- true
127
- else
128
- false
181
+ hostname = Datadog::Runtime::Socket.hostname
182
+ trace.first.set_tag(Ext::NET::TAG_HOSTNAME, hostname) unless hostname.nil? || hostname.empty?
129
183
  end
130
184
  end
185
+
186
+ def update_priority_sampler(response)
187
+ return unless response && !response.internal_error? && priority_sampler && response.service_rates
188
+
189
+ priority_sampler.update(response.service_rates)
190
+ end
191
+
192
+ def record_environment_information!(responses)
193
+ Diagnostics::EnvironmentLogger.log!(responses)
194
+ end
131
195
  end
132
196
  end
@@ -0,0 +1,28 @@
1
+ desc 'create a new indexed repository'
2
+ task :'release:gem' do
3
+ raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
4
+ # load existing deployed gems
5
+ sh "aws s3 cp --exclude 'docs/*' --recursive s3://#{S3_BUCKET}/#{S3_DIR}/ ./rubygems/"
6
+
7
+ # create folders
8
+ sh 'mkdir -p ./gems'
9
+ sh 'mkdir -p ./rubygems/gems'
10
+
11
+ # build the gem
12
+ Rake::Task['build'].execute
13
+
14
+ # copy the output in the indexed folder
15
+ sh 'cp pkg/*.gem ./rubygems/gems/'
16
+
17
+ # generate the gems index
18
+ sh 'gem generate_index -v --no-modern -d ./rubygems'
19
+
20
+ # remove all local repository gems to limit files needed to be uploaded
21
+ sh 'rm -f ./rubygems/gems/*'
22
+
23
+ # re-add new gems
24
+ sh 'cp pkg/*.gem ./rubygems/gems/'
25
+
26
+ # deploy a static gem registry
27
+ sh "aws s3 cp --recursive ./rubygems/ s3://#{S3_BUCKET}/#{S3_DIR}/"
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.47.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-20 00:00:00.000000000 Z
11
+ date: 2021-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -24,188 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '10.5'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '10.5'
41
- - !ruby/object:Gem::Dependency
42
- name: rubocop
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 0.49.1
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 0.49.1
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec-collection_matchers
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.1'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.1'
83
- - !ruby/object:Gem::Dependency
84
- name: minitest
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 5.10.1
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 5.10.1
97
- - !ruby/object:Gem::Dependency
98
- name: appraisal
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '2.2'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '2.2'
111
- - !ruby/object:Gem::Dependency
112
- name: yard
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '0.9'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '0.9'
125
- - !ruby/object:Gem::Dependency
126
- name: webmock
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '2.0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '2.0'
139
- - !ruby/object:Gem::Dependency
140
- name: builder
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: addressable
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: 2.4.0
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: 2.4.0
167
- - !ruby/object:Gem::Dependency
168
- name: redcarpet
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '3.4'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '3.4'
181
- - !ruby/object:Gem::Dependency
182
- name: pry
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: 0.10.4
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: 0.10.4
195
- - !ruby/object:Gem::Dependency
196
- name: pry-stack_explorer
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: 0.4.9.2
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: 0.4.9.2
209
27
  description: |
210
28
  ddtrace is Datadog’s tracing client for Ruby. It is used to trace requests
211
29
  as they flow across web servers, databases and microservices so that developers
@@ -217,154 +35,626 @@ extensions: []
217
35
  extra_rdoc_files: []
218
36
  files:
219
37
  - ".circleci/config.yml"
220
- - ".circleci/images/primary/Dockerfile-1.9.3"
221
38
  - ".circleci/images/primary/Dockerfile-2.0.0"
222
39
  - ".circleci/images/primary/Dockerfile-2.1.10"
223
40
  - ".circleci/images/primary/Dockerfile-2.2.10"
224
- - ".circleci/images/primary/Dockerfile-2.3.7"
225
- - ".circleci/images/primary/Dockerfile-2.4.4"
41
+ - ".circleci/images/primary/Dockerfile-2.3.8"
42
+ - ".circleci/images/primary/Dockerfile-2.4.6"
43
+ - ".circleci/images/primary/Dockerfile-2.5.6"
44
+ - ".circleci/images/primary/Dockerfile-2.6.4"
45
+ - ".circleci/images/primary/Dockerfile-2.7.0"
46
+ - ".circleci/images/primary/Dockerfile-3.0.0"
47
+ - ".circleci/images/primary/Dockerfile-jruby-9.2-latest"
48
+ - ".circleci/images/primary/Dockerfile-jruby-9.2.0.0"
49
+ - ".circleci/images/primary/Dockerfile-truffleruby-21.0.0"
226
50
  - ".dockerignore"
227
51
  - ".env"
52
+ - ".github/CODEOWNERS"
53
+ - ".github/workflows/add-milestone-to-pull-requests.yml"
54
+ - ".github/workflows/create-next-milestone.yml"
228
55
  - ".gitignore"
56
+ - ".gitlab-ci.yml"
229
57
  - ".rspec"
230
58
  - ".rubocop.yml"
59
+ - ".rubocop_todo.yml"
60
+ - ".simplecov"
231
61
  - ".yardopts"
232
62
  - Appraisals
233
63
  - CHANGELOG.md
64
+ - CONTRIBUTING.md
234
65
  - Gemfile
235
66
  - LICENSE
67
+ - LICENSE-3rdparty.csv
68
+ - LICENSE.Apache
69
+ - LICENSE.BSD3
70
+ - NOTICE
236
71
  - README.md
237
72
  - Rakefile
73
+ - benchmarks/postgres_database.yml
74
+ - benchmarks/sidekiq_test.rb
238
75
  - ddtrace.gemspec
239
76
  - docker-compose.yml
77
+ - docs/DevelopmentGuide.md
240
78
  - docs/GettingStarted.md
79
+ - integration/README.md
80
+ - integration/apps/rack/.dockerignore
81
+ - integration/apps/rack/.envrc.sample
82
+ - integration/apps/rack/.gitignore
83
+ - integration/apps/rack/.rspec
84
+ - integration/apps/rack/Dockerfile
85
+ - integration/apps/rack/Dockerfile-ci
86
+ - integration/apps/rack/Gemfile
87
+ - integration/apps/rack/README.md
88
+ - integration/apps/rack/app/acme.rb
89
+ - integration/apps/rack/app/datadog.rb
90
+ - integration/apps/rack/bin/run
91
+ - integration/apps/rack/bin/setup
92
+ - integration/apps/rack/bin/test
93
+ - integration/apps/rack/config.ru
94
+ - integration/apps/rack/config/puma.rb
95
+ - integration/apps/rack/config/unicorn.rb
96
+ - integration/apps/rack/docker-compose.ci.yml
97
+ - integration/apps/rack/docker-compose.yml
98
+ - integration/apps/rack/script/build-images
99
+ - integration/apps/rack/script/ci
100
+ - integration/apps/rack/spec/integration/basic_spec.rb
101
+ - integration/apps/rack/spec/spec_helper.rb
102
+ - integration/apps/rack/spec/support/integration_helper.rb
103
+ - integration/apps/rails-five/.dockerignore
104
+ - integration/apps/rails-five/.env
105
+ - integration/apps/rails-five/.envrc.sample
106
+ - integration/apps/rails-five/.gitignore
107
+ - integration/apps/rails-five/Dockerfile
108
+ - integration/apps/rails-five/Dockerfile-ci
109
+ - integration/apps/rails-five/Gemfile
110
+ - integration/apps/rails-five/README.md
111
+ - integration/apps/rails-five/Rakefile
112
+ - integration/apps/rails-five/app/channels/application_cable/channel.rb
113
+ - integration/apps/rails-five/app/channels/application_cable/connection.rb
114
+ - integration/apps/rails-five/app/controllers/application_controller.rb
115
+ - integration/apps/rails-five/app/controllers/basic_controller.rb
116
+ - integration/apps/rails-five/app/controllers/concerns/.keep
117
+ - integration/apps/rails-five/app/controllers/health_controller.rb
118
+ - integration/apps/rails-five/app/controllers/jobs_controller.rb
119
+ - integration/apps/rails-five/app/jobs/application_job.rb
120
+ - integration/apps/rails-five/app/jobs/test_job.rb
121
+ - integration/apps/rails-five/app/mailers/application_mailer.rb
122
+ - integration/apps/rails-five/app/models/application_record.rb
123
+ - integration/apps/rails-five/app/models/concerns/.keep
124
+ - integration/apps/rails-five/app/models/test.rb
125
+ - integration/apps/rails-five/app/views/layouts/mailer.html.erb
126
+ - integration/apps/rails-five/app/views/layouts/mailer.text.erb
127
+ - integration/apps/rails-five/bin/bundle
128
+ - integration/apps/rails-five/bin/rails
129
+ - integration/apps/rails-five/bin/rake
130
+ - integration/apps/rails-five/bin/run
131
+ - integration/apps/rails-five/bin/setup
132
+ - integration/apps/rails-five/bin/spring
133
+ - integration/apps/rails-five/bin/test
134
+ - integration/apps/rails-five/bin/update
135
+ - integration/apps/rails-five/config.ru
136
+ - integration/apps/rails-five/config/application.rb
137
+ - integration/apps/rails-five/config/boot.rb
138
+ - integration/apps/rails-five/config/cable.yml
139
+ - integration/apps/rails-five/config/credentials.yml.enc
140
+ - integration/apps/rails-five/config/database.yml
141
+ - integration/apps/rails-five/config/environment.rb
142
+ - integration/apps/rails-five/config/environments/development.rb
143
+ - integration/apps/rails-five/config/environments/production.rb
144
+ - integration/apps/rails-five/config/environments/test.rb
145
+ - integration/apps/rails-five/config/initializers/datadog.rb
146
+ - integration/apps/rails-five/config/initializers/filter_parameter_logging.rb
147
+ - integration/apps/rails-five/config/initializers/resque.rb
148
+ - integration/apps/rails-five/config/initializers/rollbar.rb
149
+ - integration/apps/rails-five/config/initializers/wrap_parameters.rb
150
+ - integration/apps/rails-five/config/locales/en.yml
151
+ - integration/apps/rails-five/config/puma.rb
152
+ - integration/apps/rails-five/config/routes.rb
153
+ - integration/apps/rails-five/config/spring.rb
154
+ - integration/apps/rails-five/config/unicorn.rb
155
+ - integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb
156
+ - integration/apps/rails-five/db/schema.rb
157
+ - integration/apps/rails-five/db/seeds.rb
158
+ - integration/apps/rails-five/docker-compose.ci.yml
159
+ - integration/apps/rails-five/docker-compose.yml
160
+ - integration/apps/rails-five/lib/tasks/.keep
161
+ - integration/apps/rails-five/log/.keep
162
+ - integration/apps/rails-five/public/robots.txt
163
+ - integration/apps/rails-five/script/build-images
164
+ - integration/apps/rails-five/script/ci
165
+ - integration/apps/rails-five/spec/integration/basic_spec.rb
166
+ - integration/apps/rails-five/spec/spec_helper.rb
167
+ - integration/apps/rails-five/spec/support/integration_helper.rb
168
+ - integration/apps/rails-five/storage/.keep
169
+ - integration/apps/rails-five/tmp/.keep
170
+ - integration/apps/rails-five/vendor/.keep
171
+ - integration/apps/ruby/.dockerignore
172
+ - integration/apps/ruby/.envrc.sample
173
+ - integration/apps/ruby/.gitignore
174
+ - integration/apps/ruby/Dockerfile
175
+ - integration/apps/ruby/Dockerfile-ci
176
+ - integration/apps/ruby/Gemfile
177
+ - integration/apps/ruby/README.md
178
+ - integration/apps/ruby/agent.yaml
179
+ - integration/apps/ruby/app/datadog.rb
180
+ - integration/apps/ruby/app/fibonacci.rb
181
+ - integration/apps/ruby/bin/run
182
+ - integration/apps/ruby/bin/setup
183
+ - integration/apps/ruby/bin/test
184
+ - integration/apps/ruby/docker-compose.ci.yml
185
+ - integration/apps/ruby/docker-compose.yml
186
+ - integration/apps/ruby/script/build-images
187
+ - integration/apps/ruby/script/ci
188
+ - integration/images/agent/Dockerfile
189
+ - integration/images/agent/agent.yaml
190
+ - integration/images/include/datadog/analyzer.rb
191
+ - integration/images/include/datadog/demo_env.rb
192
+ - integration/images/include/http-health-check
193
+ - integration/images/ruby/2.0/Dockerfile
194
+ - integration/images/ruby/2.1/Dockerfile
195
+ - integration/images/ruby/2.2/Dockerfile
196
+ - integration/images/ruby/2.3/Dockerfile
197
+ - integration/images/ruby/2.4/Dockerfile
198
+ - integration/images/ruby/2.5/Dockerfile
199
+ - integration/images/ruby/2.6/Dockerfile
200
+ - integration/images/ruby/2.7/Dockerfile
201
+ - integration/images/ruby/3.0/Dockerfile
202
+ - integration/images/wrk/Dockerfile
203
+ - integration/images/wrk/scripts/entrypoint.sh
204
+ - integration/images/wrk/scripts/scenarios/basic/default.lua
205
+ - integration/images/wrk/scripts/scenarios/basic/fibonacci.lua
206
+ - integration/script/build-images
241
207
  - lib/ddtrace.rb
208
+ - lib/ddtrace/analytics.rb
209
+ - lib/ddtrace/auto_instrument.rb
210
+ - lib/ddtrace/auto_instrument_base.rb
242
211
  - lib/ddtrace/buffer.rb
243
- - lib/ddtrace/configurable.rb
212
+ - lib/ddtrace/chunker.rb
244
213
  - lib/ddtrace/configuration.rb
214
+ - lib/ddtrace/configuration/base.rb
215
+ - lib/ddtrace/configuration/components.rb
216
+ - lib/ddtrace/configuration/dependency_resolver.rb
217
+ - lib/ddtrace/configuration/option.rb
218
+ - lib/ddtrace/configuration/option_definition.rb
219
+ - lib/ddtrace/configuration/option_definition_set.rb
220
+ - lib/ddtrace/configuration/option_set.rb
221
+ - lib/ddtrace/configuration/options.rb
245
222
  - lib/ddtrace/configuration/pin_setup.rb
246
- - lib/ddtrace/configuration/proxy.rb
247
- - lib/ddtrace/configuration/resolver.rb
223
+ - lib/ddtrace/configuration/settings.rb
248
224
  - lib/ddtrace/context.rb
249
225
  - lib/ddtrace/context_flush.rb
226
+ - lib/ddtrace/context_provider.rb
227
+ - lib/ddtrace/contrib/action_cable/configuration/settings.rb
228
+ - lib/ddtrace/contrib/action_cable/event.rb
229
+ - lib/ddtrace/contrib/action_cable/events.rb
230
+ - lib/ddtrace/contrib/action_cable/events/broadcast.rb
231
+ - lib/ddtrace/contrib/action_cable/events/perform_action.rb
232
+ - lib/ddtrace/contrib/action_cable/events/transmit.rb
233
+ - lib/ddtrace/contrib/action_cable/ext.rb
234
+ - lib/ddtrace/contrib/action_cable/instrumentation.rb
235
+ - lib/ddtrace/contrib/action_cable/integration.rb
236
+ - lib/ddtrace/contrib/action_cable/patcher.rb
237
+ - lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb
238
+ - lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
239
+ - lib/ddtrace/contrib/action_pack/configuration/settings.rb
240
+ - lib/ddtrace/contrib/action_pack/ext.rb
241
+ - lib/ddtrace/contrib/action_pack/integration.rb
242
+ - lib/ddtrace/contrib/action_pack/patcher.rb
243
+ - lib/ddtrace/contrib/action_pack/utils.rb
244
+ - lib/ddtrace/contrib/action_view/configuration/settings.rb
245
+ - lib/ddtrace/contrib/action_view/event.rb
246
+ - lib/ddtrace/contrib/action_view/events.rb
247
+ - lib/ddtrace/contrib/action_view/events/render_partial.rb
248
+ - lib/ddtrace/contrib/action_view/events/render_template.rb
249
+ - lib/ddtrace/contrib/action_view/ext.rb
250
+ - lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb
251
+ - lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb
252
+ - lib/ddtrace/contrib/action_view/integration.rb
253
+ - lib/ddtrace/contrib/action_view/patcher.rb
254
+ - lib/ddtrace/contrib/action_view/utils.rb
255
+ - lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb
250
256
  - lib/ddtrace/contrib/active_model_serializers/event.rb
251
257
  - lib/ddtrace/contrib/active_model_serializers/events.rb
252
258
  - lib/ddtrace/contrib/active_model_serializers/events/render.rb
253
259
  - lib/ddtrace/contrib/active_model_serializers/events/serialize.rb
260
+ - lib/ddtrace/contrib/active_model_serializers/ext.rb
261
+ - lib/ddtrace/contrib/active_model_serializers/integration.rb
254
262
  - lib/ddtrace/contrib/active_model_serializers/patcher.rb
263
+ - lib/ddtrace/contrib/active_record/configuration/resolver.rb
264
+ - lib/ddtrace/contrib/active_record/configuration/settings.rb
255
265
  - lib/ddtrace/contrib/active_record/event.rb
256
266
  - lib/ddtrace/contrib/active_record/events.rb
257
267
  - lib/ddtrace/contrib/active_record/events/instantiation.rb
258
268
  - lib/ddtrace/contrib/active_record/events/sql.rb
269
+ - lib/ddtrace/contrib/active_record/ext.rb
270
+ - lib/ddtrace/contrib/active_record/integration.rb
259
271
  - lib/ddtrace/contrib/active_record/patcher.rb
260
272
  - lib/ddtrace/contrib/active_record/utils.rb
273
+ - lib/ddtrace/contrib/active_support/cache/instrumentation.rb
274
+ - lib/ddtrace/contrib/active_support/cache/patcher.rb
275
+ - lib/ddtrace/contrib/active_support/cache/redis.rb
276
+ - lib/ddtrace/contrib/active_support/configuration/settings.rb
277
+ - lib/ddtrace/contrib/active_support/ext.rb
278
+ - lib/ddtrace/contrib/active_support/integration.rb
261
279
  - lib/ddtrace/contrib/active_support/notifications/event.rb
262
280
  - lib/ddtrace/contrib/active_support/notifications/subscriber.rb
263
281
  - lib/ddtrace/contrib/active_support/notifications/subscription.rb
282
+ - lib/ddtrace/contrib/active_support/patcher.rb
283
+ - lib/ddtrace/contrib/analytics.rb
284
+ - lib/ddtrace/contrib/auto_instrument.rb
285
+ - lib/ddtrace/contrib/aws/configuration/settings.rb
286
+ - lib/ddtrace/contrib/aws/ext.rb
264
287
  - lib/ddtrace/contrib/aws/instrumentation.rb
288
+ - lib/ddtrace/contrib/aws/integration.rb
265
289
  - lib/ddtrace/contrib/aws/parsed_context.rb
266
290
  - lib/ddtrace/contrib/aws/patcher.rb
267
291
  - lib/ddtrace/contrib/aws/services.rb
268
- - lib/ddtrace/contrib/base.rb
292
+ - lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb
293
+ - lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb
294
+ - lib/ddtrace/contrib/concurrent_ruby/ext.rb
295
+ - lib/ddtrace/contrib/concurrent_ruby/future_patch.rb
296
+ - lib/ddtrace/contrib/concurrent_ruby/integration.rb
297
+ - lib/ddtrace/contrib/concurrent_ruby/patcher.rb
298
+ - lib/ddtrace/contrib/configurable.rb
299
+ - lib/ddtrace/contrib/configuration/resolver.rb
300
+ - lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
301
+ - lib/ddtrace/contrib/configuration/settings.rb
302
+ - lib/ddtrace/contrib/cucumber/configuration/settings.rb
303
+ - lib/ddtrace/contrib/cucumber/ext.rb
304
+ - lib/ddtrace/contrib/cucumber/formatter.rb
305
+ - lib/ddtrace/contrib/cucumber/instrumentation.rb
306
+ - lib/ddtrace/contrib/cucumber/integration.rb
307
+ - lib/ddtrace/contrib/cucumber/patcher.rb
308
+ - lib/ddtrace/contrib/dalli/configuration/settings.rb
309
+ - lib/ddtrace/contrib/dalli/ext.rb
269
310
  - lib/ddtrace/contrib/dalli/instrumentation.rb
311
+ - lib/ddtrace/contrib/dalli/integration.rb
270
312
  - lib/ddtrace/contrib/dalli/patcher.rb
271
313
  - lib/ddtrace/contrib/dalli/quantize.rb
314
+ - lib/ddtrace/contrib/delayed_job/configuration/settings.rb
315
+ - lib/ddtrace/contrib/delayed_job/ext.rb
316
+ - lib/ddtrace/contrib/delayed_job/integration.rb
317
+ - lib/ddtrace/contrib/delayed_job/patcher.rb
318
+ - lib/ddtrace/contrib/delayed_job/plugin.rb
319
+ - lib/ddtrace/contrib/elasticsearch/configuration/settings.rb
320
+ - lib/ddtrace/contrib/elasticsearch/ext.rb
321
+ - lib/ddtrace/contrib/elasticsearch/integration.rb
272
322
  - lib/ddtrace/contrib/elasticsearch/patcher.rb
273
323
  - lib/ddtrace/contrib/elasticsearch/quantize.rb
324
+ - lib/ddtrace/contrib/ethon/configuration/settings.rb
325
+ - lib/ddtrace/contrib/ethon/easy_patch.rb
326
+ - lib/ddtrace/contrib/ethon/ext.rb
327
+ - lib/ddtrace/contrib/ethon/integration.rb
328
+ - lib/ddtrace/contrib/ethon/multi_patch.rb
329
+ - lib/ddtrace/contrib/ethon/patcher.rb
330
+ - lib/ddtrace/contrib/excon/configuration/settings.rb
331
+ - lib/ddtrace/contrib/excon/ext.rb
332
+ - lib/ddtrace/contrib/excon/integration.rb
274
333
  - lib/ddtrace/contrib/excon/middleware.rb
275
334
  - lib/ddtrace/contrib/excon/patcher.rb
335
+ - lib/ddtrace/contrib/extensions.rb
336
+ - lib/ddtrace/contrib/faraday/configuration/settings.rb
337
+ - lib/ddtrace/contrib/faraday/connection.rb
338
+ - lib/ddtrace/contrib/faraday/ext.rb
339
+ - lib/ddtrace/contrib/faraday/integration.rb
276
340
  - lib/ddtrace/contrib/faraday/middleware.rb
277
341
  - lib/ddtrace/contrib/faraday/patcher.rb
342
+ - lib/ddtrace/contrib/faraday/rack_builder.rb
343
+ - lib/ddtrace/contrib/grape/configuration/settings.rb
278
344
  - lib/ddtrace/contrib/grape/endpoint.rb
345
+ - lib/ddtrace/contrib/grape/ext.rb
346
+ - lib/ddtrace/contrib/grape/instrumentation.rb
347
+ - lib/ddtrace/contrib/grape/integration.rb
279
348
  - lib/ddtrace/contrib/grape/patcher.rb
349
+ - lib/ddtrace/contrib/graphql/configuration/settings.rb
350
+ - lib/ddtrace/contrib/graphql/ext.rb
351
+ - lib/ddtrace/contrib/graphql/integration.rb
280
352
  - lib/ddtrace/contrib/graphql/patcher.rb
353
+ - lib/ddtrace/contrib/grpc/configuration/settings.rb
281
354
  - lib/ddtrace/contrib/grpc/datadog_interceptor.rb
282
355
  - lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb
283
356
  - lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb
357
+ - lib/ddtrace/contrib/grpc/ext.rb
358
+ - lib/ddtrace/contrib/grpc/integration.rb
284
359
  - lib/ddtrace/contrib/grpc/intercept_with_datadog.rb
285
360
  - lib/ddtrace/contrib/grpc/patcher.rb
361
+ - lib/ddtrace/contrib/http/circuit_breaker.rb
362
+ - lib/ddtrace/contrib/http/configuration/settings.rb
363
+ - lib/ddtrace/contrib/http/ext.rb
364
+ - lib/ddtrace/contrib/http/instrumentation.rb
365
+ - lib/ddtrace/contrib/http/integration.rb
286
366
  - lib/ddtrace/contrib/http/patcher.rb
367
+ - lib/ddtrace/contrib/http_annotation_helper.rb
368
+ - lib/ddtrace/contrib/httpclient/configuration/settings.rb
369
+ - lib/ddtrace/contrib/httpclient/ext.rb
370
+ - lib/ddtrace/contrib/httpclient/instrumentation.rb
371
+ - lib/ddtrace/contrib/httpclient/integration.rb
372
+ - lib/ddtrace/contrib/httpclient/patcher.rb
373
+ - lib/ddtrace/contrib/httprb/configuration/settings.rb
374
+ - lib/ddtrace/contrib/httprb/ext.rb
375
+ - lib/ddtrace/contrib/httprb/instrumentation.rb
376
+ - lib/ddtrace/contrib/httprb/integration.rb
377
+ - lib/ddtrace/contrib/httprb/patcher.rb
378
+ - lib/ddtrace/contrib/integration.rb
379
+ - lib/ddtrace/contrib/kafka/configuration/settings.rb
380
+ - lib/ddtrace/contrib/kafka/consumer_event.rb
381
+ - lib/ddtrace/contrib/kafka/consumer_group_event.rb
382
+ - lib/ddtrace/contrib/kafka/event.rb
383
+ - lib/ddtrace/contrib/kafka/events.rb
384
+ - lib/ddtrace/contrib/kafka/events/connection/request.rb
385
+ - lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb
386
+ - lib/ddtrace/contrib/kafka/events/consumer/process_message.rb
387
+ - lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb
388
+ - lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb
389
+ - lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb
390
+ - lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb
391
+ - lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb
392
+ - lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb
393
+ - lib/ddtrace/contrib/kafka/ext.rb
394
+ - lib/ddtrace/contrib/kafka/integration.rb
395
+ - lib/ddtrace/contrib/kafka/patcher.rb
396
+ - lib/ddtrace/contrib/mongodb/configuration/settings.rb
397
+ - lib/ddtrace/contrib/mongodb/ext.rb
398
+ - lib/ddtrace/contrib/mongodb/instrumentation.rb
399
+ - lib/ddtrace/contrib/mongodb/integration.rb
287
400
  - lib/ddtrace/contrib/mongodb/parsers.rb
288
401
  - lib/ddtrace/contrib/mongodb/patcher.rb
289
402
  - lib/ddtrace/contrib/mongodb/subscribers.rb
290
- - lib/ddtrace/contrib/mysql2/client.rb
403
+ - lib/ddtrace/contrib/mysql2/configuration/settings.rb
404
+ - lib/ddtrace/contrib/mysql2/ext.rb
405
+ - lib/ddtrace/contrib/mysql2/instrumentation.rb
406
+ - lib/ddtrace/contrib/mysql2/integration.rb
291
407
  - lib/ddtrace/contrib/mysql2/patcher.rb
408
+ - lib/ddtrace/contrib/patchable.rb
409
+ - lib/ddtrace/contrib/patcher.rb
410
+ - lib/ddtrace/contrib/presto/configuration/settings.rb
411
+ - lib/ddtrace/contrib/presto/ext.rb
412
+ - lib/ddtrace/contrib/presto/instrumentation.rb
413
+ - lib/ddtrace/contrib/presto/integration.rb
414
+ - lib/ddtrace/contrib/presto/patcher.rb
415
+ - lib/ddtrace/contrib/qless/configuration/settings.rb
416
+ - lib/ddtrace/contrib/qless/ext.rb
417
+ - lib/ddtrace/contrib/qless/integration.rb
418
+ - lib/ddtrace/contrib/qless/patcher.rb
419
+ - lib/ddtrace/contrib/qless/qless_job.rb
420
+ - lib/ddtrace/contrib/qless/tracer_cleaner.rb
421
+ - lib/ddtrace/contrib/que/configuration/settings.rb
422
+ - lib/ddtrace/contrib/que/ext.rb
423
+ - lib/ddtrace/contrib/que/integration.rb
424
+ - lib/ddtrace/contrib/que/patcher.rb
425
+ - lib/ddtrace/contrib/que/tracer.rb
426
+ - lib/ddtrace/contrib/racecar/configuration/settings.rb
292
427
  - lib/ddtrace/contrib/racecar/event.rb
293
428
  - lib/ddtrace/contrib/racecar/events.rb
294
429
  - lib/ddtrace/contrib/racecar/events/batch.rb
430
+ - lib/ddtrace/contrib/racecar/events/consume.rb
295
431
  - lib/ddtrace/contrib/racecar/events/message.rb
432
+ - lib/ddtrace/contrib/racecar/ext.rb
433
+ - lib/ddtrace/contrib/racecar/integration.rb
296
434
  - lib/ddtrace/contrib/racecar/patcher.rb
435
+ - lib/ddtrace/contrib/rack/configuration/settings.rb
436
+ - lib/ddtrace/contrib/rack/ext.rb
437
+ - lib/ddtrace/contrib/rack/integration.rb
297
438
  - lib/ddtrace/contrib/rack/middlewares.rb
298
439
  - lib/ddtrace/contrib/rack/patcher.rb
299
440
  - lib/ddtrace/contrib/rack/request_queue.rb
300
- - lib/ddtrace/contrib/rails/action_controller.rb
301
- - lib/ddtrace/contrib/rails/action_controller_patch.rb
302
- - lib/ddtrace/contrib/rails/action_view.rb
303
- - lib/ddtrace/contrib/rails/active_support.rb
304
- - lib/ddtrace/contrib/rails/core_extensions.rb
441
+ - lib/ddtrace/contrib/rails/auto_instrument_railtie.rb
442
+ - lib/ddtrace/contrib/rails/configuration/settings.rb
443
+ - lib/ddtrace/contrib/rails/ext.rb
305
444
  - lib/ddtrace/contrib/rails/framework.rb
445
+ - lib/ddtrace/contrib/rails/integration.rb
446
+ - lib/ddtrace/contrib/rails/log_injection.rb
306
447
  - lib/ddtrace/contrib/rails/middlewares.rb
307
448
  - lib/ddtrace/contrib/rails/patcher.rb
308
449
  - lib/ddtrace/contrib/rails/railtie.rb
309
450
  - lib/ddtrace/contrib/rails/utils.rb
451
+ - lib/ddtrace/contrib/rake/configuration/settings.rb
452
+ - lib/ddtrace/contrib/rake/ext.rb
310
453
  - lib/ddtrace/contrib/rake/instrumentation.rb
454
+ - lib/ddtrace/contrib/rake/integration.rb
311
455
  - lib/ddtrace/contrib/rake/patcher.rb
456
+ - lib/ddtrace/contrib/redis/configuration/resolver.rb
457
+ - lib/ddtrace/contrib/redis/configuration/settings.rb
458
+ - lib/ddtrace/contrib/redis/ext.rb
459
+ - lib/ddtrace/contrib/redis/integration.rb
312
460
  - lib/ddtrace/contrib/redis/patcher.rb
313
461
  - lib/ddtrace/contrib/redis/quantize.rb
314
462
  - lib/ddtrace/contrib/redis/tags.rb
463
+ - lib/ddtrace/contrib/redis/vendor/LICENSE
464
+ - lib/ddtrace/contrib/redis/vendor/resolver.rb
465
+ - lib/ddtrace/contrib/registerable.rb
466
+ - lib/ddtrace/contrib/registry.rb
467
+ - lib/ddtrace/contrib/resque/configuration/settings.rb
468
+ - lib/ddtrace/contrib/resque/ext.rb
469
+ - lib/ddtrace/contrib/resque/integration.rb
315
470
  - lib/ddtrace/contrib/resque/patcher.rb
316
471
  - lib/ddtrace/contrib/resque/resque_job.rb
472
+ - lib/ddtrace/contrib/rest_client/configuration/settings.rb
473
+ - lib/ddtrace/contrib/rest_client/ext.rb
474
+ - lib/ddtrace/contrib/rest_client/integration.rb
475
+ - lib/ddtrace/contrib/rest_client/patcher.rb
476
+ - lib/ddtrace/contrib/rest_client/request_patch.rb
477
+ - lib/ddtrace/contrib/rspec/configuration/settings.rb
478
+ - lib/ddtrace/contrib/rspec/example.rb
479
+ - lib/ddtrace/contrib/rspec/ext.rb
480
+ - lib/ddtrace/contrib/rspec/integration.rb
481
+ - lib/ddtrace/contrib/rspec/patcher.rb
482
+ - lib/ddtrace/contrib/sequel/configuration/settings.rb
317
483
  - lib/ddtrace/contrib/sequel/database.rb
318
484
  - lib/ddtrace/contrib/sequel/dataset.rb
485
+ - lib/ddtrace/contrib/sequel/ext.rb
486
+ - lib/ddtrace/contrib/sequel/integration.rb
319
487
  - lib/ddtrace/contrib/sequel/patcher.rb
320
488
  - lib/ddtrace/contrib/sequel/utils.rb
489
+ - lib/ddtrace/contrib/shoryuken/configuration/settings.rb
490
+ - lib/ddtrace/contrib/shoryuken/ext.rb
491
+ - lib/ddtrace/contrib/shoryuken/integration.rb
492
+ - lib/ddtrace/contrib/shoryuken/patcher.rb
493
+ - lib/ddtrace/contrib/shoryuken/tracer.rb
494
+ - lib/ddtrace/contrib/sidekiq/client_tracer.rb
495
+ - lib/ddtrace/contrib/sidekiq/configuration/settings.rb
496
+ - lib/ddtrace/contrib/sidekiq/ext.rb
497
+ - lib/ddtrace/contrib/sidekiq/integration.rb
321
498
  - lib/ddtrace/contrib/sidekiq/patcher.rb
322
- - lib/ddtrace/contrib/sidekiq/tracer.rb
499
+ - lib/ddtrace/contrib/sidekiq/server_tracer.rb
500
+ - lib/ddtrace/contrib/sidekiq/tracing.rb
501
+ - lib/ddtrace/contrib/sinatra/configuration/settings.rb
323
502
  - lib/ddtrace/contrib/sinatra/env.rb
503
+ - lib/ddtrace/contrib/sinatra/ext.rb
324
504
  - lib/ddtrace/contrib/sinatra/headers.rb
505
+ - lib/ddtrace/contrib/sinatra/integration.rb
506
+ - lib/ddtrace/contrib/sinatra/patcher.rb
325
507
  - lib/ddtrace/contrib/sinatra/tracer.rb
326
508
  - lib/ddtrace/contrib/sinatra/tracer_middleware.rb
509
+ - lib/ddtrace/contrib/sneakers/configuration/settings.rb
510
+ - lib/ddtrace/contrib/sneakers/ext.rb
511
+ - lib/ddtrace/contrib/sneakers/integration.rb
512
+ - lib/ddtrace/contrib/sneakers/patcher.rb
513
+ - lib/ddtrace/contrib/sneakers/tracer.rb
514
+ - lib/ddtrace/contrib/status_code_matcher.rb
515
+ - lib/ddtrace/contrib/sucker_punch/configuration/settings.rb
327
516
  - lib/ddtrace/contrib/sucker_punch/exception_handler.rb
517
+ - lib/ddtrace/contrib/sucker_punch/ext.rb
328
518
  - lib/ddtrace/contrib/sucker_punch/instrumentation.rb
519
+ - lib/ddtrace/contrib/sucker_punch/integration.rb
329
520
  - lib/ddtrace/contrib/sucker_punch/patcher.rb
521
+ - lib/ddtrace/correlation.rb
522
+ - lib/ddtrace/diagnostics/environment_logger.rb
523
+ - lib/ddtrace/diagnostics/health.rb
524
+ - lib/ddtrace/distributed_tracing/headers/b3.rb
525
+ - lib/ddtrace/distributed_tracing/headers/b3_single.rb
526
+ - lib/ddtrace/distributed_tracing/headers/datadog.rb
527
+ - lib/ddtrace/distributed_tracing/headers/headers.rb
528
+ - lib/ddtrace/distributed_tracing/headers/helpers.rb
330
529
  - lib/ddtrace/encoding.rb
530
+ - lib/ddtrace/environment.rb
331
531
  - lib/ddtrace/error.rb
532
+ - lib/ddtrace/event.rb
533
+ - lib/ddtrace/ext/analytics.rb
332
534
  - lib/ddtrace/ext/app_types.rb
333
- - lib/ddtrace/ext/cache.rb
535
+ - lib/ddtrace/ext/ci.rb
536
+ - lib/ddtrace/ext/correlation.rb
537
+ - lib/ddtrace/ext/diagnostics.rb
334
538
  - lib/ddtrace/ext/distributed.rb
539
+ - lib/ddtrace/ext/environment.rb
335
540
  - lib/ddtrace/ext/errors.rb
336
- - lib/ddtrace/ext/grpc.rb
541
+ - lib/ddtrace/ext/forced_tracing.rb
542
+ - lib/ddtrace/ext/git.rb
337
543
  - lib/ddtrace/ext/http.rb
338
- - lib/ddtrace/ext/mongo.rb
544
+ - lib/ddtrace/ext/integration.rb
545
+ - lib/ddtrace/ext/manual_tracing.rb
546
+ - lib/ddtrace/ext/metrics.rb
339
547
  - lib/ddtrace/ext/net.rb
340
548
  - lib/ddtrace/ext/priority.rb
341
- - lib/ddtrace/ext/redis.rb
549
+ - lib/ddtrace/ext/runtime.rb
550
+ - lib/ddtrace/ext/sampling.rb
342
551
  - lib/ddtrace/ext/sql.rb
552
+ - lib/ddtrace/ext/test.rb
553
+ - lib/ddtrace/ext/transport.rb
554
+ - lib/ddtrace/forced_tracing.rb
343
555
  - lib/ddtrace/logger.rb
344
- - lib/ddtrace/monkey.rb
556
+ - lib/ddtrace/metrics.rb
557
+ - lib/ddtrace/opentelemetry/extensions.rb
558
+ - lib/ddtrace/opentelemetry/span.rb
559
+ - lib/ddtrace/opentracer.rb
560
+ - lib/ddtrace/opentracer/binary_propagator.rb
561
+ - lib/ddtrace/opentracer/carrier.rb
562
+ - lib/ddtrace/opentracer/distributed_headers.rb
563
+ - lib/ddtrace/opentracer/global_tracer.rb
564
+ - lib/ddtrace/opentracer/propagator.rb
565
+ - lib/ddtrace/opentracer/rack_propagator.rb
566
+ - lib/ddtrace/opentracer/scope.rb
567
+ - lib/ddtrace/opentracer/scope_manager.rb
568
+ - lib/ddtrace/opentracer/span.rb
569
+ - lib/ddtrace/opentracer/span_context.rb
570
+ - lib/ddtrace/opentracer/span_context_factory.rb
571
+ - lib/ddtrace/opentracer/text_map_propagator.rb
572
+ - lib/ddtrace/opentracer/thread_local_scope.rb
573
+ - lib/ddtrace/opentracer/thread_local_scope_manager.rb
574
+ - lib/ddtrace/opentracer/tracer.rb
345
575
  - lib/ddtrace/patcher.rb
346
576
  - lib/ddtrace/pin.rb
347
577
  - lib/ddtrace/pipeline.rb
348
578
  - lib/ddtrace/pipeline/span_filter.rb
349
579
  - lib/ddtrace/pipeline/span_processor.rb
350
- - lib/ddtrace/propagation/distributed_headers.rb
351
580
  - lib/ddtrace/propagation/grpc_propagator.rb
352
581
  - lib/ddtrace/propagation/http_propagator.rb
353
- - lib/ddtrace/provider.rb
354
582
  - lib/ddtrace/quantization/hash.rb
355
583
  - lib/ddtrace/quantization/http.rb
356
- - lib/ddtrace/registry.rb
357
- - lib/ddtrace/registry/registerable.rb
584
+ - lib/ddtrace/runtime/cgroup.rb
585
+ - lib/ddtrace/runtime/class_count.rb
586
+ - lib/ddtrace/runtime/container.rb
587
+ - lib/ddtrace/runtime/gc.rb
588
+ - lib/ddtrace/runtime/identity.rb
589
+ - lib/ddtrace/runtime/metrics.rb
590
+ - lib/ddtrace/runtime/object_space.rb
591
+ - lib/ddtrace/runtime/socket.rb
592
+ - lib/ddtrace/runtime/thread_count.rb
358
593
  - lib/ddtrace/sampler.rb
594
+ - lib/ddtrace/sampling.rb
595
+ - lib/ddtrace/sampling/matcher.rb
596
+ - lib/ddtrace/sampling/rate_limiter.rb
597
+ - lib/ddtrace/sampling/rule.rb
598
+ - lib/ddtrace/sampling/rule_sampler.rb
359
599
  - lib/ddtrace/span.rb
360
600
  - lib/ddtrace/sync_writer.rb
361
601
  - lib/ddtrace/tracer.rb
362
- - lib/ddtrace/transport.rb
602
+ - lib/ddtrace/transport/http.rb
603
+ - lib/ddtrace/transport/http/adapters/net.rb
604
+ - lib/ddtrace/transport/http/adapters/registry.rb
605
+ - lib/ddtrace/transport/http/adapters/test.rb
606
+ - lib/ddtrace/transport/http/adapters/unix_socket.rb
607
+ - lib/ddtrace/transport/http/api.rb
608
+ - lib/ddtrace/transport/http/api/endpoint.rb
609
+ - lib/ddtrace/transport/http/api/fallbacks.rb
610
+ - lib/ddtrace/transport/http/api/instance.rb
611
+ - lib/ddtrace/transport/http/api/map.rb
612
+ - lib/ddtrace/transport/http/api/spec.rb
613
+ - lib/ddtrace/transport/http/builder.rb
614
+ - lib/ddtrace/transport/http/client.rb
615
+ - lib/ddtrace/transport/http/env.rb
616
+ - lib/ddtrace/transport/http/response.rb
617
+ - lib/ddtrace/transport/http/statistics.rb
618
+ - lib/ddtrace/transport/http/traces.rb
619
+ - lib/ddtrace/transport/io.rb
620
+ - lib/ddtrace/transport/io/client.rb
621
+ - lib/ddtrace/transport/io/response.rb
622
+ - lib/ddtrace/transport/io/traces.rb
623
+ - lib/ddtrace/transport/parcel.rb
624
+ - lib/ddtrace/transport/request.rb
625
+ - lib/ddtrace/transport/response.rb
626
+ - lib/ddtrace/transport/statistics.rb
627
+ - lib/ddtrace/transport/traces.rb
363
628
  - lib/ddtrace/utils.rb
629
+ - lib/ddtrace/utils/compression.rb
364
630
  - lib/ddtrace/utils/database.rb
631
+ - lib/ddtrace/utils/forking.rb
632
+ - lib/ddtrace/utils/object_set.rb
633
+ - lib/ddtrace/utils/only_once.rb
634
+ - lib/ddtrace/utils/sequence.rb
635
+ - lib/ddtrace/utils/string_table.rb
636
+ - lib/ddtrace/utils/time.rb
637
+ - lib/ddtrace/vendor/active_record/MIT-LICENSE
638
+ - lib/ddtrace/vendor/active_record/connection_specification.rb
639
+ - lib/ddtrace/vendor/multipart-post/LICENSE
640
+ - lib/ddtrace/vendor/multipart-post/multipart.rb
641
+ - lib/ddtrace/vendor/multipart-post/multipart/post.rb
642
+ - lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb
643
+ - lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb
644
+ - lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb
645
+ - lib/ddtrace/vendor/multipart-post/multipart/post/version.rb
646
+ - lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb
365
647
  - lib/ddtrace/version.rb
648
+ - lib/ddtrace/worker.rb
366
649
  - lib/ddtrace/workers.rb
650
+ - lib/ddtrace/workers/async.rb
651
+ - lib/ddtrace/workers/loop.rb
652
+ - lib/ddtrace/workers/polling.rb
653
+ - lib/ddtrace/workers/queue.rb
654
+ - lib/ddtrace/workers/runtime_metrics.rb
655
+ - lib/ddtrace/workers/trace_writer.rb
367
656
  - lib/ddtrace/writer.rb
657
+ - tasks/release_gem.rake
368
658
  homepage: https://github.com/DataDog/dd-trace-rb
369
659
  licenses:
370
660
  - BSD-3-Clause
@@ -378,15 +668,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
378
668
  requirements:
379
669
  - - ">="
380
670
  - !ruby/object:Gem::Version
381
- version: 1.9.1
671
+ version: 2.0.0
382
672
  required_rubygems_version: !ruby/object:Gem::Requirement
383
673
  requirements:
384
674
  - - ">="
385
675
  - !ruby/object:Gem::Version
386
- version: '0'
676
+ version: 2.0.0
387
677
  requirements: []
388
678
  rubyforge_project:
389
- rubygems_version: 2.6.14
679
+ rubygems_version: 2.5.2.3
390
680
  signing_key:
391
681
  specification_version: 4
392
682
  summary: Datadog tracing code for your Ruby applications