ddtrace 0.37.0 → 0.38.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/.gitignore +2 -0
- data/Appraisals +15 -0
- data/CHANGELOG.md +33 -1
- data/Rakefile +11 -10
- data/docker-compose.yml +2 -2
- data/docs/GettingStarted.md +55 -0
- data/lib/ddtrace.rb +2 -0
- data/lib/ddtrace/configuration/settings.rb +18 -0
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -1
- data/lib/ddtrace/contrib/extensions.rb +10 -0
- data/lib/ddtrace/contrib/faraday/middleware.rb +5 -3
- data/lib/ddtrace/contrib/faraday/patcher.rb +3 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -3
- data/lib/ddtrace/contrib/httprb/configuration/settings.rb +27 -0
- data/lib/ddtrace/contrib/httprb/ext.rb +14 -0
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +163 -0
- data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
- data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
- data/lib/ddtrace/contrib/kafka/configuration/settings.rb +25 -0
- data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/event.rb +51 -0
- data/lib/ddtrace/contrib/kafka/events.rb +44 -0
- data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
- data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
- data/lib/ddtrace/contrib/kafka/ext.rb +38 -0
- data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
- data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
- data/lib/ddtrace/contrib/rack/middlewares.rb +15 -12
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +2 -2
- data/lib/ddtrace/contrib/sidekiq/ext.rb +1 -0
- data/lib/ddtrace/contrib/sidekiq/patcher.rb +8 -1
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
- data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
- data/lib/ddtrace/environment.rb +5 -1
- data/lib/ddtrace/ext/diagnostics.rb +2 -0
- data/lib/ddtrace/ext/environment.rb +2 -0
- data/lib/ddtrace/pipeline/span_filter.rb +15 -15
- data/lib/ddtrace/sampler.rb +2 -0
- data/lib/ddtrace/span.rb +10 -0
- data/lib/ddtrace/tracer.rb +13 -6
- data/lib/ddtrace/transport/http/adapters/net.rb +8 -0
- data/lib/ddtrace/transport/http/adapters/test.rb +4 -0
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +4 -0
- data/lib/ddtrace/transport/response.rb +11 -0
- data/lib/ddtrace/version.rb +1 -1
- data/lib/ddtrace/workers/trace_writer.rb +3 -0
- data/lib/ddtrace/writer.rb +33 -12
- metadata +27 -3
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/events/connection/request'
|
2
|
+
require 'ddtrace/contrib/kafka/events/consumer/process_batch'
|
3
|
+
require 'ddtrace/contrib/kafka/events/consumer/process_message'
|
4
|
+
require 'ddtrace/contrib/kafka/events/consumer_group/heartbeat'
|
5
|
+
require 'ddtrace/contrib/kafka/events/consumer_group/join_group'
|
6
|
+
require 'ddtrace/contrib/kafka/events/consumer_group/leave_group'
|
7
|
+
require 'ddtrace/contrib/kafka/events/consumer_group/sync_group'
|
8
|
+
require 'ddtrace/contrib/kafka/events/produce_operation/send_messages'
|
9
|
+
require 'ddtrace/contrib/kafka/events/producer/deliver_messages'
|
10
|
+
|
11
|
+
module Datadog
|
12
|
+
module Contrib
|
13
|
+
module Kafka
|
14
|
+
# Defines collection of instrumented Kafka events
|
15
|
+
module Events
|
16
|
+
ALL = [
|
17
|
+
Events::Connection::Request,
|
18
|
+
Events::Consumer::ProcessBatch,
|
19
|
+
Events::Consumer::ProcessMessage,
|
20
|
+
Events::ConsumerGroup::Heartbeat,
|
21
|
+
Events::ConsumerGroup::JoinGroup,
|
22
|
+
Events::ConsumerGroup::LeaveGroup,
|
23
|
+
Events::ConsumerGroup::SyncGroup,
|
24
|
+
Events::ProduceOperation::SendMessages,
|
25
|
+
Events::Producer::DeliverMessages
|
26
|
+
].freeze
|
27
|
+
|
28
|
+
module_function
|
29
|
+
|
30
|
+
def all
|
31
|
+
self::ALL
|
32
|
+
end
|
33
|
+
|
34
|
+
def subscriptions
|
35
|
+
all.collect(&:subscriptions).collect(&:to_a).flatten
|
36
|
+
end
|
37
|
+
|
38
|
+
def subscribe!
|
39
|
+
all.each(&:subscribe!)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
|
4
|
+
module Datadog
|
5
|
+
module Contrib
|
6
|
+
module Kafka
|
7
|
+
module Events
|
8
|
+
module Connection
|
9
|
+
# Defines instrumentation for request.connection.kafka event
|
10
|
+
module Request
|
11
|
+
include Kafka::Event
|
12
|
+
|
13
|
+
EVENT_NAME = 'request.connection.kafka'.freeze
|
14
|
+
|
15
|
+
def self.process(span, _event, _id, payload)
|
16
|
+
super
|
17
|
+
|
18
|
+
span.resource = payload[:api]
|
19
|
+
|
20
|
+
span.set_tag(Ext::TAG_REQUEST_SIZE, payload[:request_size]) if payload.key?(:request_size)
|
21
|
+
span.set_tag(Ext::TAG_RESPONSE_SIZE, payload[:response_size]) if payload.key?(:response_size)
|
22
|
+
end
|
23
|
+
|
24
|
+
module_function
|
25
|
+
|
26
|
+
def span_name
|
27
|
+
Ext::SPAN_CONNECTION_REQUEST
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
require 'ddtrace/contrib/kafka/consumer_event'
|
4
|
+
|
5
|
+
module Datadog
|
6
|
+
module Contrib
|
7
|
+
module Kafka
|
8
|
+
module Events
|
9
|
+
module Consumer
|
10
|
+
# Defines instrumentation for process_batch.consumer.kafka event
|
11
|
+
module ProcessBatch
|
12
|
+
include Kafka::Event
|
13
|
+
extend Kafka::ConsumerEvent
|
14
|
+
|
15
|
+
EVENT_NAME = 'process_batch.consumer.kafka'.freeze
|
16
|
+
|
17
|
+
def self.process(span, _event, _id, payload)
|
18
|
+
super
|
19
|
+
|
20
|
+
span.resource = payload[:topic]
|
21
|
+
|
22
|
+
span.set_tag(Ext::TAG_TOPIC, payload[:topic]) if payload.key?(:topic)
|
23
|
+
span.set_tag(Ext::TAG_MESSAGE_COUNT, payload[:message_count]) if payload.key?(:message_count)
|
24
|
+
span.set_tag(Ext::TAG_PARTITION, payload[:partition]) if payload.key?(:partition)
|
25
|
+
if payload.key?(:highwater_mark_offset)
|
26
|
+
span.set_tag(Ext::TAG_HIGHWATER_MARK_OFFSET, payload[:highwater_mark_offset])
|
27
|
+
end
|
28
|
+
span.set_tag(Ext::TAG_OFFSET_LAG, payload[:offset_lag]) if payload.key?(:offset_lag)
|
29
|
+
end
|
30
|
+
|
31
|
+
module_function
|
32
|
+
|
33
|
+
def span_name
|
34
|
+
Ext::SPAN_PROCESS_BATCH
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
require 'ddtrace/contrib/kafka/consumer_event'
|
4
|
+
|
5
|
+
module Datadog
|
6
|
+
module Contrib
|
7
|
+
module Kafka
|
8
|
+
module Events
|
9
|
+
module Consumer
|
10
|
+
# Defines instrumentation for process_message.consumer.kafka event
|
11
|
+
module ProcessMessage
|
12
|
+
include Kafka::Event
|
13
|
+
extend Kafka::ConsumerEvent
|
14
|
+
|
15
|
+
EVENT_NAME = 'process_message.consumer.kafka'.freeze
|
16
|
+
|
17
|
+
def self.process(span, _event, _id, payload)
|
18
|
+
super
|
19
|
+
|
20
|
+
span.resource = payload[:topic]
|
21
|
+
|
22
|
+
span.set_tag(Ext::TAG_TOPIC, payload[:topic]) if payload.key?(:topic)
|
23
|
+
span.set_tag(Ext::TAG_MESSAGE_KEY, payload[:key]) if payload.key?(:key)
|
24
|
+
span.set_tag(Ext::TAG_PARTITION, payload[:partition]) if payload.key?(:partition)
|
25
|
+
span.set_tag(Ext::TAG_OFFSET, payload[:offset]) if payload.key?(:offset)
|
26
|
+
span.set_tag(Ext::TAG_OFFSET_LAG, payload[:offset_lag]) if payload.key?(:offset_lag)
|
27
|
+
end
|
28
|
+
|
29
|
+
module_function
|
30
|
+
|
31
|
+
def span_name
|
32
|
+
Ext::SPAN_PROCESS_MESSAGE
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
require 'ddtrace/contrib/kafka/consumer_event'
|
4
|
+
require 'ddtrace/contrib/kafka/consumer_group_event'
|
5
|
+
|
6
|
+
module Datadog
|
7
|
+
module Contrib
|
8
|
+
module Kafka
|
9
|
+
module Events
|
10
|
+
module ConsumerGroup
|
11
|
+
# Defines instrumentation for heartbeat.consumer.kafka event
|
12
|
+
module Heartbeat
|
13
|
+
include Kafka::Event
|
14
|
+
extend Kafka::ConsumerEvent
|
15
|
+
extend Kafka::ConsumerGroupEvent
|
16
|
+
|
17
|
+
EVENT_NAME = 'heartbeat.consumer.kafka'.freeze
|
18
|
+
|
19
|
+
def self.process(span, _event, _id, payload)
|
20
|
+
super
|
21
|
+
|
22
|
+
if payload.key?(:topic_partitions)
|
23
|
+
payload[:topic_partitions].each do |topic, partitions|
|
24
|
+
span.set_tag("#{Ext::TAG_TOPIC_PARTITIONS}.#{topic}", partitions)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
module_function
|
30
|
+
|
31
|
+
def span_name
|
32
|
+
Ext::SPAN_CONSUMER_HEARTBEAT
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
require 'ddtrace/contrib/kafka/consumer_event'
|
4
|
+
require 'ddtrace/contrib/kafka/consumer_group_event'
|
5
|
+
|
6
|
+
module Datadog
|
7
|
+
module Contrib
|
8
|
+
module Kafka
|
9
|
+
module Events
|
10
|
+
module ConsumerGroup
|
11
|
+
# Defines instrumentation for join_group.consumer.kafka event
|
12
|
+
module JoinGroup
|
13
|
+
include Kafka::Event
|
14
|
+
extend Kafka::ConsumerEvent
|
15
|
+
extend Kafka::ConsumerGroupEvent
|
16
|
+
|
17
|
+
EVENT_NAME = 'join_group.consumer.kafka'.freeze
|
18
|
+
|
19
|
+
module_function
|
20
|
+
|
21
|
+
def span_name
|
22
|
+
Ext::SPAN_CONSUMER_JOIN_GROUP
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
require 'ddtrace/contrib/kafka/consumer_event'
|
4
|
+
require 'ddtrace/contrib/kafka/consumer_group_event'
|
5
|
+
|
6
|
+
module Datadog
|
7
|
+
module Contrib
|
8
|
+
module Kafka
|
9
|
+
module Events
|
10
|
+
module ConsumerGroup
|
11
|
+
# Defines instrumentation for leave_group.consumer.kafka event
|
12
|
+
module LeaveGroup
|
13
|
+
include Kafka::Event
|
14
|
+
extend Kafka::ConsumerEvent
|
15
|
+
extend Kafka::ConsumerGroupEvent
|
16
|
+
|
17
|
+
EVENT_NAME = 'leave_group.consumer.kafka'.freeze
|
18
|
+
|
19
|
+
module_function
|
20
|
+
|
21
|
+
def span_name
|
22
|
+
Ext::SPAN_CONSUMER_LEAVE_GROUP
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
require 'ddtrace/contrib/kafka/consumer_event'
|
4
|
+
require 'ddtrace/contrib/kafka/consumer_group_event'
|
5
|
+
|
6
|
+
module Datadog
|
7
|
+
module Contrib
|
8
|
+
module Kafka
|
9
|
+
module Events
|
10
|
+
module ConsumerGroup
|
11
|
+
# Defines instrumentation for sync_group.consumer.kafka event
|
12
|
+
module SyncGroup
|
13
|
+
include Kafka::Event
|
14
|
+
extend Kafka::ConsumerEvent
|
15
|
+
extend Kafka::ConsumerGroupEvent
|
16
|
+
|
17
|
+
EVENT_NAME = 'sync_group.consumer.kafka'.freeze
|
18
|
+
|
19
|
+
module_function
|
20
|
+
|
21
|
+
def span_name
|
22
|
+
Ext::SPAN_CONSUMER_SYNC_GROUP
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
|
4
|
+
module Datadog
|
5
|
+
module Contrib
|
6
|
+
module Kafka
|
7
|
+
module Events
|
8
|
+
module ProduceOperation
|
9
|
+
# Defines instrumentation for send_messages.producer.kafka event
|
10
|
+
module SendMessages
|
11
|
+
include Kafka::Event
|
12
|
+
|
13
|
+
EVENT_NAME = 'send_messages.producer.kafka'.freeze
|
14
|
+
|
15
|
+
def self.process(span, _event, _id, payload)
|
16
|
+
super
|
17
|
+
|
18
|
+
span.set_tag(Ext::TAG_MESSAGE_COUNT, payload[:message_count]) if payload.key?(:message_count)
|
19
|
+
span.set_tag(Ext::TAG_SENT_MESSAGE_COUNT, payload[:sent_message_count]) if payload.key?(:sent_message_count)
|
20
|
+
end
|
21
|
+
|
22
|
+
module_function
|
23
|
+
|
24
|
+
def span_name
|
25
|
+
Ext::SPAN_SEND_MESSAGES
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'ddtrace/contrib/kafka/ext'
|
2
|
+
require 'ddtrace/contrib/kafka/event'
|
3
|
+
|
4
|
+
module Datadog
|
5
|
+
module Contrib
|
6
|
+
module Kafka
|
7
|
+
module Events
|
8
|
+
module Producer
|
9
|
+
# Defines instrumentation for deliver_messages.producer.kafka event
|
10
|
+
module DeliverMessages
|
11
|
+
include Kafka::Event
|
12
|
+
|
13
|
+
EVENT_NAME = 'deliver_messages.producer.kafka'.freeze
|
14
|
+
|
15
|
+
def self.process(span, _event, _id, payload)
|
16
|
+
super
|
17
|
+
|
18
|
+
span.set_tag(Ext::TAG_ATTEMPTS, payload[:attempts]) if payload.key?(:attempts)
|
19
|
+
span.set_tag(Ext::TAG_MESSAGE_COUNT, payload[:message_count]) if payload.key?(:message_count)
|
20
|
+
if payload.key?(:delivered_message_count)
|
21
|
+
span.set_tag(Ext::TAG_DELIVERED_MESSAGE_COUNT, payload[:delivered_message_count])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
module_function
|
26
|
+
|
27
|
+
def span_name
|
28
|
+
Ext::SPAN_DELIVER_MESSAGES
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Datadog
|
2
|
+
module Contrib
|
3
|
+
module Kafka
|
4
|
+
# Kafka integration constants
|
5
|
+
module Ext
|
6
|
+
APP = 'kafka'.freeze
|
7
|
+
ENV_ANALYTICS_ENABLED = 'DD_KAFKA_ANALYTICS_ENABLED'.freeze
|
8
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_KAFKA_ANALYTICS_SAMPLE_RATE'.freeze
|
9
|
+
SERVICE_NAME = 'kafka'.freeze
|
10
|
+
SPAN_CONNECTION_REQUEST = 'kafka.connection.request'.freeze
|
11
|
+
SPAN_CONSUMER_HEARTBEAT = 'kafka.consumer.heartbeat'.freeze
|
12
|
+
SPAN_CONSUMER_JOIN_GROUP = 'kafka.consumer.join_group'.freeze
|
13
|
+
SPAN_CONSUMER_LEAVE_GROUP = 'kafka.consumer.leave_group'.freeze
|
14
|
+
SPAN_CONSUMER_SYNC_GROUP = 'kafka.consumer.sync_group'.freeze
|
15
|
+
SPAN_DELIVER_MESSAGES = 'kafka.producer.deliver_messages'.freeze
|
16
|
+
SPAN_PROCESS_BATCH = 'kafka.consumer.process_batch'.freeze
|
17
|
+
SPAN_PROCESS_MESSAGE = 'kafka.consumer.process_message'.freeze
|
18
|
+
SPAN_SEND_MESSAGES = 'kafka.producer.send_messages'.freeze
|
19
|
+
TAG_ATTEMPTS = 'kafka.attempts'.freeze
|
20
|
+
TAG_API = 'kafka.api'.freeze
|
21
|
+
TAG_CLIENT = 'kafka.client'.freeze
|
22
|
+
TAG_GROUP = 'kafka.group'.freeze
|
23
|
+
TAG_HIGHWATER_MARK_OFFSET = 'kafka.highwater_mark_offset'.freeze
|
24
|
+
TAG_MESSAGE_COUNT = 'kafka.message_count'.freeze
|
25
|
+
TAG_MESSAGE_KEY = 'kafka.message_key'.freeze
|
26
|
+
TAG_DELIVERED_MESSAGE_COUNT = 'kafka.delivered_message_count'.freeze
|
27
|
+
TAG_OFFSET = 'kafka.offset'.freeze
|
28
|
+
TAG_OFFSET_LAG = 'kafka.offset_lag'.freeze
|
29
|
+
TAG_PARTITION = 'kafka.partition'.freeze
|
30
|
+
TAG_REQUEST_SIZE = 'kafka.request_size'.freeze
|
31
|
+
TAG_RESPONSE_SIZE = 'kafka.response_size'.freeze
|
32
|
+
TAG_SENT_MESSAGE_COUNT = 'kafka.sent_message_count'.freeze
|
33
|
+
TAG_TOPIC = 'kafka.topic'.freeze
|
34
|
+
TAG_TOPIC_PARTITIONS = 'kafka.topic_partitions'.freeze
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'ddtrace/contrib/integration'
|
2
|
+
require 'ddtrace/contrib/kafka/configuration/settings'
|
3
|
+
require 'ddtrace/contrib/kafka/patcher'
|
4
|
+
|
5
|
+
module Datadog
|
6
|
+
module Contrib
|
7
|
+
module Kafka
|
8
|
+
# Description of Kafka integration
|
9
|
+
class Integration
|
10
|
+
include Contrib::Integration
|
11
|
+
|
12
|
+
MINIMUM_VERSION = Gem::Version.new('0.7.10')
|
13
|
+
|
14
|
+
register_as :kafka, auto_patch: false
|
15
|
+
|
16
|
+
def self.version
|
17
|
+
Gem.loaded_specs['ruby-kafka'] && Gem.loaded_specs['ruby-kafka'].version
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.loaded?
|
21
|
+
!defined?(::Kafka).nil? \
|
22
|
+
&& !defined?(::ActiveSupport::Notifications).nil?
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.compatible?
|
26
|
+
super && version >= MINIMUM_VERSION
|
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
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'ddtrace/contrib/patcher'
|
2
|
+
require 'ddtrace/ext/app_types'
|
3
|
+
require 'ddtrace/contrib/kafka/ext'
|
4
|
+
require 'ddtrace/contrib/kafka/events'
|
5
|
+
|
6
|
+
module Datadog
|
7
|
+
module Contrib
|
8
|
+
module Kafka
|
9
|
+
# Patcher enables patching of 'kafka' module.
|
10
|
+
module Patcher
|
11
|
+
include Contrib::Patcher
|
12
|
+
|
13
|
+
module_function
|
14
|
+
|
15
|
+
def target_version
|
16
|
+
Integration.version
|
17
|
+
end
|
18
|
+
|
19
|
+
def patch
|
20
|
+
# Subscribe to Kafka events
|
21
|
+
Events.subscribe!
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|