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.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +3 -3
  3. data/CHANGELOG.md +24 -2
  4. data/Rakefile +14 -28
  5. data/docker-compose.yml +1 -0
  6. data/docs/GettingStarted.md +302 -263
  7. data/lib/ddtrace.rb +22 -21
  8. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +23 -0
  9. data/lib/ddtrace/contrib/active_model_serializers/event.rb +4 -2
  10. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +2 -2
  11. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +2 -2
  12. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +17 -0
  13. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +39 -0
  14. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +24 -43
  15. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +3 -2
  16. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +6 -7
  17. data/lib/ddtrace/contrib/active_record/events/sql.rb +10 -8
  18. data/lib/ddtrace/contrib/active_record/ext.rb +22 -0
  19. data/lib/ddtrace/contrib/aws/configuration/settings.rb +15 -0
  20. data/lib/ddtrace/contrib/aws/ext.rb +21 -0
  21. data/lib/ddtrace/contrib/aws/instrumentation.rb +11 -9
  22. data/lib/ddtrace/contrib/aws/integration.rb +32 -0
  23. data/lib/ddtrace/contrib/aws/patcher.rb +42 -41
  24. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +3 -1
  25. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +11 -0
  26. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +7 -3
  27. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +1 -0
  28. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +15 -0
  29. data/lib/ddtrace/contrib/dalli/ext.rb +15 -0
  30. data/lib/ddtrace/contrib/dalli/instrumentation.rb +3 -3
  31. data/lib/ddtrace/contrib/dalli/integration.rb +36 -0
  32. data/lib/ddtrace/contrib/dalli/patcher.rb +31 -38
  33. data/lib/ddtrace/contrib/dalli/quantize.rb +3 -3
  34. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +15 -0
  35. data/lib/ddtrace/contrib/delayed_job/ext.rb +18 -0
  36. data/lib/ddtrace/contrib/delayed_job/integration.rb +32 -0
  37. data/lib/ddtrace/contrib/delayed_job/patcher.rb +20 -27
  38. data/lib/ddtrace/contrib/delayed_job/plugin.rb +7 -6
  39. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +16 -0
  40. data/lib/ddtrace/contrib/elasticsearch/ext.rb +18 -0
  41. data/lib/ddtrace/contrib/elasticsearch/integration.rb +37 -0
  42. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +30 -39
  43. data/lib/ddtrace/contrib/excon/configuration/settings.rb +18 -0
  44. data/lib/ddtrace/contrib/excon/ext.rb +13 -0
  45. data/lib/ddtrace/contrib/excon/integration.rb +32 -0
  46. data/lib/ddtrace/contrib/excon/middleware.rb +10 -10
  47. data/lib/ddtrace/contrib/excon/patcher.rb +14 -30
  48. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +23 -0
  49. data/lib/ddtrace/contrib/faraday/ext.rb +13 -0
  50. data/lib/ddtrace/contrib/faraday/integration.rb +36 -0
  51. data/lib/ddtrace/contrib/faraday/middleware.rb +10 -9
  52. data/lib/ddtrace/contrib/faraday/patcher.rb +39 -54
  53. data/lib/ddtrace/contrib/grape/configuration/settings.rb +16 -0
  54. data/lib/ddtrace/contrib/grape/endpoint.rb +10 -13
  55. data/lib/ddtrace/contrib/grape/ext.rb +19 -0
  56. data/lib/ddtrace/contrib/grape/integration.rb +36 -0
  57. data/lib/ddtrace/contrib/grape/patcher.rb +24 -24
  58. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +20 -0
  59. data/lib/ddtrace/contrib/graphql/ext.rb +11 -0
  60. data/lib/ddtrace/contrib/graphql/integration.rb +38 -0
  61. data/lib/ddtrace/contrib/graphql/patcher.rb +33 -41
  62. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +15 -0
  63. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +5 -2
  64. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +5 -2
  65. data/lib/ddtrace/contrib/grpc/ext.rb +14 -0
  66. data/lib/ddtrace/contrib/grpc/integration.rb +38 -0
  67. data/lib/ddtrace/contrib/grpc/patcher.rb +25 -35
  68. data/lib/ddtrace/contrib/http/circuit_breaker.rb +39 -0
  69. data/lib/ddtrace/contrib/http/configuration/settings.rb +16 -0
  70. data/lib/ddtrace/contrib/http/ext.rb +13 -0
  71. data/lib/ddtrace/contrib/http/integration.rb +32 -0
  72. data/lib/ddtrace/contrib/http/patcher.rb +10 -58
  73. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +18 -0
  74. data/lib/ddtrace/contrib/mongodb/ext.rb +20 -0
  75. data/lib/ddtrace/contrib/mongodb/integration.rb +36 -0
  76. data/lib/ddtrace/contrib/mongodb/patcher.rb +17 -27
  77. data/lib/ddtrace/contrib/mongodb/subscribers.rb +12 -11
  78. data/lib/ddtrace/contrib/mysql2/client.rb +8 -6
  79. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +15 -0
  80. data/lib/ddtrace/contrib/mysql2/ext.rb +15 -0
  81. data/lib/ddtrace/contrib/mysql2/integration.rb +32 -0
  82. data/lib/ddtrace/contrib/mysql2/patcher.rb +12 -22
  83. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +23 -0
  84. data/lib/ddtrace/contrib/racecar/event.rb +7 -6
  85. data/lib/ddtrace/contrib/racecar/events/batch.rb +2 -2
  86. data/lib/ddtrace/contrib/racecar/events/message.rb +2 -2
  87. data/lib/ddtrace/contrib/racecar/ext.rb +21 -0
  88. data/lib/ddtrace/contrib/racecar/integration.rb +36 -0
  89. data/lib/ddtrace/contrib/racecar/patcher.rb +24 -41
  90. data/lib/ddtrace/contrib/rack/configuration/settings.rb +39 -0
  91. data/lib/ddtrace/contrib/rack/ext.rb +18 -0
  92. data/lib/ddtrace/contrib/rack/integration.rb +32 -0
  93. data/lib/ddtrace/contrib/rack/middlewares.rb +5 -2
  94. data/lib/ddtrace/contrib/rack/patcher.rb +22 -40
  95. data/lib/ddtrace/contrib/rails/action_controller.rb +10 -7
  96. data/lib/ddtrace/contrib/rails/action_controller_patch.rb +1 -0
  97. data/lib/ddtrace/contrib/rails/active_support.rb +9 -9
  98. data/lib/ddtrace/contrib/rails/configuration/settings.rb +26 -0
  99. data/lib/ddtrace/contrib/rails/core_extensions.rb +12 -15
  100. data/lib/ddtrace/contrib/rails/ext.rb +30 -0
  101. data/lib/ddtrace/contrib/rails/framework.rb +3 -2
  102. data/lib/ddtrace/contrib/rails/integration.rb +37 -0
  103. data/lib/ddtrace/contrib/rails/patcher.rb +56 -63
  104. data/lib/ddtrace/contrib/rails/railtie.rb +3 -10
  105. data/lib/ddtrace/contrib/rake/configuration/settings.rb +17 -0
  106. data/lib/ddtrace/contrib/rake/ext.rb +18 -0
  107. data/lib/ddtrace/contrib/rake/instrumentation.rb +7 -8
  108. data/lib/ddtrace/contrib/rake/integration.rb +36 -0
  109. data/lib/ddtrace/contrib/rake/patcher.rb +23 -33
  110. data/lib/ddtrace/contrib/redis/configuration/settings.rb +15 -0
  111. data/lib/ddtrace/contrib/redis/ext.rb +19 -0
  112. data/lib/ddtrace/contrib/redis/integration.rb +36 -0
  113. data/lib/ddtrace/contrib/redis/patcher.rb +21 -29
  114. data/lib/ddtrace/contrib/redis/tags.rb +3 -3
  115. data/lib/ddtrace/contrib/resque/configuration/settings.rb +16 -0
  116. data/lib/ddtrace/contrib/resque/ext.rb +13 -0
  117. data/lib/ddtrace/contrib/resque/integration.rb +37 -0
  118. data/lib/ddtrace/contrib/resque/patcher.rb +30 -36
  119. data/lib/ddtrace/contrib/resque/resque_job.rb +2 -1
  120. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +5 -8
  121. data/lib/ddtrace/contrib/rest_client/ext.rb +13 -0
  122. data/lib/ddtrace/contrib/rest_client/integration.rb +9 -1
  123. data/lib/ddtrace/contrib/rest_client/patcher.rb +1 -1
  124. data/lib/ddtrace/contrib/rest_client/request_patch.rb +9 -10
  125. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +2 -0
  126. data/lib/ddtrace/contrib/sequel/database.rb +4 -3
  127. data/lib/ddtrace/contrib/sequel/dataset.rb +3 -2
  128. data/lib/ddtrace/contrib/sequel/ext.rb +15 -0
  129. data/lib/ddtrace/contrib/sequel/integration.rb +1 -3
  130. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -1
  131. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +15 -0
  132. data/lib/ddtrace/contrib/sidekiq/ext.rb +19 -0
  133. data/lib/ddtrace/contrib/sidekiq/integration.rb +36 -0
  134. data/lib/ddtrace/contrib/sidekiq/patcher.rb +18 -18
  135. data/lib/ddtrace/contrib/sidekiq/tracer.rb +10 -10
  136. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +27 -0
  137. data/lib/ddtrace/contrib/sinatra/env.rb +3 -4
  138. data/lib/ddtrace/contrib/sinatra/ext.rb +19 -0
  139. data/lib/ddtrace/contrib/sinatra/integration.rb +36 -0
  140. data/lib/ddtrace/contrib/sinatra/patcher.rb +33 -0
  141. data/lib/ddtrace/contrib/sinatra/tracer.rb +4 -34
  142. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +2 -3
  143. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +15 -0
  144. data/lib/ddtrace/contrib/sucker_punch/ext.rb +18 -0
  145. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +6 -5
  146. data/lib/ddtrace/contrib/sucker_punch/integration.rb +36 -0
  147. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +29 -35
  148. data/lib/ddtrace/encoding.rb +21 -16
  149. data/lib/ddtrace/span.rb +29 -0
  150. data/lib/ddtrace/transport.rb +2 -2
  151. data/lib/ddtrace/version.rb +2 -2
  152. metadata +74 -6
  153. data/lib/ddtrace/ext/cache.rb +0 -8
  154. data/lib/ddtrace/ext/grpc.rb +0 -7
  155. data/lib/ddtrace/ext/mongo.rb +0 -12
  156. 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/patcher'
47
+ require 'ddtrace/contrib/active_model_serializers/integration'
48
48
  require 'ddtrace/contrib/active_record/integration'
49
- require 'ddtrace/contrib/aws/patcher'
49
+ require 'ddtrace/contrib/aws/integration'
50
50
  require 'ddtrace/contrib/concurrent_ruby/integration'
51
- require 'ddtrace/contrib/dalli/patcher'
52
- require 'ddtrace/contrib/delayed_job/patcher'
53
- require 'ddtrace/contrib/elasticsearch/patcher'
54
- require 'ddtrace/contrib/excon/patcher'
55
- require 'ddtrace/contrib/faraday/patcher'
56
- require 'ddtrace/contrib/grape/patcher'
57
- require 'ddtrace/contrib/graphql/patcher'
58
- require 'ddtrace/contrib/grpc/patcher'
59
- require 'ddtrace/contrib/http/patcher'
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/mongodb/patcher'
62
- require 'ddtrace/contrib/mysql2/patcher'
63
- require 'ddtrace/contrib/racecar/patcher'
64
- require 'ddtrace/contrib/rack/patcher'
65
- require 'ddtrace/contrib/rails/patcher'
66
- require 'ddtrace/contrib/rake/patcher'
67
- require 'ddtrace/contrib/redis/patcher'
68
- require 'ddtrace/contrib/resque/patcher'
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/patcher'
72
- require 'ddtrace/contrib/sucker_punch/patcher'
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('active_model_serializers.serializer', res)
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('active_model_serializers.adapter', payload[:adapter].class) unless payload[:adapter].nil?
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
- self::SPAN_NAME
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
- self::SPAN_NAME
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/http'
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
- # Provides instrumentation for ActiveModelSerializers through ActiveSupport instrumentation signals
9
+ # Patcher enables patching of 'active_model_serializers' module.
9
10
  module Patcher
10
- include Base
11
+ include Contrib::Patcher
11
12
 
12
- VERSION_REQUIRED = Gem::Version.new('0.9.0')
13
+ module_function
13
14
 
14
- register_as :active_model_serializers
15
+ def patched?
16
+ done?(:active_model_serializers)
17
+ end
15
18
 
16
- option :service_name, default: 'active_model_serializers'
17
- option :tracer, default: Datadog.tracer do |value|
18
- (value || Datadog.tracer).tap do |v|
19
- # Make sure to update tracers of all subscriptions
20
- Events.subscriptions.each do |subscription|
21
- subscription.tracer = v
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
- class << self
27
- def patch
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
- # Unique settings for ActiveRecord
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, 'active_record', Ext::AppTypes::DB)
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
- self::SPAN_NAME
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
- self::DEFAULT_SERVICE_NAME
36
+ Ext::SERVICE_NAME
38
37
  end
39
38
 
40
39
  span.resource = payload.fetch(:class_name)
41
- span.span_type = 'custom'
42
- span.set_tag('active_record.instantiation.class_name', payload.fetch(:class_name))
43
- span.set_tag('active_record.instantiation.record_count', payload.fetch(:record_count))
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
- SPAN_NAME = 'active_record.sql'.freeze
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
- self::SPAN_NAME
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] == 'CACHE')
40
+ cached = payload[:cached] || (payload[:name] == PAYLOAD_CACHE)
39
41
 
40
- span.set_tag('active_record.db.vendor', adapter_name)
41
- span.set_tag('active_record.db.name', config[:database])
42
- span.set_tag('active_record.db.cached', cached) if cached
43
- span.set_tag('out.host', config[:host]) if config[:host]
44
- span.set_tag('out.port', config[:port]) if config[:port]
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