Module: Datadog::Tracing::Contrib::WaterDrop::Patcher
- Includes:
- Patcher
- Defined in:
- lib/datadog/tracing/contrib/waterdrop/patcher.rb
Overview
Patcher enables patching of ‘waterdrop’ module.
Class Method Summary collapse
Methods included from Patcher
Class Method Details
.add_middleware(producer) ⇒ Object
41 42 43 44 |
# File 'lib/datadog/tracing/contrib/waterdrop/patcher.rb', line 41 def add_middleware(producer) included_middlewares = producer.middleware.instance_variable_get(:@steps) producer.middleware.append(Middleware) unless included_middlewares.include?(Middleware) end |
.patch ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/datadog/tracing/contrib/waterdrop/patcher.rb', line 21 def patch require_relative 'producer' require_relative 'middleware' ::WaterDrop::Producer.prepend(Producer) ::WaterDrop.instrumentation.subscribe('producer.configured') do |event| producer = event[:producer] add_middleware(producer) if Datadog.configuration.data_streams.enabled producer.monitor.subscribe('message.acknowledged') do |ack_event| if Datadog::DataStreams.enabled? payload = ack_event.payload Datadog::DataStreams.track_kafka_produce(payload[:topic], payload[:partition], payload[:offset]) end end end end end |
.target_version ⇒ Object
17 18 19 |
# File 'lib/datadog/tracing/contrib/waterdrop/patcher.rb', line 17 def target_version Integration.version end |