ddtrace 0.45.0 → 0.47.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (302) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +131 -12
  3. data/.circleci/images/primary/{Dockerfile-jruby-9.2 → Dockerfile-jruby-9.2-latest} +2 -1
  4. data/.circleci/images/primary/Dockerfile-jruby-9.2.0.0 +73 -0
  5. data/.circleci/images/primary/Dockerfile-truffleruby-21.0.0 +73 -0
  6. data/.github/workflows/create-next-milestone.yml +2 -2
  7. data/.rubocop.yml +250 -7
  8. data/.rubocop_todo.yml +397 -0
  9. data/.simplecov +6 -0
  10. data/Appraisals +16 -1
  11. data/CHANGELOG.md +150 -1
  12. data/Gemfile +53 -3
  13. data/LICENSE-3rdparty.csv +2 -0
  14. data/Rakefile +5 -23
  15. data/ddtrace.gemspec +6 -36
  16. data/docker-compose.yml +75 -7
  17. data/docs/DevelopmentGuide.md +28 -0
  18. data/docs/GettingStarted.md +69 -17
  19. data/integration/README.md +68 -0
  20. data/integration/apps/rack/.dockerignore +1 -0
  21. data/integration/apps/rack/.envrc.sample +1 -0
  22. data/integration/apps/rack/.gitignore +4 -0
  23. data/integration/apps/rack/.rspec +1 -0
  24. data/integration/apps/rack/Dockerfile +25 -0
  25. data/integration/apps/rack/Dockerfile-ci +11 -0
  26. data/integration/apps/rack/Gemfile +24 -0
  27. data/integration/apps/rack/README.md +93 -0
  28. data/integration/apps/rack/app/acme.rb +80 -0
  29. data/integration/apps/rack/app/datadog.rb +17 -0
  30. data/integration/apps/rack/bin/run +22 -0
  31. data/integration/apps/rack/bin/setup +17 -0
  32. data/integration/apps/rack/bin/test +24 -0
  33. data/integration/apps/rack/config.ru +6 -0
  34. data/integration/apps/rack/config/puma.rb +14 -0
  35. data/integration/apps/rack/config/unicorn.rb +23 -0
  36. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  37. data/integration/apps/rack/docker-compose.yml +78 -0
  38. data/integration/apps/rack/script/build-images +38 -0
  39. data/integration/apps/rack/script/ci +50 -0
  40. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  41. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  42. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  43. data/integration/apps/rails-five/.dockerignore +1 -0
  44. data/integration/apps/rails-five/.env +3 -0
  45. data/integration/apps/rails-five/.envrc.sample +1 -0
  46. data/integration/apps/rails-five/.gitignore +30 -0
  47. data/integration/apps/rails-five/Dockerfile +25 -0
  48. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  49. data/integration/apps/rails-five/Gemfile +104 -0
  50. data/integration/apps/rails-five/README.md +94 -0
  51. data/integration/apps/rails-five/Rakefile +6 -0
  52. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  53. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  54. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  55. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  56. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  57. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  58. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  59. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  60. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  61. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  62. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  63. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  64. data/integration/apps/rails-five/app/models/test.rb +2 -0
  65. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  66. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  67. data/integration/apps/rails-five/bin/bundle +3 -0
  68. data/integration/apps/rails-five/bin/rails +9 -0
  69. data/integration/apps/rails-five/bin/rake +9 -0
  70. data/integration/apps/rails-five/bin/run +24 -0
  71. data/integration/apps/rails-five/bin/setup +27 -0
  72. data/integration/apps/rails-five/bin/spring +17 -0
  73. data/integration/apps/rails-five/bin/test +21 -0
  74. data/integration/apps/rails-five/bin/update +28 -0
  75. data/integration/apps/rails-five/config.ru +5 -0
  76. data/integration/apps/rails-five/config/application.rb +97 -0
  77. data/integration/apps/rails-five/config/boot.rb +4 -0
  78. data/integration/apps/rails-five/config/cable.yml +10 -0
  79. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  80. data/integration/apps/rails-five/config/database.yml +28 -0
  81. data/integration/apps/rails-five/config/environment.rb +5 -0
  82. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  83. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  84. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  85. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  86. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  87. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  88. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  89. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  90. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  91. data/integration/apps/rails-five/config/puma.rb +24 -0
  92. data/integration/apps/rails-five/config/routes.rb +11 -0
  93. data/integration/apps/rails-five/config/spring.rb +6 -0
  94. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  95. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  96. data/integration/apps/rails-five/db/schema.rb +23 -0
  97. data/integration/apps/rails-five/db/seeds.rb +7 -0
  98. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  99. data/integration/apps/rails-five/docker-compose.yml +100 -0
  100. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  101. data/integration/apps/rails-five/log/.keep +0 -0
  102. data/integration/apps/rails-five/public/robots.txt +1 -0
  103. data/integration/apps/rails-five/script/build-images +35 -0
  104. data/integration/apps/rails-five/script/ci +50 -0
  105. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  106. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  107. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  108. data/integration/apps/rails-five/storage/.keep +0 -0
  109. data/integration/apps/rails-five/tmp/.keep +0 -0
  110. data/integration/apps/rails-five/vendor/.keep +0 -0
  111. data/integration/apps/ruby/.dockerignore +1 -0
  112. data/integration/apps/ruby/.envrc.sample +1 -0
  113. data/integration/apps/ruby/.gitignore +2 -0
  114. data/integration/apps/ruby/Dockerfile +25 -0
  115. data/integration/apps/ruby/Dockerfile-ci +11 -0
  116. data/integration/apps/ruby/Gemfile +11 -0
  117. data/integration/apps/ruby/README.md +70 -0
  118. data/integration/apps/ruby/agent.yaml +3 -0
  119. data/integration/apps/ruby/app/datadog.rb +13 -0
  120. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  121. data/integration/apps/ruby/bin/run +20 -0
  122. data/integration/apps/ruby/bin/setup +17 -0
  123. data/integration/apps/ruby/bin/test +21 -0
  124. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  125. data/integration/apps/ruby/docker-compose.yml +63 -0
  126. data/integration/apps/ruby/script/build-images +38 -0
  127. data/integration/apps/ruby/script/ci +50 -0
  128. data/integration/images/agent/Dockerfile +2 -0
  129. data/integration/images/agent/agent.yaml +3 -0
  130. data/integration/images/include/datadog/analyzer.rb +71 -0
  131. data/integration/images/include/datadog/demo_env.rb +101 -0
  132. data/integration/images/include/http-health-check +33 -0
  133. data/integration/images/ruby/2.0/Dockerfile +54 -0
  134. data/integration/images/ruby/2.1/Dockerfile +54 -0
  135. data/integration/images/ruby/2.2/Dockerfile +54 -0
  136. data/integration/images/ruby/2.3/Dockerfile +70 -0
  137. data/integration/images/ruby/2.4/Dockerfile +54 -0
  138. data/integration/images/ruby/2.5/Dockerfile +54 -0
  139. data/integration/images/ruby/2.6/Dockerfile +54 -0
  140. data/integration/images/ruby/2.7/Dockerfile +54 -0
  141. data/integration/images/ruby/3.0/Dockerfile +54 -0
  142. data/integration/images/wrk/Dockerfile +33 -0
  143. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  144. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  145. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  146. data/integration/script/build-images +43 -0
  147. data/lib/ddtrace.rb +0 -5
  148. data/lib/ddtrace/analytics.rb +2 -0
  149. data/lib/ddtrace/buffer.rb +4 -4
  150. data/lib/ddtrace/configuration.rb +92 -23
  151. data/lib/ddtrace/configuration/base.rb +1 -1
  152. data/lib/ddtrace/configuration/components.rb +2 -2
  153. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  154. data/lib/ddtrace/configuration/options.rb +4 -7
  155. data/lib/ddtrace/configuration/settings.rb +17 -3
  156. data/lib/ddtrace/context.rb +5 -6
  157. data/lib/ddtrace/context_provider.rb +0 -1
  158. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  159. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  160. data/lib/ddtrace/contrib/action_view/event.rb +1 -1
  161. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  162. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +101 -18
  163. data/lib/ddtrace/contrib/active_record/utils.rb +1 -0
  164. data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -1
  165. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  166. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  167. data/lib/ddtrace/contrib/auto_instrument.rb +1 -0
  168. data/lib/ddtrace/contrib/aws/patcher.rb +1 -0
  169. data/lib/ddtrace/contrib/aws/services.rb +2 -0
  170. data/lib/ddtrace/contrib/configurable.rb +63 -39
  171. data/lib/ddtrace/contrib/configuration/resolver.rb +70 -5
  172. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +19 -20
  173. data/lib/ddtrace/contrib/configuration/settings.rb +7 -6
  174. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -10
  175. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -2
  176. data/lib/ddtrace/contrib/cucumber/formatter.rb +5 -11
  177. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  178. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -1
  179. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  180. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  181. data/lib/ddtrace/contrib/ethon/easy_patch.rb +5 -5
  182. data/lib/ddtrace/contrib/excon/middleware.rb +2 -6
  183. data/lib/ddtrace/contrib/extensions.rb +27 -3
  184. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  185. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  186. data/lib/ddtrace/contrib/grape/endpoint.rb +8 -15
  187. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  188. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  189. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  190. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  191. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  192. data/lib/ddtrace/contrib/http/instrumentation.rb +5 -5
  193. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +14 -19
  194. data/lib/ddtrace/contrib/httpclient/patcher.rb +5 -2
  195. data/lib/ddtrace/contrib/httprb/instrumentation.rb +14 -20
  196. data/lib/ddtrace/contrib/httprb/patcher.rb +5 -2
  197. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  198. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  199. data/lib/ddtrace/contrib/patcher.rb +9 -6
  200. data/lib/ddtrace/contrib/presto/patcher.rb +5 -2
  201. data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
  202. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
  203. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  204. data/lib/ddtrace/contrib/que/tracer.rb +1 -1
  205. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  206. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  207. data/lib/ddtrace/contrib/rack/middlewares.rb +5 -10
  208. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  209. data/lib/ddtrace/contrib/rails/patcher.rb +6 -2
  210. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  211. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +11 -4
  212. data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
  213. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  214. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  215. data/lib/ddtrace/contrib/registry.rb +2 -2
  216. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  217. data/lib/ddtrace/contrib/resque/resque_job.rb +2 -0
  218. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  219. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -10
  220. data/lib/ddtrace/contrib/rspec/example.rb +24 -10
  221. data/lib/ddtrace/contrib/rspec/ext.rb +0 -3
  222. data/lib/ddtrace/contrib/rspec/integration.rb +1 -1
  223. data/lib/ddtrace/contrib/rspec/patcher.rb +0 -2
  224. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  225. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -1
  226. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +2 -7
  227. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  228. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  229. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  230. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  231. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +3 -3
  232. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  233. data/lib/ddtrace/contrib/sneakers/tracer.rb +2 -4
  234. data/lib/ddtrace/contrib/status_code_matcher.rb +5 -3
  235. data/lib/ddtrace/correlation.rb +1 -0
  236. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -1
  237. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  238. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
  239. data/lib/ddtrace/ext/ci.rb +2 -2
  240. data/lib/ddtrace/ext/distributed.rb +1 -1
  241. data/lib/ddtrace/ext/http.rb +1 -1
  242. data/lib/ddtrace/ext/runtime.rb +3 -1
  243. data/lib/ddtrace/forced_tracing.rb +2 -0
  244. data/lib/ddtrace/logger.rb +1 -1
  245. data/lib/ddtrace/metrics.rb +10 -6
  246. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  247. data/lib/ddtrace/opentracer/span.rb +2 -6
  248. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  249. data/lib/ddtrace/patcher.rb +25 -4
  250. data/lib/ddtrace/pin.rb +8 -61
  251. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  252. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  253. data/lib/ddtrace/quantization/http.rb +1 -0
  254. data/lib/ddtrace/runtime/cgroup.rb +2 -2
  255. data/lib/ddtrace/runtime/container.rb +27 -29
  256. data/lib/ddtrace/runtime/identity.rb +8 -0
  257. data/lib/ddtrace/sampler.rb +1 -1
  258. data/lib/ddtrace/sampling/rule_sampler.rb +1 -0
  259. data/lib/ddtrace/span.rb +7 -7
  260. data/lib/ddtrace/sync_writer.rb +12 -12
  261. data/lib/ddtrace/tracer.rb +7 -5
  262. data/lib/ddtrace/transport/http.rb +15 -8
  263. data/lib/ddtrace/transport/http/adapters/net.rb +27 -8
  264. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  265. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  266. data/lib/ddtrace/transport/http/builder.rb +7 -1
  267. data/lib/ddtrace/transport/http/env.rb +8 -0
  268. data/lib/ddtrace/transport/http/traces.rb +2 -3
  269. data/lib/ddtrace/transport/io.rb +1 -1
  270. data/lib/ddtrace/transport/io/response.rb +1 -3
  271. data/lib/ddtrace/transport/io/traces.rb +6 -0
  272. data/lib/ddtrace/transport/traces.rb +18 -1
  273. data/lib/ddtrace/utils/compression.rb +27 -0
  274. data/lib/ddtrace/utils/object_set.rb +41 -0
  275. data/lib/ddtrace/utils/only_once.rb +40 -0
  276. data/lib/ddtrace/utils/sequence.rb +17 -0
  277. data/lib/ddtrace/utils/string_table.rb +45 -0
  278. data/lib/ddtrace/utils/time.rb +32 -1
  279. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  280. data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
  281. data/lib/ddtrace/vendor/multipart-post/multipart.rb +12 -0
  282. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +8 -0
  283. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +116 -0
  284. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +57 -0
  285. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +135 -0
  286. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +9 -0
  287. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +32 -0
  288. data/lib/ddtrace/version.rb +1 -1
  289. data/lib/ddtrace/workers.rb +5 -0
  290. data/lib/ddtrace/workers/async.rb +11 -3
  291. data/lib/ddtrace/workers/loop.rb +17 -3
  292. data/lib/ddtrace/workers/polling.rb +1 -0
  293. data/lib/ddtrace/workers/queue.rb +1 -0
  294. data/lib/ddtrace/workers/trace_writer.rb +10 -10
  295. data/lib/ddtrace/writer.rb +7 -4
  296. metadata +152 -402
  297. data/lib/ddtrace/augmentation.rb +0 -13
  298. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  299. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  300. data/lib/ddtrace/augmentation/shim.rb +0 -102
  301. data/lib/ddtrace/contrib/rspec/example_group.rb +0 -61
  302. data/lib/ddtrace/monkey.rb +0 -58
data/CHANGELOG.md CHANGED
@@ -2,6 +2,92 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.47.0] - 2021-03-29
6
+
7
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.47.0
8
+
9
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.46.0...v0.47.0
10
+
11
+ ### Added
12
+
13
+ - Document support for httpx integration ([#1396][]) ([@HoneyryderChuck][])
14
+ - Schemas to list of supported AWS services ([#1415][]) ([@tomgi][])
15
+ - Branch test coverage report ([#1343][])
16
+
17
+ ### Changed
18
+
19
+ - **BREAKING** Separate Resolver configuration and resolution steps ([#1319][])
20
+
21
+ ### ActiveRecord `describes` configuration now supports partial matching
22
+
23
+ Partial matching of connection fields (adapter, username, host, port, database) is now allowed. Previously, only an exact match of connections fields would be considered matching. This should help greatly simplify database configuration matching, as you will only need to provide enough fields to correctly separate your distinct database connections.
24
+
25
+ If you have a `c.use active_record, describe:` statement in your application that is currently not matching any connections, you might start seeing them match after this release.
26
+
27
+ `c.use active_record, describe:` statements that are currently matching a connection will continue to match that same connection.
28
+
29
+ You can refer to the [expanded ActiveSupport documentation for details on how to use the new partial matchers and configuration code examples](https://github.com/DataDog/dd-trace-rb/blob/0794be4cd455caf32e7a9c8f79d80a4b77c4087a/docs/GettingStarted.md#active-record).
30
+
31
+ ### `Datadog::Contrib::Configuration::Resolver` interface changed
32
+
33
+ The interface for `Datadog::Contrib::Configuration::Resolver` has changed: custom configuration resolvers that inherit from ``Datadog::Contrib::Configuration::Resolver`` will need be changed to fulfill the new interface. See [code documentation for `Datadog::Contrib::Configuration::Resolver` for specific API requirements](https://github.com/DataDog/dd-trace-rb/blob/0794be4cd455caf32e7a9c8f79d80a4b77c4087a/lib/ddtrace/contrib/configuration/resolver.rb).
34
+
35
+
36
+ - Remove type check from ThreadLocalContext#local. ([#1399][]) ([@orekyuu][])
37
+
38
+ ### Fixed
39
+
40
+ - Support for JRuby 9.2.0.0 ([#1409][])
41
+ - Failed integration message ([#1394][]) ([@e1senh0rn][])
42
+ - Addressed "warning: instance variable [@components][] not initialized" ([#1419][])
43
+ - Close /proc/self/cgroup file after reading ([#1414][])
44
+ - Improve internal "only once" behavior across the tracer ([#1398][])
45
+ - Increase thread-safety during tracer initialization ([#1418][])
46
+
47
+ ### Refactored
48
+
49
+ - Use MINIMUM_VERSION in resque compatible? check ([#1426][]) ([@mriddle][])
50
+ - Lint fixes for Rubocop 1.12.0 release ([#1430][])
51
+ - Internal tracer improvements ([#1403][])
52
+ - Improvements to test suite & CI ([#1334][], [#1379][], [#1393][], [#1406][], [#1408][], [#1412][], [#1417][], [#1420][], [#1422][], [#1427][], [#1428][], [#1431][], [#1432][])
53
+
54
+ ## [0.46.0] - 2021-03-03
55
+
56
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.46.0
57
+
58
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.45.0...v0.46.0
59
+
60
+ ### Added
61
+
62
+ - Add EventBridge to supported AWS services ([#1368][]) ([@tomgi][])
63
+ - Add `time_now_provider` configuration option ([#1224][])
64
+ - This new option allows the span `start_time` and `end_time` to be configured in environments that change the default time provider, like with *Timecop*. More information in the [official documentation](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#tracer-settings).
65
+ - Add name to background threads created by ddtrace ([#1366][])
66
+
67
+ ### Changed
68
+
69
+ - Rework RSpec instrumentation as separate traces for each test ([#1381][])
70
+
71
+ ### Fixed
72
+
73
+ - ArgumentError: wrong number of arguments (given 2, expected 0) due to concurrent `require` ([#1306][], [#1354][]) ([@EvNomad][])
74
+ - Fix Rails' deprecation warnings ([#1352][])
75
+ - Fully populate Rake span fields on exceptions ([#1377][])
76
+ - Fix a typo in `httpclient` integration ([#1365][]) ([@y-yagi][])
77
+ - Add missing license files for vendor'd code ([#1346][])
78
+
79
+ ### Refactored
80
+
81
+ - Improvements to test suite & CI ([#1277][], [#1305][], [#1336][], [#1350][], [#1353][], [#1357][], [#1367][], [#1369][], [#1370][], [#1371][], [#1374][], [#1380][])
82
+ - Improvements to documentation ([#1332][])
83
+
84
+ ### Removed
85
+
86
+ - Remove deprecated Datadog::Monkey ([#1341][])
87
+ - Remove deprecated Datadog::DeprecatedPin ([#1342][])
88
+ - Remove unused Shim/MethodWrapper/MethodWrapping ([#1347][])
89
+ - Remove APP_ANALYTICS from tests instrumentation ([#1378][]) ([@AdrianLC][])
90
+
5
91
  ## [0.45.0] - 2021-01-26
6
92
 
7
93
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.45.0
@@ -1546,7 +1632,9 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
1546
1632
 
1547
1633
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
1548
1634
 
1549
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.45.0...master
1635
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.47.0...master
1636
+ [0.47.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.46.0...v0.47.0
1637
+ [0.46.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.45.0...v0.46.0
1550
1638
  [0.45.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.44.0...v0.45.0
1551
1639
  [0.44.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.43.0...v0.44.0
1552
1640
  [0.43.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.42.0...v0.43.0
@@ -2097,6 +2185,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2097
2185
  [#1217]: https://github.com/DataDog/dd-trace-rb/issues/1217
2098
2186
  [#1218]: https://github.com/DataDog/dd-trace-rb/issues/1218
2099
2187
  [#1220]: https://github.com/DataDog/dd-trace-rb/issues/1220
2188
+ [#1224]: https://github.com/DataDog/dd-trace-rb/issues/1224
2100
2189
  [#1225]: https://github.com/DataDog/dd-trace-rb/issues/1225
2101
2190
  [#1226]: https://github.com/DataDog/dd-trace-rb/issues/1226
2102
2191
  [#1227]: https://github.com/DataDog/dd-trace-rb/issues/1227
@@ -2146,21 +2235,76 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2146
2235
  [#1302]: https://github.com/DataDog/dd-trace-rb/issues/1302
2147
2236
  [#1303]: https://github.com/DataDog/dd-trace-rb/issues/1303
2148
2237
  [#1304]: https://github.com/DataDog/dd-trace-rb/issues/1304
2238
+ [#1305]: https://github.com/DataDog/dd-trace-rb/issues/1305
2239
+ [#1306]: https://github.com/DataDog/dd-trace-rb/issues/1306
2149
2240
  [#1307]: https://github.com/DataDog/dd-trace-rb/issues/1307
2150
2241
  [#1309]: https://github.com/DataDog/dd-trace-rb/issues/1309
2151
2242
  [#1311]: https://github.com/DataDog/dd-trace-rb/issues/1311
2152
2243
  [#1317]: https://github.com/DataDog/dd-trace-rb/issues/1317
2153
2244
  [#1318]: https://github.com/DataDog/dd-trace-rb/issues/1318
2245
+ [#1319]: https://github.com/DataDog/dd-trace-rb/issues/1319
2154
2246
  [#1320]: https://github.com/DataDog/dd-trace-rb/issues/1320
2155
2247
  [#1321]: https://github.com/DataDog/dd-trace-rb/issues/1321
2156
2248
  [#1323]: https://github.com/DataDog/dd-trace-rb/issues/1323
2157
2249
  [#1325]: https://github.com/DataDog/dd-trace-rb/issues/1325
2158
2250
  [#1326]: https://github.com/DataDog/dd-trace-rb/issues/1326
2159
2251
  [#1331]: https://github.com/DataDog/dd-trace-rb/issues/1331
2252
+ [#1332]: https://github.com/DataDog/dd-trace-rb/issues/1332
2253
+ [#1334]: https://github.com/DataDog/dd-trace-rb/issues/1334
2254
+ [#1336]: https://github.com/DataDog/dd-trace-rb/issues/1336
2255
+ [#1341]: https://github.com/DataDog/dd-trace-rb/issues/1341
2256
+ [#1342]: https://github.com/DataDog/dd-trace-rb/issues/1342
2257
+ [#1343]: https://github.com/DataDog/dd-trace-rb/issues/1343
2258
+ [#1346]: https://github.com/DataDog/dd-trace-rb/issues/1346
2259
+ [#1347]: https://github.com/DataDog/dd-trace-rb/issues/1347
2260
+ [#1350]: https://github.com/DataDog/dd-trace-rb/issues/1350
2261
+ [#1352]: https://github.com/DataDog/dd-trace-rb/issues/1352
2262
+ [#1353]: https://github.com/DataDog/dd-trace-rb/issues/1353
2263
+ [#1354]: https://github.com/DataDog/dd-trace-rb/issues/1354
2264
+ [#1357]: https://github.com/DataDog/dd-trace-rb/issues/1357
2265
+ [#1365]: https://github.com/DataDog/dd-trace-rb/issues/1365
2266
+ [#1366]: https://github.com/DataDog/dd-trace-rb/issues/1366
2267
+ [#1367]: https://github.com/DataDog/dd-trace-rb/issues/1367
2268
+ [#1368]: https://github.com/DataDog/dd-trace-rb/issues/1368
2269
+ [#1369]: https://github.com/DataDog/dd-trace-rb/issues/1369
2270
+ [#1370]: https://github.com/DataDog/dd-trace-rb/issues/1370
2271
+ [#1371]: https://github.com/DataDog/dd-trace-rb/issues/1371
2272
+ [#1374]: https://github.com/DataDog/dd-trace-rb/issues/1374
2273
+ [#1377]: https://github.com/DataDog/dd-trace-rb/issues/1377
2274
+ [#1378]: https://github.com/DataDog/dd-trace-rb/issues/1378
2275
+ [#1379]: https://github.com/DataDog/dd-trace-rb/issues/1379
2276
+ [#1380]: https://github.com/DataDog/dd-trace-rb/issues/1380
2277
+ [#1381]: https://github.com/DataDog/dd-trace-rb/issues/1381
2278
+ [#1393]: https://github.com/DataDog/dd-trace-rb/issues/1393
2279
+ [#1394]: https://github.com/DataDog/dd-trace-rb/issues/1394
2280
+ [#1396]: https://github.com/DataDog/dd-trace-rb/issues/1396
2281
+ [#1398]: https://github.com/DataDog/dd-trace-rb/issues/1398
2282
+ [#1399]: https://github.com/DataDog/dd-trace-rb/issues/1399
2283
+ [#1403]: https://github.com/DataDog/dd-trace-rb/issues/1403
2284
+ [#1406]: https://github.com/DataDog/dd-trace-rb/issues/1406
2285
+ [#1408]: https://github.com/DataDog/dd-trace-rb/issues/1408
2286
+ [#1409]: https://github.com/DataDog/dd-trace-rb/issues/1409
2287
+ [#1412]: https://github.com/DataDog/dd-trace-rb/issues/1412
2288
+ [#1414]: https://github.com/DataDog/dd-trace-rb/issues/1414
2289
+ [#1415]: https://github.com/DataDog/dd-trace-rb/issues/1415
2290
+ [#1417]: https://github.com/DataDog/dd-trace-rb/issues/1417
2291
+ [#1418]: https://github.com/DataDog/dd-trace-rb/issues/1418
2292
+ [#1419]: https://github.com/DataDog/dd-trace-rb/issues/1419
2293
+ [#1420]: https://github.com/DataDog/dd-trace-rb/issues/1420
2294
+ [#1422]: https://github.com/DataDog/dd-trace-rb/issues/1422
2295
+ [#1426]: https://github.com/DataDog/dd-trace-rb/issues/1426
2296
+ [#1427]: https://github.com/DataDog/dd-trace-rb/issues/1427
2297
+ [#1428]: https://github.com/DataDog/dd-trace-rb/issues/1428
2298
+ [#1430]: https://github.com/DataDog/dd-trace-rb/issues/1430
2299
+ [#1431]: https://github.com/DataDog/dd-trace-rb/issues/1431
2300
+ [#1432]: https://github.com/DataDog/dd-trace-rb/issues/1432
2301
+ [@AdrianLC]: https://github.com/AdrianLC
2160
2302
  [@Azure7111]: https://github.com/Azure7111
2161
2303
  [@BabyGroot]: https://github.com/BabyGroot
2162
2304
  [@DocX]: https://github.com/DocX
2163
2305
  [@EpiFouloux]: https://github.com/EpiFouloux
2306
+ [@EvNomad]: https://github.com/EvNomad
2307
+ [@HoneyryderChuck]: https://github.com/HoneyryderChuck
2164
2308
  [@JamesHarker]: https://github.com/JamesHarker
2165
2309
  [@Jared-Prime]: https://github.com/Jared-Prime
2166
2310
  [@Joas1988]: https://github.com/Joas1988
@@ -2189,6 +2333,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2189
2333
  [@callumj]: https://github.com/callumj
2190
2334
  [@cjford]: https://github.com/cjford
2191
2335
  [@ck3g]: https://github.com/ck3g
2336
+ [@components]: https://github.com/components
2192
2337
  [@cswatt]: https://github.com/cswatt
2193
2338
  [@dasch]: https://github.com/dasch
2194
2339
  [@dim]: https://github.com/dim
@@ -2196,6 +2341,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2196
2341
  [@djmb]: https://github.com/djmb
2197
2342
  [@dorner]: https://github.com/dorner
2198
2343
  [@drcapulet]: https://github.com/drcapulet
2344
+ [@e1senh0rn]: https://github.com/e1senh0rn
2199
2345
  [@elyalvarado]: https://github.com/elyalvarado
2200
2346
  [@ericmustin]: https://github.com/ericmustin
2201
2347
  [@erict-square]: https://github.com/erict-square
@@ -2229,11 +2375,13 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2229
2375
  [@mdehoog]: https://github.com/mdehoog
2230
2376
  [@mdross95]: https://github.com/mdross95
2231
2377
  [@michaelkl]: https://github.com/michaelkl
2378
+ [@mriddle]: https://github.com/mriddle
2232
2379
  [@mstruve]: https://github.com/mstruve
2233
2380
  [@mustela]: https://github.com/mustela
2234
2381
  [@nic-lan]: https://github.com/nic-lan
2235
2382
  [@noma4i]: https://github.com/noma4i
2236
2383
  [@norbertnytko]: https://github.com/norbertnytko
2384
+ [@orekyuu]: https://github.com/orekyuu
2237
2385
  [@palin]: https://github.com/palin
2238
2386
  [@pj0tr]: https://github.com/pj0tr
2239
2387
  [@psycholein]: https://github.com/psycholein
@@ -2255,6 +2403,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2255
2403
  [@tjgrathwell]: https://github.com/tjgrathwell
2256
2404
  [@tjwp]: https://github.com/tjwp
2257
2405
  [@tomasv]: https://github.com/tomasv
2406
+ [@tomgi]: https://github.com/tomgi
2258
2407
  [@tonypinder]: https://github.com/tonypinder
2259
2408
  [@twe4ked]: https://github.com/twe4ked
2260
2409
  [@undergroundwebdesigns]: https://github.com/undergroundwebdesigns
data/Gemfile CHANGED
@@ -2,8 +2,58 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- if RUBY_VERSION >= '3.0.0'
6
- gem 'webrick', '>= 1.7.0' # No longer bundled by default since Ruby 3.0
5
+ # Development dependencies
6
+ gem 'addressable', '~> 2.4.0' # locking transitive dependency of webmock
7
+ gem 'appraisal', '~> 2.2'
8
+ gem 'benchmark-ips', '~> 2.8'
9
+ gem 'benchmark-memory', '~> 0.1'
10
+ gem 'builder'
11
+ gem 'climate_control', '~> 0.2.0'
12
+ # Leave it open as we also have it as an integration and want Appraisal to control the version under test.
13
+ gem 'concurrent-ruby'
14
+ gem 'memory_profiler', '~> 0.9'
15
+ gem 'minitest', '= 5.10.1'
16
+ gem 'minitest-around', '0.5.0'
17
+ gem 'minitest-stub_any_instance', '1.0.2'
18
+ gem 'pimpmychangelog', '>= 0.1.2'
19
+ gem 'pry'
20
+ if RUBY_PLATFORM != 'java'
21
+ # There's a few incompatibilities between pry/pry-byebug on older Rubies
22
+ gem 'pry-byebug' if RUBY_VERSION >= '2.6.0' && RUBY_ENGINE != 'truffleruby'
23
+ gem 'pry-nav' if RUBY_VERSION < '2.6.0'
24
+ gem 'pry-stack_explorer'
25
+ else
26
+ gem 'pry-debugger-jruby'
27
+ end
28
+ gem 'rake', '>= 10.5'
29
+ gem 'redcarpet', '~> 3.4' if RUBY_PLATFORM != 'java'
30
+ gem 'rspec', '~> 3.10'
31
+ gem 'rspec-collection_matchers', '~> 1.1'
32
+ gem 'rspec_junit_formatter', '>= 0.4.1'
33
+ gem 'rspec_n', '~> 1.3' if RUBY_VERSION >= '2.3.0'
34
+ gem 'ruby-prof', '~> 1.4' if RUBY_PLATFORM != 'java' && RUBY_VERSION >= '2.4.0'
35
+ if RUBY_VERSION >= '2.5.0'
36
+ # Merging branch coverage results does not work for old, unsupported rubies.
37
+ # We have a fix up for review, https://github.com/simplecov-ruby/simplecov/pull/972,
38
+ # but given it only affects unsupported version of Ruby, it might not get merged.
39
+ gem 'simplecov', git: 'https://github.com/DataDog/simplecov', ref: '3bb6b7ee58bf4b1954ca205f50dd44d6f41c57db'
40
+ else
41
+ # Compatible with older rubies. This version still produces compatible output
42
+ # with a newer version when the reports are merged.
43
+ gem 'simplecov', '~> 0.17'
44
+ end
45
+ gem 'warning', '~> 1' if RUBY_VERSION >= '2.5.0'
46
+ gem 'webmock', '>= 3.10.0'
47
+ gem 'webrick', '>= 1.7.0' if RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0
48
+ gem 'yard', '~> 0.9'
49
+
50
+ if RUBY_VERSION >= '2.4.0'
51
+ gem 'rubocop', '~> 1.10', require: false
52
+ gem 'rubocop-performance', '~> 1.9', require: false
53
+ gem 'rubocop-rspec', '~> 2.2', require: false
7
54
  end
8
55
 
9
- # This file was generated by Appraisal
56
+ # Optional extensions
57
+ # TODO: Move this to Appraisals?
58
+ gem 'dogstatsd-ruby', '>= 3.3.0'
59
+ gem 'opentracing', '>= 0.4.1'
@@ -0,0 +1,2 @@
1
+ Component,Origin,License,Copyright
2
+ ddtrace/vendor/multipart-post,https://github.com/socketry/multipart-post,MIT,"Copyright (c) 2007-2013 Nick Sieger."
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'ddtrace/version'
3
- require 'rubocop/rake_task' if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
3
+ require 'rubocop/rake_task' if Gem.loaded_specs.key? 'rubocop'
4
4
  require 'rspec/core/rake_task'
5
5
  require 'rake/testtask'
6
6
  require 'appraisal'
@@ -139,16 +139,14 @@ end
139
139
 
140
140
  namespace :test do
141
141
  task all: [:main,
142
- :rails,
143
- :monkey]
142
+ :rails]
144
143
 
145
144
  Rake::TestTask.new(:main) do |t|
146
145
  t.libs << %w[test lib]
147
146
  t.test_files = FileList['test/**/*_test.rb'].reject do |path|
148
147
  path.include?('contrib') ||
149
148
  path.include?('benchmark') ||
150
- path.include?('redis') ||
151
- path.include?('monkey_test.rb')
149
+ path.include?('redis')
152
150
  end
153
151
  end
154
152
 
@@ -156,19 +154,6 @@ namespace :test do
156
154
  t.libs << %w[test lib]
157
155
  t.test_files = FileList['test/contrib/rails/**/*_test.rb']
158
156
  end
159
-
160
- [
161
- ].each do |contrib|
162
- Rake::TestTask.new(contrib) do |t|
163
- t.libs << %w[test lib]
164
- t.test_files = FileList["test/contrib/#{contrib}/*_test.rb"]
165
- end
166
- end
167
-
168
- Rake::TestTask.new(:monkey) do |t|
169
- t.libs << %w[test lib]
170
- t.test_files = FileList['test/monkey_test.rb']
171
- end
172
157
  end
173
158
 
174
159
  Rake::TestTask.new(:benchmark) do |t|
@@ -176,7 +161,7 @@ Rake::TestTask.new(:benchmark) do |t|
176
161
  t.test_files = FileList['test/benchmark_test.rb']
177
162
  end
178
163
 
179
- if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.1.0')
164
+ if defined?(RuboCop::RakeTask)
180
165
  RuboCop::RakeTask.new(:rubocop) do |t|
181
166
  t.options << ['-D', '--force-exclusion']
182
167
  t.patterns = ['lib/**/*.rb', 'test/**/*.rb', 'spec/**/*.rb', 'Gemfile', 'Rakefile']
@@ -196,6 +181,7 @@ S3_DIR = ENV['S3_DIR']
196
181
  desc 'release the docs website'
197
182
  task :'release:docs' => :docs do
198
183
  raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
184
+
199
185
  sh "aws s3 cp --recursive doc/ s3://#{S3_BUCKET}/#{S3_DIR}/docs/"
200
186
  end
201
187
 
@@ -226,8 +212,6 @@ task :ci do
226
212
  declare 'bundle exec rake spec:contrib'
227
213
 
228
214
  if RUBY_PLATFORM != 'java'
229
- # Contrib minitests
230
- declare 'bundle exec appraisal contrib-old rake test:monkey'
231
215
  # Contrib specs
232
216
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
233
217
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
@@ -285,8 +269,6 @@ task :ci do
285
269
  declare 'bundle exec rake spec:opentracer'
286
270
 
287
271
  if RUBY_PLATFORM != 'java'
288
- # Contrib minitests
289
- declare 'bundle exec appraisal contrib-old rake test:monkey'
290
272
  # Contrib specs
291
273
  declare 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
292
274
  declare 'bundle exec appraisal contrib-old rake spec:active_record'
data/ddtrace.gemspec CHANGED
@@ -33,40 +33,10 @@ Gem::Specification.new do |spec|
33
33
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
34
  spec.require_paths = ['lib']
35
35
 
36
- spec.add_dependency 'msgpack'
37
-
38
- # Optional extensions
39
- # TODO: Move this to Appraisals?
40
- spec.add_development_dependency 'dogstatsd-ruby', '>= 3.3.0'
41
- spec.add_development_dependency 'opentracing', '>= 0.4.1'
42
-
43
- # Development dependencies
44
- spec.add_development_dependency 'concurrent-ruby' # Leave it open as we also have it as an integration and want Appraisal to control the version under test.
45
- spec.add_development_dependency 'rake', '>= 10.5'
46
- spec.add_development_dependency 'rubocop', '= 0.49.1' if RUBY_VERSION >= '2.1.0'
47
- spec.add_development_dependency 'rspec', '~> 3.0'
48
- spec.add_development_dependency 'rspec-collection_matchers', '~> 1.1'
49
- spec.add_development_dependency 'ruby-prof', '~> 1.4' if RUBY_PLATFORM != 'java' && RUBY_VERSION >= '2.4.0'
50
- spec.add_development_dependency 'minitest', '= 5.10.1'
51
- spec.add_development_dependency 'minitest-around', '0.5.0'
52
- spec.add_development_dependency 'minitest-stub_any_instance', '1.0.2'
53
- spec.add_development_dependency 'pimpmychangelog', '>= 0.1.2'
54
- spec.add_development_dependency 'appraisal', '~> 2.2'
55
- spec.add_development_dependency 'yard', '~> 0.9'
56
- spec.add_development_dependency 'webmock', '>= 3.10.0'
57
- spec.add_development_dependency 'builder'
58
- spec.add_development_dependency 'climate_control', '~> 0.2.0'
59
- spec.add_development_dependency 'rspec_junit_formatter', '>= 0.4.1'
60
-
61
- # locking transitive dependency of webmock
62
- spec.add_development_dependency 'addressable', '~> 2.4.0'
63
- spec.add_development_dependency 'benchmark-ips', '~> 2.8'
64
- spec.add_development_dependency 'benchmark-memory', '~> 0.1'
65
- spec.add_development_dependency 'memory_profiler', '~> 0.9'
66
- spec.add_development_dependency 'redcarpet', '~> 3.4' if RUBY_PLATFORM != 'java'
67
- spec.add_development_dependency 'pry', '~> 0.12.2'
68
- spec.add_development_dependency 'pry-nav', '~> 0.3.0'
69
- spec.add_development_dependency 'pry-stack_explorer', '~> 0.4.9' if RUBY_PLATFORM != 'java'
70
- spec.add_development_dependency 'simplecov', '~> 0.17'
71
- spec.add_development_dependency 'warning', '~> 1' if RUBY_VERSION >= '2.5.0'
36
+ if RUBY_VERSION >= '2.2.0'
37
+ spec.add_dependency 'msgpack'
38
+ else
39
+ # msgpack 1.4 fails for Ruby 2.0 and 2.1: https://github.com/msgpack/msgpack-ruby/issues/205
40
+ spec.add_dependency 'msgpack', '< 1.4'
41
+ end
72
42
  end
data/docker-compose.yml CHANGED
@@ -277,8 +277,8 @@ services:
277
277
  - bundle-3.0:/usr/local/bundle
278
278
  - gemfiles-3.0:/app/gemfiles
279
279
  # JRuby
280
- tracer-jruby-9.2:
281
- image: marcotc/docker-library:ddtrace_rb_jruby_9_2
280
+ tracer-jruby-9.2.0.0:
281
+ image: marcotc/docker-library:ddtrace_rb_jruby_9_2_0_0
282
282
  command: /bin/bash
283
283
  depends_on:
284
284
  - ddagent
@@ -306,8 +306,71 @@ services:
306
306
  tty: true
307
307
  volumes:
308
308
  - .:/app
309
- - bundle-jruby-9.2:/usr/local/bundle
310
- - gemfiles-jruby-9.2:/app/gemfiles
309
+ - bundle-jruby-9.2.0.0:/usr/local/bundle
310
+ - gemfiles-jruby-9.2.0.0:/app/gemfiles
311
+ tracer-jruby-9.2-latest:
312
+ image: marcotc/docker-library:ddtrace_rb_jruby_9_2_11_1
313
+ command: /bin/bash
314
+ depends_on:
315
+ - ddagent
316
+ - elasticsearch
317
+ - memcached
318
+ - mongodb
319
+ - mysql
320
+ - postgres
321
+ - presto
322
+ - redis
323
+ env_file: ./.env
324
+ environment:
325
+ - BUNDLE_GEMFILE=/app/Gemfile
326
+ - DD_AGENT_HOST=ddagent
327
+ - TEST_DATADOG_INTEGRATION=1
328
+ - TEST_ELASTICSEARCH_HOST=elasticsearch
329
+ - TEST_MEMCACHED_HOST=memcached
330
+ - TEST_MONGODB_HOST=mongodb
331
+ - TEST_MYSQL_HOST=mysql
332
+ - TEST_POSTGRES_HOST=postgres
333
+ - TEST_PRESTO_HOST=presto
334
+ - TEST_PRESTO_PORT=8080
335
+ - TEST_REDIS_HOST=redis
336
+ stdin_open: true
337
+ tty: true
338
+ volumes:
339
+ - .:/app
340
+ - bundle-jruby-9.2-latest:/usr/local/bundle
341
+ - gemfiles-jruby-9.2-latest:/app/gemfiles
342
+ # TruffleRuby
343
+ tracer-truffleruby-21.0.0:
344
+ image: ivoanjo/docker-library:ddtrace_rb_truffleruby_21_0_0
345
+ command: /bin/bash
346
+ depends_on:
347
+ - ddagent
348
+ - elasticsearch
349
+ - memcached
350
+ - mongodb
351
+ - mysql
352
+ - postgres
353
+ - presto
354
+ - redis
355
+ env_file: ./.env
356
+ environment:
357
+ - BUNDLE_GEMFILE=/app/Gemfile
358
+ - DD_AGENT_HOST=ddagent
359
+ - TEST_DATADOG_INTEGRATION=1
360
+ - TEST_ELASTICSEARCH_HOST=elasticsearch
361
+ - TEST_MEMCACHED_HOST=memcached
362
+ - TEST_MONGODB_HOST=mongodb
363
+ - TEST_MYSQL_HOST=mysql
364
+ - TEST_POSTGRES_HOST=postgres
365
+ - TEST_PRESTO_HOST=presto
366
+ - TEST_PRESTO_PORT=8080
367
+ - TEST_REDIS_HOST=redis
368
+ stdin_open: true
369
+ tty: true
370
+ volumes:
371
+ - .:/app
372
+ - bundle-truffleruby-21.0.0:/usr/local/bundle
373
+ - gemfiles-truffleruby-21.0.0:/app/gemfiles
311
374
  ddagent:
312
375
  image: datadog/agent
313
376
  environment:
@@ -366,7 +429,8 @@ services:
366
429
  ports:
367
430
  - "${TEST_POSTGRES_PORT}:5432"
368
431
  presto:
369
- image: prestosql/presto
432
+ # Move to trinodb/trino after https://github.com/treasure-data/presto-client-ruby/issues/64 is resolved.
433
+ image: starburstdata/presto:332-e.9
370
434
  expose:
371
435
  - "8080"
372
436
  ports:
@@ -387,7 +451,9 @@ volumes:
387
451
  bundle-2.6:
388
452
  bundle-2.7:
389
453
  bundle-3.0:
390
- bundle-jruby-9.2:
454
+ bundle-jruby-9.2.0.0:
455
+ bundle-jruby-9.2-latest:
456
+ bundle-truffleruby-21.0.0:
391
457
  gemfiles-2.0:
392
458
  gemfiles-2.1:
393
459
  gemfiles-2.2:
@@ -397,4 +463,6 @@ volumes:
397
463
  gemfiles-2.6:
398
464
  gemfiles-2.7:
399
465
  gemfiles-3.0:
400
- gemfiles-jruby-9.2:
466
+ gemfiles-jruby-9.2.0.0:
467
+ gemfiles-jruby-9.2-latest:
468
+ gemfiles-truffleruby-21.0.0: