lib/freddy/delivery.rb in freddy-jruby-1.0.0 vs lib/freddy/delivery.rb in freddy-jruby-1.3.2
- old
+ new
@@ -18,7 +18,28 @@
end
def reply_to
@metadata.reply_to
end
+
+ def build_trace(operation_name, tags: {}, force_follows_from: false)
+ carrier = TraceCarrier.new(@metadata)
+ parent =
+ if expecting_response? && !force_follows_from
+ OpenTracing.global_tracer.extract(OpenTracing::FORMAT_TEXT_MAP, carrier)
+ else
+ nil
+ end
+
+ # Creating a child span when the message sender is expecting a response.
+ # Otherwise creating a new trace because the OpenTracing client does not
+ # support FollowsFrom yet.
+ OpenTracing.start_span(operation_name, child_of: parent, tags: tags)
+ end
+
+ private
+
+ def expecting_response?
+ type == 'request'
+ end
end
end