ddtrace 0.16.1 → 0.17.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 +4 -4
- data/Appraisals +3 -3
- data/CHANGELOG.md +24 -2
- data/Rakefile +14 -28
- data/docker-compose.yml +1 -0
- data/docs/GettingStarted.md +302 -263
- data/lib/ddtrace.rb +22 -21
- data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +23 -0
- data/lib/ddtrace/contrib/active_model_serializers/event.rb +4 -2
- data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +2 -2
- data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +2 -2
- data/lib/ddtrace/contrib/active_model_serializers/ext.rb +17 -0
- data/lib/ddtrace/contrib/active_model_serializers/integration.rb +39 -0
- data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +24 -43
- data/lib/ddtrace/contrib/active_record/configuration/settings.rb +3 -2
- data/lib/ddtrace/contrib/active_record/events/instantiation.rb +6 -7
- data/lib/ddtrace/contrib/active_record/events/sql.rb +10 -8
- data/lib/ddtrace/contrib/active_record/ext.rb +22 -0
- data/lib/ddtrace/contrib/aws/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/aws/ext.rb +21 -0
- data/lib/ddtrace/contrib/aws/instrumentation.rb +11 -9
- data/lib/ddtrace/contrib/aws/integration.rb +32 -0
- data/lib/ddtrace/contrib/aws/patcher.rb +42 -41
- data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +3 -1
- data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +11 -0
- data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +7 -3
- data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +1 -0
- data/lib/ddtrace/contrib/dalli/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/dalli/ext.rb +15 -0
- data/lib/ddtrace/contrib/dalli/instrumentation.rb +3 -3
- data/lib/ddtrace/contrib/dalli/integration.rb +36 -0
- data/lib/ddtrace/contrib/dalli/patcher.rb +31 -38
- data/lib/ddtrace/contrib/dalli/quantize.rb +3 -3
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/delayed_job/ext.rb +18 -0
- data/lib/ddtrace/contrib/delayed_job/integration.rb +32 -0
- data/lib/ddtrace/contrib/delayed_job/patcher.rb +20 -27
- data/lib/ddtrace/contrib/delayed_job/plugin.rb +7 -6
- data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +16 -0
- data/lib/ddtrace/contrib/elasticsearch/ext.rb +18 -0
- data/lib/ddtrace/contrib/elasticsearch/integration.rb +37 -0
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +30 -39
- data/lib/ddtrace/contrib/excon/configuration/settings.rb +18 -0
- data/lib/ddtrace/contrib/excon/ext.rb +13 -0
- data/lib/ddtrace/contrib/excon/integration.rb +32 -0
- data/lib/ddtrace/contrib/excon/middleware.rb +10 -10
- data/lib/ddtrace/contrib/excon/patcher.rb +14 -30
- data/lib/ddtrace/contrib/faraday/configuration/settings.rb +23 -0
- data/lib/ddtrace/contrib/faraday/ext.rb +13 -0
- data/lib/ddtrace/contrib/faraday/integration.rb +36 -0
- data/lib/ddtrace/contrib/faraday/middleware.rb +10 -9
- data/lib/ddtrace/contrib/faraday/patcher.rb +39 -54
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +16 -0
- data/lib/ddtrace/contrib/grape/endpoint.rb +10 -13
- data/lib/ddtrace/contrib/grape/ext.rb +19 -0
- data/lib/ddtrace/contrib/grape/integration.rb +36 -0
- data/lib/ddtrace/contrib/grape/patcher.rb +24 -24
- data/lib/ddtrace/contrib/graphql/configuration/settings.rb +20 -0
- data/lib/ddtrace/contrib/graphql/ext.rb +11 -0
- data/lib/ddtrace/contrib/graphql/integration.rb +38 -0
- data/lib/ddtrace/contrib/graphql/patcher.rb +33 -41
- data/lib/ddtrace/contrib/grpc/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +5 -2
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +5 -2
- data/lib/ddtrace/contrib/grpc/ext.rb +14 -0
- data/lib/ddtrace/contrib/grpc/integration.rb +38 -0
- data/lib/ddtrace/contrib/grpc/patcher.rb +25 -35
- data/lib/ddtrace/contrib/http/circuit_breaker.rb +39 -0
- data/lib/ddtrace/contrib/http/configuration/settings.rb +16 -0
- data/lib/ddtrace/contrib/http/ext.rb +13 -0
- data/lib/ddtrace/contrib/http/integration.rb +32 -0
- data/lib/ddtrace/contrib/http/patcher.rb +10 -58
- data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +18 -0
- data/lib/ddtrace/contrib/mongodb/ext.rb +20 -0
- data/lib/ddtrace/contrib/mongodb/integration.rb +36 -0
- data/lib/ddtrace/contrib/mongodb/patcher.rb +17 -27
- data/lib/ddtrace/contrib/mongodb/subscribers.rb +12 -11
- data/lib/ddtrace/contrib/mysql2/client.rb +8 -6
- data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/mysql2/ext.rb +15 -0
- data/lib/ddtrace/contrib/mysql2/integration.rb +32 -0
- data/lib/ddtrace/contrib/mysql2/patcher.rb +12 -22
- data/lib/ddtrace/contrib/racecar/configuration/settings.rb +23 -0
- data/lib/ddtrace/contrib/racecar/event.rb +7 -6
- data/lib/ddtrace/contrib/racecar/events/batch.rb +2 -2
- data/lib/ddtrace/contrib/racecar/events/message.rb +2 -2
- data/lib/ddtrace/contrib/racecar/ext.rb +21 -0
- data/lib/ddtrace/contrib/racecar/integration.rb +36 -0
- data/lib/ddtrace/contrib/racecar/patcher.rb +24 -41
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +39 -0
- data/lib/ddtrace/contrib/rack/ext.rb +18 -0
- data/lib/ddtrace/contrib/rack/integration.rb +32 -0
- data/lib/ddtrace/contrib/rack/middlewares.rb +5 -2
- data/lib/ddtrace/contrib/rack/patcher.rb +22 -40
- data/lib/ddtrace/contrib/rails/action_controller.rb +10 -7
- data/lib/ddtrace/contrib/rails/action_controller_patch.rb +1 -0
- data/lib/ddtrace/contrib/rails/active_support.rb +9 -9
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +26 -0
- data/lib/ddtrace/contrib/rails/core_extensions.rb +12 -15
- data/lib/ddtrace/contrib/rails/ext.rb +30 -0
- data/lib/ddtrace/contrib/rails/framework.rb +3 -2
- data/lib/ddtrace/contrib/rails/integration.rb +37 -0
- data/lib/ddtrace/contrib/rails/patcher.rb +56 -63
- data/lib/ddtrace/contrib/rails/railtie.rb +3 -10
- data/lib/ddtrace/contrib/rake/configuration/settings.rb +17 -0
- data/lib/ddtrace/contrib/rake/ext.rb +18 -0
- data/lib/ddtrace/contrib/rake/instrumentation.rb +7 -8
- data/lib/ddtrace/contrib/rake/integration.rb +36 -0
- data/lib/ddtrace/contrib/rake/patcher.rb +23 -33
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/redis/ext.rb +19 -0
- data/lib/ddtrace/contrib/redis/integration.rb +36 -0
- data/lib/ddtrace/contrib/redis/patcher.rb +21 -29
- data/lib/ddtrace/contrib/redis/tags.rb +3 -3
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +16 -0
- data/lib/ddtrace/contrib/resque/ext.rb +13 -0
- data/lib/ddtrace/contrib/resque/integration.rb +37 -0
- data/lib/ddtrace/contrib/resque/patcher.rb +30 -36
- data/lib/ddtrace/contrib/resque/resque_job.rb +2 -1
- data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +5 -8
- data/lib/ddtrace/contrib/rest_client/ext.rb +13 -0
- data/lib/ddtrace/contrib/rest_client/integration.rb +9 -1
- data/lib/ddtrace/contrib/rest_client/patcher.rb +1 -1
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +9 -10
- data/lib/ddtrace/contrib/sequel/configuration/settings.rb +2 -0
- data/lib/ddtrace/contrib/sequel/database.rb +4 -3
- data/lib/ddtrace/contrib/sequel/dataset.rb +3 -2
- data/lib/ddtrace/contrib/sequel/ext.rb +15 -0
- data/lib/ddtrace/contrib/sequel/integration.rb +1 -3
- data/lib/ddtrace/contrib/sequel/patcher.rb +0 -1
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/sidekiq/ext.rb +19 -0
- data/lib/ddtrace/contrib/sidekiq/integration.rb +36 -0
- data/lib/ddtrace/contrib/sidekiq/patcher.rb +18 -18
- data/lib/ddtrace/contrib/sidekiq/tracer.rb +10 -10
- data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +27 -0
- data/lib/ddtrace/contrib/sinatra/env.rb +3 -4
- data/lib/ddtrace/contrib/sinatra/ext.rb +19 -0
- data/lib/ddtrace/contrib/sinatra/integration.rb +36 -0
- data/lib/ddtrace/contrib/sinatra/patcher.rb +33 -0
- data/lib/ddtrace/contrib/sinatra/tracer.rb +4 -34
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +2 -3
- data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +15 -0
- data/lib/ddtrace/contrib/sucker_punch/ext.rb +18 -0
- data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +6 -5
- data/lib/ddtrace/contrib/sucker_punch/integration.rb +36 -0
- data/lib/ddtrace/contrib/sucker_punch/patcher.rb +29 -35
- data/lib/ddtrace/encoding.rb +21 -16
- data/lib/ddtrace/span.rb +29 -0
- data/lib/ddtrace/transport.rb +2 -2
- data/lib/ddtrace/version.rb +2 -2
- metadata +74 -6
- data/lib/ddtrace/ext/cache.rb +0 -8
- data/lib/ddtrace/ext/grpc.rb +0 -7
- data/lib/ddtrace/ext/mongo.rb +0 -12
- data/lib/ddtrace/ext/redis.rb +0 -17
data/lib/ddtrace.rb
CHANGED
|
@@ -44,30 +44,31 @@ module Datadog
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
require 'ddtrace/contrib/base'
|
|
47
|
-
require 'ddtrace/contrib/active_model_serializers/
|
|
47
|
+
require 'ddtrace/contrib/active_model_serializers/integration'
|
|
48
48
|
require 'ddtrace/contrib/active_record/integration'
|
|
49
|
-
require 'ddtrace/contrib/aws/
|
|
49
|
+
require 'ddtrace/contrib/aws/integration'
|
|
50
50
|
require 'ddtrace/contrib/concurrent_ruby/integration'
|
|
51
|
-
require 'ddtrace/contrib/dalli/
|
|
52
|
-
require 'ddtrace/contrib/delayed_job/
|
|
53
|
-
require 'ddtrace/contrib/elasticsearch/
|
|
54
|
-
require 'ddtrace/contrib/excon/
|
|
55
|
-
require 'ddtrace/contrib/faraday/
|
|
56
|
-
require 'ddtrace/contrib/grape/
|
|
57
|
-
require 'ddtrace/contrib/graphql/
|
|
58
|
-
require 'ddtrace/contrib/grpc/
|
|
59
|
-
require 'ddtrace/contrib/http/
|
|
51
|
+
require 'ddtrace/contrib/dalli/integration'
|
|
52
|
+
require 'ddtrace/contrib/delayed_job/integration'
|
|
53
|
+
require 'ddtrace/contrib/elasticsearch/integration'
|
|
54
|
+
require 'ddtrace/contrib/excon/integration'
|
|
55
|
+
require 'ddtrace/contrib/faraday/integration'
|
|
56
|
+
require 'ddtrace/contrib/grape/integration'
|
|
57
|
+
require 'ddtrace/contrib/graphql/integration'
|
|
58
|
+
require 'ddtrace/contrib/grpc/integration'
|
|
59
|
+
require 'ddtrace/contrib/http/integration'
|
|
60
60
|
require 'ddtrace/contrib/integration'
|
|
61
|
-
require 'ddtrace/contrib/
|
|
62
|
-
require 'ddtrace/contrib/
|
|
63
|
-
require 'ddtrace/contrib/racecar/
|
|
64
|
-
require 'ddtrace/contrib/rack/
|
|
65
|
-
require 'ddtrace/contrib/rails/
|
|
66
|
-
require 'ddtrace/contrib/rake/
|
|
67
|
-
require 'ddtrace/contrib/redis/
|
|
68
|
-
require 'ddtrace/contrib/resque/
|
|
61
|
+
require 'ddtrace/contrib/mysql2/integration'
|
|
62
|
+
require 'ddtrace/contrib/mongodb/integration'
|
|
63
|
+
require 'ddtrace/contrib/racecar/integration'
|
|
64
|
+
require 'ddtrace/contrib/rack/integration'
|
|
65
|
+
require 'ddtrace/contrib/rails/integration'
|
|
66
|
+
require 'ddtrace/contrib/rake/integration'
|
|
67
|
+
require 'ddtrace/contrib/redis/integration'
|
|
68
|
+
require 'ddtrace/contrib/resque/integration'
|
|
69
69
|
require 'ddtrace/contrib/rest_client/integration'
|
|
70
70
|
require 'ddtrace/contrib/sequel/integration'
|
|
71
|
-
require 'ddtrace/contrib/sidekiq/
|
|
72
|
-
require 'ddtrace/contrib/
|
|
71
|
+
require 'ddtrace/contrib/sidekiq/integration'
|
|
72
|
+
require 'ddtrace/contrib/sinatra/integration'
|
|
73
|
+
require 'ddtrace/contrib/sucker_punch/integration'
|
|
73
74
|
require 'ddtrace/monkey'
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require 'ddtrace/contrib/configuration/settings'
|
|
2
|
+
require 'ddtrace/contrib/active_model_serializers/ext'
|
|
3
|
+
|
|
4
|
+
module Datadog
|
|
5
|
+
module Contrib
|
|
6
|
+
module ActiveModelSerializers
|
|
7
|
+
module Configuration
|
|
8
|
+
# Custom settings for the ActiveModelSerializers integration
|
|
9
|
+
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :service_name, default: Ext::SERVICE_NAME
|
|
11
|
+
option :tracer, default: Datadog.tracer do |value|
|
|
12
|
+
(value || Datadog.tracer).tap do |v|
|
|
13
|
+
# Make sure to update tracers of all subscriptions
|
|
14
|
+
Events.subscriptions.each do |subscription|
|
|
15
|
+
subscription.tracer = v
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
require 'ddtrace/ext/http'
|
|
1
2
|
require 'ddtrace/contrib/active_support/notifications/event'
|
|
3
|
+
require 'ddtrace/contrib/active_model_serializers/ext'
|
|
2
4
|
|
|
3
5
|
module Datadog
|
|
4
6
|
module Contrib
|
|
@@ -31,12 +33,12 @@ module Datadog
|
|
|
31
33
|
# Set the resource name and serializer name
|
|
32
34
|
res = resource(payload[:serializer])
|
|
33
35
|
span.resource = res
|
|
34
|
-
span.set_tag(
|
|
36
|
+
span.set_tag(Ext::TAG_SERIALIZER, res)
|
|
35
37
|
|
|
36
38
|
span.span_type = Datadog::Ext::HTTP::TEMPLATE
|
|
37
39
|
|
|
38
40
|
# Will be nil in 0.9
|
|
39
|
-
span.set_tag(
|
|
41
|
+
span.set_tag(Ext::TAG_ADAPTER, payload[:adapter].class) unless payload[:adapter].nil?
|
|
40
42
|
end
|
|
41
43
|
|
|
42
44
|
private
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require 'ddtrace/contrib/active_model_serializers/ext'
|
|
1
2
|
require 'ddtrace/contrib/active_model_serializers/event'
|
|
2
3
|
|
|
3
4
|
module Datadog
|
|
@@ -9,7 +10,6 @@ module Datadog
|
|
|
9
10
|
include ActiveModelSerializers::Event
|
|
10
11
|
|
|
11
12
|
EVENT_NAME = 'render.active_model_serializers'.freeze
|
|
12
|
-
SPAN_NAME = 'active_model_serializers.render'.freeze
|
|
13
13
|
|
|
14
14
|
module_function
|
|
15
15
|
|
|
@@ -23,7 +23,7 @@ module Datadog
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def span_name
|
|
26
|
-
|
|
26
|
+
Ext::SPAN_RENDER
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require 'ddtrace/contrib/active_model_serializers/ext'
|
|
1
2
|
require 'ddtrace/contrib/active_model_serializers/event'
|
|
2
3
|
|
|
3
4
|
module Datadog
|
|
@@ -9,7 +10,6 @@ module Datadog
|
|
|
9
10
|
include ActiveModelSerializers::Event
|
|
10
11
|
|
|
11
12
|
EVENT_NAME = '!serialize.active_model_serializers'.freeze
|
|
12
|
-
SPAN_NAME = 'active_model_serializers.serialize'.freeze
|
|
13
13
|
|
|
14
14
|
module_function
|
|
15
15
|
|
|
@@ -26,7 +26,7 @@ module Datadog
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def span_name
|
|
29
|
-
|
|
29
|
+
Ext::SPAN_SERIALIZE
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Datadog
|
|
2
|
+
module Contrib
|
|
3
|
+
module ActiveModelSerializers
|
|
4
|
+
# ActiveModelSerializers integration constants
|
|
5
|
+
module Ext
|
|
6
|
+
APP = 'active_model_serializers'.freeze
|
|
7
|
+
SERVICE_NAME = 'active_model_serializers'.freeze
|
|
8
|
+
|
|
9
|
+
SPAN_RENDER = 'active_model_serializers.render'.freeze
|
|
10
|
+
SPAN_SERIALIZE = 'active_model_serializers.serialize'.freeze
|
|
11
|
+
|
|
12
|
+
TAG_ADAPTER = 'active_model_serializers.adapter'.freeze
|
|
13
|
+
TAG_SERIALIZER = 'active_model_serializers.serializer'.freeze
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'ddtrace/contrib/integration'
|
|
2
|
+
require 'ddtrace/contrib/active_model_serializers/configuration/settings'
|
|
3
|
+
require 'ddtrace/contrib/active_model_serializers/patcher'
|
|
4
|
+
|
|
5
|
+
module Datadog
|
|
6
|
+
module Contrib
|
|
7
|
+
module ActiveModelSerializers
|
|
8
|
+
# Description of ActiveModelSerializers integration
|
|
9
|
+
class Integration
|
|
10
|
+
include Contrib::Integration
|
|
11
|
+
|
|
12
|
+
register_as :active_model_serializers
|
|
13
|
+
|
|
14
|
+
def self.version
|
|
15
|
+
Gem.loaded_specs['active_model_serializers'] \
|
|
16
|
+
&& Gem.loaded_specs['active_model_serializers'].version
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.present?
|
|
20
|
+
super && defined?(::ActiveModel::Serializer)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.compatible?
|
|
24
|
+
super \
|
|
25
|
+
&& defined?(::ActiveSupport::Notifications) \
|
|
26
|
+
&& version >= Gem::Version.new('0.9.0')
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def default_configuration
|
|
30
|
+
Configuration::Settings.new
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def patcher
|
|
34
|
+
Patcher
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -1,60 +1,41 @@
|
|
|
1
|
+
require 'ddtrace/contrib/patcher'
|
|
1
2
|
require 'ddtrace/ext/app_types'
|
|
2
|
-
require 'ddtrace/ext
|
|
3
|
+
require 'ddtrace/contrib/active_model_serializers/ext'
|
|
3
4
|
require 'ddtrace/contrib/active_model_serializers/events'
|
|
4
5
|
|
|
5
6
|
module Datadog
|
|
6
7
|
module Contrib
|
|
7
8
|
module ActiveModelSerializers
|
|
8
|
-
#
|
|
9
|
+
# Patcher enables patching of 'active_model_serializers' module.
|
|
9
10
|
module Patcher
|
|
10
|
-
include
|
|
11
|
+
include Contrib::Patcher
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
module_function
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
def patched?
|
|
16
|
+
done?(:active_model_serializers)
|
|
17
|
+
end
|
|
15
18
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
def patch
|
|
20
|
+
do_once(:active_model_serializers) do
|
|
21
|
+
begin
|
|
22
|
+
# Subscribe to ActiveModelSerializers events
|
|
23
|
+
Events.subscribe!
|
|
24
|
+
|
|
25
|
+
# Set service info
|
|
26
|
+
get_option(:tracer).set_service_info(
|
|
27
|
+
get_option(:service_name),
|
|
28
|
+
Ext::APP,
|
|
29
|
+
Datadog::Ext::AppTypes::WEB
|
|
30
|
+
)
|
|
31
|
+
rescue StandardError => e
|
|
32
|
+
Datadog::Tracer.log.error("Unable to apply ActiveModelSerializers integration: #{e}")
|
|
22
33
|
end
|
|
23
34
|
end
|
|
24
35
|
end
|
|
25
36
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return patched? if patched? || !compatible?
|
|
29
|
-
|
|
30
|
-
# Subscribe to ActiveModelSerializers events
|
|
31
|
-
Events.subscribe!
|
|
32
|
-
|
|
33
|
-
# Set service info
|
|
34
|
-
configuration[:tracer].set_service_info(
|
|
35
|
-
configuration[:service_name],
|
|
36
|
-
'active_model_serializers',
|
|
37
|
-
Ext::AppTypes::WEB
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
@patched = true
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def patched?
|
|
44
|
-
return @patched if defined?(@patched)
|
|
45
|
-
@patched = false
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
private
|
|
49
|
-
|
|
50
|
-
def configuration
|
|
51
|
-
Datadog.configuration[:active_model_serializers]
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def compatible?
|
|
55
|
-
Gem.loaded_specs['active_model_serializers'] && Gem.loaded_specs['activesupport'] \
|
|
56
|
-
&& Gem.loaded_specs['active_model_serializers'].version >= VERSION_REQUIRED
|
|
57
|
-
end
|
|
37
|
+
def get_option(option)
|
|
38
|
+
Datadog.configuration[:active_model_serializers].get_option(option)
|
|
58
39
|
end
|
|
59
40
|
end
|
|
60
41
|
end
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
require 'ddtrace/contrib/configuration/settings'
|
|
2
|
+
require 'ddtrace/contrib/active_record/ext'
|
|
2
3
|
require 'ddtrace/contrib/active_record/utils'
|
|
3
4
|
|
|
4
5
|
module Datadog
|
|
5
6
|
module Contrib
|
|
6
7
|
module ActiveRecord
|
|
7
8
|
module Configuration
|
|
8
|
-
#
|
|
9
|
+
# Custom settings for the ActiveRecord integration
|
|
9
10
|
class Settings < Contrib::Configuration::Settings
|
|
10
11
|
option :orm_service_name
|
|
11
12
|
option :service_name, depends_on: [:tracer] do |value|
|
|
12
13
|
(value || Utils.adapter_name).tap do |service_name|
|
|
13
|
-
tracer.set_service_info(service_name,
|
|
14
|
+
tracer.set_service_info(service_name, Ext::APP, Datadog::Ext::AppTypes::DB)
|
|
14
15
|
end
|
|
15
16
|
end
|
|
16
17
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require 'ddtrace/contrib/active_record/ext'
|
|
1
2
|
require 'ddtrace/contrib/active_record/event'
|
|
2
3
|
|
|
3
4
|
module Datadog
|
|
@@ -9,8 +10,6 @@ module Datadog
|
|
|
9
10
|
include ActiveRecord::Event
|
|
10
11
|
|
|
11
12
|
EVENT_NAME = 'instantiation.active_record'.freeze
|
|
12
|
-
SPAN_NAME = 'active_record.instantiation'.freeze
|
|
13
|
-
DEFAULT_SERVICE_NAME = 'active_record'.freeze
|
|
14
13
|
|
|
15
14
|
module_function
|
|
16
15
|
|
|
@@ -24,7 +23,7 @@ module Datadog
|
|
|
24
23
|
end
|
|
25
24
|
|
|
26
25
|
def span_name
|
|
27
|
-
|
|
26
|
+
Ext::SPAN_INSTANTIATION
|
|
28
27
|
end
|
|
29
28
|
|
|
30
29
|
def process(span, event, _id, payload)
|
|
@@ -34,13 +33,13 @@ module Datadog
|
|
|
34
33
|
elsif span.parent
|
|
35
34
|
span.parent.service
|
|
36
35
|
else
|
|
37
|
-
|
|
36
|
+
Ext::SERVICE_NAME
|
|
38
37
|
end
|
|
39
38
|
|
|
40
39
|
span.resource = payload.fetch(:class_name)
|
|
41
|
-
span.span_type =
|
|
42
|
-
span.set_tag(
|
|
43
|
-
span.set_tag(
|
|
40
|
+
span.span_type = Ext::SPAN_TYPE_INSTANTIATION
|
|
41
|
+
span.set_tag(Ext::TAG_INSTANTIATION_CLASS_NAME, payload.fetch(:class_name))
|
|
42
|
+
span.set_tag(Ext::TAG_INSTANTIATION_RECORD_COUNT, payload.fetch(:record_count))
|
|
44
43
|
rescue StandardError => e
|
|
45
44
|
Datadog::Tracer.log.debug(e.message)
|
|
46
45
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'ddtrace/ext/net'
|
|
2
|
+
require 'ddtrace/contrib/active_record/ext'
|
|
1
3
|
require 'ddtrace/contrib/active_record/event'
|
|
2
4
|
|
|
3
5
|
module Datadog
|
|
@@ -9,7 +11,7 @@ module Datadog
|
|
|
9
11
|
include ActiveRecord::Event
|
|
10
12
|
|
|
11
13
|
EVENT_NAME = 'sql.active_record'.freeze
|
|
12
|
-
|
|
14
|
+
PAYLOAD_CACHE = 'CACHE'.freeze
|
|
13
15
|
|
|
14
16
|
module_function
|
|
15
17
|
|
|
@@ -18,7 +20,7 @@ module Datadog
|
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
def span_name
|
|
21
|
-
|
|
23
|
+
Ext::SPAN_SQL
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
def process(span, event, _id, payload)
|
|
@@ -35,13 +37,13 @@ module Datadog
|
|
|
35
37
|
# Find out if the SQL query has been cached in this request. This meta is really
|
|
36
38
|
# helpful to users because some spans may have 0ns of duration because the query
|
|
37
39
|
# is simply cached from memory, so the notification is fired with start == finish.
|
|
38
|
-
cached = payload[:cached] || (payload[:name] ==
|
|
40
|
+
cached = payload[:cached] || (payload[:name] == PAYLOAD_CACHE)
|
|
39
41
|
|
|
40
|
-
span.set_tag(
|
|
41
|
-
span.set_tag(
|
|
42
|
-
span.set_tag(
|
|
43
|
-
span.set_tag(
|
|
44
|
-
span.set_tag(
|
|
42
|
+
span.set_tag(Ext::TAG_DB_VENDOR, adapter_name)
|
|
43
|
+
span.set_tag(Ext::TAG_DB_NAME, config[:database])
|
|
44
|
+
span.set_tag(Ext::TAG_DB_CACHED, cached) if cached
|
|
45
|
+
span.set_tag(Datadog::Ext::NET::TARGET_HOST, config[:host]) if config[:host]
|
|
46
|
+
span.set_tag(Datadog::Ext::NET::TARGET_PORT, config[:port]) if config[:port]
|
|
45
47
|
rescue StandardError => e
|
|
46
48
|
Datadog::Tracer.log.debug(e.message)
|
|
47
49
|
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Datadog
|
|
2
|
+
module Contrib
|
|
3
|
+
module ActiveRecord
|
|
4
|
+
# ActiveRecord integration constants
|
|
5
|
+
module Ext
|
|
6
|
+
APP = 'active_record'.freeze
|
|
7
|
+
SERVICE_NAME = 'active_record'.freeze
|
|
8
|
+
|
|
9
|
+
SPAN_INSTANTIATION = 'active_record.instantiation'.freeze
|
|
10
|
+
SPAN_SQL = 'active_record.sql'.freeze
|
|
11
|
+
|
|
12
|
+
SPAN_TYPE_INSTANTIATION = 'custom'.freeze
|
|
13
|
+
|
|
14
|
+
TAG_DB_CACHED = 'active_record.db.cached'.freeze
|
|
15
|
+
TAG_DB_NAME = 'active_record.db.name'.freeze
|
|
16
|
+
TAG_DB_VENDOR = 'active_record.db.vendor'.freeze
|
|
17
|
+
TAG_INSTANTIATION_CLASS_NAME = 'active_record.instantiation.class_name'.freeze
|
|
18
|
+
TAG_INSTANTIATION_RECORD_COUNT = 'active_record.instantiation.record_count'.freeze
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'ddtrace/contrib/configuration/settings'
|
|
2
|
+
require 'ddtrace/contrib/aws/ext'
|
|
3
|
+
|
|
4
|
+
module Datadog
|
|
5
|
+
module Contrib
|
|
6
|
+
module Aws
|
|
7
|
+
module Configuration
|
|
8
|
+
# Custom settings for the AWS integration
|
|
9
|
+
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :service_name, default: Ext::SERVICE_NAME
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Datadog
|
|
2
|
+
module Contrib
|
|
3
|
+
module Aws
|
|
4
|
+
# AWS integration constants
|
|
5
|
+
module Ext
|
|
6
|
+
APP = 'aws'.freeze
|
|
7
|
+
SERVICE_NAME = 'aws'.freeze
|
|
8
|
+
|
|
9
|
+
SPAN_COMMAND = 'aws.command'.freeze
|
|
10
|
+
|
|
11
|
+
TAG_AGENT = 'aws.agent'.freeze
|
|
12
|
+
TAG_OPERATION = 'aws.operation'.freeze
|
|
13
|
+
TAG_REGION = 'aws.region'.freeze
|
|
14
|
+
TAG_PATH = 'path'.freeze
|
|
15
|
+
TAG_HOST = 'host'.freeze
|
|
16
|
+
|
|
17
|
+
TAG_DEFAULT_AGENT = 'aws-sdk-ruby'.freeze
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|