21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# 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]
included_middlewares = producer.middleware.instance_variable_get(:@steps)
producer.middleware.append(Middleware) unless included_middlewares.include?(Middleware)
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
|