ddtrace 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +79 -0
  3. data/.rubocop.yml +250 -7
  4. data/.rubocop_todo.yml +396 -0
  5. data/Appraisals +15 -0
  6. data/CHANGELOG.md +68 -1
  7. data/Gemfile +38 -3
  8. data/Rakefile +5 -23
  9. data/ddtrace.gemspec +6 -36
  10. data/docs/DevelopmentGuide.md +28 -0
  11. data/docs/GettingStarted.md +8 -9
  12. data/integration/README.md +68 -0
  13. data/integration/apps/rack/.dockerignore +1 -0
  14. data/integration/apps/rack/.envrc.sample +1 -0
  15. data/integration/apps/rack/.gitignore +4 -0
  16. data/integration/apps/rack/.rspec +1 -0
  17. data/integration/apps/rack/Dockerfile +25 -0
  18. data/integration/apps/rack/Dockerfile-ci +11 -0
  19. data/integration/apps/rack/Gemfile +24 -0
  20. data/integration/apps/rack/README.md +93 -0
  21. data/integration/apps/rack/app/acme.rb +80 -0
  22. data/integration/apps/rack/app/datadog.rb +17 -0
  23. data/integration/apps/rack/bin/run +22 -0
  24. data/integration/apps/rack/bin/setup +17 -0
  25. data/integration/apps/rack/bin/test +24 -0
  26. data/integration/apps/rack/config.ru +6 -0
  27. data/integration/apps/rack/config/puma.rb +14 -0
  28. data/integration/apps/rack/config/unicorn.rb +23 -0
  29. data/integration/apps/rack/docker-compose.ci.yml +62 -0
  30. data/integration/apps/rack/docker-compose.yml +78 -0
  31. data/integration/apps/rack/script/build-images +38 -0
  32. data/integration/apps/rack/script/ci +50 -0
  33. data/integration/apps/rack/spec/integration/basic_spec.rb +10 -0
  34. data/integration/apps/rack/spec/spec_helper.rb +16 -0
  35. data/integration/apps/rack/spec/support/integration_helper.rb +22 -0
  36. data/integration/apps/rails-five/.dockerignore +1 -0
  37. data/integration/apps/rails-five/.env +3 -0
  38. data/integration/apps/rails-five/.envrc.sample +1 -0
  39. data/integration/apps/rails-five/.gitignore +30 -0
  40. data/integration/apps/rails-five/Dockerfile +25 -0
  41. data/integration/apps/rails-five/Dockerfile-ci +11 -0
  42. data/integration/apps/rails-five/Gemfile +104 -0
  43. data/integration/apps/rails-five/README.md +94 -0
  44. data/integration/apps/rails-five/Rakefile +6 -0
  45. data/integration/apps/rails-five/app/channels/application_cable/channel.rb +4 -0
  46. data/integration/apps/rails-five/app/channels/application_cable/connection.rb +4 -0
  47. data/integration/apps/rails-five/app/controllers/application_controller.rb +2 -0
  48. data/integration/apps/rails-five/app/controllers/basic_controller.rb +36 -0
  49. data/integration/apps/rails-five/app/controllers/concerns/.keep +0 -0
  50. data/integration/apps/rails-five/app/controllers/health_controller.rb +9 -0
  51. data/integration/apps/rails-five/app/controllers/jobs_controller.rb +12 -0
  52. data/integration/apps/rails-five/app/jobs/application_job.rb +2 -0
  53. data/integration/apps/rails-five/app/jobs/test_job.rb +12 -0
  54. data/integration/apps/rails-five/app/mailers/application_mailer.rb +4 -0
  55. data/integration/apps/rails-five/app/models/application_record.rb +3 -0
  56. data/integration/apps/rails-five/app/models/concerns/.keep +0 -0
  57. data/integration/apps/rails-five/app/models/test.rb +2 -0
  58. data/integration/apps/rails-five/app/views/layouts/mailer.html.erb +13 -0
  59. data/integration/apps/rails-five/app/views/layouts/mailer.text.erb +1 -0
  60. data/integration/apps/rails-five/bin/bundle +3 -0
  61. data/integration/apps/rails-five/bin/rails +9 -0
  62. data/integration/apps/rails-five/bin/rake +9 -0
  63. data/integration/apps/rails-five/bin/run +24 -0
  64. data/integration/apps/rails-five/bin/setup +27 -0
  65. data/integration/apps/rails-five/bin/spring +17 -0
  66. data/integration/apps/rails-five/bin/test +21 -0
  67. data/integration/apps/rails-five/bin/update +28 -0
  68. data/integration/apps/rails-five/config.ru +5 -0
  69. data/integration/apps/rails-five/config/application.rb +97 -0
  70. data/integration/apps/rails-five/config/boot.rb +4 -0
  71. data/integration/apps/rails-five/config/cable.yml +10 -0
  72. data/integration/apps/rails-five/config/credentials.yml.enc +1 -0
  73. data/integration/apps/rails-five/config/database.yml +28 -0
  74. data/integration/apps/rails-five/config/environment.rb +5 -0
  75. data/integration/apps/rails-five/config/environments/development.rb +51 -0
  76. data/integration/apps/rails-five/config/environments/production.rb +82 -0
  77. data/integration/apps/rails-five/config/environments/test.rb +43 -0
  78. data/integration/apps/rails-five/config/initializers/datadog.rb +18 -0
  79. data/integration/apps/rails-five/config/initializers/filter_parameter_logging.rb +4 -0
  80. data/integration/apps/rails-five/config/initializers/resque.rb +4 -0
  81. data/integration/apps/rails-five/config/initializers/rollbar.rb +5 -0
  82. data/integration/apps/rails-five/config/initializers/wrap_parameters.rb +14 -0
  83. data/integration/apps/rails-five/config/locales/en.yml +33 -0
  84. data/integration/apps/rails-five/config/puma.rb +24 -0
  85. data/integration/apps/rails-five/config/routes.rb +11 -0
  86. data/integration/apps/rails-five/config/spring.rb +6 -0
  87. data/integration/apps/rails-five/config/unicorn.rb +29 -0
  88. data/integration/apps/rails-five/db/migrate/20190927215052_create_tests.rb +11 -0
  89. data/integration/apps/rails-five/db/schema.rb +23 -0
  90. data/integration/apps/rails-five/db/seeds.rb +7 -0
  91. data/integration/apps/rails-five/docker-compose.ci.yml +98 -0
  92. data/integration/apps/rails-five/docker-compose.yml +100 -0
  93. data/integration/apps/rails-five/lib/tasks/.keep +0 -0
  94. data/integration/apps/rails-five/log/.keep +0 -0
  95. data/integration/apps/rails-five/public/robots.txt +1 -0
  96. data/integration/apps/rails-five/script/build-images +35 -0
  97. data/integration/apps/rails-five/script/ci +50 -0
  98. data/integration/apps/rails-five/spec/integration/basic_spec.rb +10 -0
  99. data/integration/apps/rails-five/spec/spec_helper.rb +16 -0
  100. data/integration/apps/rails-five/spec/support/integration_helper.rb +22 -0
  101. data/integration/apps/rails-five/storage/.keep +0 -0
  102. data/integration/apps/rails-five/tmp/.keep +0 -0
  103. data/integration/apps/rails-five/vendor/.keep +0 -0
  104. data/integration/apps/ruby/.dockerignore +1 -0
  105. data/integration/apps/ruby/.envrc.sample +1 -0
  106. data/integration/apps/ruby/.gitignore +2 -0
  107. data/integration/apps/ruby/Dockerfile +25 -0
  108. data/integration/apps/ruby/Dockerfile-ci +11 -0
  109. data/integration/apps/ruby/Gemfile +11 -0
  110. data/integration/apps/ruby/README.md +70 -0
  111. data/integration/apps/ruby/agent.yaml +3 -0
  112. data/integration/apps/ruby/app/datadog.rb +13 -0
  113. data/integration/apps/ruby/app/fibonacci.rb +58 -0
  114. data/integration/apps/ruby/bin/run +20 -0
  115. data/integration/apps/ruby/bin/setup +17 -0
  116. data/integration/apps/ruby/bin/test +21 -0
  117. data/integration/apps/ruby/docker-compose.ci.yml +51 -0
  118. data/integration/apps/ruby/docker-compose.yml +63 -0
  119. data/integration/apps/ruby/script/build-images +38 -0
  120. data/integration/apps/ruby/script/ci +50 -0
  121. data/integration/images/agent/Dockerfile +2 -0
  122. data/integration/images/agent/agent.yaml +3 -0
  123. data/integration/images/include/datadog/analyzer.rb +71 -0
  124. data/integration/images/include/datadog/demo_env.rb +101 -0
  125. data/integration/images/include/http-health-check +33 -0
  126. data/integration/images/ruby/2.0/Dockerfile +54 -0
  127. data/integration/images/ruby/2.1/Dockerfile +54 -0
  128. data/integration/images/ruby/2.2/Dockerfile +54 -0
  129. data/integration/images/ruby/2.3/Dockerfile +70 -0
  130. data/integration/images/ruby/2.4/Dockerfile +54 -0
  131. data/integration/images/ruby/2.5/Dockerfile +54 -0
  132. data/integration/images/ruby/2.6/Dockerfile +54 -0
  133. data/integration/images/ruby/2.7/Dockerfile +54 -0
  134. data/integration/images/ruby/3.0/Dockerfile +54 -0
  135. data/integration/images/wrk/Dockerfile +33 -0
  136. data/integration/images/wrk/scripts/entrypoint.sh +17 -0
  137. data/integration/images/wrk/scripts/scenarios/basic/default.lua +1 -0
  138. data/integration/images/wrk/scripts/scenarios/basic/fibonacci.lua +1 -0
  139. data/integration/script/build-images +43 -0
  140. data/lib/ddtrace.rb +0 -5
  141. data/lib/ddtrace/analytics.rb +2 -0
  142. data/lib/ddtrace/buffer.rb +4 -4
  143. data/lib/ddtrace/configuration.rb +1 -1
  144. data/lib/ddtrace/configuration/base.rb +1 -1
  145. data/lib/ddtrace/configuration/components.rb +2 -2
  146. data/lib/ddtrace/configuration/option_definition.rb +1 -3
  147. data/lib/ddtrace/configuration/options.rb +2 -3
  148. data/lib/ddtrace/configuration/settings.rb +17 -3
  149. data/lib/ddtrace/context.rb +5 -6
  150. data/lib/ddtrace/context_provider.rb +1 -0
  151. data/lib/ddtrace/contrib/action_cable/event.rb +1 -0
  152. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +1 -3
  153. data/lib/ddtrace/contrib/action_view/event.rb +1 -1
  154. data/lib/ddtrace/contrib/action_view/utils.rb +1 -1
  155. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +17 -5
  156. data/lib/ddtrace/contrib/active_record/utils.rb +1 -0
  157. data/lib/ddtrace/contrib/active_support/notifications/event.rb +2 -1
  158. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +1 -0
  159. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +9 -5
  160. data/lib/ddtrace/contrib/auto_instrument.rb +1 -0
  161. data/lib/ddtrace/contrib/aws/patcher.rb +1 -0
  162. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  163. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +1 -4
  164. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +0 -10
  165. data/lib/ddtrace/contrib/cucumber/ext.rb +0 -2
  166. data/lib/ddtrace/contrib/cucumber/formatter.rb +5 -11
  167. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -38
  168. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -1
  169. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +3 -2
  170. data/lib/ddtrace/contrib/ethon/easy_patch.rb +5 -5
  171. data/lib/ddtrace/contrib/excon/middleware.rb +2 -6
  172. data/lib/ddtrace/contrib/extensions.rb +1 -0
  173. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -3
  174. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -36
  175. data/lib/ddtrace/contrib/grape/endpoint.rb +8 -15
  176. data/lib/ddtrace/contrib/grape/patcher.rb +0 -42
  177. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +8 -8
  178. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +1 -0
  179. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -36
  180. data/lib/ddtrace/contrib/http/circuit_breaker.rb +1 -3
  181. data/lib/ddtrace/contrib/http/instrumentation.rb +5 -5
  182. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +2 -3
  183. data/lib/ddtrace/contrib/httprb/instrumentation.rb +2 -3
  184. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +2 -0
  185. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -3
  186. data/lib/ddtrace/contrib/patcher.rb +1 -1
  187. data/lib/ddtrace/contrib/qless/qless_job.rb +1 -0
  188. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +1 -0
  189. data/lib/ddtrace/contrib/que/ext.rb +19 -19
  190. data/lib/ddtrace/contrib/que/tracer.rb +1 -1
  191. data/lib/ddtrace/contrib/racecar/event.rb +1 -0
  192. data/lib/ddtrace/contrib/rack/configuration/settings.rb +3 -3
  193. data/lib/ddtrace/contrib/rack/middlewares.rb +5 -10
  194. data/lib/ddtrace/contrib/rack/patcher.rb +1 -3
  195. data/lib/ddtrace/contrib/rake/instrumentation.rb +4 -2
  196. data/lib/ddtrace/contrib/redis/quantize.rb +1 -0
  197. data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
  198. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +6 -7
  199. data/lib/ddtrace/contrib/registry.rb +2 -2
  200. data/lib/ddtrace/contrib/resque/resque_job.rb +2 -0
  201. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -3
  202. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +0 -10
  203. data/lib/ddtrace/contrib/rspec/example.rb +24 -10
  204. data/lib/ddtrace/contrib/rspec/ext.rb +0 -3
  205. data/lib/ddtrace/contrib/rspec/integration.rb +1 -1
  206. data/lib/ddtrace/contrib/rspec/patcher.rb +0 -2
  207. data/lib/ddtrace/contrib/sequel/utils.rb +5 -6
  208. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -1
  209. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +2 -7
  210. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -1
  211. data/lib/ddtrace/contrib/sinatra/env.rb +1 -3
  212. data/lib/ddtrace/contrib/sinatra/headers.rb +1 -3
  213. data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -3
  214. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +3 -3
  215. data/lib/ddtrace/contrib/sneakers/ext.rb +11 -11
  216. data/lib/ddtrace/contrib/sneakers/tracer.rb +2 -4
  217. data/lib/ddtrace/contrib/status_code_matcher.rb +5 -3
  218. data/lib/ddtrace/correlation.rb +1 -0
  219. data/lib/ddtrace/diagnostics/environment_logger.rb +2 -1
  220. data/lib/ddtrace/distributed_tracing/headers/headers.rb +1 -0
  221. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +1 -3
  222. data/lib/ddtrace/ext/ci.rb +2 -2
  223. data/lib/ddtrace/ext/distributed.rb +1 -1
  224. data/lib/ddtrace/ext/http.rb +1 -1
  225. data/lib/ddtrace/ext/runtime.rb +1 -1
  226. data/lib/ddtrace/forced_tracing.rb +2 -0
  227. data/lib/ddtrace/logger.rb +1 -1
  228. data/lib/ddtrace/metrics.rb +10 -6
  229. data/lib/ddtrace/opentracer/distributed_headers.rb +3 -0
  230. data/lib/ddtrace/opentracer/span.rb +2 -6
  231. data/lib/ddtrace/opentracer/thread_local_scope.rb +1 -0
  232. data/lib/ddtrace/patcher.rb +2 -3
  233. data/lib/ddtrace/pin.rb +3 -52
  234. data/lib/ddtrace/pipeline/span_filter.rb +1 -1
  235. data/lib/ddtrace/propagation/grpc_propagator.rb +1 -0
  236. data/lib/ddtrace/quantization/http.rb +1 -0
  237. data/lib/ddtrace/runtime/cgroup.rb +1 -1
  238. data/lib/ddtrace/runtime/container.rb +2 -2
  239. data/lib/ddtrace/sampler.rb +1 -1
  240. data/lib/ddtrace/sampling/rule_sampler.rb +1 -0
  241. data/lib/ddtrace/span.rb +7 -7
  242. data/lib/ddtrace/sync_writer.rb +7 -10
  243. data/lib/ddtrace/tracer.rb +1 -1
  244. data/lib/ddtrace/transport/http.rb +1 -3
  245. data/lib/ddtrace/transport/http/adapters/net.rb +9 -4
  246. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  247. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
  248. data/lib/ddtrace/transport/http/builder.rb +2 -0
  249. data/lib/ddtrace/transport/http/traces.rb +2 -3
  250. data/lib/ddtrace/transport/io.rb +1 -1
  251. data/lib/ddtrace/transport/traces.rb +3 -0
  252. data/lib/ddtrace/utils/time.rb +25 -1
  253. data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
  254. data/lib/ddtrace/version.rb +1 -1
  255. data/lib/ddtrace/workers.rb +5 -0
  256. data/lib/ddtrace/workers/async.rb +8 -0
  257. data/lib/ddtrace/workers/loop.rb +3 -0
  258. data/lib/ddtrace/workers/polling.rb +1 -0
  259. data/lib/ddtrace/workers/trace_writer.rb +9 -10
  260. data/lib/ddtrace/writer.rb +3 -3
  261. metadata +133 -400
  262. data/lib/ddtrace/augmentation.rb +0 -13
  263. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  264. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  265. data/lib/ddtrace/augmentation/shim.rb +0 -102
  266. data/lib/ddtrace/contrib/rspec/example_group.rb +0 -61
  267. data/lib/ddtrace/monkey.rb +0 -58
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d5d1f968ae142a829712c88c018d2a36c50684921cb3e92c4f3f44f098c94a3
4
- data.tar.gz: 1296fb1dd4b26cc15e6cef392b364abb19192252d6f99167a6fde82418cce557
3
+ metadata.gz: 765c02ea39ee5565a83c8b818f27c7dae9c4bc1a0f0dfeed188484e726b80d8a
4
+ data.tar.gz: 64abc2a7449f61b4f6b121a8ca3f9e4fc2a3a515842ed737d57b5441ab631300
5
5
  SHA512:
6
- metadata.gz: 91c0cea0127c496224ba589eb67cb516c59915a038396fdcf5f70d97ca99a688926b7092f7e0e0ffb7f0690c59876e007da58694ce3a2d9f3cea52fd8b988e7a
7
- data.tar.gz: f2f6578f4fc3dcca0df0ff12a246303e5fab195cfa4faaa92ffcfc0e6290e2678827ed121dad8cb1a39aae2561fdef678041458649a1d8dc042e7fc4ee97fd43
6
+ metadata.gz: 3b4b88acb48e5a1cf9b6f52280d06ecc8d1ab0b1ba3e09c1649d4b5e42a2d2fac9056be0d4c339c4fac3bc944401b2e142a6f4f99f01e16d6c3f9f52cce6b305
7
+ data.tar.gz: 5564b83b67f0b0ae9df7b93f038b4e25fe53de21aea237695b0522e6af06eb22cd957444ab8d05c7d9b4a597676ece5fa6da7cb9a5080a0f372056b6927d1596
data/.circleci/config.yml CHANGED
@@ -23,6 +23,7 @@ test_containers:
23
23
  default: false
24
24
  - &container_base_environment
25
25
  BUNDLE_GEMFILE: /app/Gemfile
26
+ JRUBY_OPTS: --dev # Faster JVM startup: https://github.com/jruby/jruby/wiki/Improving-startup-time#use-the---dev-flag
26
27
  - &container_parameters_environment
27
28
  - *container_base_environment
28
29
  - RUBY_OPT: <<# parameters.jit >>--jit<</ parameters.jit >>
@@ -161,6 +162,34 @@ orbs:
161
162
  key: bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum "Gemfile" }}-{{ checksum "Appraisals" }}-{{ checksum "ddtrace.gemspec" }}-{{ checksum ".circleci/bundle_checksum" }}'
162
163
  paths:
163
164
  - /usr/local/bundle
165
+ build_and_test_integration:
166
+ executor: docker-integration
167
+ parameters:
168
+ ruby_version:
169
+ description: Ruby version
170
+ type: string
171
+ integration_apps:
172
+ description: Integration apps
173
+ type: string
174
+ steps:
175
+ - checkout
176
+ - setup_remote_docker:
177
+ docker_layer_caching: true
178
+ - run:
179
+ name: Build integration base images
180
+ command: ./integration/script/build-images -v <<parameters.ruby_version>>
181
+ - run:
182
+ name: Build integration app images
183
+ command: |
184
+ for i in <<parameters.integration_apps>>; do
185
+ ./integration/apps/$i/script/build-images -v <<parameters.ruby_version>>
186
+ done
187
+ - run:
188
+ name: Test integration apps
189
+ command: |
190
+ for i in <<parameters.integration_apps>>; do
191
+ ./integration/apps/$i/script/ci -v <<parameters.ruby_version>>
192
+ done
164
193
  test:
165
194
  <<: *test_job_default
166
195
  docker:
@@ -299,6 +328,9 @@ orbs:
299
328
  name: Wait for container on port <<parameters.port>>
300
329
  command: dockerize -wait 'tcp://localhost:<<parameters.port>>' -timeout '<<parameters.timeout>>'
301
330
  executors:
331
+ docker-integration:
332
+ docker:
333
+ - image: circleci/buildpack-deps:stretch
302
334
 
303
335
  jobs:
304
336
  "deploy release":
@@ -438,6 +470,53 @@ workflows:
438
470
  filters:
439
471
  branches:
440
472
  only: /bump_to_version_.*/
473
+ # Integration
474
+ - orb/build_and_test_integration:
475
+ name: build_and_test_integration-2.0
476
+ integration_apps: 'ruby rack'
477
+ ruby_version: '2.0'
478
+ <<: *filters_all_branches_and_tags
479
+ - orb/build_and_test_integration:
480
+ name: build_and_test_integration-2.1
481
+ integration_apps: 'ruby rack'
482
+ ruby_version: '2.1'
483
+ <<: *filters_all_branches_and_tags
484
+ - orb/build_and_test_integration:
485
+ name: build_and_test_integration-2.2
486
+ integration_apps: 'ruby rack'
487
+ ruby_version: '2.2'
488
+ <<: *filters_all_branches_and_tags
489
+ - orb/build_and_test_integration:
490
+ name: build_and_test_integration-2.3
491
+ integration_apps: 'ruby rack rails-five'
492
+ ruby_version: '2.3'
493
+ <<: *filters_all_branches_and_tags
494
+ - orb/build_and_test_integration:
495
+ name: build_and_test_integration-2.4
496
+ integration_apps: 'ruby rack rails-five'
497
+ ruby_version: '2.4'
498
+ <<: *filters_all_branches_and_tags
499
+ - orb/build_and_test_integration:
500
+ name: build_and_test_integration-2.5
501
+ integration_apps: 'ruby rack rails-five'
502
+ ruby_version: '2.5'
503
+ <<: *filters_all_branches_and_tags
504
+ - orb/build_and_test_integration:
505
+ name: build_and_test_integration-2.6
506
+ integration_apps: 'ruby rack rails-five'
507
+ ruby_version: '2.6'
508
+ <<: *filters_all_branches_and_tags
509
+ - orb/build_and_test_integration:
510
+ name: build_and_test_integration-2.7
511
+ integration_apps: 'ruby rack rails-five'
512
+ ruby_version: '2.7'
513
+ <<: *filters_all_branches_and_tags
514
+ - orb/build_and_test_integration:
515
+ name: build_and_test_integration-3.0
516
+ # TODO: Get Rack & Rails apps working with Ruby 3.0
517
+ integration_apps: 'ruby'
518
+ ruby_version: '3.0'
519
+ <<: *filters_all_branches_and_tags
441
520
  # MRI
442
521
  - orb/build:
443
522
  <<: *config-2_0
data/.rubocop.yml CHANGED
@@ -1,5 +1,11 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ require:
4
+ - rubocop-performance
5
+ - rubocop-rspec
6
+
1
7
  AllCops:
2
- TargetRubyVersion: 2.1
8
+ TargetRubyVersion: 2.4 # Lowest version supported currently
3
9
  Include:
4
10
  - 'lib/**/*.rb'
5
11
  - 'test/**/*.rb'
@@ -9,11 +15,14 @@ AllCops:
9
15
  Exclude:
10
16
  - 'Appraisals'
11
17
  - '*.gemspec'
12
- - 'lib/ddtrace/vendor/**/*.rb'
18
+ - 'lib/ddtrace/**/vendor/**/*.rb'
19
+ - 'integration/apps/*/bin/*'
20
+ - 'integration/apps/*/Gemfile'
21
+ NewCops: disable # Don't allow new cops to be enabled implicitly.
13
22
 
14
23
  # 80 characters is a nice goal, but not worth currently changing in existing
15
24
  # code for the sake of changing it to conform to a length set in 1928 (IBM).
16
- Metrics/LineLength:
25
+ Layout/LineLength:
17
26
  Max: 124
18
27
 
19
28
  # These exceptions are good goals to attain, and probably will over time,
@@ -34,10 +43,7 @@ Performance/Casecmp:
34
43
  # should enable again this rule but it will change the public API because
35
44
  # we're using set_ methods. We should work on that because also Rails
36
45
  # honors this rule.
37
- Style/AccessorMethodName:
38
- Enabled: false
39
-
40
- Style/MethodCallWithoutArgsParentheses:
46
+ Naming/AccessorMethodName:
41
47
  Enabled: false
42
48
 
43
49
  Style/RescueModifier:
@@ -67,6 +73,9 @@ Metrics/PerceivedComplexity:
67
73
  Lint/UnusedMethodArgument:
68
74
  Enabled: false
69
75
 
76
+ Style/RescueStandardError:
77
+ Enabled: false
78
+
70
79
  # alias and alias_method are not equivalent
71
80
  Style/Alias:
72
81
  Enabled: false
@@ -83,3 +92,237 @@ Style/GuardClause:
83
92
  # Case equality is not intrinsically problematic.
84
93
  Style/CaseEquality:
85
94
  Enabled: false
95
+
96
+ # New cops since Rubocop 1.0.
97
+ # We have to explicitly opt-in for new cops to apply
98
+ # before the next major release.
99
+ Gemspec/DateAssignment: # (new in 1.10)
100
+ Enabled: true
101
+ Layout/SpaceBeforeBrackets: # (new in 1.7)
102
+ Enabled: true
103
+ Lint/AmbiguousAssignment: # (new in 1.7)
104
+ Enabled: true
105
+ Lint/DeprecatedConstants: # (new in 1.8)
106
+ Enabled: true
107
+ Lint/DuplicateBranch: # (new in 1.3)
108
+ Enabled: true
109
+ Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
110
+ Enabled: true
111
+ Lint/EmptyClass: # (new in 1.3)
112
+ Enabled: true
113
+ Lint/LambdaWithoutLiteralBlock: # (new in 1.8)
114
+ Enabled: true
115
+ Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
116
+ Enabled: true
117
+ Lint/NumberedParameterAssignment: # (new in 1.9)
118
+ Enabled: true
119
+ Lint/OrAssignmentToConstant: # (new in 1.9)
120
+ Enabled: true
121
+ Lint/RedundantDirGlobSort: # (new in 1.8)
122
+ Enabled: true
123
+ Lint/SymbolConversion: # (new in 1.9)
124
+ Enabled: true
125
+ Lint/ToEnumArguments: # (new in 1.1)
126
+ Enabled: true
127
+ Lint/TripleQuotes: # (new in 1.9)
128
+ Enabled: true
129
+ Lint/UnexpectedBlockArity: # (new in 1.5)
130
+ Enabled: true
131
+ Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
132
+ Enabled: true
133
+ Style/ArgumentsForwarding: # (new in 1.1)
134
+ Enabled: true
135
+ Style/DocumentDynamicEvalDefinition: # (new in 1.1)
136
+ Enabled: true
137
+ Style/EndlessMethod: # (new in 1.8)
138
+ Enabled: true
139
+ Style/HashExcept: # (new in 1.7)
140
+ Enabled: true
141
+ Style/IfWithBooleanLiteralBranches: # (new in 1.9)
142
+ Enabled: true
143
+ Style/NilLambda: # (new in 1.3)
144
+ Enabled: true
145
+ Style/RedundantArgument: # (new in 1.4)
146
+ Enabled: true
147
+ Style/SwapValues: # (new in 1.1)
148
+ Enabled: true
149
+ Performance/AncestorsInclude: # (new in 1.7)
150
+ Enabled: true
151
+ Performance/BigDecimalWithNumericArgument: # (new in 1.7)
152
+ Enabled: true
153
+ Performance/BlockGivenWithExplicitBlock: # (new in 1.9)
154
+ Enabled: true
155
+ Performance/CollectionLiteralInLoop: # (new in 1.8)
156
+ Enabled: true
157
+ Performance/ConstantRegexp: # (new in 1.9)
158
+ Enabled: true
159
+ Performance/MethodObjectAsBlock: # (new in 1.9)
160
+ Enabled: true
161
+ Performance/RedundantSortBlock: # (new in 1.7)
162
+ Enabled: true
163
+ Performance/RedundantStringChars: # (new in 1.7)
164
+ Enabled: true
165
+ Performance/ReverseFirst: # (new in 1.7)
166
+ Enabled: true
167
+ Performance/SortReverse: # (new in 1.7)
168
+ Enabled: true
169
+ Performance/Squeeze: # (new in 1.7)
170
+ Enabled: true
171
+ Performance/StringInclude: # (new in 1.7)
172
+ Enabled: true
173
+ Performance/Sum: # (new in 1.8)
174
+ Enabled: true
175
+
176
+ # Requires Ruby 2.1
177
+ Style/HashConversion:
178
+ Enabled: false
179
+
180
+ # Requires Ruby 2.1
181
+ Lint/SendWithMixinArgument:
182
+ Enabled: false
183
+
184
+ # Requires Ruby 2.2
185
+ Style/HashSyntax:
186
+ Enabled: false
187
+
188
+ # Requires Ruby 2.3
189
+ Style/SafeNavigation:
190
+ Enabled: false
191
+
192
+ # Requires Ruby 2.3
193
+ Performance/UnfreezeString:
194
+ Enabled: false
195
+
196
+ # Requires Ruby 2.4
197
+ Style/HashTransformValues:
198
+ Enabled: false
199
+
200
+ # Requires Ruby 2.4
201
+ Style/CollectionCompact:
202
+ Enabled: false
203
+
204
+ # Enforces negative/positive branching order,
205
+ # which can hurt readability.
206
+ Style/NegatedIfElseCondition:
207
+ Enabled: false
208
+
209
+ # Converts `to change{foo.bar}` to `to change(foo, :bar)`.
210
+ # It doesn't seem to make it more readable, and doesn't work
211
+ # when `foo` has to be re-evaluated.
212
+ RSpec/ExpectChange:
213
+ Enabled: false
214
+
215
+ # Readability is not meaningfully affected by enforcing
216
+ # `not_to` vs `to_not`.
217
+ RSpec/NotToNot:
218
+ Enabled: false
219
+
220
+ # Enforces `subject` above all else, even `include_context`
221
+ # declarations.
222
+ RSpec/LeadingSubject:
223
+ Enabled: false
224
+
225
+ # Enforces usage of `expect(subject)` instead of `is_expected`.
226
+ RSpec/ImplicitSubject:
227
+ Enabled: false
228
+
229
+ # TODO: Disabling until we categorize which file are safe to do so.
230
+ Style/FrozenStringLiteralComment:
231
+ Enabled: false
232
+
233
+ # Replaces `x == 0` with `x.zero?` and similar.
234
+ # These methods are ~2x slower than the simple math comparison.
235
+ Style/NumericPredicate:
236
+ Enabled: false
237
+
238
+ # Allow for empty blocks (without a comment) in tests.
239
+ Lint/EmptyBlock:
240
+ Exclude:
241
+ - 'test/**/*.rb'
242
+ - 'spec/**/*.rb'
243
+
244
+ # Enforces that context description must start with 'when', 'with', or 'without'.
245
+ RSpec/ContextWording:
246
+ Enabled: false
247
+
248
+ # Enforces that examples should only have a limited amount of assertions.
249
+ RSpec/MultipleExpectations:
250
+ Enabled: false
251
+
252
+ # Enforces minimum character length for parameters.
253
+ Naming/MethodParameterName:
254
+ Enabled: false
255
+
256
+ # Enforces no instance variable in specs.
257
+ RSpec/InstanceVariable:
258
+ Enabled: false
259
+
260
+ # Enforces a maximum nested example group level.
261
+ RSpec/NestedGroups:
262
+ Enabled: false
263
+
264
+ # Enforces `receive` vs `have_received` expectation pattern.
265
+ RSpec/MessageSpies:
266
+ Enabled: false
267
+
268
+ # Enforces example line count limit.
269
+ RSpec/ExampleLength:
270
+ Enabled: false
271
+
272
+ # Enforces maximum let and subject calls.
273
+ RSpec/MultipleMemoizedHelpers:
274
+ Enabled: false
275
+
276
+ # Enforces `allow` over `expect` when configuring a response.
277
+ RSpec/StubbedMock:
278
+ Enabled: false
279
+
280
+ # Enforces no use of `expect` in `before` hooks.
281
+ RSpec/ExpectInHook:
282
+ Enabled: false
283
+
284
+ # Enforces no stubbing using `allow_any_instance_of`.
285
+ RSpec/AnyInstance:
286
+ Enabled: false
287
+
288
+ # Enforces strict matching of example class with spec file name.
289
+ # This does not work for our current namespacing as our gem is called
290
+ # `ddtrace` while our namespace is `::Datadog`.
291
+ # It would have to either be `ddtrace` + `::DDTrace` or
292
+ # `datadog` + `::Datadog`.
293
+ RSpec/FilePath:
294
+ Enabled: false
295
+
296
+ # Enforces no stubbing of methods of the object under test.
297
+ RSpec/SubjectStub:
298
+ Enabled: false
299
+
300
+ # Enforces that the first argument to describe should
301
+ # be the class or module being tested.
302
+ RSpec/DescribeClass:
303
+ Enabled: false
304
+
305
+ # Enforces to no use let! to setup objects not referenced in tests.
306
+ # Fails to account for shared examples across files.
307
+ RSpec/LetSetup:
308
+ Enabled: false
309
+
310
+ # Identifies where `fetch(key) { value }` can be replaced by `fetch(key, value)`.
311
+ # Can't differentiate between `Hash#fetch` and `RailsCache#fetch`,
312
+ # passing in wrong parameters to these methods.
313
+ Style/RedundantFetchBlock:
314
+ Enabled: false
315
+
316
+ # Warns about usage of `before(:all)`
317
+ RSpec/BeforeAfterAll:
318
+ Enabled: false
319
+
320
+ # Enforces snake case file names.
321
+ Naming/FileName:
322
+ Exclude:
323
+ - 'integration/**/Gemfile'
324
+ - 'integration/**/Rakefile'
325
+
326
+ # Enforces boolean parameters with default to be keyword arguments.
327
+ Style/OptionalBooleanParameter:
328
+ Enabled: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,396 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config --exclude-limit 99999`
3
+ # on 2021-02-19 23:39:59 UTC using RuboCop version 1.10.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
12
+ # URISchemes: http, https
13
+ Layout/LineLength:
14
+ Max: 125
15
+
16
+ # Offense count: 3
17
+ # Configuration parameters: AllowedMethods.
18
+ # AllowedMethods: enums
19
+ Lint/ConstantDefinitionInBlock:
20
+ Exclude:
21
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
22
+ - 'spec/ddtrace/contrib/rails/rack_spec.rb'
23
+ - 'spec/ddtrace/workers/async_spec.rb'
24
+
25
+ # Offense count: 2
26
+ # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
27
+ Lint/DuplicateBranch:
28
+ Exclude:
29
+ - 'lib/ddtrace/quantization/http.rb'
30
+ - 'test/contrib/rails/test_helper.rb'
31
+
32
+ # Offense count: 3
33
+ Lint/DuplicateRequire:
34
+ Exclude:
35
+ - 'lib/ddtrace/contrib/cucumber/integration.rb'
36
+ - 'lib/ddtrace/contrib/rspec/integration.rb'
37
+ - 'spec/ddtrace/contrib/presto/client_spec.rb'
38
+
39
+ # Offense count: 1
40
+ # Cop supports --auto-correct.
41
+ # Configuration parameters: EnforcedStyle.
42
+ # SupportedStyles: runtime_error, standard_error
43
+ Lint/InheritException:
44
+ Exclude:
45
+ - 'spec/ddtrace/tracer_spec.rb'
46
+
47
+ # Offense count: 52
48
+ # Configuration parameters: MaximumRangeSize.
49
+ Lint/MissingCopEnableDirective:
50
+ Exclude:
51
+ - 'Rakefile'
52
+ - 'lib/ddtrace/analytics.rb'
53
+ - 'lib/ddtrace/configuration/components.rb'
54
+ - 'lib/ddtrace/configuration/settings.rb'
55
+ - 'lib/ddtrace/context.rb'
56
+ - 'lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb'
57
+ - 'lib/ddtrace/contrib/active_support/cache/instrumentation.rb'
58
+ - 'lib/ddtrace/contrib/aws/services.rb'
59
+ - 'lib/ddtrace/contrib/elasticsearch/patcher.rb'
60
+ - 'lib/ddtrace/contrib/excon/middleware.rb'
61
+ - 'lib/ddtrace/contrib/grape/endpoint.rb'
62
+ - 'lib/ddtrace/contrib/httprb/instrumentation.rb'
63
+ - 'lib/ddtrace/contrib/rack/middlewares.rb'
64
+ - 'lib/ddtrace/contrib/rails/middlewares.rb'
65
+ - 'lib/ddtrace/contrib/redis/patcher.rb'
66
+ - 'lib/ddtrace/contrib/sinatra/tracer_middleware.rb'
67
+ - 'lib/ddtrace/contrib/sucker_punch/instrumentation.rb'
68
+ - 'lib/ddtrace/ext/ci.rb'
69
+ - 'lib/ddtrace/pin.rb'
70
+ - 'lib/ddtrace/span.rb'
71
+ - 'lib/ddtrace/tracer.rb'
72
+ - 'lib/ddtrace/workers/async.rb'
73
+ - 'spec/ddtrace/contrib/elasticsearch/quantize_spec.rb'
74
+ - 'spec/ddtrace/contrib/http/request_spec.rb'
75
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
76
+ - 'spec/ddtrace/contrib/patchable_spec.rb'
77
+ - 'spec/ddtrace/contrib/presto/client_spec.rb'
78
+ - 'spec/ddtrace/contrib/qless/support/job.rb'
79
+ - 'spec/ddtrace/contrib/rails/support/database.rb'
80
+ - 'spec/ddtrace/contrib/rails/support/middleware.rb'
81
+ - 'spec/ddtrace/diagnostics/health_spec.rb'
82
+ - 'spec/ddtrace/runtime/cgroup_spec.rb'
83
+ - 'spec/support/container_helpers.rb'
84
+ - 'spec/support/tracer_helpers.rb'
85
+ - 'test/contrib/rails/controller_test.rb'
86
+ - 'test/contrib/rails/errors_test.rb'
87
+ - 'test/tracer_test.rb'
88
+
89
+ # Offense count: 25
90
+ Lint/MissingSuper:
91
+ Exclude:
92
+ - 'lib/ddtrace/contrib/active_record/configuration/resolver.rb'
93
+ - 'lib/ddtrace/contrib/grpc/datadog_interceptor.rb'
94
+ - 'lib/ddtrace/opentracer/scope.rb'
95
+ - 'lib/ddtrace/opentracer/span.rb'
96
+ - 'lib/ddtrace/opentracer/span_context.rb'
97
+ - 'lib/ddtrace/sampler.rb'
98
+ - 'lib/ddtrace/sampling/matcher.rb'
99
+ - 'lib/ddtrace/sampling/rate_limiter.rb'
100
+ - 'lib/ddtrace/transport/http/adapters/net.rb'
101
+ - 'lib/ddtrace/transport/http/adapters/unix_socket.rb'
102
+ - 'lib/ddtrace/transport/http/builder.rb'
103
+ - 'lib/ddtrace/transport/http/env.rb'
104
+ - 'lib/ddtrace/transport/http/traces.rb'
105
+ - 'lib/ddtrace/transport/traces.rb'
106
+ - 'lib/ddtrace/workers/runtime_metrics.rb'
107
+ - 'lib/ddtrace/workers/trace_writer.rb'
108
+ - 'spec/support/faux_transport.rb'
109
+ - 'spec/support/spy_transport.rb'
110
+ - 'test/helper.rb'
111
+
112
+ # Offense count: 1
113
+ # Configuration parameters: AllowComments.
114
+ Lint/SuppressedException:
115
+ Exclude:
116
+ - 'lib/ddtrace/contrib/ethon/easy_patch.rb'
117
+
118
+ # Offense count: 2
119
+ # Configuration parameters: CheckForMethodsWithNoSideEffects.
120
+ Lint/Void:
121
+ Exclude:
122
+ - 'spec/ddtrace/contrib/grpc/support/grpc_helper.rb'
123
+
124
+ # Offense count: 2
125
+ # Configuration parameters: IgnoredMethods.
126
+ Metrics/CyclomaticComplexity:
127
+ Max: 17
128
+
129
+ # Offense count: 2
130
+ # Configuration parameters: IgnoredMethods.
131
+ Metrics/PerceivedComplexity:
132
+ Max: 18
133
+
134
+ # Offense count: 4
135
+ # Configuration parameters: EnforcedStyleForLeadingUnderscores.
136
+ # SupportedStylesForLeadingUnderscores: disallowed, required, optional
137
+ Naming/MemoizedInstanceVariableName:
138
+ Exclude:
139
+ - 'lib/ddtrace/configuration.rb'
140
+ - 'lib/ddtrace/contrib/active_record/configuration/resolver.rb'
141
+ - 'lib/ddtrace/contrib/extensions.rb'
142
+ - 'lib/ddtrace/contrib/sequel/database.rb'
143
+
144
+ # Offense count: 6
145
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers.
146
+ # SupportedStyles: snake_case, normalcase, non_integer
147
+ # AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339
148
+ Naming/VariableNumber:
149
+ Exclude:
150
+ - 'spec/ddtrace/contrib/ethon/typhoeus_integration_spec.rb'
151
+ - 'spec/ddtrace/contrib/resque/instrumentation_spec.rb'
152
+
153
+ # Offense count: 12
154
+ Performance/MethodObjectAsBlock:
155
+ Exclude:
156
+ - 'lib/ddtrace/contrib/cucumber/formatter.rb'
157
+ - 'lib/ddtrace/contrib/delayed_job/plugin.rb'
158
+ - 'lib/ddtrace/pipeline.rb'
159
+ - 'spec/ddtrace/contrib/cucumber/patcher_spec.rb'
160
+
161
+ # Offense count: 6
162
+ RSpec/EmptyExampleGroup:
163
+ Exclude:
164
+ - 'spec/ddtrace/buffer_spec.rb'
165
+ - 'spec/ddtrace/configuration/components_spec.rb'
166
+ - 'spec/ddtrace/ext/ci_spec.rb'
167
+ - 'spec/ddtrace/opentracer/distributed_headers_spec.rb'
168
+
169
+ # Offense count: 2
170
+ # Cop supports --auto-correct.
171
+ RSpec/ExpectActual:
172
+ Exclude:
173
+ - 'spec/routing/**/*'
174
+ - 'spec/ddtrace/contrib/rspec/instrumentation_spec.rb'
175
+
176
+ # Offense count: 3
177
+ RSpec/IteratedExpectation:
178
+ Exclude:
179
+ - 'spec/ddtrace/contrib/grpc/support/grpc_helper.rb'
180
+ - 'spec/ddtrace/contrib/rack/integration_test_spec.rb'
181
+
182
+ # Offense count: 3
183
+ RSpec/LeakyConstantDeclaration:
184
+ Exclude:
185
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
186
+ - 'spec/ddtrace/contrib/rails/rack_spec.rb'
187
+ - 'spec/ddtrace/workers/async_spec.rb'
188
+
189
+ # Offense count: 37
190
+ RSpec/MissingExampleGroupArgument:
191
+ Exclude:
192
+ - 'spec/ddtrace/configuration/settings_spec.rb'
193
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
194
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
195
+
196
+ # Offense count: 18
197
+ RSpec/MultipleDescribes:
198
+ Exclude:
199
+ - 'spec/ddtrace/analytics_spec.rb'
200
+ - 'spec/ddtrace/buffer_spec.rb'
201
+ - 'spec/ddtrace/configuration/option_definition_spec.rb'
202
+ - 'spec/ddtrace/context_flush_spec.rb'
203
+ - 'spec/ddtrace/context_provider_spec.rb'
204
+ - 'spec/ddtrace/forced_tracing_spec.rb'
205
+ - 'spec/ddtrace/metrics_spec.rb'
206
+ - 'spec/ddtrace/sampler_spec.rb'
207
+ - 'spec/ddtrace/sampling/matcher_spec.rb'
208
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
209
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
210
+ - 'spec/ddtrace/transport/http/adapters/unix_socket_spec.rb'
211
+ - 'spec/ddtrace/transport/http/traces_spec.rb'
212
+ - 'spec/ddtrace/transport/io/traces_spec.rb'
213
+ - 'spec/ddtrace/transport/response_spec.rb'
214
+ - 'spec/ddtrace/transport/statistics_spec.rb'
215
+ - 'spec/ddtrace/transport/traces_spec.rb'
216
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
217
+
218
+ # Offense count: 143
219
+ # Configuration parameters: IgnoreSharedExamples.
220
+ RSpec/NamedSubject:
221
+ Exclude:
222
+ - 'spec/ddtrace/benchmark/gem_loading_spec.rb'
223
+ - 'spec/ddtrace/chunker_spec.rb'
224
+ - 'spec/ddtrace/context_flush_spec.rb'
225
+ - 'spec/ddtrace/context_provider_spec.rb'
226
+ - 'spec/ddtrace/context_spec.rb'
227
+ - 'spec/ddtrace/contrib/active_support/notifications/subscription_spec.rb'
228
+ - 'spec/ddtrace/contrib/ethon/easy_patch_spec.rb'
229
+ - 'spec/ddtrace/contrib/ethon/multi_patch_spec.rb'
230
+ - 'spec/ddtrace/contrib/excon/instrumentation_spec.rb'
231
+ - 'spec/ddtrace/contrib/faraday/middleware_spec.rb'
232
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
233
+ - 'spec/ddtrace/contrib/grpc/datadog_interceptor/client_spec.rb'
234
+ - 'spec/ddtrace/contrib/grpc/datadog_interceptor/server_spec.rb'
235
+ - 'spec/ddtrace/contrib/grpc/interception_context_spec.rb'
236
+ - 'spec/ddtrace/contrib/http/patcher_spec.rb'
237
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
238
+ - 'spec/ddtrace/contrib/mongodb/regression_issue_1235_spec.rb'
239
+ - 'spec/ddtrace/contrib/patcher_spec.rb'
240
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
241
+ - 'spec/ddtrace/contrib/rails/database_spec.rb'
242
+ - 'spec/ddtrace/pin_spec.rb'
243
+ - 'spec/ddtrace/pipeline/span_filter_spec.rb'
244
+ - 'spec/ddtrace/pipeline/span_processor_spec.rb'
245
+ - 'spec/ddtrace/pipeline_spec.rb'
246
+ - 'spec/ddtrace/propagation/grpc_propagator_spec.rb'
247
+ - 'spec/ddtrace/sampling/rate_limiter_spec.rb'
248
+ - 'spec/ddtrace/sampling/rule_sampler_spec.rb'
249
+ - 'spec/ddtrace/span_spec.rb'
250
+ - 'spec/ddtrace/tracer_spec.rb'
251
+ - 'spec/ddtrace/transport/traces_spec.rb'
252
+
253
+ # Offense count: 4
254
+ RSpec/OverwritingSetup:
255
+ Exclude:
256
+ - 'spec/ddtrace/buffer_spec.rb'
257
+ - 'spec/ddtrace/sampling/rule_spec.rb'
258
+
259
+ # Offense count: 8
260
+ RSpec/RepeatedDescription:
261
+ Exclude:
262
+ - 'spec/ddtrace/contrib/rest_client/request_patch_spec.rb'
263
+
264
+ # Offense count: 2
265
+ RSpec/RepeatedExampleGroupBody:
266
+ Exclude:
267
+ - 'spec/ddtrace/contrib/elasticsearch/patcher_spec.rb'
268
+
269
+ # Offense count: 12
270
+ RSpec/RepeatedExampleGroupDescription:
271
+ Exclude:
272
+ - 'spec/ddtrace/contrib/elasticsearch/patcher_spec.rb'
273
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
274
+ - 'spec/ddtrace/contrib/redis/quantize_spec.rb'
275
+ - 'spec/ddtrace/opentracer/scope_manager_spec.rb'
276
+ - 'spec/ddtrace/opentracer/thread_local_scope_manager_spec.rb'
277
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
278
+
279
+ # Offense count: 53
280
+ RSpec/ScatteredSetup:
281
+ Exclude:
282
+ - 'spec/ddtrace/benchmark/support/benchmark_helper.rb'
283
+ - 'spec/ddtrace/configuration/settings_spec.rb'
284
+ - 'spec/ddtrace/contrib/action_cable/instrumentation_spec.rb'
285
+ - 'spec/ddtrace/contrib/action_cable/patcher_spec.rb'
286
+ - 'spec/ddtrace/contrib/elasticsearch/transport_spec.rb'
287
+ - 'spec/ddtrace/contrib/grape/tracer_spec.rb'
288
+ - 'spec/ddtrace/contrib/http/miniapp_spec.rb'
289
+ - 'spec/ddtrace/contrib/http/request_spec.rb'
290
+ - 'spec/ddtrace/contrib/mongodb/regression_issue_1235_spec.rb'
291
+ - 'spec/ddtrace/contrib/presto/client_spec.rb'
292
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
293
+ - 'spec/ddtrace/contrib/rails/database_spec.rb'
294
+ - 'spec/ddtrace/contrib/rails/rails_active_job_spec.rb'
295
+ - 'spec/ddtrace/contrib/rails/railtie_spec.rb'
296
+ - 'spec/ddtrace/contrib/rails/redis_cache_spec.rb'
297
+ - 'spec/ddtrace/contrib/redis/miniapp_spec.rb'
298
+ - 'spec/ddtrace/diagnostics/environment_logger_spec.rb'
299
+ - 'spec/ddtrace/opentracer/rack_propagator_spec.rb'
300
+ - 'spec/ddtrace/opentracer/span_spec.rb'
301
+ - 'spec/ddtrace/opentracer/text_map_propagator_spec.rb'
302
+ - 'spec/ddtrace/tracer_spec.rb'
303
+ - 'spec/ddtrace/workers/loop_spec.rb'
304
+
305
+ # Offense count: 2
306
+ RSpec/UnspecifiedException:
307
+ Exclude:
308
+ - 'spec/ddtrace/contrib/delayed_job/plugin_spec.rb'
309
+ - 'spec/ddtrace/contrib/sidekiq/tracer_configure_spec.rb'
310
+
311
+ # Offense count: 303
312
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
313
+ RSpec/VerifiedDoubles:
314
+ Exclude:
315
+ - 'spec/ddtrace/buffer_spec.rb'
316
+ - 'spec/ddtrace/configuration/base_spec.rb'
317
+ - 'spec/ddtrace/configuration/components_spec.rb'
318
+ - 'spec/ddtrace/configuration/option_definition_spec.rb'
319
+ - 'spec/ddtrace/configuration/option_spec.rb'
320
+ - 'spec/ddtrace/configuration/options_spec.rb'
321
+ - 'spec/ddtrace/configuration/settings_spec.rb'
322
+ - 'spec/ddtrace/configuration_spec.rb'
323
+ - 'spec/ddtrace/context_provider_spec.rb'
324
+ - 'spec/ddtrace/context_spec.rb'
325
+ - 'spec/ddtrace/contrib/action_cable/patcher_spec.rb'
326
+ - 'spec/ddtrace/contrib/active_support/notifications/event_spec.rb'
327
+ - 'spec/ddtrace/contrib/active_support/notifications/subscriber_spec.rb'
328
+ - 'spec/ddtrace/contrib/active_support/notifications/subscription_spec.rb'
329
+ - 'spec/ddtrace/contrib/analytics_spec.rb'
330
+ - 'spec/ddtrace/contrib/configuration/resolver_spec.rb'
331
+ - 'spec/ddtrace/contrib/configuration/settings_spec.rb'
332
+ - 'spec/ddtrace/contrib/cucumber/formatter_spec.rb'
333
+ - 'spec/ddtrace/contrib/delayed_job/plugin_spec.rb'
334
+ - 'spec/ddtrace/contrib/ethon/easy_patch_spec.rb'
335
+ - 'spec/ddtrace/contrib/extensions_spec.rb'
336
+ - 'spec/ddtrace/contrib/mongodb/client_spec.rb'
337
+ - 'spec/ddtrace/contrib/patchable_spec.rb'
338
+ - 'spec/ddtrace/contrib/rails/action_controller_spec.rb'
339
+ - 'spec/ddtrace/contrib/rails/cache_spec.rb'
340
+ - 'spec/ddtrace/contrib/rake/instrumentation_spec.rb'
341
+ - 'spec/ddtrace/contrib/registry_spec.rb'
342
+ - 'spec/ddtrace/contrib/shoryuken/tracer_spec.rb'
343
+ - 'spec/ddtrace/contrib/sneakers/tracer_spec.rb'
344
+ - 'spec/ddtrace/correlation_spec.rb'
345
+ - 'spec/ddtrace/environment_spec.rb'
346
+ - 'spec/ddtrace/forced_tracing_spec.rb'
347
+ - 'spec/ddtrace/integration_spec.rb'
348
+ - 'spec/ddtrace/metrics_spec.rb'
349
+ - 'spec/ddtrace/opentracer/global_tracer_spec.rb'
350
+ - 'spec/ddtrace/opentracer/rack_propagator_spec.rb'
351
+ - 'spec/ddtrace/opentracer/text_map_propagator_spec.rb'
352
+ - 'spec/ddtrace/opentracer/tracer_spec.rb'
353
+ - 'spec/ddtrace/patcher_spec.rb'
354
+ - 'spec/ddtrace/pin_spec.rb'
355
+ - 'spec/ddtrace/runtime/metrics_spec.rb'
356
+ - 'spec/ddtrace/tracer_spec.rb'
357
+ - 'spec/ddtrace/transport/http/adapters/net_spec.rb'
358
+ - 'spec/ddtrace/transport/http/adapters/registry_spec.rb'
359
+ - 'spec/ddtrace/transport/http/adapters/test_spec.rb'
360
+ - 'spec/ddtrace/transport/http/adapters/unix_socket_spec.rb'
361
+ - 'spec/ddtrace/transport/http/api/endpoint_spec.rb'
362
+ - 'spec/ddtrace/transport/http/api/instance_spec.rb'
363
+ - 'spec/ddtrace/transport/http/builder_spec.rb'
364
+ - 'spec/ddtrace/transport/http/client_spec.rb'
365
+ - 'spec/ddtrace/transport/http/response_spec.rb'
366
+ - 'spec/ddtrace/transport/http/statistics_spec.rb'
367
+ - 'spec/ddtrace/transport/http/traces_spec.rb'
368
+ - 'spec/ddtrace/transport/http_spec.rb'
369
+ - 'spec/ddtrace/transport/io/client_spec.rb'
370
+ - 'spec/ddtrace/transport/io/response_spec.rb'
371
+ - 'spec/ddtrace/transport/io/traces_spec.rb'
372
+ - 'spec/ddtrace/transport/parcel_spec.rb'
373
+ - 'spec/ddtrace/transport/traces_spec.rb'
374
+ - 'spec/ddtrace/worker_spec.rb'
375
+ - 'spec/ddtrace/workers/async_spec.rb'
376
+ - 'spec/ddtrace/workers/loop_spec.rb'
377
+ - 'spec/ddtrace/workers/polling_spec.rb'
378
+ - 'spec/ddtrace/workers/queue_spec.rb'
379
+ - 'spec/ddtrace/workers/runtime_metrics_spec.rb'
380
+ - 'spec/ddtrace/workers/trace_writer_spec.rb'
381
+ - 'spec/ddtrace/workers_integration_spec.rb'
382
+ - 'spec/ddtrace/writer_spec.rb'
383
+ - 'spec/support/statsd_helpers.rb'
384
+
385
+ # Offense count: 24
386
+ Style/ClassVars:
387
+ Exclude:
388
+ - 'spec/ddtrace/contrib/rails/support/rails3.rb'
389
+ - 'spec/ddtrace/contrib/rails/support/rails4.rb'
390
+ - 'spec/ddtrace/contrib/rails/support/rails5.rb'
391
+ - 'spec/ddtrace/contrib/rails/support/rails6.rb'
392
+
393
+ # Offense count: 1
394
+ Style/MixinUsage:
395
+ Exclude:
396
+ - 'test/benchmark_test.rb'