class JCW::Subscriber

Public Class Methods

subscribe_to_event!(event_name) click to toggle source
# File lib/jcw/subscriber.rb, line 6
def subscribe_to_event!(event_name)
  ActiveSupport::Notifications.subscribe(event_name) do |*args|
    (span = OpenTracing.scope_manager.active&.span) or next
    event = ActiveSupport::Notifications::Event.new(*args)
    span.log_kv(context: span_context(event))
  end
end

Private Class Methods

span_context(event) click to toggle source
# File lib/jcw/subscriber.rb, line 16
def span_context(event)
  {
    name: event.name,
    time: event.time,
    payload: event.payload.to_s,
    transaction_id: event.transaction_id,
  }.as_json
end