ddtrace 0.32.0 → 0.33.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.env +2 -0
- data/Appraisals +9 -6
- data/CHANGELOG.md +32 -1
- data/Rakefile +3 -2
- data/ddtrace.gemspec +2 -1
- data/docker-compose.yml +9 -0
- data/docs/GettingStarted.md +69 -6
- data/lib/ddtrace.rb +1 -0
- data/lib/ddtrace/configuration/option.rb +3 -2
- data/lib/ddtrace/configuration/option_definition.rb +1 -1
- data/lib/ddtrace/configuration/options.rb +5 -0
- data/lib/ddtrace/contrib/action_cable/integration.rb +2 -2
- data/lib/ddtrace/contrib/action_pack/integration.rb +2 -2
- data/lib/ddtrace/contrib/action_view/integration.rb +2 -2
- data/lib/ddtrace/contrib/active_model_serializers/integration.rb +3 -5
- data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +4 -5
- data/lib/ddtrace/contrib/active_record/integration.rb +2 -2
- data/lib/ddtrace/contrib/active_support/integration.rb +2 -2
- data/lib/ddtrace/contrib/aws/integration.rb +6 -2
- data/lib/ddtrace/contrib/aws/patcher.rb +8 -2
- data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +6 -2
- data/lib/ddtrace/contrib/configurable.rb +30 -13
- data/lib/ddtrace/contrib/configuration/resolver.rb +7 -3
- data/lib/ddtrace/contrib/dalli/integration.rb +2 -2
- data/lib/ddtrace/contrib/delayed_job/integration.rb +6 -2
- data/lib/ddtrace/contrib/elasticsearch/integration.rb +2 -2
- data/lib/ddtrace/contrib/ethon/integration.rb +6 -2
- data/lib/ddtrace/contrib/excon/integration.rb +6 -2
- data/lib/ddtrace/contrib/faraday/integration.rb +2 -2
- data/lib/ddtrace/contrib/grape/integration.rb +3 -3
- data/lib/ddtrace/contrib/graphql/integration.rb +3 -5
- data/lib/ddtrace/contrib/grpc/integration.rb +2 -2
- data/lib/ddtrace/contrib/http/integration.rb +4 -0
- data/lib/ddtrace/contrib/mongodb/integration.rb +2 -2
- data/lib/ddtrace/contrib/mysql2/integration.rb +6 -2
- data/lib/ddtrace/contrib/patchable.rb +21 -4
- data/lib/ddtrace/contrib/presto/configuration/settings.rb +23 -0
- data/lib/ddtrace/contrib/presto/ext.rb +25 -0
- data/lib/ddtrace/contrib/presto/instrumentation.rb +107 -0
- data/lib/ddtrace/contrib/presto/integration.rb +36 -0
- data/lib/ddtrace/contrib/presto/patcher.rb +30 -0
- data/lib/ddtrace/contrib/racecar/integration.rb +3 -3
- data/lib/ddtrace/contrib/rack/integration.rb +6 -2
- data/lib/ddtrace/contrib/rails/integration.rb +6 -3
- data/lib/ddtrace/contrib/rake/integration.rb +6 -2
- data/lib/ddtrace/contrib/redis/configuration/resolver.rb +36 -0
- data/lib/ddtrace/contrib/redis/integration.rb +7 -3
- data/lib/ddtrace/contrib/redis/patcher.rb +11 -2
- data/lib/ddtrace/contrib/redis/vendor/resolver.rb +159 -0
- data/lib/ddtrace/contrib/resque/integration.rb +8 -2
- data/lib/ddtrace/contrib/rest_client/integration.rb +6 -2
- data/lib/ddtrace/contrib/sequel/integration.rb +6 -2
- data/lib/ddtrace/contrib/shoryuken/integration.rb +9 -7
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +5 -0
- data/lib/ddtrace/contrib/sidekiq/ext.rb +2 -0
- data/lib/ddtrace/contrib/sidekiq/integration.rb +2 -2
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +7 -3
- data/lib/ddtrace/contrib/sidekiq/tracing.rb +19 -2
- data/lib/ddtrace/contrib/sinatra/integration.rb +2 -2
- data/lib/ddtrace/contrib/sucker_punch/integration.rb +3 -3
- data/lib/ddtrace/runtime/metrics.rb +2 -2
- data/lib/ddtrace/sampling/rule_sampler.rb +16 -2
- data/lib/ddtrace/version.rb +1 -1
- metadata +12 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 378dbfa934d235e1fef7eec26aded395a1663f50
|
4
|
+
data.tar.gz: 66f5d0aa2f1f92a0ca34c5db63e1050abb6d064d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9e34459216332d23f79bc78c6b2bec203f8e86a486853afb9844db587395c237a84bd4242feb41354d726130bd30701c6f6db60638b2f06ed60db7cad87b386
|
7
|
+
data.tar.gz: 10da81ee9b31d0125fb94ab6451e1e244183a352d042312264a0989496a4c87daeaefb9c5b802a96557075807f2168a6e23767d5e7c429f38fb4e040d5ebc48d
|
data/.env
CHANGED
data/Appraisals
CHANGED
@@ -345,7 +345,7 @@ elsif Gem::Version.new('2.2.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
345
345
|
gem 'mongo', '>= 2.8.0'
|
346
346
|
gem 'mysql2', '< 0.5', platform: :ruby
|
347
347
|
gem 'racecar', '>= 0.3.5'
|
348
|
-
gem 'rack', '< 2.1.0' #
|
348
|
+
gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
|
349
349
|
gem 'rack-test'
|
350
350
|
gem 'rake', '>= 12.3'
|
351
351
|
gem 'redis', '< 4.0'
|
@@ -502,8 +502,9 @@ elsif Gem::Version.new('2.3.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
502
502
|
gem 'hiredis'
|
503
503
|
gem 'mongo', '>= 2.8.0'
|
504
504
|
gem 'mysql2', '< 0.5', platform: :ruby
|
505
|
+
gem 'presto-client', '>= 0.5.14'
|
505
506
|
gem 'racecar', '>= 0.3.5'
|
506
|
-
gem 'rack', '< 2.1.0' #
|
507
|
+
gem 'rack', '< 2.1.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980
|
507
508
|
gem 'rack-test'
|
508
509
|
gem 'rake', '>= 12.3'
|
509
510
|
gem 'redis', '< 4.0'
|
@@ -576,7 +577,7 @@ elsif Gem::Version.new('2.4.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
576
577
|
gem 'mongo', '>= 2.8.0'
|
577
578
|
gem 'mysql2', '< 0.5', platform: :ruby
|
578
579
|
gem 'racecar', '>= 0.3.5'
|
579
|
-
gem 'rack'
|
580
|
+
gem 'rack'
|
580
581
|
gem 'rack-test'
|
581
582
|
gem 'rake', '>= 12.3'
|
582
583
|
gem 'redis', '< 4.0'
|
@@ -683,7 +684,7 @@ elsif Gem::Version.new('2.5.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
683
684
|
gem 'mongo', '>= 2.8.0'
|
684
685
|
gem 'mysql2', '< 0.5', platform: :ruby
|
685
686
|
gem 'racecar', '>= 0.3.5'
|
686
|
-
gem 'rack'
|
687
|
+
gem 'rack'
|
687
688
|
gem 'rack-test'
|
688
689
|
gem 'rake', '>= 12.3'
|
689
690
|
gem 'redis', '< 4.0'
|
@@ -789,8 +790,9 @@ elsif Gem::Version.new('2.6.0') <= Gem::Version.new(RUBY_VERSION) \
|
|
789
790
|
gem 'hiredis'
|
790
791
|
gem 'mongo', '>= 2.8.0'
|
791
792
|
gem 'mysql2', '< 0.5', platform: :ruby
|
793
|
+
gem 'presto-client', '>= 0.5.14'
|
792
794
|
gem 'racecar', '>= 0.3.5'
|
793
|
-
gem 'rack'
|
795
|
+
gem 'rack'
|
794
796
|
gem 'rack-test'
|
795
797
|
gem 'rake', '>= 12.3'
|
796
798
|
gem 'redis', '< 4.0'
|
@@ -898,8 +900,9 @@ elsif Gem::Version.new('2.7.0') <= Gem::Version.new(RUBY_VERSION)
|
|
898
900
|
gem 'hiredis'
|
899
901
|
gem 'mongo', '>= 2.8.0'
|
900
902
|
gem 'mysql2', '< 0.5', platform: :ruby
|
903
|
+
gem 'presto-client', '>= 0.5.14'
|
901
904
|
gem 'racecar', '>= 0.3.5'
|
902
|
-
gem 'rack'
|
905
|
+
gem 'rack'
|
903
906
|
gem 'rack-test'
|
904
907
|
gem 'rake', '>= 12.3'
|
905
908
|
gem 'redis', '< 4.0'
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,36 @@
|
|
2
2
|
|
3
3
|
## [Unreleased]
|
4
4
|
|
5
|
+
## [0.33.0] - 2020-03-05
|
6
|
+
|
7
|
+
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.33.0
|
8
|
+
|
9
|
+
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.32.0...v0.33.0
|
10
|
+
|
11
|
+
### Added
|
12
|
+
|
13
|
+
- Instrumentation for [Presto](https://github.com/treasure-data/presto-client-ruby) (#775, #920, #961) (@ahammel, @ericmustin)
|
14
|
+
- Sidekiq job argument tagging (#933) (@mantrala)
|
15
|
+
- Support for multiple Redis services (#861, #937, #940) (@mberlanda)
|
16
|
+
- Support for Sidekiq w/ Delayed extensions (#798, #942) (@joeyAghion)
|
17
|
+
- Setter/reset behavior for configuration options (#957)
|
18
|
+
- Priority sampling rate tag (#891)
|
19
|
+
|
20
|
+
### Changed
|
21
|
+
|
22
|
+
- Enforced minimum version requirements for instrumentation (#944)
|
23
|
+
- RubyGems minimum version requirement 2.0.0 (#954) (@Joas1988)
|
24
|
+
- Relaxed Rack minimum version to 1.1.0 (#952)
|
25
|
+
|
26
|
+
### Fixed
|
27
|
+
|
28
|
+
- AWS instrumentation patching when AWS is partially loaded (#938, #945) (@letiesperon, @illdelph)
|
29
|
+
- NoMethodError for RuleSampler with priority sampling (#949, #950) (@BabyGroot)
|
30
|
+
- Runtime metrics accumulating service names when disabled (#956)
|
31
|
+
- Sidekiq instrumentation incompatibility with Rails 6.0.2 (#943, #947) (@pj0tr)
|
32
|
+
- Documentation tweaks (#948, #955) (@mstruve, @link04)
|
33
|
+
- Various test suite issues (#930, #932, #951, #960)
|
34
|
+
|
5
35
|
## [0.32.0] - 2020-01-22
|
6
36
|
|
7
37
|
Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.32.0
|
@@ -1079,7 +1109,8 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
|
|
1079
1109
|
|
1080
1110
|
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
1081
1111
|
|
1082
|
-
[Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.
|
1112
|
+
[Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v0.33.0...master
|
1113
|
+
[0.33.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.32.0...v0.33.0
|
1083
1114
|
[0.32.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.31.1...v0.32.0
|
1084
1115
|
[0.31.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.31.0...v0.31.1
|
1085
1116
|
[0.31.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.30.1...v0.31.0
|
data/Rakefile
CHANGED
@@ -74,6 +74,7 @@ namespace :spec do
|
|
74
74
|
:http,
|
75
75
|
:mongodb,
|
76
76
|
:mysql2,
|
77
|
+
:presto,
|
77
78
|
:racecar,
|
78
79
|
:rack,
|
79
80
|
:rake,
|
@@ -523,7 +524,7 @@ task :ci do
|
|
523
524
|
sh 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
|
524
525
|
sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
|
525
526
|
sh 'bundle exec appraisal rails5-postgres rake spec:rails'
|
526
|
-
sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
|
527
|
+
# sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
|
527
528
|
sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
|
528
529
|
sh 'bundle exec appraisal rails6-postgres rake spec:rails'
|
529
530
|
end
|
@@ -588,7 +589,7 @@ task :ci do
|
|
588
589
|
sh 'bundle exec appraisal rails5-mysql2 rake spec:action_cable'
|
589
590
|
sh 'bundle exec appraisal rails5-mysql2 rake spec:rails'
|
590
591
|
sh 'bundle exec appraisal rails5-postgres rake spec:rails'
|
591
|
-
sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable'
|
592
|
+
# sh 'bundle exec appraisal rails6-mysql2 rake spec:action_cable' # TODO: Hangs CI jobs... fix and re-enable.
|
592
593
|
sh 'bundle exec appraisal rails6-mysql2 rake spec:rails'
|
593
594
|
sh 'bundle exec appraisal rails6-postgres rake spec:rails'
|
594
595
|
end
|
data/ddtrace.gemspec
CHANGED
@@ -8,6 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.name = 'ddtrace'
|
9
9
|
spec.version = Datadog::VERSION::STRING
|
10
10
|
spec.required_ruby_version = ">= #{Datadog::VERSION::MINIMUM_RUBY_VERSION}"
|
11
|
+
spec.required_rubygems_version = '>= 2.0.0'
|
11
12
|
spec.authors = ['Datadog, Inc.']
|
12
13
|
spec.email = ['dev@datadoghq.com']
|
13
14
|
|
@@ -59,5 +60,5 @@ Gem::Specification.new do |spec|
|
|
59
60
|
spec.add_development_dependency 'redcarpet', '~> 3.4' if RUBY_PLATFORM != 'java'
|
60
61
|
spec.add_development_dependency 'pry', '~> 0.10.4'
|
61
62
|
spec.add_development_dependency 'pry-stack_explorer', '~> 0.4.9.2'
|
62
|
-
spec.add_development_dependency 'warning' if RUBY_VERSION >= '2.5.0'
|
63
|
+
spec.add_development_dependency 'warning', '~> 1' if RUBY_VERSION >= '2.5.0'
|
63
64
|
end
|
data/docker-compose.yml
CHANGED
@@ -150,6 +150,7 @@ services:
|
|
150
150
|
- mongodb
|
151
151
|
- mysql
|
152
152
|
- postgres
|
153
|
+
- presto
|
153
154
|
- redis
|
154
155
|
env_file: ./.env
|
155
156
|
environment:
|
@@ -161,6 +162,8 @@ services:
|
|
161
162
|
- TEST_MONGODB_HOST=mongodb
|
162
163
|
- TEST_MYSQL_HOST=mysql
|
163
164
|
- TEST_POSTGRES_HOST=postgres
|
165
|
+
- TEST_PRESTO_HOST=presto
|
166
|
+
- TEST_PRESTO_PORT=8080
|
164
167
|
- TEST_REDIS_HOST=redis
|
165
168
|
stdin_open: true
|
166
169
|
tty: true
|
@@ -281,6 +284,12 @@ services:
|
|
281
284
|
- "5432"
|
282
285
|
ports:
|
283
286
|
- "${TEST_POSTGRES_PORT}:5432"
|
287
|
+
presto:
|
288
|
+
image: prestosql/presto
|
289
|
+
expose:
|
290
|
+
- "8080"
|
291
|
+
ports:
|
292
|
+
- "${TEST_PRESTO_PORT}:8080"
|
284
293
|
redis:
|
285
294
|
image: redis:3.0
|
286
295
|
expose:
|
data/docs/GettingStarted.md
CHANGED
@@ -36,7 +36,7 @@ To contribute, check out the [contribution guidelines][contribution docs] and [d
|
|
36
36
|
- [Concurrent Ruby](#concurrent-ruby)
|
37
37
|
- [Dalli](#dalli)
|
38
38
|
- [DelayedJob](#delayedjob)
|
39
|
-
- [
|
39
|
+
- [Elasticsearch](#elasticsearch)
|
40
40
|
- [Ethon & Typhoeus](#ethon)
|
41
41
|
- [Excon](#excon)
|
42
42
|
- [Faraday](#faraday)
|
@@ -45,7 +45,8 @@ To contribute, check out the [contribution guidelines][contribution docs] and [d
|
|
45
45
|
- [gRPC](#grpc)
|
46
46
|
- [MongoDB](#mongodb)
|
47
47
|
- [MySQL2](#mysql2)
|
48
|
-
- [Net/HTTP](#
|
48
|
+
- [Net/HTTP](#net-http)
|
49
|
+
- [Presto](#presto)
|
49
50
|
- [Racecar](#racecar)
|
50
51
|
- [Rack](#rack)
|
51
52
|
- [Rails](#rails)
|
@@ -336,7 +337,7 @@ For a list of available integrations, and their configuration options, please re
|
|
336
337
|
| Concurrent Ruby | `concurrent_ruby` | `>= 0.9` | *[Link](#concurrent-ruby)* | *[Link](https://github.com/ruby-concurrency/concurrent-ruby)* |
|
337
338
|
| Dalli | `dalli` | `>= 2.7` | *[Link](#dalli)* | *[Link](https://github.com/petergoldstein/dalli)* |
|
338
339
|
| DelayedJob | `delayed_job` | `>= 4.1` | *[Link](#delayedjob)* | *[Link](https://github.com/collectiveidea/delayed_job)* |
|
339
|
-
|
|
340
|
+
| Elasticsearch | `elasticsearch` | `>= 6.0` | *[Link](#elasticsearch)* | *[Link](https://github.com/elastic/elasticsearch-ruby)* |
|
340
341
|
| Ethon | `ethon` | `>= 0.11.0` | *[Link](#ethon)* | *[Link](https://github.com/typhoeus/ethon)* |
|
341
342
|
| Excon | `excon` | `>= 0.62` | *[Link](#excon)* | *[Link](https://github.com/excon/excon)* |
|
342
343
|
| Faraday | `faraday` | `>= 0.14` | *[Link](#faraday)* | *[Link](https://github.com/lostisland/faraday)* |
|
@@ -346,8 +347,9 @@ For a list of available integrations, and their configuration options, please re
|
|
346
347
|
| MongoDB | `mongo` | `>= 2.0` | *[Link](#mongodb)* | *[Link](https://github.com/mongodb/mongo-ruby-driver)* |
|
347
348
|
| MySQL2 | `mysql2` | `>= 0.3.21` | *[Link](#mysql2)* | *[Link](https://github.com/brianmario/mysql2)* |
|
348
349
|
| Net/HTTP | `http` | *(Any supported Ruby)* | *[Link](#nethttp)* | *[Link](https://ruby-doc.org/stdlib-2.4.0/libdoc/net/http/rdoc/Net/HTTP.html)* |
|
350
|
+
| Presto | `presto` | `>= 0.5.14` | *[Link](#presto)* | *[Link](https://github.com/treasure-data/presto-client-ruby)* |
|
349
351
|
| Racecar | `racecar` | `>= 0.3.5` | *[Link](#racecar)* | *[Link](https://github.com/zendesk/racecar)* |
|
350
|
-
| Rack | `rack` | `>= 1.
|
352
|
+
| Rack | `rack` | `>= 1.1.0` | *[Link](#rack)* | *[Link](https://github.com/rack/rack)* |
|
351
353
|
| Rails | `rails` | `>= 3.2` | *[Link](#rails)* | *[Link](https://github.com/rails/rails)* |
|
352
354
|
| Rake | `rake` | `>= 12.0` | *[Link](#rake)* | *[Link](https://github.com/ruby/rake)* |
|
353
355
|
| Redis | `redis` | `>= 3.2` | *[Link](#redis)* | *[Link](https://github.com/redis/redis-rb)* |
|
@@ -637,7 +639,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
|
|
637
639
|
| `service_name` | Service name used for `DelayedJob` instrumentation | `'delayed_job'` |
|
638
640
|
| `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
|
639
641
|
|
640
|
-
###
|
642
|
+
### Elasticsearch
|
641
643
|
|
642
644
|
The Elasticsearch integration will trace any call to `perform_request` in the `Client` object:
|
643
645
|
|
@@ -649,7 +651,7 @@ Datadog.configure do |c|
|
|
649
651
|
c.use :elasticsearch, options
|
650
652
|
end
|
651
653
|
|
652
|
-
# Perform a query to
|
654
|
+
# Perform a query to Elasticsearch
|
653
655
|
client = Elasticsearch::Client.new url: 'http://127.0.0.1:9200'
|
654
656
|
response = client.perform_request 'GET', '_cluster/health'
|
655
657
|
```
|
@@ -1015,6 +1017,39 @@ client = Net::HTTP.new(host, port)
|
|
1015
1017
|
Datadog.configure(client, options)
|
1016
1018
|
```
|
1017
1019
|
|
1020
|
+
### Presto
|
1021
|
+
|
1022
|
+
The Presto integration traces any SQL command sent through `presto-client` gem.
|
1023
|
+
|
1024
|
+
```ruby
|
1025
|
+
require 'presto-client'
|
1026
|
+
require 'ddtrace'
|
1027
|
+
|
1028
|
+
Datadog.configure do |c|
|
1029
|
+
c.use :presto, options
|
1030
|
+
end
|
1031
|
+
|
1032
|
+
client = Presto::Client.new(
|
1033
|
+
server: "localhost:8880",
|
1034
|
+
ssl: {verify: false},
|
1035
|
+
catalog: "native",
|
1036
|
+
schema: "default",
|
1037
|
+
time_zone: "US/Pacific",
|
1038
|
+
language: "English",
|
1039
|
+
http_debug: true,
|
1040
|
+
)
|
1041
|
+
|
1042
|
+
client.run("select * from system.nodes")
|
1043
|
+
```
|
1044
|
+
|
1045
|
+
Where `options` is an optional `Hash` that accepts the following parameters:
|
1046
|
+
|
1047
|
+
| Key | Description | Default |
|
1048
|
+
| --- | ----------- | ------- |
|
1049
|
+
| `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `false` |
|
1050
|
+
| `service_name` | Service name used for `presto` instrumentation | `'presto'` |
|
1051
|
+
| `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
|
1052
|
+
|
1018
1053
|
### Racecar
|
1019
1054
|
|
1020
1055
|
The Racecar integration provides tracing for Racecar jobs.
|
@@ -1258,6 +1293,33 @@ customer_cache.get(...)
|
|
1258
1293
|
invoice_cache.get(...)
|
1259
1294
|
```
|
1260
1295
|
|
1296
|
+
**Configuring trace settings per connection**
|
1297
|
+
|
1298
|
+
You can configure trace settings per connection by using the `describes` option:
|
1299
|
+
|
1300
|
+
```ruby
|
1301
|
+
# Provide a `:describes` option with a connection key.
|
1302
|
+
# Any of the following keys are acceptable and equivalent to one another.
|
1303
|
+
# If a block is provided, it yields a Settings object that
|
1304
|
+
# accepts any of the configuration options listed above.
|
1305
|
+
|
1306
|
+
Datadog.configure do |c|
|
1307
|
+
# The default configuration for any redis client
|
1308
|
+
c.use :redis, service_name: 'redis-default'
|
1309
|
+
|
1310
|
+
# The configuration matching a given unix socket
|
1311
|
+
c.use :redis, describes: { url: 'unix://path/to/file' }, service_name: 'redis-unix'
|
1312
|
+
|
1313
|
+
# Connection string
|
1314
|
+
c.use :redis, describes: { url: 'redis://127.0.0.1:6379/0' }, service_name: 'redis-connection-string'
|
1315
|
+
# Client host, port, db, scheme
|
1316
|
+
c.use :redis, describes: { host: 'my-host.com', port: 6379, db: 1, scheme: 'redis' }, service_name: 'redis-connection-hash'
|
1317
|
+
# Only a subset of the connection hash
|
1318
|
+
c.use :redis, describes: { host: ENV['APP_CACHE_HOST'], port: ENV['APP_CACHE_PORT'] }, service_name: 'redis-cache'
|
1319
|
+
c.use :redis, describes: { host: ENV['SIDEKIQ_CACHE_HOST'] }, service_name: 'redis-sidekiq'
|
1320
|
+
end
|
1321
|
+
```
|
1322
|
+
|
1261
1323
|
### Resque
|
1262
1324
|
|
1263
1325
|
The Resque integration uses Resque hooks that wraps the `perform` method.
|
@@ -1401,6 +1463,7 @@ Where `options` is an optional `Hash` that accepts the following parameters:
|
|
1401
1463
|
| `analytics_enabled` | Enable analytics for spans produced by this integration. `true` for on, `nil` to defer to global setting, `false` for off. | `false` |
|
1402
1464
|
| `client_service_name` | Service name used for client-side `sidekiq` instrumentation | `'sidekiq-client'` |
|
1403
1465
|
| `service_name` | Service name used for server-side `sidekiq` instrumentation | `'sidekiq'` |
|
1466
|
+
| `tag_args` | Enable tagging of job arguments. `true` for on, `false` for off. | `false` |
|
1404
1467
|
| `tracer` | `Datadog::Tracer` used to perform instrumentation. Usually you don't need to set this. | `Datadog.tracer` |
|
1405
1468
|
|
1406
1469
|
### Sinatra
|
data/lib/ddtrace.rb
CHANGED
@@ -52,6 +52,7 @@ require 'ddtrace/contrib/graphql/integration'
|
|
52
52
|
require 'ddtrace/contrib/grpc/integration'
|
53
53
|
require 'ddtrace/contrib/http/integration'
|
54
54
|
require 'ddtrace/contrib/integration'
|
55
|
+
require 'ddtrace/contrib/presto/integration'
|
55
56
|
require 'ddtrace/contrib/mysql2/integration'
|
56
57
|
require 'ddtrace/contrib/mongodb/integration'
|
57
58
|
require 'ddtrace/contrib/racecar/integration'
|
@@ -13,9 +13,10 @@ module Datadog
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def set(value)
|
16
|
-
|
16
|
+
old_value = @value
|
17
|
+
(@value = context_exec(value, old_value, &definition.setter)).tap do |v|
|
17
18
|
@is_set = true
|
18
|
-
context_exec(v, &definition.on_set) if definition.on_set
|
19
|
+
context_exec(v, old_value, &definition.on_set) if definition.on_set
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
@@ -16,14 +16,12 @@ module Datadog
|
|
16
16
|
&& Gem.loaded_specs['active_model_serializers'].version
|
17
17
|
end
|
18
18
|
|
19
|
-
def self.
|
20
|
-
|
19
|
+
def self.loaded?
|
20
|
+
defined?(::ActiveModel::Serializer) && defined?(::ActiveSupport::Notifications)
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.compatible?
|
24
|
-
super
|
25
|
-
&& defined?(::ActiveSupport::Notifications) \
|
26
|
-
&& version >= Gem::Version.new('0.9.0')
|
24
|
+
super && version >= Gem::Version.new('0.9.0')
|
27
25
|
end
|
28
26
|
|
29
27
|
def default_configuration
|
@@ -11,6 +11,10 @@ module Datadog
|
|
11
11
|
@configurations = configurations
|
12
12
|
end
|
13
13
|
|
14
|
+
def resolve(key)
|
15
|
+
normalize(connection_resolver.resolve(key).symbolize_keys)
|
16
|
+
end
|
17
|
+
|
14
18
|
def configurations
|
15
19
|
@configurations || ::ActiveRecord::Base.configurations
|
16
20
|
end
|
@@ -25,11 +29,6 @@ module Datadog
|
|
25
29
|
end
|
26
30
|
end
|
27
31
|
|
28
|
-
def resolve(spec)
|
29
|
-
return :default if spec == :default
|
30
|
-
normalize(connection_resolver.resolve(spec).symbolize_keys)
|
31
|
-
end
|
32
|
-
|
33
32
|
def normalize(hash)
|
34
33
|
{
|
35
34
|
adapter: hash[:adapter],
|