ddtrace 0.35.2 → 0.40.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/.circleci/config.yml +59 -1
- data/.gitignore +2 -0
- data/.gitlab-ci.yml +27 -0
- data/.rubocop.yml +4 -0
- data/.simplecov +38 -0
- data/Appraisals +139 -12
- data/CHANGELOG.md +185 -1
- data/Rakefile +524 -464
- data/ddtrace.gemspec +6 -0
- data/docker-compose.yml +37 -2
- data/docs/DevelopmentGuide.md +16 -0
- data/docs/GettingStarted.md +192 -111
- data/lib/ddtrace.rb +4 -0
- data/lib/ddtrace/configuration.rb +36 -5
- data/lib/ddtrace/configuration/components.rb +4 -7
- data/lib/ddtrace/configuration/pin_setup.rb +3 -2
- data/lib/ddtrace/configuration/settings.rb +27 -3
- data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_cable/ext.rb +5 -2
- data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_pack/ext.rb +5 -2
- data/lib/ddtrace/contrib/action_view/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_view/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_model_serializers/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_record/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_record/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -1
- data/lib/ddtrace/contrib/active_support/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_support/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_support/notifications/event.rb +3 -1
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -1
- data/lib/ddtrace/contrib/aws/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/aws/ext.rb +5 -2
- data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +5 -0
- data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +9 -3
- data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
- data/lib/ddtrace/contrib/configuration/settings.rb +19 -0
- data/lib/ddtrace/contrib/dalli/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/dalli/ext.rb +5 -2
- data/lib/ddtrace/contrib/dalli/patcher.rb +1 -5
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/delayed_job/ext.rb +5 -2
- data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/elasticsearch/ext.rb +5 -2
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -2
- data/lib/ddtrace/contrib/ethon/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/ethon/ext.rb +5 -2
- data/lib/ddtrace/contrib/excon/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/excon/ext.rb +5 -2
- data/lib/ddtrace/contrib/extensions.rb +39 -5
- data/lib/ddtrace/contrib/faraday/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/faraday/ext.rb +5 -2
- data/lib/ddtrace/contrib/faraday/middleware.rb +5 -3
- data/lib/ddtrace/contrib/faraday/patcher.rb +13 -5
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -3
- data/lib/ddtrace/contrib/grape/ext.rb +5 -2
- data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
- data/lib/ddtrace/contrib/graphql/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/graphql/ext.rb +5 -2
- data/lib/ddtrace/contrib/graphql/patcher.rb +6 -3
- data/lib/ddtrace/contrib/grpc/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +1 -1
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -3
- data/lib/ddtrace/contrib/grpc/ext.rb +5 -2
- data/lib/ddtrace/contrib/grpc/patcher.rb +1 -5
- data/lib/ddtrace/contrib/http/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/http/ext.rb +5 -2
- data/lib/ddtrace/contrib/http/instrumentation.rb +12 -7
- data/lib/ddtrace/contrib/httprb/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/httprb/ext.rb +17 -0
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +160 -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 +30 -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 +41 -0
- data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
- data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
- data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/mongodb/ext.rb +5 -2
- data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -2
- data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/mysql2/ext.rb +5 -2
- data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -1
- data/lib/ddtrace/contrib/patcher.rb +14 -8
- data/lib/ddtrace/contrib/presto/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/presto/ext.rb +5 -2
- data/lib/ddtrace/contrib/que/configuration/settings.rb +42 -0
- data/lib/ddtrace/contrib/que/ext.rb +30 -0
- data/lib/ddtrace/contrib/que/integration.rb +42 -0
- data/lib/ddtrace/contrib/que/patcher.rb +24 -0
- data/lib/ddtrace/contrib/que/tracer.rb +56 -0
- data/lib/ddtrace/contrib/racecar/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/racecar/events.rb +2 -0
- data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
- data/lib/ddtrace/contrib/racecar/ext.rb +6 -2
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/rack/ext.rb +5 -2
- data/lib/ddtrace/contrib/rack/middlewares.rb +17 -12
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +10 -11
- data/lib/ddtrace/contrib/rails/ext.rb +6 -2
- data/lib/ddtrace/contrib/rails/framework.rb +52 -46
- data/lib/ddtrace/contrib/rails/integration.rb +1 -1
- data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
- data/lib/ddtrace/contrib/rails/middlewares.rb +7 -2
- data/lib/ddtrace/contrib/rails/patcher.rb +15 -0
- data/lib/ddtrace/contrib/rake/configuration/settings.rb +7 -3
- data/lib/ddtrace/contrib/rake/ext.rb +5 -2
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/redis/ext.rb +5 -2
- data/lib/ddtrace/contrib/redis/patcher.rb +1 -1
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/resque/ext.rb +5 -2
- data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/rest_client/ext.rb +5 -2
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +2 -2
- data/lib/ddtrace/contrib/sequel/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sequel/database.rb +1 -1
- data/lib/ddtrace/contrib/sequel/ext.rb +5 -2
- data/lib/ddtrace/contrib/sequel/utils.rb +19 -1
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/shoryuken/ext.rb +5 -2
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sidekiq/ext.rb +6 -2
- data/lib/ddtrace/contrib/sidekiq/patcher.rb +8 -1
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
- data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sinatra/env.rb +5 -4
- data/lib/ddtrace/contrib/sinatra/ext.rb +5 -2
- data/lib/ddtrace/contrib/sinatra/tracer.rb +21 -42
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +50 -23
- data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/sneakers/ext.rb +22 -0
- data/lib/ddtrace/contrib/sneakers/integration.rb +41 -0
- data/lib/ddtrace/contrib/sneakers/patcher.rb +24 -0
- data/lib/ddtrace/contrib/sneakers/tracer.rb +58 -0
- data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sucker_punch/ext.rb +5 -2
- data/lib/ddtrace/contrib/sucker_punch/patcher.rb +1 -1
- data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
- data/lib/ddtrace/environment.rb +17 -3
- data/lib/ddtrace/ext/diagnostics.rb +3 -0
- data/lib/ddtrace/ext/environment.rb +2 -0
- data/lib/ddtrace/ext/transport.rb +1 -0
- data/lib/ddtrace/logger.rb +1 -1
- data/lib/ddtrace/pin.rb +39 -15
- data/lib/ddtrace/pipeline/span_filter.rb +15 -15
- data/lib/ddtrace/runtime/metrics.rb +18 -4
- data/lib/ddtrace/sampler.rb +2 -0
- data/lib/ddtrace/span.rb +10 -0
- data/lib/ddtrace/tracer.rb +15 -8
- data/lib/ddtrace/transport/http.rb +15 -0
- data/lib/ddtrace/transport/http/adapters/net.rb +8 -0
- data/lib/ddtrace/transport/http/adapters/test.rb +6 -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 +2 -2
- data/lib/ddtrace/workers/async.rb +2 -2
- data/lib/ddtrace/workers/loop.rb +1 -1
- data/lib/ddtrace/workers/polling.rb +1 -1
- data/lib/ddtrace/workers/trace_writer.rb +3 -0
- data/lib/ddtrace/writer.rb +33 -12
- metadata +124 -4
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require 'ddtrace/contrib/integration'
|
|
2
|
+
require 'ddtrace/contrib/httprb/configuration/settings'
|
|
3
|
+
require 'ddtrace/contrib/configuration/resolvers/pattern_resolver'
|
|
4
|
+
require 'ddtrace/contrib/httprb/patcher'
|
|
5
|
+
|
|
6
|
+
module Datadog
|
|
7
|
+
module Contrib
|
|
8
|
+
module Httprb
|
|
9
|
+
# Description of Httprb integration
|
|
10
|
+
class Integration
|
|
11
|
+
include Contrib::Integration
|
|
12
|
+
|
|
13
|
+
MINIMUM_VERSION = Gem::Version.new('2.0.0')
|
|
14
|
+
|
|
15
|
+
register_as :httprb
|
|
16
|
+
|
|
17
|
+
def self.version
|
|
18
|
+
Gem.loaded_specs['http'] && Gem.loaded_specs['http'].version
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.loaded?
|
|
22
|
+
!defined?(::HTTP).nil? && !defined?(::HTTP::Client).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
|
+
|
|
37
|
+
def resolver
|
|
38
|
+
@resolver ||= Contrib::Configuration::Resolvers::PatternResolver.new
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'ddtrace/contrib/patcher'
|
|
2
|
+
require 'ddtrace/contrib/httprb/instrumentation'
|
|
3
|
+
|
|
4
|
+
module Datadog
|
|
5
|
+
module Contrib
|
|
6
|
+
# Datadog Httprb integration.
|
|
7
|
+
module Httprb
|
|
8
|
+
# Patcher enables patching of 'httprb' module.
|
|
9
|
+
module Patcher
|
|
10
|
+
include Contrib::Patcher
|
|
11
|
+
|
|
12
|
+
module_function
|
|
13
|
+
|
|
14
|
+
def patched?
|
|
15
|
+
done?(:httprb)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def target_version
|
|
19
|
+
Integration.version
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# patch applies our patch
|
|
23
|
+
def patch
|
|
24
|
+
do_once(:httprb) do
|
|
25
|
+
begin
|
|
26
|
+
::HTTP::Client.send(:include, Instrumentation)
|
|
27
|
+
rescue StandardError => e
|
|
28
|
+
Datadog::Logger.error("Unable to apply httprb integration: #{e}")
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'ddtrace/contrib/configuration/settings'
|
|
2
|
+
require 'ddtrace/contrib/kafka/ext'
|
|
3
|
+
|
|
4
|
+
module Datadog
|
|
5
|
+
module Contrib
|
|
6
|
+
module Kafka
|
|
7
|
+
module Configuration
|
|
8
|
+
# Custom settings for the Kafka integration
|
|
9
|
+
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ENABLED, true) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
option :analytics_enabled do |o|
|
|
16
|
+
o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], false) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
option :analytics_sample_rate do |o|
|
|
21
|
+
o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
|
|
22
|
+
o.lazy
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
option :service_name, default: Ext::SERVICE_NAME
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Datadog
|
|
2
|
+
module Contrib
|
|
3
|
+
module Kafka
|
|
4
|
+
# Defines basic behaviors for an event for a consumer.
|
|
5
|
+
module ConsumerEvent
|
|
6
|
+
def process(span, _event, _id, payload)
|
|
7
|
+
super
|
|
8
|
+
|
|
9
|
+
span.set_tag(Ext::TAG_GROUP, payload[:group_id])
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Datadog
|
|
2
|
+
module Contrib
|
|
3
|
+
module Kafka
|
|
4
|
+
# Defines basic behaviors for an event for a consumer group.
|
|
5
|
+
module ConsumerGroupEvent
|
|
6
|
+
def process(span, _event, _id, payload)
|
|
7
|
+
super
|
|
8
|
+
|
|
9
|
+
span.resource = payload[:group_id]
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require 'ddtrace/contrib/analytics'
|
|
2
|
+
require 'ddtrace/contrib/active_support/notifications/event'
|
|
3
|
+
require 'ddtrace/contrib/kafka/ext'
|
|
4
|
+
|
|
5
|
+
module Datadog
|
|
6
|
+
module Contrib
|
|
7
|
+
module Kafka
|
|
8
|
+
# Defines basic behaviors for an ActiveSupport event.
|
|
9
|
+
module Event
|
|
10
|
+
def self.included(base)
|
|
11
|
+
base.send(:include, ActiveSupport::Notifications::Event)
|
|
12
|
+
base.send(:extend, ClassMethods)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Class methods for Kafka events.
|
|
16
|
+
module ClassMethods
|
|
17
|
+
def event_name
|
|
18
|
+
self::EVENT_NAME
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def span_options
|
|
22
|
+
{ service: configuration[:service_name] }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def tracer
|
|
26
|
+
-> { configuration[:tracer] }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def configuration
|
|
30
|
+
Datadog.configuration[:kafka]
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def process(span, _event, _id, payload)
|
|
34
|
+
span.service = configuration[:service_name]
|
|
35
|
+
span.set_tag(Ext::TAG_CLIENT, payload[:client_id])
|
|
36
|
+
|
|
37
|
+
# Set analytics sample rate
|
|
38
|
+
if Contrib::Analytics.enabled?(configuration[:analytics_enabled])
|
|
39
|
+
Contrib::Analytics.set_sample_rate(span, configuration[:analytics_sample_rate])
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Measure service stats
|
|
43
|
+
Contrib::Analytics.set_measured(span)
|
|
44
|
+
|
|
45
|
+
span.set_error(payload[:exception_object]) if payload[:exception_object]
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -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
|