ddtrace 0.32.0 → 0.33.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.
- 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],
|