Skip to content

Commit 8725d0c

Browse files
committed
Add Karafka framework, automatically activating WaterDrop
1 parent 025d7d7 commit 8725d0c

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
module Datadog
4+
module Tracing
5+
module Contrib
6+
module Karafka
7+
# Karafka framework code, used to essentially:
8+
# - handle configuration entries which are specific to Datadog tracing
9+
# - instrument parts of the framework when needed
10+
module Framework
11+
def self.setup
12+
Datadog.configure do |datadog_config|
13+
karafka_config = datadog_config.tracing[:karafka]
14+
activate_waterdrop!(datadog_config, karafka_config)
15+
end
16+
end
17+
18+
# Apply relevant configuration from Karafka to WaterDrop
19+
def self.activate_waterdrop!(datadog_config, karafka_config)
20+
datadog_config.tracing.instrument(
21+
:waterdrop,
22+
service_name: karafka_config[:service_name],
23+
distributed_tracing: karafka_config[:distributed_tracing],
24+
)
25+
end
26+
end
27+
end
28+
end
29+
end
30+
end

lib/datadog/tracing/contrib/karafka/patcher.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ def patch
6363

6464
::Karafka::Instrumentation::Monitor.prepend(Monitor)
6565
::Karafka::Messages::Messages.prepend(MessagesPatch)
66+
67+
# Activate tracing on components related to Karafka (e.g. WaterDrop)
68+
Framework.setup
6669
end
6770
end
6871
end

0 commit comments

Comments
 (0)