ddtrace 0.37.0 → 0.38.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/Appraisals +15 -0
- data/CHANGELOG.md +33 -1
- data/Rakefile +11 -10
- data/docker-compose.yml +2 -2
- data/docs/GettingStarted.md +55 -0
- data/lib/ddtrace.rb +2 -0
- data/lib/ddtrace/configuration/settings.rb +18 -0
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -1
- data/lib/ddtrace/contrib/extensions.rb +10 -0
- data/lib/ddtrace/contrib/faraday/middleware.rb +5 -3
- data/lib/ddtrace/contrib/faraday/patcher.rb +3 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -3
- data/lib/ddtrace/contrib/httprb/configuration/settings.rb +27 -0
- data/lib/ddtrace/contrib/httprb/ext.rb +14 -0
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +163 -0
- data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
- data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
- data/lib/ddtrace/contrib/kafka/configuration/settings.rb +25 -0
- data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/event.rb +51 -0
- data/lib/ddtrace/contrib/kafka/events.rb +44 -0
- data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
- data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
- data/lib/ddtrace/contrib/kafka/ext.rb +38 -0
- data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
- data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
- data/lib/ddtrace/contrib/rack/middlewares.rb +15 -12
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +2 -2
- data/lib/ddtrace/contrib/sidekiq/ext.rb +1 -0
- data/lib/ddtrace/contrib/sidekiq/patcher.rb +8 -1
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
- data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
- data/lib/ddtrace/environment.rb +5 -1
- data/lib/ddtrace/ext/diagnostics.rb +2 -0
- data/lib/ddtrace/ext/environment.rb +2 -0
- data/lib/ddtrace/pipeline/span_filter.rb +15 -15
- data/lib/ddtrace/sampler.rb +2 -0
- data/lib/ddtrace/span.rb +10 -0
- data/lib/ddtrace/tracer.rb +13 -6
- data/lib/ddtrace/transport/http/adapters/net.rb +8 -0
- data/lib/ddtrace/transport/http/adapters/test.rb +4 -0
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +4 -0
- data/lib/ddtrace/transport/response.rb +11 -0
- data/lib/ddtrace/version.rb +1 -1
- data/lib/ddtrace/workers/trace_writer.rb +3 -0
- data/lib/ddtrace/writer.rb +33 -12
- metadata +27 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88a2890ed343b6cfef9752a3bbeb34c4a670a86755c66f99d625fe10f9172f5f
|
4
|
+
data.tar.gz: e77520aa45dad85b0a8198233dd7e1bc485db11e8d478eb606401aaa9e17f2f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af5e2a13d1960b68d4b4d9c39661052898ce7636eef5866447ee67cb23d2f9e4a4d98aed3be403780a5d31c7c7a588cc7821dcf8b161679e211a6d315932f1bf
|
7
|
+
data.tar.gz: f0dc91d291576bec7a7b5ed7e494a09d2a976acfe7aa38999d2c8be893117757925253192f83f70317a8f60eee3d7fcc122aa8c33867409db5ade6b94f9148f4
|
data/.gitignore
CHANGED
data/Appraisals
CHANGED
@@ -73,6 +73,7 @@ elsif Gem::Version.new('2.0.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
73
73
|
gem 'ethon'
|
74
74
|
gem 'excon'
|
75
75
|
gem 'hiredis'
|
76
|
+
gem 'http'
|
76
77
|
gem 'mongo', '< 2.5'
|
77
78
|
gem 'mysql2', '0.3.21', platform: :ruby
|
78
79
|
gem 'rack', '1.4.7'
|
@@ -184,6 +185,7 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
184
185
|
gem 'ethon'
|
185
186
|
gem 'excon'
|
186
187
|
gem 'hiredis'
|
188
|
+
gem 'http'
|
187
189
|
gem 'mongo', '< 2.5'
|
188
190
|
gem 'mysql2', '0.3.21', platform: :ruby
|
189
191
|
gem 'rack', '1.4.7'
|
@@ -193,6 +195,7 @@ elsif Gem::Version.new('2.1.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
193
195
|
gem 'redis', '< 4.0'
|
194
196
|
gem 'rest-client'
|
195
197
|
gem 'resque', '< 2.0'
|
198
|
+
gem 'ruby-kafka', '>= 0.7.10'
|
196
199
|
gem 'sequel', '~> 4.0', '< 4.37'
|
197
200
|
gem 'shoryuken'
|
198
201
|
gem 'sidekiq', '~> 3.5.4'
|
@@ -344,6 +347,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
344
347
|
gem 'graphql', '< 1.9.4'
|
345
348
|
gem 'grpc', '~> 1.21.0' # Last version to support Ruby < 2.3
|
346
349
|
gem 'hiredis'
|
350
|
+
gem 'http'
|
347
351
|
gem 'mongo', '>= 2.8.0'
|
348
352
|
gem 'mysql2', '< 0.5', platform: :ruby
|
349
353
|
gem 'racecar', '>= 0.3.5'
|
@@ -353,6 +357,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
353
357
|
gem 'redis', '< 4.0'
|
354
358
|
gem 'rest-client'
|
355
359
|
gem 'resque', '< 2.0'
|
360
|
+
gem 'ruby-kafka', '>= 0.7.10'
|
356
361
|
gem 'sequel'
|
357
362
|
gem 'shoryuken'
|
358
363
|
gem 'sidekiq'
|
@@ -503,6 +508,7 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
503
508
|
gem 'grpc'
|
504
509
|
gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
|
505
510
|
gem 'hiredis'
|
511
|
+
gem 'http'
|
506
512
|
gem 'mongo', '>= 2.8.0'
|
507
513
|
gem 'mysql2', '< 0.5', platform: :ruby
|
508
514
|
gem 'presto-client', '>= 0.5.14'
|
@@ -513,6 +519,7 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
513
519
|
gem 'redis', '< 4.0'
|
514
520
|
gem 'rest-client'
|
515
521
|
gem 'resque', '< 2.0'
|
522
|
+
gem 'ruby-kafka', '>= 0.7.10'
|
516
523
|
gem 'sequel'
|
517
524
|
gem 'shoryuken'
|
518
525
|
gem 'sidekiq'
|
@@ -582,6 +589,7 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
582
589
|
gem 'grpc'
|
583
590
|
gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5
|
584
591
|
gem 'hiredis'
|
592
|
+
gem 'http'
|
585
593
|
gem 'mongo', '>= 2.8.0'
|
586
594
|
gem 'mysql2', '< 0.5', platform: :ruby
|
587
595
|
gem 'presto-client', '>= 0.5.14'
|
@@ -592,6 +600,7 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
592
600
|
gem 'redis', '< 4.0'
|
593
601
|
gem 'rest-client'
|
594
602
|
gem 'resque', '< 2.0'
|
603
|
+
gem 'ruby-kafka', '>= 0.7.10'
|
595
604
|
gem 'sequel'
|
596
605
|
gem 'shoryuken'
|
597
606
|
gem 'sidekiq'
|
@@ -694,6 +703,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
694
703
|
gem 'graphql'
|
695
704
|
gem 'grpc'
|
696
705
|
gem 'hiredis'
|
706
|
+
gem 'http'
|
697
707
|
gem 'mongo', '>= 2.8.0'
|
698
708
|
gem 'mysql2', '< 0.5', platform: :ruby
|
699
709
|
gem 'presto-client', '>= 0.5.14'
|
@@ -704,6 +714,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
704
714
|
gem 'redis', '< 4.0'
|
705
715
|
gem 'rest-client'
|
706
716
|
gem 'resque', '< 2.0'
|
717
|
+
gem 'ruby-kafka', '>= 0.7.10'
|
707
718
|
gem 'sequel'
|
708
719
|
gem 'shoryuken'
|
709
720
|
gem 'sidekiq'
|
@@ -806,6 +817,7 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
806
817
|
gem 'graphql'
|
807
818
|
gem 'grpc'
|
808
819
|
gem 'hiredis'
|
820
|
+
gem 'http'
|
809
821
|
gem 'mongo', '>= 2.8.0'
|
810
822
|
gem 'mysql2', '< 0.5', platform: :ruby
|
811
823
|
gem 'presto-client', '>= 0.5.14'
|
@@ -816,6 +828,7 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
816
828
|
gem 'redis', '< 4.0'
|
817
829
|
gem 'rest-client'
|
818
830
|
gem 'resque', '< 2.0'
|
831
|
+
gem 'ruby-kafka', '>= 0.7.10'
|
819
832
|
gem 'sequel'
|
820
833
|
gem 'shoryuken'
|
821
834
|
gem 'sidekiq'
|
@@ -920,6 +933,7 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
|
|
920
933
|
gem 'graphql'
|
921
934
|
gem 'grpc'
|
922
935
|
gem 'hiredis'
|
936
|
+
gem 'http'
|
923
937
|
gem 'mongo', '>= 2.8.0'
|
924
938
|
gem 'mysql2', '< 0.5', platform: :ruby
|
925
939
|
gem 'presto-client', '>= 0.5.14'
|
@@ -930,6 +944,7 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
|
|
930
944
|
gem 'redis', '< 4.0'
|
931
945
|
gem 'rest-client'
|
932
946
|
gem 'resque', '< 2.0'
|
947
|
+
gem 'ruby-kafka', '>= 0.7.10'
|
933
948
|
gem 'sequel'
|
934
949
|
gem 'shoryuken'
|
935
950
|
gem 'sidekiq'
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,37 @@
|
|
2
2
|
|
3
3
|
## [Unreleased]
|
4
4
|
|
5
|
+
## [0.38.0] - 2020-07-13
|
6
|
+
|
7
|
+
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.38.0
|
8
|
+
|
9
|
+
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
- http.rb integration (#529, #853)
|
14
|
+
- Kafka integration (#1070) (@tjwp)
|
15
|
+
- Span#set_tags (#1081) (@DocX)
|
16
|
+
- retry_count tag for Sidekiq jobs (#1089) (@elyalvarado)
|
17
|
+
- Startup environment log (#1104, #1109)
|
18
|
+
- DD_SITE and DD_API_KEY configuration (#1107)
|
19
|
+
|
20
|
+
### Changed
|
21
|
+
|
22
|
+
- Auto instrument Faraday default connection (#1057)
|
23
|
+
- Sidekiq client middleware is now the same for client and server (#1099) (@drcapulet)
|
24
|
+
- Single pass SpanFilter (#1071) (@tjwp)
|
25
|
+
|
26
|
+
### Fixed
|
27
|
+
|
28
|
+
- Ensure fatal exceptions are propagated (#1100)
|
29
|
+
- Respect child_of: option in Tracer#trace (#1082) (@DocX)
|
30
|
+
- Improve Writer thread safety (#1091) (@fledman)
|
31
|
+
|
32
|
+
### Refactored
|
33
|
+
|
34
|
+
- Improvements to test suite (#1092, #1103)
|
35
|
+
|
5
36
|
## [0.37.0] - 2020-06-24
|
6
37
|
|
7
38
|
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.37.0
|
@@ -1274,7 +1305,8 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
|
|
1274
1305
|
|
1275
1306
|
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
1276
1307
|
|
1277
|
-
[Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.
|
1308
|
+
[Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.38.0...master
|
1309
|
+
[0.38.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0
|
1278
1310
|
[0.37.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...v0.37.0
|
1279
1311
|
[0.36.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0
|
1280
1312
|
[0.35.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.35.1...v0.35.2
|
data/Rakefile
CHANGED
@@ -95,6 +95,8 @@ namespace :spec do
|
|
95
95
|
:graphql,
|
96
96
|
:grpc,
|
97
97
|
:http,
|
98
|
+
:httprb,
|
99
|
+
:kafka,
|
98
100
|
:mongodb,
|
99
101
|
:mysql2,
|
100
102
|
:presto,
|
@@ -121,7 +123,7 @@ end
|
|
121
123
|
namespace :test do
|
122
124
|
task all: [:main,
|
123
125
|
:rails,
|
124
|
-
:
|
126
|
+
:monkey]
|
125
127
|
|
126
128
|
Rake::TestTask.new(:main) do |t|
|
127
129
|
t.libs << %w[test lib]
|
@@ -140,7 +142,6 @@ namespace :test do
|
|
140
142
|
|
141
143
|
[
|
142
144
|
:grape,
|
143
|
-
:sidekiq,
|
144
145
|
:sucker_punch
|
145
146
|
].each do |contrib|
|
146
147
|
Rake::TestTask.new(contrib) do |t|
|
@@ -199,7 +200,6 @@ task :ci do
|
|
199
200
|
if RUBY_PLATFORM != 'java'
|
200
201
|
# Contrib minitests
|
201
202
|
sh 'bundle exec appraisal contrib-old rake test:monkey'
|
202
|
-
sh 'bundle exec appraisal contrib-old rake test:sidekiq'
|
203
203
|
sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
|
204
204
|
# Contrib specs
|
205
205
|
sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
|
@@ -214,6 +214,7 @@ task :ci do
|
|
214
214
|
sh 'bundle exec appraisal contrib-old rake spec:excon'
|
215
215
|
sh 'bundle exec appraisal contrib-old rake spec:faraday'
|
216
216
|
sh 'bundle exec appraisal contrib-old rake spec:http'
|
217
|
+
sh 'bundle exec appraisal contrib-old rake spec:httprb'
|
217
218
|
sh 'bundle exec appraisal contrib-old rake spec:mongodb'
|
218
219
|
sh 'bundle exec appraisal contrib-old rake spec:mysql2'
|
219
220
|
sh 'bundle exec appraisal contrib-old rake spec:rack'
|
@@ -256,7 +257,6 @@ task :ci do
|
|
256
257
|
if RUBY_PLATFORM != 'java'
|
257
258
|
# Contrib minitests
|
258
259
|
sh 'bundle exec appraisal contrib-old rake test:monkey'
|
259
|
-
sh 'bundle exec appraisal contrib-old rake test:sidekiq'
|
260
260
|
sh 'bundle exec appraisal contrib-old rake test:sucker_punch'
|
261
261
|
# Contrib specs
|
262
262
|
sh 'bundle exec appraisal contrib-old rake spec:active_model_serializers'
|
@@ -271,6 +271,7 @@ task :ci do
|
|
271
271
|
sh 'bundle exec appraisal contrib-old rake spec:excon'
|
272
272
|
sh 'bundle exec appraisal contrib-old rake spec:faraday'
|
273
273
|
sh 'bundle exec appraisal contrib-old rake spec:http'
|
274
|
+
sh 'bundle exec appraisal contrib-old rake spec:httprb'
|
274
275
|
sh 'bundle exec appraisal contrib-old rake spec:mongodb'
|
275
276
|
sh 'bundle exec appraisal contrib-old rake spec:mysql2'
|
276
277
|
sh 'bundle exec appraisal contrib-old rake spec:presto'
|
@@ -320,7 +321,6 @@ task :ci do
|
|
320
321
|
if RUBY_PLATFORM != 'java'
|
321
322
|
# Contrib minitests
|
322
323
|
sh 'bundle exec appraisal contrib rake test:grape'
|
323
|
-
sh 'bundle exec appraisal contrib rake test:sidekiq'
|
324
324
|
sh 'bundle exec appraisal contrib rake test:sucker_punch'
|
325
325
|
# Contrib specs
|
326
326
|
sh 'bundle exec appraisal contrib rake spec:action_pack'
|
@@ -340,6 +340,7 @@ task :ci do
|
|
340
340
|
sh 'bundle exec appraisal contrib rake spec:graphql'
|
341
341
|
sh 'bundle exec appraisal contrib rake spec:grpc'
|
342
342
|
sh 'bundle exec appraisal contrib rake spec:http'
|
343
|
+
sh 'bundle exec appraisal contrib rake spec:httprb'
|
343
344
|
sh 'bundle exec appraisal contrib rake spec:mongodb'
|
344
345
|
sh 'bundle exec appraisal contrib rake spec:mysql2'
|
345
346
|
sh 'bundle exec appraisal contrib rake spec:presto'
|
@@ -395,7 +396,6 @@ task :ci do
|
|
395
396
|
if RUBY_PLATFORM != 'java'
|
396
397
|
# Contrib minitests
|
397
398
|
sh 'bundle exec appraisal contrib rake test:grape'
|
398
|
-
sh 'bundle exec appraisal contrib rake test:sidekiq'
|
399
399
|
sh 'bundle exec appraisal contrib rake test:sucker_punch'
|
400
400
|
# Contrib specs
|
401
401
|
sh 'bundle exec appraisal contrib rake spec:action_pack'
|
@@ -415,6 +415,7 @@ task :ci do
|
|
415
415
|
sh 'bundle exec appraisal contrib rake spec:graphql'
|
416
416
|
sh 'bundle exec appraisal contrib rake spec:grpc'
|
417
417
|
sh 'bundle exec appraisal contrib rake spec:http'
|
418
|
+
sh 'bundle exec appraisal contrib rake spec:httprb'
|
418
419
|
sh 'bundle exec appraisal contrib rake spec:mongodb'
|
419
420
|
sh 'bundle exec appraisal contrib rake spec:mysql2'
|
420
421
|
sh 'bundle exec appraisal contrib rake spec:presto'
|
@@ -475,7 +476,6 @@ task :ci do
|
|
475
476
|
sh 'bundle exec rake benchmark'
|
476
477
|
# Contrib minitests
|
477
478
|
sh 'bundle exec appraisal contrib rake test:grape'
|
478
|
-
sh 'bundle exec appraisal contrib rake test:sidekiq'
|
479
479
|
sh 'bundle exec appraisal contrib rake test:sucker_punch'
|
480
480
|
# Contrib specs
|
481
481
|
sh 'bundle exec appraisal contrib rake spec:action_pack'
|
@@ -495,6 +495,7 @@ task :ci do
|
|
495
495
|
sh 'bundle exec appraisal contrib rake spec:graphql'
|
496
496
|
sh 'bundle exec appraisal contrib rake spec:grpc'
|
497
497
|
sh 'bundle exec appraisal contrib rake spec:http'
|
498
|
+
sh 'bundle exec appraisal contrib rake spec:httprb'
|
498
499
|
sh 'bundle exec appraisal contrib rake spec:mongodb'
|
499
500
|
sh 'bundle exec appraisal contrib rake spec:mysql2'
|
500
501
|
sh 'bundle exec appraisal contrib rake spec:presto'
|
@@ -540,7 +541,6 @@ task :ci do
|
|
540
541
|
sh 'bundle exec rake benchmark'
|
541
542
|
# Contrib minitests
|
542
543
|
sh 'bundle exec appraisal contrib rake test:grape'
|
543
|
-
sh 'bundle exec appraisal contrib rake test:sidekiq'
|
544
544
|
sh 'bundle exec appraisal contrib rake test:sucker_punch'
|
545
545
|
# Contrib specs
|
546
546
|
sh 'bundle exec appraisal contrib rake spec:action_pack'
|
@@ -560,6 +560,7 @@ task :ci do
|
|
560
560
|
sh 'bundle exec appraisal contrib rake spec:graphql'
|
561
561
|
sh 'bundle exec appraisal contrib rake spec:grpc'
|
562
562
|
sh 'bundle exec appraisal contrib rake spec:http'
|
563
|
+
sh 'bundle exec appraisal contrib rake spec:httprb'
|
563
564
|
sh 'bundle exec appraisal contrib rake spec:mongodb'
|
564
565
|
sh 'bundle exec appraisal contrib rake spec:mysql2'
|
565
566
|
sh 'bundle exec appraisal contrib rake spec:presto'
|
@@ -615,7 +616,6 @@ task :ci do
|
|
615
616
|
sh 'bundle exec rake benchmark'
|
616
617
|
# Contrib minitests
|
617
618
|
sh 'bundle exec appraisal contrib rake test:grape'
|
618
|
-
sh 'bundle exec appraisal contrib rake test:sidekiq'
|
619
619
|
sh 'bundle exec appraisal contrib rake test:sucker_punch'
|
620
620
|
# Contrib specs
|
621
621
|
sh 'bundle exec appraisal contrib rake spec:action_pack'
|
@@ -635,6 +635,7 @@ task :ci do
|
|
635
635
|
sh 'bundle exec appraisal contrib rake spec:graphql'
|
636
636
|
sh 'bundle exec appraisal contrib rake spec:grpc'
|
637
637
|
sh 'bundle exec appraisal contrib rake spec:http'
|
638
|
+
sh 'bundle exec appraisal contrib rake spec:httprb'
|
638
639
|
sh 'bundle exec appraisal contrib rake spec:mongodb'
|
639
640
|
sh 'bundle exec appraisal contrib rake spec:mysql2'
|
640
641
|
sh 'bundle exec appraisal contrib rake spec:presto'
|
@@ -689,7 +690,6 @@ task :ci do
|
|
689
690
|
sh 'bundle exec rake benchmark'
|
690
691
|
# Contrib minitests
|
691
692
|
sh 'bundle exec appraisal contrib rake test:grape'
|
692
|
-
sh 'bundle exec appraisal contrib rake test:sidekiq'
|
693
693
|
sh 'bundle exec appraisal contrib rake test:sucker_punch'
|
694
694
|
# Contrib specs
|
695
695
|
sh 'bundle exec appraisal contrib rake spec:action_pack'
|
@@ -709,6 +709,7 @@ task :ci do
|
|
709
709
|
sh 'bundle exec appraisal contrib rake spec:graphql'
|
710
710
|
sh 'bundle exec appraisal contrib rake spec:grpc'
|
711
711
|
sh 'bundle exec appraisal contrib rake spec:http'
|
712
|
+
sh 'bundle exec appraisal contrib rake spec:httprb'
|
712
713
|
sh 'bundle exec appraisal contrib rake spec:mongodb'
|
713
714
|
sh 'bundle exec appraisal contrib rake spec:mysql2'
|
714
715
|
sh 'bundle exec appraisal contrib rake spec:presto'
|
data/docker-compose.yml
CHANGED
@@ -281,11 +281,11 @@ services:
|
|
281
281
|
- bundle-jruby-9.2:/usr/local/bundle
|
282
282
|
- gemfiles-jruby-9.2:/app/gemfiles
|
283
283
|
ddagent:
|
284
|
-
image: datadog/
|
284
|
+
image: datadog/agent
|
285
285
|
environment:
|
286
286
|
- DD_APM_ENABLED=true
|
287
287
|
- DD_BIND_HOST=0.0.0.0
|
288
|
-
- DD_API_KEY=
|
288
|
+
- DD_API_KEY=00000000000000000000000000000000
|
289
289
|
expose:
|
290
290
|
- "8125/udp"
|
291
291
|
- "8126"
|
data/docs/GettingStarted.md
CHANGED
@@ -43,6 +43,7 @@ To contribute, check out the [contribution guidelines][contribution docs] and [d
|
|
43
43
|
- [Grape](#grape)
|
44
44
|
- [GraphQL](#graphql)
|
45
45
|
- [gRPC](#grpc)
|
46
|
+
- [http.rb](#http.rb)
|
46
47
|
- [MongoDB](#mongodb)
|
47
48
|
- [MySQL2](#mysql2)
|
48
49
|
- [Net/HTTP](#net-http)
|
@@ -344,6 +345,8 @@ For a list of available integrations, and their configuration options, please re
|
|
344
345
|
| Grape | `grape` | `>= 1.0` | *[Link](#grape)* | *[Link](https://github.com/ruby-grape/grape)* |
|
345
346
|
| GraphQL | `graphql` | `>= 1.7.9` | *[Link](#graphql)* | *[Link](https://github.com/rmosolgo/graphql-ruby)* |
|
346
347
|
| gRPC | `grpc` | `>= 1.7` | *[Link](#grpc)* | *[Link](https://github.com/grpc/grpc/tree/master/src/rubyc)* |
|
348
|
+
| http.rb | `httprb` | `>= 2.0` | *[Link](#http.rb)* | *[Link](https://github.com/httprb/http)* |
|
349
|
+
| Kafka | `ruby-kafka` | `>= 0.7.10` | *[Link](#kafka)* | |
|
347
350
|
| MongoDB | `mongo` | `>= 2.1` | *[Link](#mongodb)* | *[Link](https://github.com/mongodb/mongo-ruby-driver)* |
|
348
351
|
| MySQL2 | `mysql2` | `>= 0.3.21` | *[Link](#mysql2)* | *[Link](https://github.com/brianmario/mysql2)* |
|
349
352
|
| Net/HTTP | `http` | *(Any supported Ruby)* | *[Link](#nethttp)* | *[Link](https://ruby-doc.org/stdlib-2.4.0/libdoc/net/http/rdoc/Net/HTTP.html)* |
|
@@ -929,6 +932,56 @@ alternate_client = Demo::Echo::Service.rpc_stub_class.new(
|
|
929
932
|
|
930
933
|
The integration will ensure that the `configured_interceptor` establishes a unique tracing setup for that client instance.
|
931
934
|
|
935
|
+
### http.rb
|
936
|
+
|
937
|
+
The http.rb integration will trace any HTTP call using the Http.rb gem.
|
938
|
+
|
939
|
+
```ruby
|
940
|
+
require 'http'
|
941
|
+
require 'ddtrace'
|
942
|
+
Datadog.configure do |c|
|
943
|
+
c.use :httprb, options
|
944
|
+
# optionally, specify a different service name for hostnames matching a regex
|
945
|
+
c.use :httprb, describes: /user-[^.]+\.example\.com/ do |httprb|
|
946
|
+
httprb.service_name = 'user.example.com'
|
947
|
+
httprb.split_by_domain = false # Only necessary if split_by_domain is true by default
|
948
|
+
end
|
949
|
+
end
|
950
|
+
```
|
951
|
+
|
952
|
+
Where `options` is an optional `Hash` that accepts the following parameters:
|
953
|
+
|
954
|
+
| Key | Description | Default |
|
955
|
+
| --- | ----------- | ------- |
|
956
|
+
| `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `false` |
|
957
|
+
| `distributed_tracing` | Enables [distributed tracing](#distributed-tracing) | `true` |
|
958
|
+
| `service_name` | Service name for `httprb` instrumentation. | `'httprb'` |
|
959
|
+
| `split_by_domain` | Uses the request domain as the service name when set to `true`. | `false` |
|
960
|
+
|
961
|
+
### Kafka
|
962
|
+
|
963
|
+
The Kafka integration provides tracing of the `ruby-kafka` gem:
|
964
|
+
|
965
|
+
You can enable it through `Datadog.configure`:
|
966
|
+
|
967
|
+
```ruby
|
968
|
+
require 'active_support/notifications' # required to enable 'ruby-kafka' instrumentation
|
969
|
+
require 'kafka'
|
970
|
+
require 'ddtrace'
|
971
|
+
|
972
|
+
Datadog.configure do |c|
|
973
|
+
c.use :kafka, options
|
974
|
+
end
|
975
|
+
```
|
976
|
+
|
977
|
+
Where `options` is an optional `Hash` that accepts the following parameters:
|
978
|
+
|
979
|
+
| Key | Description | Default |
|
980
|
+
| --- | ----------- | ------- |
|
981
|
+
| `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `false` |
|
982
|
+
| `service_name` | Service name used for `kafka` instrumentation | `'kafka'` |
|
983
|
+
| `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
|
984
|
+
|
932
985
|
### MongoDB
|
933
986
|
|
934
987
|
The integration traces any `Command` that is sent from the [MongoDB Ruby Driver](https://github.com/mongodb/mongo-ruby-driver) to a MongoDB cluster. By extension, Object Document Mappers (ODM) such as Mongoid are automatically instrumented if they use the official Ruby driver. To activate the integration, simply:
|
@@ -1586,6 +1639,7 @@ Available options are:
|
|
1586
1639
|
- `partial_flush.enabled`: set to `true` to enable partial trace flushing (for long running traces.) Disabled by default. *Experimental.*
|
1587
1640
|
- `port`: set the port the trace agent is listening on.
|
1588
1641
|
- `sampler`: set to a custom `Datadog::Sampler` instance. If provided, the tracer will use this sampler to determine sampling behavior.
|
1642
|
+
- `diagnostics.startup_logs.enabled`: Startup configuration and diagnostic log. Defaults to `true`. Can be configured through the `DD_TRACE_STARTUP_LOGS` environment variable.
|
1589
1643
|
|
1590
1644
|
#### Custom logging
|
1591
1645
|
|
@@ -1798,6 +1852,7 @@ For more details on how to activate distributed tracing for integrations, see th
|
|
1798
1852
|
- [Rack](#rack)
|
1799
1853
|
- [Rails](#rails)
|
1800
1854
|
- [Sinatra](#sinatra)
|
1855
|
+
- [http.rb](#http.rb)
|
1801
1856
|
|
1802
1857
|
**Using the HTTP propagator**
|
1803
1858
|
|
data/lib/ddtrace.rb
CHANGED
@@ -55,7 +55,9 @@ require 'ddtrace/contrib/grape/integration'
|
|
55
55
|
require 'ddtrace/contrib/graphql/integration'
|
56
56
|
require 'ddtrace/contrib/grpc/integration'
|
57
57
|
require 'ddtrace/contrib/http/integration'
|
58
|
+
require 'ddtrace/contrib/httprb/integration'
|
58
59
|
require 'ddtrace/contrib/integration'
|
60
|
+
require 'ddtrace/contrib/kafka/integration'
|
59
61
|
require 'ddtrace/contrib/presto/integration'
|
60
62
|
require 'ddtrace/contrib/mysql2/integration'
|
61
63
|
require 'ddtrace/contrib/mongodb/integration'
|
@@ -31,6 +31,11 @@ module Datadog
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
option :api_key do |o|
|
35
|
+
o.default { ENV.fetch(Ext::Environment::ENV_API_KEY, nil) }
|
36
|
+
o.lazy
|
37
|
+
end
|
38
|
+
|
34
39
|
settings :diagnostics do
|
35
40
|
option :debug, default: false
|
36
41
|
|
@@ -42,6 +47,14 @@ module Datadog
|
|
42
47
|
|
43
48
|
option :statsd
|
44
49
|
end
|
50
|
+
|
51
|
+
settings :startup_logs do
|
52
|
+
option :enabled do |o|
|
53
|
+
# Defaults to nil as we want to know when the default value is being used
|
54
|
+
o.default { env_to_bool(Datadog::Ext::Diagnostics::DD_TRACE_STARTUP_LOGS, nil) }
|
55
|
+
o.lazy
|
56
|
+
end
|
57
|
+
end
|
45
58
|
end
|
46
59
|
|
47
60
|
settings :distributed_tracing do
|
@@ -138,6 +151,11 @@ module Datadog
|
|
138
151
|
o.lazy
|
139
152
|
end
|
140
153
|
|
154
|
+
option :site do |o|
|
155
|
+
o.default { ENV.fetch(Ext::Environment::ENV_SITE, nil) }
|
156
|
+
o.lazy
|
157
|
+
end
|
158
|
+
|
141
159
|
option :tags do |o|
|
142
160
|
o.default do
|
143
161
|
tags = {}
|