ddtrace 0.34.1 → 0.36.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 (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