Module: Datadog::Tracing::Contrib::Karafka::Patcher

Includes:
Patcher
Defined in:
lib/datadog/tracing/contrib/karafka/patcher.rb

Overview

Patcher enables patching of 'karafka' module.

Constant Summary collapse

ACTIVATE_FRAMEWORK_ONLY_ONCE =
Core::Utils::OnlyOnce.new

Class Method Summary collapse

Methods included from Patcher

included

Class Method Details

.patch ⇒ Object



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/datadog/tracing/contrib/karafka/patcher.rb', line 80

def patch
  require_relative "monitor"
  require_relative "framework"
  require_relative "../waterdrop"

  ::Karafka::Instrumentation::Monitor.prepend(Monitor)
  ::Karafka::Messages::Messages.prepend(MessagesPatch)

  if Contrib::WaterDrop::Integration.compatible?
    ::Karafka.monitor.subscribe("app.initialized") do |event|
      ACTIVATE_FRAMEWORK_ONLY_ONCE.run do
        Contrib::Karafka::Framework.setup
      end

      Contrib::WaterDrop::Patcher.add_middleware(::Karafka.producer)
    end
  end
end

.target_version ⇒ Object



76
77
78
# File 'lib/datadog/tracing/contrib/karafka/patcher.rb', line 76

def target_version
  Integration.version
end