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

.patchObject



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_versionObject



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

def target_version
  Integration.version
end