ddtrace 0.34.1 → 0.36.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +58 -9
  3. data/.circleci/images/primary/Dockerfile-jruby-9.2 +77 -0
  4. data/.rubocop.yml +4 -0
  5. data/Appraisals +9 -7
  6. data/CHANGELOG.md +89 -3
  7. data/Rakefile +11 -2
  8. data/ddtrace.gemspec +5 -3
  9. data/docker-compose.yml +35 -0
  10. data/docs/DevelopmentGuide.md +1 -1
  11. data/docs/GettingStarted.md +89 -36
  12. data/lib/ddtrace.rb +1 -1
  13. data/lib/ddtrace/buffer.rb +9 -9
  14. data/lib/ddtrace/chunker.rb +34 -0
  15. data/lib/ddtrace/configuration.rb +28 -5
  16. data/lib/ddtrace/configuration/base.rb +1 -1
  17. data/lib/ddtrace/configuration/components.rb +154 -0
  18. data/lib/ddtrace/configuration/options.rb +1 -1
  19. data/lib/ddtrace/configuration/settings.rb +131 -63
  20. data/lib/ddtrace/context.rb +6 -6
  21. data/lib/ddtrace/context_flush.rb +1 -1
  22. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +1 -1
  23. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +2 -2
  24. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -1
  25. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -1
  26. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -1
  27. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +2 -2
  28. data/lib/ddtrace/contrib/action_view/patcher.rb +1 -1
  29. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -1
  30. data/lib/ddtrace/contrib/active_record/events/sql.rb +1 -1
  31. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +2 -2
  32. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +2 -2
  33. data/lib/ddtrace/contrib/analytics.rb +1 -1
  34. data/lib/ddtrace/contrib/configuration/settings.rb +1 -1
  35. data/lib/ddtrace/contrib/dalli/patcher.rb +1 -1
  36. data/lib/ddtrace/contrib/dalli/quantize.rb +1 -1
  37. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -1
  38. data/lib/ddtrace/contrib/excon/middleware.rb +2 -2
  39. data/lib/ddtrace/contrib/extensions.rb +29 -5
  40. data/lib/ddtrace/contrib/faraday/patcher.rb +1 -1
  41. data/lib/ddtrace/contrib/grape/endpoint.rb +5 -5
  42. data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
  43. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -1
  44. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +2 -2
  45. data/lib/ddtrace/contrib/grpc/patcher.rb +1 -1
  46. data/lib/ddtrace/contrib/http/circuit_breaker.rb +8 -32
  47. data/lib/ddtrace/contrib/http/instrumentation.rb +2 -2
  48. data/lib/ddtrace/contrib/mongodb/subscribers.rb +2 -2
  49. data/lib/ddtrace/contrib/patchable.rb +1 -1
  50. data/lib/ddtrace/contrib/patcher.rb +3 -3
  51. data/lib/ddtrace/contrib/presto/instrumentation.rb +3 -3
  52. data/lib/ddtrace/contrib/presto/patcher.rb +1 -1
  53. data/lib/ddtrace/contrib/rack/middlewares.rb +2 -2
  54. data/lib/ddtrace/contrib/rack/patcher.rb +2 -2
  55. data/lib/ddtrace/contrib/rack/request_queue.rb +1 -1
  56. data/lib/ddtrace/contrib/rails/configuration/settings.rb +14 -0
  57. data/lib/ddtrace/contrib/rails/framework.rb +54 -48
  58. data/lib/ddtrace/contrib/rails/integration.rb +1 -1
  59. data/lib/ddtrace/contrib/rake/instrumentation.rb +2 -2
  60. data/lib/ddtrace/contrib/redis/quantize.rb +1 -1
  61. data/lib/ddtrace/contrib/resque/resque_job.rb +2 -2
  62. data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -1
  63. data/lib/ddtrace/contrib/sinatra/env.rb +20 -0
  64. data/lib/ddtrace/contrib/sinatra/ext.rb +6 -0
  65. data/lib/ddtrace/contrib/sinatra/patcher.rb +1 -0
  66. data/lib/ddtrace/contrib/sinatra/tracer.rb +98 -35
  67. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +16 -13
  68. data/lib/ddtrace/correlation.rb +9 -6
  69. data/lib/ddtrace/diagnostics/health.rb +2 -6
  70. data/lib/ddtrace/encoding.rb +13 -39
  71. data/lib/ddtrace/event.rb +1 -1
  72. data/lib/ddtrace/ext/correlation.rb +1 -0
  73. data/lib/ddtrace/ext/diagnostics.rb +2 -0
  74. data/lib/ddtrace/ext/environment.rb +1 -0
  75. data/lib/ddtrace/ext/forced_tracing.rb +1 -1
  76. data/lib/ddtrace/logger.rb +3 -44
  77. data/lib/ddtrace/metrics.rb +5 -5
  78. data/lib/ddtrace/monkey.rb +1 -1
  79. data/lib/ddtrace/opentracer/global_tracer.rb +1 -1
  80. data/lib/ddtrace/pin.rb +18 -17
  81. data/lib/ddtrace/pipeline.rb +1 -1
  82. data/lib/ddtrace/propagation/http_propagator.rb +2 -2
  83. data/lib/ddtrace/runtime/cgroup.rb +1 -1
  84. data/lib/ddtrace/runtime/container.rb +1 -1
  85. data/lib/ddtrace/runtime/metrics.rb +5 -2
  86. data/lib/ddtrace/sampler.rb +2 -2
  87. data/lib/ddtrace/sampling/rule.rb +1 -1
  88. data/lib/ddtrace/sampling/rule_sampler.rb +1 -1
  89. data/lib/ddtrace/span.rb +4 -4
  90. data/lib/ddtrace/sync_writer.rb +3 -8
  91. data/lib/ddtrace/tracer.rb +26 -31
  92. data/lib/ddtrace/transport/http.rb +1 -1
  93. data/lib/ddtrace/transport/http/api/instance.rb +4 -0
  94. data/lib/ddtrace/transport/http/builder.rb +3 -5
  95. data/lib/ddtrace/transport/http/client.rb +7 -64
  96. data/lib/ddtrace/transport/http/response.rb +1 -1
  97. data/lib/ddtrace/transport/http/statistics.rb +1 -1
  98. data/lib/ddtrace/transport/http/traces.rb +10 -7
  99. data/lib/ddtrace/transport/io.rb +1 -1
  100. data/lib/ddtrace/transport/io/client.rb +2 -2
  101. data/lib/ddtrace/transport/io/response.rb +3 -1
  102. data/lib/ddtrace/transport/io/traces.rb +50 -3
  103. data/lib/ddtrace/transport/parcel.rb +0 -4
  104. data/lib/ddtrace/transport/statistics.rb +2 -2
  105. data/lib/ddtrace/transport/traces.rb +160 -10
  106. data/lib/ddtrace/utils.rb +1 -1
  107. data/lib/ddtrace/version.rb +2 -2
  108. data/lib/ddtrace/workers.rb +5 -13
  109. data/lib/ddtrace/workers/async.rb +2 -2
  110. data/lib/ddtrace/workers/runtime_metrics.rb +47 -0
  111. data/lib/ddtrace/workers/trace_writer.rb +199 -0
  112. data/lib/ddtrace/writer.rb +20 -27
  113. metadata +22 -32
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 693e84ab50a280cbb8bf7b9aff22a6a946299116
4
- data.tar.gz: 12288885ea1d1fcde3bfb598e83283233742fc87
2
+ SHA256:
3
+ metadata.gz: d7736a0630cef1812e8e2a69fa420a97913cf9c1c47e1c173e0039c6e12558f0
4
+ data.tar.gz: 4eb212df3b7c240a3d8ddf83555fe862cffad98208c037d2cab4120c9a6a7217
5
5
  SHA512:
6
- metadata.gz: 3510e628728248839225a76f20b9241375f447da044afe84f77e99b46db6ec9895702f938be873779364c5b1342a92b93c991ef7ef84f462da1783b138373da1
7
- data.tar.gz: 26455c489bc375b7305dfcb998498337b9a2506530481759de75b9e599ccb798d8eca24aa1de784cc7bdc1d7470d93abeaccf0e5198ca731b948938260ab9f82
6
+ metadata.gz: 8fc864b6eb9180e82c5362f45b3ffe05d4d5e4a845372a158293c8514e9b574d59930f84fdea86f534f50faf9cca15167ad25a2b8985699143d2f3b78578b919
7
+ data.tar.gz: e1cd1855fcf6b31579b84c93a2477a47c87d8a9fdbd0361de59be09969825eb5afd0daa79802036d03c04a3b747a7cff214e74b5053d3108b0fd8b86dd97efff
@@ -59,6 +59,9 @@ step_compute_bundle_checksum: &step_compute_bundle_checksum
59
59
  run:
60
60
  name: Compute bundle checksum
61
61
  command: |
62
+ # JRuby: Ensure files exist when Appraisal generates no output
63
+ mkdir gemfiles
64
+ touch gemfiles/_.gemfile.lock
62
65
  cat Gemfile.lock gemfiles/*.gemfile.lock > .circleci/bundle_checksum
63
66
  step_run_all_tests: &step_run_all_tests
64
67
  run:
@@ -110,10 +113,6 @@ orbs:
110
113
  image:
111
114
  description: Docker image location
112
115
  type: string
113
- rubocop:
114
- description: Run Rubocop on this version of Ruby
115
- type: boolean
116
- default: true
117
116
  docker:
118
117
  - <<: *container_base
119
118
  image: <<parameters.image>>
@@ -132,10 +131,6 @@ orbs:
132
131
  keys:
133
132
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
134
133
  - *step_bundle_install
135
- - when:
136
- condition: <<parameters.rubocop>>
137
- steps:
138
- - *step_rubocop
139
134
  - *step_appraisal_install
140
135
  - *step_compute_bundle_checksum
141
136
  - save_cache:
@@ -212,6 +207,28 @@ orbs:
212
207
  - run:
213
208
  name: Run Benchmark without ddtracer
214
209
  command: rm -f lib/ddtrace.rb && bundle exec appraisal rails5-postgres-sidekiq ruby benchmarks/sidekiq_test.rb 2>&1 1> /dev/null | tee benchmark_results.csv
210
+ lint:
211
+ <<: *job_defaults
212
+ parameters:
213
+ ruby_version:
214
+ description: Ruby version
215
+ type: string
216
+ image:
217
+ description: Docker image location
218
+ type: string
219
+ docker:
220
+ - <<: *container_base
221
+ image: <<parameters.image>>
222
+ environment:
223
+ - BUNDLE_GEMFILE: /app/Gemfile
224
+ steps:
225
+ - restore_cache:
226
+ keys:
227
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
228
+ - restore_cache:
229
+ keys:
230
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
231
+ - *step_rubocop
215
232
  commands:
216
233
  executors:
217
234
 
@@ -224,6 +241,7 @@ jobs:
224
241
  steps:
225
242
  - checkout
226
243
  - run:
244
+ name: Install AWS CLI
227
245
  command: |
228
246
  apt-get -y -qq update
229
247
  apt-get -y -qq install awscli
@@ -251,6 +269,7 @@ jobs:
251
269
  fi
252
270
  - checkout
253
271
  - run:
272
+ name: Install AWS CLI
254
273
  command: |
255
274
  apt-get -y -qq update
256
275
  apt-get -y -qq install awscli
@@ -270,6 +289,7 @@ jobs:
270
289
  destination: gem
271
290
 
272
291
  job_configuration:
292
+ # MRI
273
293
  - &config-2_0
274
294
  <<: *filters_all_branches_and_tags
275
295
  ruby_version: '2.0'
@@ -302,17 +322,27 @@ job_configuration:
302
322
  <<: *filters_all_branches_and_tags
303
323
  ruby_version: '2.7'
304
324
  image: marcotc/docker-library:ddtrace_rb_2_7_0
325
+ # JRuby
326
+ - &config-jruby-9_2
327
+ <<: *filters_all_branches_and_tags
328
+ ruby_version: 'jruby-9.2'
329
+ image: marcotc/docker-library:ddtrace_rb_jruby_9_2
305
330
 
306
331
  workflows:
307
332
  version: 2
308
333
  build-and-test:
309
334
  jobs:
335
+ - orb/lint:
336
+ <<: *config-2_6
337
+ name: lint
338
+ requires:
339
+ - build-2.6
340
+ # MRI
310
341
  - orb/checkout:
311
342
  <<: *config-2_0
312
343
  name: checkout-2.0
313
344
  - orb/build:
314
345
  <<: *config-2_0
315
- rubocop: false
316
346
  name: build-2.0
317
347
  requires:
318
348
  - checkout-2.0
@@ -417,9 +447,25 @@ workflows:
417
447
  name: test-2.7
418
448
  requires:
419
449
  - build-2.7
450
+ # JRuby
451
+ - orb/checkout:
452
+ <<: *config-jruby-9_2
453
+ name: checkout-jruby-9.2
454
+ - orb/build:
455
+ <<: *config-jruby-9_2
456
+ name: build-jruby-9.2
457
+ requires:
458
+ - checkout-jruby-9.2
459
+ - orb/test:
460
+ <<: *config-jruby-9_2
461
+ name: test-jruby-9.2
462
+ requires:
463
+ - build-jruby-9.2
464
+ # Release jobs
420
465
  - "deploy prerelease Gem":
421
466
  <<: *filters_all_branches_and_tags
422
467
  requires:
468
+ - lint
423
469
  - test-2.0
424
470
  - test-2.1
425
471
  - test-2.2
@@ -428,9 +474,11 @@ workflows:
428
474
  - test-2.5
429
475
  - test-2.6
430
476
  - test-2.7
477
+ - test-jruby-9.2
431
478
  - "deploy release":
432
479
  <<: *filters_only_release_tags
433
480
  requires:
481
+ - lint
434
482
  - test-2.0
435
483
  - test-2.1
436
484
  - test-2.2
@@ -439,3 +487,4 @@ workflows:
439
487
  - test-2.5
440
488
  - test-2.6
441
489
  - test-2.7
490
+ - test-jruby-9.2
@@ -0,0 +1,77 @@
1
+ # Current version: https://github.com/cpuguy83/docker-jruby/blob/db08637839406420a254a9c825d94994cded5021/9000/jre/Dockerfile
2
+ FROM jruby:9.2.11.1
3
+
4
+ # Make apt non-interactive
5
+ RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
+ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
+
8
+ ENV DEBIAN_FRONTEND=noninteractive
9
+
10
+ # Install required packages
11
+ RUN set -ex; \
12
+ apt-get update; \
13
+ mkdir -p /usr/share/man/man1; \
14
+ apt-get install -y --no-install-recommends \
15
+ git mercurial xvfb \
16
+ locales sudo openssh-client ca-certificates tar gzip parallel \
17
+ net-tools netcat unzip zip bzip2 gnupg curl wget \
18
+ tzdata rsync vim \
19
+ build-essential; \
20
+ rm -rf /var/lib/apt/lists/*;
21
+
22
+ # Set timezone to UTC by default
23
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
24
+
25
+ # Set language
26
+ RUN locale-gen en_US.UTF-8
27
+ ENV LANG en_US.UTF-8
28
+ ENV LANGUAGE en_US:en
29
+
30
+ # Install jq
31
+ RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
32
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
33
+ && chmod +x /usr/bin/jq \
34
+ && jq --version
35
+
36
+ # Install Docker
37
+ RUN set -ex \
38
+ && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
39
+ && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
40
+ && echo Docker URL: $DOCKER_URL \
41
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
42
+ && ls -lha /tmp/docker.tgz \
43
+ && tar -xz -C /tmp -f /tmp/docker.tgz \
44
+ && mv /tmp/docker/* /usr/bin \
45
+ && rm -rf /tmp/docker /tmp/docker.tgz \
46
+ && which docker \
47
+ && (docker version || true)
48
+
49
+ # Install Docker Compose
50
+ RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
51
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
52
+ && chmod +x /usr/bin/docker-compose \
53
+ && docker-compose version
54
+
55
+ # Install Dockerize
56
+ RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
57
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
58
+ && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
59
+ && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
60
+ && dockerize --version
61
+
62
+ # Install RubyGems
63
+ RUN gem update --system
64
+ RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
65
+
66
+ # Upgrade RubyGems and Bundler
67
+ RUN gem uninstall -i /opt/jruby/lib/ruby/gems/shared bundler -v 2.1.4 # Remove when https://github.com/thoughtbot/appraisal/issues/162 is fixed
68
+ RUN gem install bundler -v 2.1.2 # Remove when https://github.com/thoughtbot/appraisal/issues/162 is fixed
69
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
70
+
71
+ # Ensure JRuby is available when running "bash --login"
72
+ RUN echo "export PATH=/opt/jruby/bin:$BUNDLE_BIN:\$PATH" >> ~/.profile
73
+
74
+ RUN mkdir /app
75
+ WORKDIR /app
76
+
77
+ CMD ["bin", "bash", "--login"]
@@ -67,6 +67,10 @@ Metrics/PerceivedComplexity:
67
67
  Lint/UnusedMethodArgument:
68
68
  Enabled: false
69
69
 
70
+ # alias and alias_method are not equivalent
71
+ Style/Alias:
72
+ Enabled: false
73
+
70
74
  # Disabling advices that would lead to incompatible Ruby 1.9 code
71
75
  Style/SymbolArray:
72
76
  Enabled: false
data/Appraisals CHANGED
@@ -292,33 +292,33 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
292
292
  end
293
293
 
294
294
  appraise 'rails5-mysql2' do
295
- gem 'rails', '~> 5.2.1', '!= 5.2.4.1', '!= 5.2.4.2'
295
+ gem 'rails', '5.2.3'
296
296
  gem 'mysql2', '< 1', platform: :ruby
297
297
  gem 'sprockets', '< 4'
298
298
  end
299
299
 
300
300
  appraise 'rails5-postgres' do
301
- gem 'rails', '~> 5.2.1', '!= 5.2.4.1', '!= 5.2.4.2'
301
+ gem 'rails', '5.2.3'
302
302
  gem 'pg', '< 1.0', platform: :ruby
303
303
  gem 'sprockets', '< 4'
304
304
  end
305
305
 
306
306
  appraise 'rails5-postgres-redis' do
307
- gem 'rails', '~> 5.2.1', '!= 5.2.4.1', '!= 5.2.4.2'
307
+ gem 'rails', '5.2.3'
308
308
  gem 'pg', '< 1.0', platform: :ruby
309
309
  gem 'redis', '>= 4.0.1'
310
310
  gem 'sprockets', '< 4'
311
311
  end
312
312
 
313
313
  appraise 'rails5-postgres-redis-activesupport' do
314
- gem 'rails', '~> 5.2.1', '!= 5.2.4.1', '!= 5.2.4.2'
314
+ gem 'rails', '5.2.3'
315
315
  gem 'pg', '< 1.0', platform: :ruby
316
316
  gem 'redis', '>= 4.0.1'
317
317
  gem 'sprockets', '< 4'
318
318
  end
319
319
 
320
320
  appraise 'rails5-postgres-sidekiq' do
321
- gem 'rails', '~> 5.2.1', '!= 5.2.4.1', '!= 5.2.4.2'
321
+ gem 'rails', '5.2.3'
322
322
  gem 'pg', '< 1.0', platform: :ruby
323
323
  gem 'sidekiq'
324
324
  gem 'activejob'
@@ -342,7 +342,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
342
342
  gem 'faraday'
343
343
  gem 'grape'
344
344
  gem 'graphql', '< 1.9.4'
345
- gem 'grpc'
345
+ gem 'grpc', '~> 1.21.0' # Last version to support Ruby < 2.3
346
346
  gem 'hiredis'
347
347
  gem 'mongo', '>= 2.8.0'
348
348
  gem 'mysql2', '< 0.5', platform: :ruby
@@ -501,6 +501,7 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
501
501
  gem 'grape'
502
502
  gem 'graphql'
503
503
  gem 'grpc'
504
+ gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
504
505
  gem 'hiredis'
505
506
  gem 'mongo', '>= 2.8.0'
506
507
  gem 'mysql2', '< 0.5', platform: :ruby
@@ -579,6 +580,7 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
579
580
  gem 'grape'
580
581
  gem 'graphql'
581
582
  gem 'grpc'
583
+ gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
582
584
  gem 'hiredis'
583
585
  gem 'mongo', '>= 2.8.0'
584
586
  gem 'mysql2', '< 0.5', platform: :ruby
@@ -916,7 +918,7 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
916
918
  gem 'excon'
917
919
  gem 'grape'
918
920
  gem 'graphql'
919
- # gem 'grpc' # Pending 2.7 support: https://github.com/grpc/grpc/issues/21514
921
+ gem 'grpc'
920
922
  gem 'hiredis'
921
923
  gem 'mongo', '>= 2.8.0'
922
924
  gem 'mysql2', '< 0.5', platform: :ruby
@@ -2,6 +2,87 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.36.0] - 2020-05-27
6
+
7
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.36.0
8
+
9
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0
10
+
11
+ ### Changed
12
+
13
+ - Prevent trace components from being re-initialized multiple times during setup (#1037)
14
+
15
+ ### Fixed
16
+
17
+ - Allow Rails patching if Railties are loaded (#993, #1054) (@mustela, @bheemreddy181, @vramaiah)
18
+ - Pin delegates to default tracer unless configured (#1041)
19
+
20
+ ### Refactored
21
+
22
+ - Improvements to test suite (#1027, #1031, #1045, #1046, #1047)
23
+
24
+ ## [0.35.2] - 2020-05-08
25
+
26
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.35.2
27
+
28
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.35.1...v0.35.2
29
+
30
+ ### Fixed
31
+
32
+ - Internal tracer HTTP requests generating traces (#1030, #1033) (@gingerlime)
33
+ - `Datadog.configure` forcing all options to eager load (#1032, #1034) (@kelvin-acosta)
34
+
35
+ ## [0.35.1] - 2020-05-05
36
+
37
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.35.1
38
+
39
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.35.0...v0.35.1
40
+
41
+ ### Fixed
42
+
43
+ - Components#teardown! NoMethodError (#1021, #1023) (@bzf)
44
+
45
+ ## [0.35.0] - 2020-04-29
46
+
47
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.35.0
48
+
49
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.34.2...v0.35.0
50
+
51
+ ### Added
52
+
53
+ - Chunk large trace payloads before flushing (#818, #840)
54
+ - Support for Sinatra modular apps (#486, #913, #1015) (@jpaulgs, @tomasv, @ZimbiX)
55
+ - active_job support for Resque (#991) (@stefanahman, @psycholein)
56
+ - JRuby 9.2 to CI test matrix (#995)
57
+ - `TraceWriter` and `AsyncTraceWriter` workers (#986)
58
+ - Runtime metrics worker (#988)
59
+
60
+ ### Changed
61
+
62
+ - Populate env, service, and version from tags (#1008)
63
+ - Extract components from configuration (#996)
64
+ - Extract logger to components (#997)
65
+ - Extract runtime metrics worker from `Writer` (#1004)
66
+ - Improvements to Faraday documentation (#1005)
67
+
68
+ ### Fixed
69
+
70
+ - Runtime metrics not starting after #write (#1010)
71
+
72
+ ### Refactored
73
+
74
+ - Improvements to test suite (#842, #1006, #1009)
75
+
76
+ ## [0.34.2] - 2020-04-09
77
+
78
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.34.2
79
+
80
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.34.1...v0.34.2
81
+
82
+ ### Changed
83
+
84
+ - Revert Rails applications setting default `env` if none are configured. (#1000) (@errriclee)
85
+
5
86
  ## [0.34.1] - 2020-04-02
6
87
 
7
88
  Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.34.1
@@ -28,7 +109,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.33.1...v0.34.0
28
109
  - `Datadog::Workers` for trace writing (#969, #973)
29
110
  - `_dd.measured` tag to some integrations for more statistics (#974)
30
111
  - `env`, `service`, `version`, `tags` configuration for auto-tagging (#977, #980, #982, #983, #985)
31
- - Multiplexed configuration for Ethon, Excon, Faraday, HTTP inetgrations (#882, #953) (@stormsilver)
112
+ - Multiplexed configuration for Ethon, Excon, Faraday, HTTP integrations (#882, #953) (@stormsilver)
32
113
 
33
114
  ### Fixed
34
115
 
@@ -1154,8 +1235,13 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
1154
1235
 
1155
1236
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
1156
1237
 
1157
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.34.1...master
1158
- [0.34.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.34.0...v0.34.1
1238
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...master
1239
+ [0.36.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0
1240
+ [0.35.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.1...v0.35.2
1241
+ [0.35.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.0...v0.35.1
1242
+ [0.35.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.34.2...v0.35.0
1243
+ [0.34.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.34.1...v0.34.2
1244
+ [0.34.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.34.0...v0.34.1
1159
1245
  [0.34.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.33.1...v0.34.0
1160
1246
  [0.33.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.33.0...v0.33.1
1161
1247
  [0.33.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.32.0...v0.33.0
data/Rakefile CHANGED
@@ -100,10 +100,11 @@ namespace :spec do
100
100
  :resque,
101
101
  :rest_client,
102
102
  :sequel,
103
+ :shoryuken,
103
104
  :sidekiq,
104
105
  :sinatra,
105
106
  :sucker_punch,
106
- :shoryuken
107
+ :suite
107
108
  ].each do |contrib|
108
109
  RSpec::Core::RakeTask.new(contrib) do |t, args|
109
110
  t.pattern = "spec/ddtrace/contrib/#{contrib}/**/*_spec.rb"
@@ -217,6 +218,7 @@ task :ci do
217
218
  sh 'bundle exec appraisal contrib-old rake spec:sidekiq'
218
219
  sh 'bundle exec appraisal contrib-old rake spec:sinatra'
219
220
  sh 'bundle exec appraisal contrib-old rake spec:sucker_punch'
221
+ sh 'bundle exec appraisal contrib-old rake spec:suite'
220
222
  # Rails minitests
221
223
  sh 'bundle exec appraisal rails30-postgres rake test:rails'
222
224
  sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
@@ -272,6 +274,7 @@ task :ci do
272
274
  sh 'bundle exec appraisal contrib-old rake spec:sidekiq'
273
275
  sh 'bundle exec appraisal contrib-old rake spec:sinatra'
274
276
  sh 'bundle exec appraisal contrib-old rake spec:sucker_punch'
277
+ sh 'bundle exec appraisal contrib-old rake spec:suite'
275
278
  # Rails minitests
276
279
  sh 'bundle exec appraisal rails30-postgres rake test:rails'
277
280
  sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
@@ -340,6 +343,7 @@ task :ci do
340
343
  sh 'bundle exec appraisal contrib rake spec:sidekiq'
341
344
  sh 'bundle exec appraisal contrib rake spec:sinatra'
342
345
  sh 'bundle exec appraisal contrib rake spec:sucker_punch'
346
+ sh 'bundle exec appraisal contrib rake spec:suite'
343
347
  # Rails minitests
344
348
  sh 'bundle exec appraisal rails30-postgres rake test:rails'
345
349
  sh 'bundle exec appraisal rails30-postgres rake spec:railsdisableenv'
@@ -412,6 +416,7 @@ task :ci do
412
416
  sh 'bundle exec appraisal contrib rake spec:sidekiq'
413
417
  sh 'bundle exec appraisal contrib rake spec:sinatra'
414
418
  sh 'bundle exec appraisal contrib rake spec:sucker_punch'
419
+ sh 'bundle exec appraisal contrib rake spec:suite'
415
420
  # Contrib specs with old gem versions
416
421
  sh 'bundle exec appraisal contrib-old rake spec:faraday'
417
422
  # Rails minitests
@@ -489,6 +494,7 @@ task :ci do
489
494
  sh 'bundle exec appraisal contrib rake spec:sidekiq'
490
495
  sh 'bundle exec appraisal contrib rake spec:sinatra'
491
496
  sh 'bundle exec appraisal contrib rake spec:sucker_punch'
497
+ sh 'bundle exec appraisal contrib rake spec:suite'
492
498
  # Contrib specs with old gem versions
493
499
  sh 'bundle exec appraisal contrib-old rake spec:faraday'
494
500
  # Rails minitests
@@ -551,6 +557,7 @@ task :ci do
551
557
  sh 'bundle exec appraisal contrib rake spec:sidekiq'
552
558
  sh 'bundle exec appraisal contrib rake spec:sinatra'
553
559
  sh 'bundle exec appraisal contrib rake spec:sucker_punch'
560
+ sh 'bundle exec appraisal contrib rake spec:suite'
554
561
  # Contrib specs with old gem versions
555
562
  sh 'bundle exec appraisal contrib-old rake spec:faraday'
556
563
  # Rails minitests
@@ -623,6 +630,7 @@ task :ci do
623
630
  sh 'bundle exec appraisal contrib rake spec:sidekiq'
624
631
  sh 'bundle exec appraisal contrib rake spec:sinatra'
625
632
  sh 'bundle exec appraisal contrib rake spec:sucker_punch'
633
+ sh 'bundle exec appraisal contrib rake spec:suite'
626
634
  # Contrib specs with old gem versions
627
635
  sh 'bundle exec appraisal contrib-old rake spec:faraday'
628
636
  # Rails minitests
@@ -678,7 +686,7 @@ task :ci do
678
686
  sh 'bundle exec appraisal contrib rake spec:faraday'
679
687
  sh 'bundle exec appraisal contrib rake spec:grape'
680
688
  sh 'bundle exec appraisal contrib rake spec:graphql'
681
- # sh 'bundle exec appraisal contrib rake spec:grpc' # Pending 2.7 support: https://github.com/grpc/grpc/issues/21514
689
+ sh 'bundle exec appraisal contrib rake spec:grpc'
682
690
  sh 'bundle exec appraisal contrib rake spec:http'
683
691
  sh 'bundle exec appraisal contrib rake spec:mongodb'
684
692
  sh 'bundle exec appraisal contrib rake spec:mysql2'
@@ -694,6 +702,7 @@ task :ci do
694
702
  sh 'bundle exec appraisal contrib rake spec:sidekiq'
695
703
  sh 'bundle exec appraisal contrib rake spec:sinatra'
696
704
  sh 'bundle exec appraisal contrib rake spec:sucker_punch'
705
+ sh 'bundle exec appraisal contrib rake spec:suite'
697
706
  # Contrib specs with old gem versions
698
707
  sh 'bundle exec appraisal contrib-old rake spec:faraday'
699
708
  # Rails minitests