ddtrace 0.20.0 → 0.21.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/CHANGELOG.md +24 -3
- data/Rakefile +1 -1
- data/docs/GettingStarted.md +25 -7
- data/lib/ddtrace.rb +4 -31
- data/lib/ddtrace/configuration.rb +13 -46
- data/lib/ddtrace/configuration/{resolver.rb → dependency_resolver.rb} +2 -2
- data/lib/ddtrace/configuration/option.rb +32 -0
- data/lib/ddtrace/configuration/option_definition.rb +27 -0
- data/lib/ddtrace/configuration/option_definition_set.rb +18 -0
- data/lib/ddtrace/configuration/option_set.rb +6 -0
- data/lib/ddtrace/configuration/options.rb +93 -0
- data/lib/ddtrace/configuration/pin_setup.rb +1 -1
- data/lib/ddtrace/configuration/settings.rb +47 -0
- data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/active_model_serializers/event.rb +6 -0
- data/lib/ddtrace/contrib/active_model_serializers/ext.rb +2 -2
- data/lib/ddtrace/contrib/active_record/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/active_record/events/instantiation.rb +7 -0
- data/lib/ddtrace/contrib/active_record/events/sql.rb +6 -0
- data/lib/ddtrace/contrib/active_record/ext.rb +2 -3
- data/lib/ddtrace/contrib/analytics.rb +3 -4
- data/lib/ddtrace/contrib/aws/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/aws/ext.rb +5 -6
- data/lib/ddtrace/contrib/aws/instrumentation.rb +7 -0
- data/lib/ddtrace/contrib/configuration/settings.rb +4 -14
- data/lib/ddtrace/contrib/dalli/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/dalli/ext.rb +3 -2
- data/lib/ddtrace/contrib/dalli/instrumentation.rb +7 -0
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/delayed_job/ext.rb +1 -1
- data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/elasticsearch/ext.rb +2 -2
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +11 -1
- data/lib/ddtrace/contrib/excon/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/excon/ext.rb +2 -1
- data/lib/ddtrace/contrib/excon/middleware.rb +15 -0
- data/lib/ddtrace/contrib/extensions.rb +62 -0
- data/lib/ddtrace/contrib/faraday/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/faraday/ext.rb +2 -1
- data/lib/ddtrace/contrib/faraday/middleware.rb +15 -0
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/grape/endpoint.rb +19 -0
- data/lib/ddtrace/contrib/grape/ext.rb +2 -2
- data/lib/ddtrace/contrib/graphql/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/graphql/ext.rb +2 -0
- data/lib/ddtrace/contrib/graphql/patcher.rb +8 -2
- data/lib/ddtrace/contrib/grpc/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +9 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +4 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +4 -0
- data/lib/ddtrace/contrib/grpc/ext.rb +2 -1
- data/lib/ddtrace/contrib/http/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/http/ext.rb +2 -1
- data/lib/ddtrace/contrib/http/instrumentation.rb +54 -19
- data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/mongodb/ext.rb +2 -2
- data/lib/ddtrace/contrib/mongodb/subscribers.rb +18 -0
- data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/mysql2/ext.rb +2 -2
- data/lib/ddtrace/contrib/mysql2/{client.rb → instrumentation.rb} +32 -12
- data/lib/ddtrace/contrib/mysql2/patcher.rb +2 -2
- data/lib/ddtrace/contrib/racecar/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/racecar/ext.rb +1 -1
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/rack/ext.rb +1 -1
- data/lib/ddtrace/contrib/rails/action_controller.rb +3 -0
- data/lib/ddtrace/contrib/rails/active_support.rb +1 -0
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/rails/ext.rb +2 -5
- data/lib/ddtrace/contrib/rails/utils.rb +17 -1
- data/lib/ddtrace/contrib/rake/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/rake/ext.rb +1 -1
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/redis/ext.rb +4 -5
- data/lib/ddtrace/contrib/redis/tags.rb +24 -6
- data/lib/ddtrace/contrib/registerable.rb +1 -1
- data/lib/ddtrace/contrib/registry.rb +42 -0
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/resque/ext.rb +1 -1
- data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/rest_client/ext.rb +2 -1
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +14 -0
- data/lib/ddtrace/contrib/sequel/configuration/settings.rb +7 -1
- data/lib/ddtrace/contrib/sequel/database.rb +2 -0
- data/lib/ddtrace/contrib/sequel/dataset.rb +2 -0
- data/lib/ddtrace/contrib/sequel/ext.rb +2 -2
- data/lib/ddtrace/contrib/sequel/utils.rb +32 -14
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/shoryuken/ext.rb +1 -1
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/sidekiq/ext.rb +1 -1
- data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/sinatra/ext.rb +3 -4
- data/lib/ddtrace/contrib/sinatra/tracer.rb +1 -0
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +12 -0
- data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +1 -1
- data/lib/ddtrace/contrib/sucker_punch/ext.rb +1 -1
- data/lib/ddtrace/environment.rb +15 -0
- data/lib/ddtrace/ext/analytics.rb +1 -0
- data/lib/ddtrace/opentracer/global_tracer.rb +1 -1
- data/lib/ddtrace/propagation/distributed_headers.rb +14 -4
- data/lib/ddtrace/span.rb +4 -0
- data/lib/ddtrace/tracer.rb +6 -1
- data/lib/ddtrace/version.rb +1 -1
- metadata +14 -15
- data/lib/ddtrace/configurable.rb +0 -83
- data/lib/ddtrace/configuration/proxy.rb +0 -25
- data/lib/ddtrace/contrib/base.rb +0 -16
- data/lib/ddtrace/contrib/configuration/option.rb +0 -33
- data/lib/ddtrace/contrib/configuration/option_definition.rb +0 -29
- data/lib/ddtrace/contrib/configuration/option_definition_set.rb +0 -20
- data/lib/ddtrace/contrib/configuration/option_set.rb +0 -8
- data/lib/ddtrace/contrib/configuration/options.rb +0 -95
- data/lib/ddtrace/registry.rb +0 -42
- data/lib/ddtrace/registry/registerable.rb +0 -20
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require 'ddtrace/configuration/resolver'
|
|
2
|
-
|
|
3
|
-
module Datadog
|
|
4
|
-
module Contrib
|
|
5
|
-
module Configuration
|
|
6
|
-
# Represents a set of configuration option definitions for an integration
|
|
7
|
-
class OptionDefinitionSet < Hash
|
|
8
|
-
def dependency_order
|
|
9
|
-
Datadog::Configuration::Resolver.new(dependency_graph).call
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def dependency_graph
|
|
13
|
-
each_with_object({}) do |(name, option), graph|
|
|
14
|
-
graph[name] = option.depends_on
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
require 'ddtrace/contrib/configuration/option'
|
|
2
|
-
require 'ddtrace/contrib/configuration/option_set'
|
|
3
|
-
require 'ddtrace/contrib/configuration/option_definition'
|
|
4
|
-
require 'ddtrace/contrib/configuration/option_definition_set'
|
|
5
|
-
|
|
6
|
-
module Datadog
|
|
7
|
-
module Contrib
|
|
8
|
-
module Configuration
|
|
9
|
-
# Behavior for a configuration object that has options
|
|
10
|
-
module Options
|
|
11
|
-
def self.included(base)
|
|
12
|
-
base.send(:extend, ClassMethods)
|
|
13
|
-
base.send(:include, InstanceMethods)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# Class behavior for a configuration object with options
|
|
17
|
-
module ClassMethods
|
|
18
|
-
def options
|
|
19
|
-
@options ||= begin
|
|
20
|
-
# Allows for class inheritance of option definitions
|
|
21
|
-
superclass <= Options ? superclass.options.dup : OptionDefinitionSet.new
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
protected
|
|
26
|
-
|
|
27
|
-
def option(name, meta = {}, &block)
|
|
28
|
-
options[name] = OptionDefinition.new(name, meta, &block).tap do
|
|
29
|
-
define_option_accessors(name)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
private
|
|
34
|
-
|
|
35
|
-
def define_option_accessors(name)
|
|
36
|
-
option_name = name
|
|
37
|
-
|
|
38
|
-
define_method(option_name) do
|
|
39
|
-
get_option(option_name)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
define_method("#{option_name}=") do |value|
|
|
43
|
-
set_option(option_name, value)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# Instance behavior for a configuration object with options
|
|
49
|
-
module InstanceMethods
|
|
50
|
-
def options
|
|
51
|
-
@options ||= OptionSet.new
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def set_option(name, value)
|
|
55
|
-
add_option(name) unless options.key?(name)
|
|
56
|
-
options[name].set(value)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def get_option(name)
|
|
60
|
-
add_option(name) unless options.key?(name)
|
|
61
|
-
options[name].get
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def to_h
|
|
65
|
-
options.each_with_object({}) do |(key, _), hash|
|
|
66
|
-
hash[key] = get_option(key)
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def reset_options!
|
|
71
|
-
options.values.each(&:reset)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
private
|
|
75
|
-
|
|
76
|
-
def add_option(name)
|
|
77
|
-
assert_valid_option!(name)
|
|
78
|
-
definition = self.class.options[name]
|
|
79
|
-
Option.new(definition, self).tap do |option|
|
|
80
|
-
options[name] = option
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def assert_valid_option!(name)
|
|
85
|
-
unless self.class.options.key?(name)
|
|
86
|
-
raise(InvalidOptionError, "#{self.class.name} doesn't define the option: #{name}")
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
InvalidOptionError = Class.new(StandardError)
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
data/lib/ddtrace/registry.rb
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
require_relative 'registry/registerable'
|
|
2
|
-
|
|
3
|
-
module Datadog
|
|
4
|
-
# Registry provides insertion/retrieval capabilities for integrations
|
|
5
|
-
class Registry
|
|
6
|
-
include Enumerable
|
|
7
|
-
|
|
8
|
-
Entry = Struct.new(:name, :klass, :auto_patch)
|
|
9
|
-
|
|
10
|
-
def initialize
|
|
11
|
-
@data = {}
|
|
12
|
-
@mutex = Mutex.new
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def add(name, klass, auto_patch = false)
|
|
16
|
-
@mutex.synchronize do
|
|
17
|
-
@data[name] = Entry.new(name, klass, auto_patch).freeze
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def each
|
|
22
|
-
@mutex.synchronize do
|
|
23
|
-
@data.each { |_, entry| yield(entry) }
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def [](name)
|
|
28
|
-
@mutex.synchronize do
|
|
29
|
-
entry = @data[name]
|
|
30
|
-
entry.klass if entry
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def to_h
|
|
35
|
-
@mutex.synchronize do
|
|
36
|
-
@data.each_with_object({}) do |(_, entry), hash|
|
|
37
|
-
hash[entry.name] = entry.auto_patch
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Datadog
|
|
2
|
-
class Registry
|
|
3
|
-
# Registerable provides a convenience method for self-registering
|
|
4
|
-
module Registerable
|
|
5
|
-
def self.included(base)
|
|
6
|
-
base.singleton_class.send(:include, ClassMethods)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
# ClassMethods
|
|
10
|
-
module ClassMethods
|
|
11
|
-
def register_as(name, options = {})
|
|
12
|
-
registry = options.fetch(:registry, Datadog.registry)
|
|
13
|
-
auto_patch = options.fetch(:auto_patch, false)
|
|
14
|
-
|
|
15
|
-
registry.add(name, self, auto_patch)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|